codex-mobile-re 0.1.95 → 0.1.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AutomationsPanel-L3Dmhf5P.js → AutomationsPanel-BM68E8O8.js} +1 -1
- package/dist/assets/{DirectoryHub-BtP13Q0A.js → DirectoryHub-rK4pGPCJ.js} +1 -1
- package/dist/assets/{ReviewPane-C2FeOMMp.js → ReviewPane-BgaQ7pMs.js} +1 -1
- package/dist/assets/{ThreadConversation-CePFhT28.js → ThreadConversation-Ct2n-SwV.js} +1 -1
- package/dist/assets/{ThreadTerminalPanel-ahrD1lQx.js → ThreadTerminalPanel-DQnmzO-G.js} +1 -1
- package/dist/assets/{index-Cu7x4SXC.css → index-CJxQMdGE.css} +1 -1
- package/dist/assets/{index-BItdblN0.js → index-CNFcjd2m.js} +5 -5
- package/dist/index.html +2 -2
- package/dist-cli/index.js +22 -5
- package/dist-cli/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ThreadConversation-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ThreadConversation-Ct2n-SwV.js","assets/sanitizeHtml-Bd3No2dT.js","assets/ThreadConversation-BsCpIC2W.css","assets/ThreadTerminalPanel-DQnmzO-G.js","assets/ThreadTerminalPanel-O7IxAyfy.css","assets/ReviewPane-BgaQ7pMs.js","assets/ReviewPane-Q55bhcnB.css","assets/DirectoryHub-rK4pGPCJ.js","assets/DirectoryHub-CIkiWzxh.css","assets/AutomationsPanel-BM68E8O8.js","assets/AutomationsPanel-VRBbmMYW.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 r of document.querySelectorAll('link[rel="modulepreload"]'))o(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&o(a)}).observe(document,{childList:!0,subtree:!0});function n(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function o(r){if(r.ep)return;r.ep=!0;const s=n(r);fetch(r.href,s)}})();/**
|
|
3
3
|
* @vue/shared v3.5.40
|
|
4
4
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
@@ -52,13 +52,13 @@ ${e}
|
|
|
52
52
|
...${e.length-uf} more item(s)`:"";return`${t}:
|
|
53
53
|
${n.join(`
|
|
54
54
|
`)||"empty"}${r}`}catch(n){return`${t}: unavailable (${Ny(fu(n))})`}}function Tx(){return typeof window>"u"?"unknown":[`Path: ${window.location.pathname||"/"}`,`Hash: ${window.location.hash||"(none)"}`,`Search: ${window.location.search||"(none)"}`,`Online: ${typeof navigator>"u"?"unknown":String(navigator.onLine)}`,`Language: ${typeof navigator>"u"?"unknown":navigator.language}`,`Platform: ${typeof navigator>"u"?"unknown":navigator.platform}`,Hm(window.localStorage,"localStorage"),Hm(window.sessionStorage,"sessionStorage")].join(`
|
|
55
|
-
`)}function Mi(e){const t=e.message.trim();if(!t)return;const n=Sl.value[0];if(n&&n.kind===e.kind&&n.message===t&&n.url===e.url&&n.method===e.method&&n.status===e.status)return;const o={...e,message:t,atIso:e.atIso??new Date().toISOString()};Sl.value=[o,...Sl.value].slice(0,gx)}function Ly(e=Sl.value){var m;const t=typeof window>"u"?"unknown":`${window.innerWidth}x${window.innerHeight} @${window.devicePixelRatio||1}x`,n=typeof window>"u"?"unknown":window.location.href,o=typeof navigator>"u"?"unknown":navigator.userAgent,r="0.1.
|
|
55
|
+
`)}function Mi(e){const t=e.message.trim();if(!t)return;const n=Sl.value[0];if(n&&n.kind===e.kind&&n.message===t&&n.url===e.url&&n.method===e.method&&n.status===e.status)return;const o={...e,message:t,atIso:e.atIso??new Date().toISOString()};Sl.value=[o,...Sl.value].slice(0,gx)}function Ly(e=Sl.value){var m;const t=typeof window>"u"?"unknown":`${window.innerWidth}x${window.innerHeight} @${window.devicePixelRatio||1}x`,n=typeof window>"u"?"unknown":window.location.href,o=typeof navigator>"u"?"unknown":navigator.userAgent,r="0.1.97",s="codex-mobile",a=e.slice(0,12).map((g,w)=>[`${w+1}. [${g.atIso}] ${g.kind}`,g.method?`${g.method}`:"",g.url??"",typeof g.status=="number"?`${g.status} ${g.statusText??""}`.trim():"",g.message].filter(Boolean).join(" | ")).join(`
|
|
56
56
|
`),u=["What happened?","","","Context",`URL: ${n}`,`User agent: ${o}`,`Viewport: ${t}`,`App version: ${r}`,`Worktree: ${s}`,"","Browser/app state",Tx(),"","Recent diagnostics",a||"No diagnostics captured.","","Visible page text",kx()].join(`
|
|
57
57
|
`).slice(0,yx),d=`Codex Web feedback: ${Ny((m=e[0])==null?void 0:m.message)}`;return`mailto:${jy}?subject=${zm(d)}&body=${zm(u)}`}function Sx(){typeof window>"u"||(window.location.href=Ly())}function xx(){if(!(typeof window>"u")&&(qm||(qm=!0,window.addEventListener("error",e=>{Mi({kind:"window-error",message:e.error?fu(e.error):e.message,url:e.filename||window.location.href})}),window.addEventListener("unhandledrejection",e=>{Mi({kind:"unhandled-rejection",message:fu(e.reason),url:window.location.href})})),!cf)){if(typeof window.fetch!="function"){Mi({kind:"fetch-error",message:"Feedback diagnostics could not monitor fetch: window.fetch is unavailable",url:window.location.href});return}try{df=window.fetch.bind(window),window.fetch=async(e,t)=>{const n=wx(e),o=bx(e,t);try{const r=await df(e,t);return r.ok||Mi({kind:n.includes("/codex-api/")?"api-response":"fetch-error",message:`Request failed with HTTP ${r.status}`,url:n,method:o,status:r.status,statusText:r.statusText}),r}catch(r){throw Mi({kind:"fetch-error",message:fu(r),url:n,method:o}),r}},cf=!0}catch(e){df=null,cf=!1;try{Mi({kind:"fetch-error",message:`Feedback diagnostics could not monitor fetch: ${fu(e)}`,url:window.location.href})}catch{}}}}function xp(){const e=ee(()=>Sl.value.length>0);function t(n,o){Mi({kind:"visible-error",message:n,url:o||(typeof window>"u"?void 0:window.location.href)})}return{diagnostics:Sl,hasFeedbackDiagnostics:e,recordVisibleFailure:t,openFeedbackMail:Sx,buildFeedbackMailto:Ly,feedbackMailtoBase:_x}}const Oy="codex-web-local.recycle-bin.v1";function Dy(){if(typeof window>"u")return[];try{const e=window.localStorage.getItem(Oy);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t.filter(n=>!!n&&typeof n.id=="string"&&typeof n.title=="string"):[]}catch{return[]}}function Wm(e){if(!(typeof window>"u"))try{window.localStorage.setItem(Oy,JSON.stringify(e))}catch{}}const hs=S(Dy());function Ax(){function e(){hs.value=Dy()}function t(r){hs.value=[{...r,archivedAtIso:new Date().toISOString()},...hs.value.filter(s=>s.id!==r.id)],Wm(hs.value)}function n(r){hs.value=hs.value.filter(s=>s.id!==r),Wm(hs.value)}async function o(r){if(!hs.value.some(s=>s.id===r))return{ok:!1,error:"Thread is not in the recycle bin"};try{return await j1(r),n(r),{ok:!0}}catch(s){return{ok:!1,error:s instanceof Error?s.message:"Failed to restore thread"}}}return{records:hs,loadRecords:e,recordArchivedThread:t,removeArchivedRecord:n,restoreArchivedThread:o}}const Px=["title","aria-label","disabled"],Ex={key:1,class:"composer-dropdown-value"},Ix={key:0,class:"composer-dropdown-search-wrap"},Rx=["placeholder","onKeydown"],Mx={class:"composer-dropdown-options",role:"listbox"},$x=["onClick"],jx={key:0,class:"composer-dropdown-empty"},Nx=Ln({__name:"ComposerDropdown",props:{modelValue:{},options:{},placeholder:{},disabled:{type:Boolean},selectedPrefixIcon:{},iconOnly:{type:Boolean},openDirection:{},menuAlign:{},enableSearch:{type:Boolean},searchPlaceholder:{},emptyLabel:{},variant:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,o=t,r=S(null),s=S(null),a=S(null),u=S(null),d=S(!1),m=S(""),g=S({});let w=!1;const x=ee(()=>{var Ee;const Pe=n.options.find(Ue=>Ue.value===n.modelValue);return Pe?Pe.label:((Ee=n.placeholder)==null?void 0:Ee.trim())||""}),R=ee(()=>n.openDirection??"down"),O=ee(()=>n.menuAlign??"start"),z=ee(()=>n.iconOnly===!0),Z=ee(()=>n.enableSearch===!0),ce=ee(()=>n.variant==="pill"?"composer-dropdown-trigger--pill":""),B=ee(()=>{var Pe;return((Pe=n.searchPlaceholder)==null?void 0:Pe.trim())||"Quick search projects"}),Y=ee(()=>{var Pe;return((Pe=n.emptyLabel)==null?void 0:Pe.trim())||"No results"}),J=ee(()=>{var Pe;return x.value||((Pe=n.placeholder)==null?void 0:Pe.trim())||"Select option"}),ge=ee(()=>{const Pe=m.value.trim().toLowerCase();return Pe?n.options.filter(Ee=>Ee.label.toLowerCase().includes(Pe)||Ee.value.toLowerCase().includes(Pe)):n.options});function Ae(){n.disabled||(d.value=!d.value)}function ye(Pe,Ee,Ue){return Math.min(Ue,Math.max(Ee,Pe))}function $e(){var ne,re,W,Be;if(!d.value)return;const Pe=r.value;if(!Pe||typeof window>"u")return;const Ee=Pe.getBoundingClientRect(),Ue=window.innerWidth,Ye=window.innerHeight,He=8,xt=8,ut=Math.max(0,Ue-He*2),Ge=((ne=a.value)==null?void 0:ne.offsetWidth)??((re=s.value)==null?void 0:re.offsetWidth)??224,tt=((W=a.value)==null?void 0:W.offsetHeight)??((Be=s.value)==null?void 0:Be.offsetHeight)??0,ct=Math.min(Ge,ut),_t=Math.max(He,Ue-ct-He),St=O.value==="end"?Ee.right-ct:Ee.left,yt=ye(St,He,_t);let ae=R.value==="up"?Ee.top-tt-xt:Ee.bottom+xt;tt>0&&ae+tt>Ye-He&&(ae=Ye-tt-He),ae=Math.max(He,ae),g.value={position:"fixed",left:`${yt}px`,right:"auto",top:`${ae}px`,bottom:"auto",width:`${ct}px`}}function pe(){w||typeof window>"u"||(window.addEventListener("resize",$e),window.addEventListener("scroll",$e,!0),w=!0)}function Ne(){!w||typeof window>"u"||(window.removeEventListener("resize",$e),window.removeEventListener("scroll",$e,!0),w=!1)}function je(Pe){o("update:modelValue",Pe),d.value=!1,m.value=""}function he(){if(m.value.length>0){m.value="";return}d.value=!1}function Se(Pe){if(!d.value)return;const Ee=r.value;if(!Ee)return;const Ue=Pe.target;Ue instanceof Node&&(Ee.contains(Ue)||(d.value=!1,m.value=""))}return ot(d,Pe=>{if(!Pe){Ne(),g.value={};return}pe(),Ht(()=>{var Ee;$e(),window.requestAnimationFrame($e),Z.value&&((Ee=u.value)==null||Ee.focus())})}),xs(()=>{window.addEventListener("pointerdown",Se)}),zi(()=>{window.removeEventListener("pointerdown",Se),Ne()}),(Pe,Ee)=>(T(),A("div",{ref_key:"rootRef",ref:r,class:"composer-dropdown"},[f("button",{class:Ke(["composer-dropdown-trigger",ce.value]),type:"button",title:J.value,"aria-label":J.value,disabled:e.disabled,onClick:Ae},[e.selectedPrefixIcon?(T(),rt(up(e.selectedPrefixIcon),{key:0,class:"composer-dropdown-prefix-icon"})):Q("",!0),z.value?Q("",!0):(T(),A("span",Ex,k(x.value),1)),xe(ei,{class:"composer-dropdown-chevron"})],10,Px),d.value?(T(),A("div",{key:0,ref_key:"menuWrapRef",ref:s,class:Ke(["composer-dropdown-menu-wrap",{"composer-dropdown-menu-wrap-up":R.value==="up","composer-dropdown-menu-wrap-down":R.value==="down"}]),style:Pr(g.value)},[f("div",{ref_key:"menuRef",ref:a,class:"composer-dropdown-menu"},[Z.value?(T(),A("div",Ix,[Ot(f("input",{ref_key:"searchInputRef",ref:u,"onUpdate:modelValue":Ee[0]||(Ee[0]=Ue=>m.value=Ue),class:"composer-dropdown-search-input",type:"text",placeholder:B.value,onKeydown:In(Qe(he,["prevent"]),["esc"])},null,40,Rx),[[sn,m.value]])])):Q("",!0),f("ul",Mx,[(T(!0),A(ze,null,Tt(ge.value,Ue=>(T(),A("li",{key:Ue.value},[f("button",{class:Ke(["composer-dropdown-option",{"is-selected":Ue.value===e.modelValue}]),type:"button",onClick:Ye=>je(Ue.value)},k(Ue.label),11,$x)]))),128)),ge.value.length===0?(T(),A("li",jx,k(Y.value),1)):Q("",!0)])],512)],6)):Q("",!0)],512))}}),ur=Pt(Nx,[["__scopeId","data-v-48e2516e"]]),Lx={},Ox={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function Dx(e,t){return T(),A("svg",Ox,[...t[0]||(t[0]=[f("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M18 6L6 18M6 6l12 12"},null,-1)])])}const Nc=Pt(Lx,[["render",Dx]]),Fx=["aria-label","onKeydown"],Ux={class:"app-dialog-header"},Bx={class:"app-dialog-title-wrap"},qx={class:"app-dialog-title"},zx={key:0,class:"app-dialog-subtitle"},Hx=["aria-label","title"],Wx={class:"app-dialog-body"},Vx={key:0,class:"app-dialog-footer"},Gx=Ln({__name:"AppDialog",props:{open:{type:Boolean},title:{},subtitle:{default:""},ariaLabel:{default:""},size:{default:"sm"}},emits:["close"],setup(e,{emit:t}){const n=e,o=t,{t:r}=Er();function s(){o("close")}function a(u){n.open&&u.key==="Escape"&&(u.preventDefault(),s())}return ot(()=>n.open,u=>{typeof window>"u"||(u?window.addEventListener("keydown",a):window.removeEventListener("keydown",a))},{immediate:!0}),zi(()=>{typeof window>"u"||window.removeEventListener("keydown",a)}),(u,d)=>(T(),rt(Bi,{to:"body"},[e.open?(T(),A("div",{key:0,class:"app-dialog-overlay",onClick:Qe(s,["self"])},[f("div",{class:Ke(["app-dialog-panel",`app-dialog-panel--${e.size}`]),role:"dialog","aria-modal":"true","aria-label":e.ariaLabel||e.title,onKeydown:In(Qe(s,["prevent"]),["esc"])},[f("div",Ux,[f("div",Bx,[f("h3",qx,k(e.title),1),e.subtitle?(T(),A("p",zx,k(e.subtitle),1)):Q("",!0)]),f("button",{class:"app-dialog-close",type:"button","aria-label":v(r)("Close"),title:v(r)("Close"),onClick:s},[xe(Nc,{class:"app-dialog-close-icon"})],8,Hx)]),f("div",Wx,[cr(u.$slots,"default",{},void 0)]),u.$slots.footer?(T(),A("div",Vx,[cr(u.$slots,"footer",{},void 0)])):Q("",!0)],42,Fx)])):Q("",!0)]))}}),ff=Pt(Gx,[["__scopeId","data-v-3d93f67e"]]),Kx={key:0,class:"sidebar-menu-row-left"},Yx={class:"sidebar-menu-row-main"},Jx={key:1,class:"sidebar-menu-row-right"},Qx={key:0,class:"sidebar-menu-row-right-default"},Xx={key:1,class:"sidebar-menu-row-right-hover"},Zx=Ln({inheritAttrs:!1,__name:"SidebarMenuRow",props:{as:{default:"div"},forceRightHover:{type:Boolean,default:!1}},setup(e){const t=e,n=_0(),o=ee(()=>!!n.left),r=ee(()=>!!n.right),s=ee(()=>!!n["right-hover"]),a=ee(()=>r.value||s.value);return(u,d)=>(T(),rt(up(t.as),Hg({class:"sidebar-menu-row","data-has-left":o.value,"data-has-right":a.value,"data-has-right-hover":s.value,"data-force-right-hover":t.forceRightHover},u.$attrs),{default:et(()=>[o.value?(T(),A("span",Kx,[cr(u.$slots,"left",{},void 0,!0)])):Q("",!0),f("span",Yx,[cr(u.$slots,"default",{},void 0,!0)]),a.value?(T(),A("span",Jx,[r.value?(T(),A("span",Qx,[cr(u.$slots,"right",{},void 0,!0)])):Q("",!0),s.value?(T(),A("span",Xx,[cr(u.$slots,"right-hover",{},void 0,!0)])):Q("",!0)])):Q("",!0)]),_:3},16,["data-has-left","data-has-right","data-has-right-hover","data-force-right-hover"]))}}),ha=Pt(Zx,[["__scopeId","data-v-5fc666fb"]]);function eA(e,t,n){return n.canPruneMissing?e.filter(o=>t.has(o)):e}const tA={key:0,class:"pinned-section"},nA={class:"thread-tree-header"},oA={key:0,class:"thread-list"},rA=["data-menu-open"],aA={class:"thread-left-stack"},sA=["data-state"],iA=["data-confirming","title","onClick"],lA={key:0,class:"thread-delete-confirm-label"},uA=["onClick"],cA={class:"thread-row-title-wrap"},dA={class:"thread-row-title-line"},fA={class:"thread-row-title"},pA=["title"],hA={key:0,class:"thread-row-automation-count"},mA=["data-state"],vA={class:"thread-row-time"},gA=["onClick"],yA={class:"projects-section"},wA={class:"thread-tree-header"},bA=["aria-expanded","aria-label","title"],_A={class:"organize-menu-title"},kA=["data-active"],CA={key:0},TA=["data-active"],SA={key:0},xA=["data-active"],AA={key:0},PA={class:"organize-menu-title"},EA=["data-active"],IA={key:0},RA=["data-active"],MA={key:0},$A={key:0,class:"thread-tree-action-error"},jA={key:1,class:"thread-tree-no-results"},NA={key:2,class:"thread-tree-loading"},LA={key:3,class:"thread-list thread-list-global"},OA=["data-menu-open"],DA={class:"thread-left-stack"},FA=["data-state"],UA=["data-confirming","title","onClick"],BA={key:0,class:"thread-delete-confirm-label"},qA=["onClick"],zA={class:"thread-row-title-wrap"},HA={class:"thread-row-title-line"},WA={class:"thread-row-title"},VA=["title"],GA={key:0,class:"thread-row-automation-count"},KA=["data-state"],YA={class:"thread-row-time"},JA=["onClick"],QA=["data-project-name","data-expanded","data-dragging"],XA={class:"project-icon-stack"},ZA={class:"project-icon-folder"},eP={class:"project-icon-chevron"},tP=["data-dragging-handle","onMousedown"],nP=["title"],oP=["title"],rP={key:0,class:"thread-row-automation-count"},aP={class:"project-hover-controls"},sP=["onClick"],iP=["data-open-direction"],lP=["onClick"],uP=["onClick"],cP=["onClick"],dP=["onClick"],fP=["onClick"],pP=["onClick"],hP={class:"project-menu-label"},mP=["onInput"],vP=["aria-label","title","onClick"],gP={key:0,class:"thread-list"},yP=["data-menu-open"],wP={class:"thread-left-stack"},bP=["data-state"],_P=["data-confirming","title","onClick"],kP={key:0,class:"thread-delete-confirm-label"},CP=["onClick"],TP={class:"thread-row-title-wrap"},SP={class:"thread-row-title-line"},xP={class:"thread-row-title"},AP=["title"],PP={key:0,class:"thread-row-automation-count"},EP=["data-state"],IP={class:"thread-row-time"},RP=["onClick"],MP={class:"project-empty"},$P=["onClick"],jP={class:"chats-section"},NP={class:"thread-tree-header"},LP={class:"chats-section-actions"},OP=["aria-label","title"],DP={key:0,class:"thread-tree-no-results"},FP={key:1,class:"thread-list thread-list-global"},UP=["data-menu-open"],BP={class:"thread-left-stack"},qP=["data-state"],zP=["data-confirming","title","onClick"],HP={key:0,class:"thread-delete-confirm-label"},WP=["onClick"],VP={class:"thread-row-title-wrap"},GP={class:"thread-row-title-line"},KP={class:"thread-row-title"},YP=["title"],JP={key:0,class:"thread-row-automation-count"},QP=["data-state"],XP={class:"thread-row-time"},ZP=["onClick"],eE=["data-open-direction"],tE=["disabled","title"],nE=["placeholder","onKeydown"],oE={key:0,class:"recycle-bin-empty"},rE={key:1,class:"recycle-bin-list"},aE={class:"recycle-bin-item-copy"},sE={class:"recycle-bin-item-title"},iE={key:0,class:"recycle-bin-item-meta"},lE={class:"recycle-bin-item-time"},uE={class:"recycle-bin-item-actions"},cE=["disabled","onClick"],dE=["onClick"],fE={key:2,class:"recycle-bin-error",role:"alert"},pE=["aria-label"],hE={class:"rename-thread-title"},mE={class:"rename-thread-subtitle"},vE={key:0,class:"automation-target-picker"},gE={class:"automation-target-mode-group",role:"radiogroup","aria-label":"Automation target type"},yE={class:"automation-target-dropdown"},wE=["aria-label"],bE=["onClick"],_E={class:"automation-thread-field"},kE={class:"automation-thread-label"},CE=["placeholder"],TE={class:"automation-thread-field"},SE={class:"automation-thread-label"},xE=["placeholder"],AE={class:"automation-thread-field"},PE={class:"automation-thread-label"},EE={class:"automation-schedule-mode-group",role:"radiogroup","aria-label":"Automation schedule type"},IE={key:0,class:"automation-schedule-row"},RE={class:"automation-schedule-copy"},ME={key:1,class:"automation-schedule-row"},$E={class:"automation-schedule-copy"},jE={class:"automation-schedule-preview"},NE={class:"automation-thread-field"},LE={class:"automation-thread-label"},OE={key:2,class:"rename-thread-subtitle automation-thread-error"},DE={key:3,class:"rename-thread-subtitle automation-thread-notice"},FE={class:"rename-thread-actions"},UE=["disabled"],BE=["disabled"],qE=["disabled"],zE=["disabled"],HE=4,Vm=6,Gm="codex-web-local.sidebar-section-expansion.v1",Km="codex-web-local.sidebar-chats-first.v1",Ym="codex-web-local.sidebar-chat-sort-mode.v1",Jm="codex-web-local.thread-view-mode.v1",Qm="codex-web-local.collapsed-projects.v1",WE=Ln({__name:"SidebarThreadTree",props:{groups:{},projectDisplayNameById:{},projectGitRepoByName:{},projectCwdByName:{},selectedThreadId:{},isLoading:{type:Boolean},isThreadListFullyLoaded:{type:Boolean},searchQuery:{},searchMatchedThreadIds:{}},emits:["select","archive","start-new-thread","browse-thread-files","save-thread-project","browse-project-files","save-project","request-project-git-status","create-project-worktree","rename-project","rename-thread","remove-project","reorder-project","copy-thread-chat","fork-thread","start-new-chat","automations-changed","restore-thread"],setup(e,{expose:t,emit:n}){const o=e,{t:r}=Er(),{recordVisibleFailure:s}=xp(),a=n,{records:u,loadRecords:d,recordArchivedThread:m,removeArchivedRecord:g,restoreArchivedThread:w}=Ax(),x=S(!1),R=S(""),O=S("");function z(){bn.value=!1,R.value="",d(),x.value=!0}async function Z(y){if(!O.value){O.value=y,R.value="";try{const C=await w(y);C.ok?a("restore-thread",y):R.value=C.error??"Failed to restore thread"}finally{O.value=""}}}const ce=S({}),B=S({}),Y=S(!0),J=S(!0),ge=S(!0),Ae=S(!1),ye=S(As(Km,!1)),$e=S(At());let pe=!1;const Ne=S([]),je=S({}),he=S(""),Se=S([]),Pe=S(""),Ee=S(""),Ue=S("hover"),Ye=S({}),He=S({}),xt=S({}),ut=S("actions"),Ge=S(""),tt=S(!1),ct=S(""),_t=S(""),St=S(null),yt=S(!1),ae=S(""),ne=S(""),re=S({}),W=S({}),Be=S(!1),$=S("thread"),D=S(""),G=S(""),se=S(""),ie=S("create"),oe=S(!1),Te=S("thread"),we=S(""),ve=S(""),ue=S(""),Ie=S(""),be=S(!1),Fe=S(!1),Me=S({name:"",prompt:"",rrule:"FREQ=DAILY;BYHOUR=9;BYMINUTE=0",status:"ACTIVE"}),Ve=S({mode:"daily",dailyTime:"09:00",interval:1,intervalUnit:"hours"}),st=ee(()=>{if($.value==="project"){const C=G.value;return C?W.value[C]??[]:[]}const y=D.value;return y?re.value[y]??[]:[]}),wt=ee(()=>kn(Me.value.rrule)),Rt=ee(()=>oe.value&&ie.value==="create"?Te.value==="thread"?r("This creates a heartbeat automation attached to the selected chat."):r("This creates a project automation attached to the selected project folder."):$.value==="project"?r("This creates project automations attached to the selected project folder."):r("This creates heartbeat automations attached to the selected thread.")),Ze=ee(()=>{var C;const y=[];for(const _ of o.groups)for(const F of _.threads){const ke=((C=F.title)==null?void 0:C.trim())||F.id,it=fo(_.projectName);y.push({value:F.id,label:`${ke} · ${it}`,searchText:`${ke} ${it} ${F.id}`.toLowerCase()})}return y}),Vt=ee(()=>{const y=[];for(const C of o.groups){const _=Uo(C.projectName);if(!_)continue;const F=fo(C.projectName);y.push({value:_,label:F,searchText:`${F} ${_}`.toLowerCase()})}return y}),V=ee(()=>(Te.value==="project"?Vt.value:Ze.value).map(C=>({value:C.value,label:C.label}))),K=[{value:"minutes",label:r("minutes")},{value:"hours",label:r("hours")},{value:"days",label:r("days")}],X=ee(()=>[{value:"ACTIVE",label:r("Active")},{value:"PAUSED",label:r("Paused")}]);ot(V,y=>{var C;oe.value&&(y.some(_=>_.value===we.value)||(we.value=((C=y[0])==null?void 0:C.value)??""))});const de=S(null),De=S(null),We=S(null);let nt=null,Bt=null;const Gt=S(""),Wn=S({}),Jo=new Map,yo=new Map,eo=new Map,wo=new WeakMap,Qo=S(null),fr=S(null),bn=S(!1),mt=S(Aa()),on=typeof window<"u"?new ResizeObserver(y=>{for(const C of y){const _=C.target,F=wo.get(_);F&&pn(F,_)}}):null;function to(){if(typeof window>"u")return{};try{const y=window.localStorage.getItem(Qm);if(!y)return{};const C=JSON.parse(y);return!C||typeof C!="object"||Array.isArray(C)?{}:C}catch{return{}}}function Aa(){return typeof window>"u"?"project":window.localStorage.getItem(Jm)==="chronological"?"chronological":"project"}function As(y,C){if(typeof window>"u")return C;const _=window.localStorage.getItem(y);return _==="true"?!0:_==="false"?!1:C}function At(){return typeof window>"u"?"updated":window.localStorage.getItem(Ym)==="created"?"created":"updated"}B.value=to();function Kt(){if(!(typeof window>"u"))try{const y=JSON.parse(window.localStorage.getItem(Gm)||"{}");typeof y.pinned=="boolean"&&(Y.value=y.pinned),typeof y.projects=="boolean"&&(J.value=y.projects),typeof y.chats=="boolean"&&(ge.value=y.chats)}catch{}}function pt(){typeof window>"u"||window.localStorage.setItem(Gm,JSON.stringify({pinned:Y.value,projects:J.value,chats:ge.value}))}Kt(),ot(B,y=>{typeof window>"u"||window.localStorage.setItem(Qm,JSON.stringify(y))},{deep:!0}),ot(mt,y=>{typeof window>"u"||window.localStorage.setItem(Jm,y)}),ot(ye,y=>{typeof window>"u"||window.localStorage.setItem(Km,String(y))}),ot($e,y=>{typeof window>"u"||window.localStorage.setItem(Ym,y)}),ot([Y,J,ge],pt);const Xo=ee(()=>o.searchQuery.trim().toLowerCase()),ln=ee(()=>Xo.value.length>0),pr=ee(()=>o.searchMatchedThreadIds?new Set(o.searchMatchedThreadIds):null),no=ee(()=>new Set(Ne.value)),On=ee(()=>new Set(Se.value));function hr(y){if(On.value.has(y.id))return!1;if(!ln.value)return!0;if(pr.value)return pr.value.has(y.id);const C=Xo.value;return y.title.toLowerCase().includes(C)||y.preview.toLowerCase().includes(C)}const Pa=ee(()=>o.groups.flatMap(y=>{const C=y.threads.filter(_=>!Yc(_.cwd)&&hr(_));return C.length>0?[{...y,threads:C}]:!ln.value&&y.threads.length===0?[{...y,threads:C}]:[]})),Ja=ee(()=>mt.value==="chronological"),Jn=ee(()=>{const y=[];for(const C of o.groups)for(const _ of C.threads)no.value.has(_.id)||hr(_)&&y.push(_);return y.sort((C,_)=>{const F=new Date(C.updatedAtIso||C.createdAtIso).getTime();return new Date(_.updatedAtIso||_.createdAtIso).getTime()-F})}),Mn=ee(()=>{const y=Jn.value.filter(_=>Yc(_.cwd)),C=$e.value==="created"?"createdAtIso":"updatedAtIso";return y.sort((_,F)=>{const ke=new Date(_[C]||_.updatedAtIso||_.createdAtIso).getTime();return new Date(F[C]||F.updatedAtIso||F.createdAtIso).getTime()-ke})}),Qa=ee(()=>ln.value||Ae.value?Mn.value:Mn.value.slice(0,10)),oo=ee(()=>ln.value?!1:Mn.value.length>10),_n=ee(()=>{const y=new Map;for(const C of o.groups)for(const _ of C.threads)On.value.has(_.id)||y.set(_.id,_);return y});ot(Ne,y=>{pe&&MS(y)}),ot([_n,()=>o.isThreadListFullyLoaded],([y])=>{const C=eA(Ne.value,new Set(y.keys()),{canPruneMissing:o.isThreadListFullyLoaded});if(C.length===Ne.value.length)return;const _=new Set(C),F=Object.fromEntries(Object.entries(je.value).filter(([ke])=>_.has(ke)));je.value=F,Ne.value=C});let Jr=0;async function Xt(){if(o.isLoading)return;const y=Ne.value.filter(ke=>!_n.value.has(ke)&&!je.value[ke]);if(y.length===0)return;const C=Jr+=1,_=await Promise.all(y.map(async ke=>{try{return await e1(ke)}catch{return null}}));if(C!==Jr)return;const F={...je.value};for(const ke of _)ke&&(F[ke.id]=ke);je.value=F}ot([Ne,_n,()=>o.isLoading],()=>{pe&&Xt()}),xs(async()=>{const{threadIds:y}=await RS(),C=Array.isArray(y)?y.filter(_=>typeof _=="string").map(_=>_.trim()).filter((_,F,ke)=>_.length>0&&ke.indexOf(_)===F):[];C.length>0&&(Ne.value=C);try{re.value=await g1()}catch{re.value={}}try{await Jt()}catch{W.value={}}pe=!0,Xt()});const Qr=ee(()=>ao(ae.value)),Ea=ee(()=>{const y=ne.value;return Qr.value?r('This will archive the thread "{title}" and remove the attached heartbeat automations.',{title:y}):r('This will archive the thread "{title}". You can find it later in archived threads.',{title:y})}),bo=ee(()=>{const y=new Map;for(const C of o.groups)for(const _ of C.threads)y.set(_.id,C.projectName);return y}),No=ee(()=>{const y=new Map;for(const C of o.groups){const _=C.threads.filter(F=>!no.value.has(F.id)&&!On.value.has(F.id));y.set(C.projectName,_)}return y}),Lo=ee(()=>{const y=new Map;for(const C of o.groups)for(const _ of C.threads){const F=new Date(_.updatedAtIso||_.createdAtIso).getTime();y.set(_.id,F)}return y}),Dt=ee(()=>{const y=Ee.value;return y?_n.value.get(y)??null:null}),Mt=ee(()=>Ne.value.map(y=>_n.value.get(y)??je.value[y]??null).filter(y=>y!==null).filter(hr));function Vn(){Y.value=!Y.value}function _o(){J.value=!J.value}function ro(){ge.value=!ge.value}const Dn=ee(()=>{const y=We.value;if(!y||y.dropTargetIndexFull===null||o.groups.length===0)return null;const C=Math.max(0,Math.min(y.dropTargetIndexFull,o.groups.length)),_=C>y.fromIndex?C-1:C,F=Math.max(0,Math.min(_,o.groups.length-1));return F===y.fromIndex?null:F}),Fn=ee(()=>{const C=(ln.value?Pa.value:o.groups).map(Et=>Et.projectName),_=We.value,F=Dn.value;if(!_||F===null)return C;const ke=[...C],[it]=ke.splice(_.fromIndex,1);return it?(ke.splice(F,0,it),ke):C}),Qn=ee(()=>{const y={};let C=0;for(const _ of Fn.value)y[_]=C,C+=Gn(_);return y}),Ir=ee(()=>{let y=0;for(const C of Fn.value)y+=Gn(C);return{height:`${Math.max(0,y)}px`}});function Xr(y){if(Number.isNaN(y))return"n/a";const C=Math.abs(Date.now()-y);if(C<6e4)return r("now");const _=Math.floor(C/6e4);if(_<60)return`${_}m`;const F=Math.floor(_/60);return F<24?`${F}h`:`${Math.floor(F/24)}d`}function Ia(y){const C=Lo.value.get(y.id);return Xr(typeof C=="number"?C:new Date(y.updatedAtIso||y.createdAtIso).getTime())}function ai(y){const C=new Date(y).getTime();return Number.isNaN(C)?"":new Date(C).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function Zo(y){return no.value.has(y)}function Zr(y){if(Zo(y)){Ne.value=Ne.value.filter(C=>C!==y);return}Ne.value=[y,...Ne.value]}function Ra(y){Zr(y),Nt()}function un(y){he.value="",a("select",y)}function ao(y){return so(y)>0}function so(y){var C;return((C=re.value[y])==null?void 0:C.length)??0}function kt(y){return Un(y)>0}function Un(y){var _;const C=Uo(y);return C?((_=W.value[C])==null?void 0:_.length)??0:0}function io(y){if(y.length===0)return"";if(y.length>1){const F=y.filter(ke=>ke.status==="ACTIVE").length;return`${y.length} ${r("automations")} • ${F} ${r("active")}`}const[C]=y,_=C.status==="PAUSED"?"-":C.nextRunAtMs?new Date(C.nextRunAtMs).toLocaleString():r("Not scheduled");return`${C.name} • ${r("Next run")}: ${_}`}function cn(y){return io(re.value[y]??[])}function Oo(y){const C=Uo(y);return io(C?W.value[C]??[]:[])}function Xn(y){return String(Math.max(0,y)).padStart(2,"0")}function Do(y,C){const _=typeof y=="number"?y:Number(y);return Number.isFinite(_)?Math.max(1,Math.floor(_)):C}function Bn(y){const[C,_]=y.split(":"),F=Math.min(23,Math.max(0,Number(C)||0)),ke=Math.min(59,Math.max(0,Number(_)||0));return`FREQ=DAILY;BYHOUR=${F};BYMINUTE=${ke}`}function jt(y,C){const _=Do(y,1);return C==="minutes"?`FREQ=MINUTELY;INTERVAL=${_}`:C==="hours"?`FREQ=HOURLY;INTERVAL=${_}`:`FREQ=DAILY;INTERVAL=${_}`}function dn(y){return Object.fromEntries(y.split(";").map(C=>C.trim()).filter(Boolean).map(C=>{const[_,...F]=C.split("=");return[_.toUpperCase(),F.join("=").trim()]}).filter(([C,_])=>C&&_))}function Yt(y){var ke;const C=dn(y),_=(ke=C.FREQ)==null?void 0:ke.toUpperCase(),F=Do(C.INTERVAL,1);if(_==="DAILY"&&C.BYHOUR!==void 0&&C.BYMINUTE!==void 0&&F===1){const it=Math.min(23,Math.max(0,Number(C.BYHOUR)||0)),Et=Math.min(59,Math.max(0,Number(C.BYMINUTE)||0));return{mode:"daily",dailyTime:`${Xn(it)}:${Xn(Et)}`,interval:1,intervalUnit:"hours"}}return _==="MINUTELY"||_==="HOURLY"||_==="DAILY"&&C.INTERVAL!==void 0?{mode:"interval",dailyTime:"09:00",interval:F,intervalUnit:_==="MINUTELY"?"minutes":_==="HOURLY"?"hours":"days"}:{mode:"advanced",dailyTime:"09:00",interval:1,intervalUnit:"hours"}}function kn(y){var ke;const C=dn(y),_=(ke=C.FREQ)==null?void 0:ke.toUpperCase(),F=Do(C.INTERVAL,1);if(_==="DAILY"&&C.BYHOUR!==void 0&&C.BYMINUTE!==void 0&&F===1){const it=Math.min(23,Math.max(0,Number(C.BYHOUR)||0)),Et=Math.min(59,Math.max(0,Number(C.BYMINUTE)||0));return`${r("RRULE")}: ${y} · ${r("runs daily at")} ${Xn(it)}:${Xn(Et)}`}return _==="MINUTELY"?`${r("RRULE")}: ${y} · ${r("runs every")} ${F} ${r("minute(s)")}`:_==="HOURLY"?`${r("RRULE")}: ${y} · ${r("runs every")} ${F} ${r("hour(s)")}`:_==="DAILY"&&C.INTERVAL!==void 0?`${r("RRULE")}: ${y} · ${r("runs every")} ${F} ${r("day(s)")}`:y?`${r("RRULE")}: ${y}`:r("RRULE is required.")}function lo(){const y=Ve.value;y.mode==="daily"?Me.value.rrule=Bn(y.dailyTime):y.mode==="interval"&&(Me.value.rrule=jt(y.interval,y.intervalUnit))}function uo(y){y!=="minutes"&&y!=="hours"&&y!=="days"||(Ve.value={...Ve.value,intervalUnit:y},lo())}function ko(y){y!=="ACTIVE"&&y!=="PAUSED"||(Me.value={...Me.value,status:y})}function ea(){Ve.value=Yt(Me.value.rrule)}function mr(y){Ve.value={...Ve.value,mode:y},lo()}function er(y){y===o.selectedThreadId&&(a("copy-thread-chat",y),Nt())}function vr(y){a("fork-thread",y),Nt()}function Co(y){return`${r("start new thread")} ${fo(y)}`}function Rr(y){a("start-new-thread",y)}function Cn(y){a("browse-thread-files",y),Nt()}function ta(y){a("save-thread-project",y),Nt()}async function co(y){var _,F;const C=((F=(_=_n.value.get(y))==null?void 0:_.cwd)==null?void 0:F.trim())??"";if(Nt(),!(!C||typeof navigator>"u"||!navigator.clipboard))try{await navigator.clipboard.writeText(C)}catch{}}function Fo(y,C){if(Ee.value===y&&Ue.value==="hover"){if(C){const _=C.relatedTarget,F=fr.value;if(_ instanceof Node&&F&&F.contains(_))return}Nt()}}function mn(y){return Ee.value===y}function Nt(){Ee.value="",Ue.value="hover",xt.value={}}function tr(y){if(he.value="",Ee.value===y){Nt();return}Ue.value="hover",qn(),bn.value=!1,Ee.value=y,Ht(()=>{Ao(y)})}function To(y,C){y.preventDefault(),he.value="",Ue.value="contextmenu",Ee.value=C}function Mr(y,C){ct.value=y,_t.value=C,tt.value=!0,Nt(),Ht(()=>{var _,F;(_=St.value)==null||_.focus(),(F=St.value)==null||F.select()})}function vn(){tt.value=!1,ct.value="",_t.value=""}function Ma(){const y=ct.value,C=_t.value.trim();!y||!C||(a("rename-thread",{threadId:y,title:C}),vn())}function So(y,C){he.value="",ae.value=y,ne.value=C,yt.value=!0,Nt()}function gr(){yt.value=!1,ae.value="",ne.value=""}async function si(){const y=ae.value;y&&(I(y),gr())}function gn(y){return he.value===y}function $n(y){if(he.value!==y){he.value=y,Nt();return}I(y),he.value=""}function I(y){var _,F;const C=_n.value.get(y)??null;On.value.has(y)||(Se.value=[y,...Se.value]),he.value="",Nt(),m({id:y,title:((_=C==null?void 0:C.title)==null?void 0:_.trim())||"(untitled)",cwd:((F=C==null?void 0:C.cwd)==null?void 0:F.trim())??"",projectName:bo.value.get(y)??""}),Ne.value=Ne.value.filter(ke=>ke!==y),a("archive",y),ao(y)&&(Tm(y).catch(()=>{}),re.value=An(re.value,y))}function j(y){var _;$.value="thread",D.value=y,G.value="",oe.value=!1,ve.value="",ue.value="";const C=(_=re.value[y])==null?void 0:_[0];C?Lt(C.id):$t(),Be.value=!0,Nt()}function q(y){var F;const C=Uo(y);if(!C){$.value="project",D.value="",G.value="",oe.value=!1,ve.value=r("Project automation requires a resolved absolute project path."),ue.value="",Be.value=!0,qn();return}$.value="project",D.value="",G.value=C,oe.value=!1,ve.value="",ue.value="";const _=(F=W.value[C])==null?void 0:F[0];_?Lt(_.id):$t(),Be.value=!0,qn()}function _e(y){$.value=y.scope,D.value=y.scope==="thread"?y.target:"",G.value=y.scope==="project"?y.target:"",oe.value=!1,ve.value="",ue.value="",y.scope==="project"?W.value=ii(W.value,y.target,y.automation):re.value=Zn(re.value,y.target,y.automation),Lt(y.automation.id),Be.value=!0,qn(),Nt()}function ht(){var y;oe.value=!0,Te.value="thread",we.value=((y=Ze.value[0])==null?void 0:y.value)??"",$.value="thread",D.value="",G.value="",ve.value="",ue.value="",$t(),Be.value=!0,qn(),Nt()}function vt(y){var C;Te.value=y,we.value="",$.value=y==="project"?"project":"thread",we.value=((C=V.value[0])==null?void 0:C.value)??""}function $t(){se.value="",ie.value="create",ve.value="",ue.value="",Me.value={name:$.value==="project"?"Project automation":"Thread automation",prompt:"",rrule:"FREQ=DAILY;BYHOUR=9;BYMINUTE=0",status:"ACTIVE"},Ve.value=Yt(Me.value.rrule)}function Lt(y){const C=st.value.find(_=>_.id===y);C&&(se.value=C.id,ie.value="edit",ve.value="",ue.value="",Me.value={name:C.name,prompt:C.prompt,rrule:C.rrule,status:C.status},Ve.value=Yt(C.rrule))}function Zt(){Be.value=!1,$.value="thread",D.value="",G.value="",se.value="",ve.value="",ue.value="",be.value=!1,Fe.value=!1}function An(y,C){return Object.fromEntries(Object.entries(y).filter(([_])=>_!==C))}function Zn(y,C,_){const F=y[C]??[],ke=F.findIndex(Et=>Et.id===_.id),it=[...F];return ke>=0?it.splice(ke,1,_):it.push(_),{...y,[C]:it}}function Ps(y,C,_){const F=(y[C]??[]).filter(ke=>ke.id!==_);return F.length>0?{...y,[C]:F}:An(y,C)}function $a(y,C){return Object.fromEntries(Object.entries(y).filter(([_])=>_!==C))}function ii(y,C,_){const F=y[C]??[],ke=F.findIndex(Et=>Et.id===_.id),it=[...F];return ke>=0?it.splice(ke,1,_):it.push(_),{...y,[C]:it}}async function Jt(){W.value=await y1()}async function tn(){let y=D.value,C=G.value;be.value=!0,ve.value="",ue.value="";try{if(lo(),oe.value&&ie.value==="create"&&(Te.value==="thread"?(y=we.value,C="",$.value="thread",D.value=y,G.value=""):(C=we.value,y="",$.value="project",D.value="",G.value=C)),$.value==="thread"&&!y)throw new Error(r("Select a chat target for this automation"));if($.value==="project"&&!C)throw new Error(r("Select a project target for this automation"));const _={id:se.value||void 0,name:Me.value.name,prompt:Me.value.prompt,rrule:Me.value.rrule,status:Me.value.status},F=$.value==="project"?await b1({..._,projectName:C}):await w1({..._,threadId:y});$.value==="project"?await Jt():re.value=Zn(re.value,y,F),a("automations-changed"),Lt(F.id),ue.value=r("Automation saved."),be.value=!1}catch(_){ve.value=_ instanceof Error?_.message:r("Failed to save automation"),be.value=!1}}async function li(){const y=D.value,C=G.value,_=se.value;if(_&&!($.value==="thread"&&!y)&&!($.value==="project"&&!C)){be.value=!0,ve.value="",ue.value="";try{$.value==="project"?(await Sm(C,_),await Jt()):(await Tm(y,_),re.value=Ps(re.value,y,_));const F=st.value[0];F?Lt(F.id):$t(),a("automations-changed"),be.value=!1}catch(F){ve.value=F instanceof Error?F.message:r("Failed to remove automation"),be.value=!1}}}async function Es(){const y=D.value,C=se.value;if(!(!y||!C)){Fe.value=!0,ve.value="",ue.value="";try{await _1(y,C),ue.value=r("Automation run queued.")}catch(_){ve.value=_ instanceof Error?_.message:r("Failed to run automation")}finally{Fe.value=!1}}}function fo(y){return o.projectDisplayNameById[y]??y}t({openAutomationEditorFromPanel:_e,openAutomationCreatorFromPanel:ht,openRenameThreadDialog:Mr,openRecycleBin:z});function yr(y){return y.includes("/")||y.includes("\\")}function Wi(y){return yr(y)?y:fo(y)}function wr(y){const C=Ar(y);if(!C)return!1;let _=0;for(const F of o.groups)if(yr(F.projectName)&&Ar(F.projectName)===C&&(_+=1,_>1))return!0;return!1}function ui(y){const C=o.projectDisplayNameById[y.projectName],_=fo(y.projectName),F=y.projectName;if(C&&!yr(F)&&F!==_)return _.includes(F)||/^[0-9a-f]{8}-[0-9a-f-]{27,}$/iu.test(F)?_:`${_} ${F}`;if(C&&yr(F)){const Et=Ar(F),Bo=Ar(Tl(F)),Qt=wr(F)?Bo:Et;return Qt&&Qt!==_?`${_} ${Qt}`:_}if(!_.includes("/")&&!_.includes("\\"))return _;const ke=Ar(_)||_,it=Ar(Tl(_));return it.startsWith(".")&&it!==ke?`${ke} ${it}`:y.threads.length>0||!wr(F)?ke:it?`${ke} ${it}`:ke}function ja(y){return Pe.value===y}function qn(){Pe.value="",ut.value="actions",Ge.value=""}function Xa(){const y=!bn.value;y&&(qn(),Nt()),bn.value=y}function ci(y){mt.value=y,bn.value=!1}function di(){ye.value=!ye.value}function Vi(y){$e.value=y}function Is(y){a("request-project-git-status",y),Ht(()=>{es(y)})}function Nl(y){if(Pe.value===y){qn();return}Nt(),bn.value=!1,Pe.value=y,ut.value="actions",Ge.value=fo(y),Is(y)}function fi(y){Nt(),bn.value=!1,Pe.value=y,ut.value="actions",Ge.value=fo(y),Is(y)}function $r(y){return o.projectDisplayNameById[y.projectName]??ui(y)}function na(y){Nt();const C=y.projectName;Pe.value=C,ut.value="rename",Ge.value=$r(y),Ht(()=>{es(C)})}function br(y){a("browse-project-files",y),qn()}function oa(y){a("save-project",y),qn()}function Na(y){a("create-project-worktree",y),qn()}function _r(y){a("rename-project",{projectName:y,displayName:Ge.value})}function La(y){const C=Uo(y);if(a("remove-project",y),C&&kt(y)){Ie.value="";const _=W.value;W.value=$a(W.value,C),Sm(C).then(Jt).catch(async F=>{W.value=_;const ke=F instanceof Error?F.message:r("Failed to delete project automation");Ie.value=ke,s(ke);try{await Jt()}catch{W.value=_}}).finally(()=>{a("automations-changed")})}qn()}function Uo(y){var _;const C=((_=o.projectCwdByName[y])==null?void 0:_.trim())??"";return fT(C)?C:""}function Za(y,C){if(!y.altKey||y.key!=="ArrowUp"&&y.key!=="ArrowDown")return;const _=o.groups.findIndex(it=>it.projectName===C);if(_<0)return;const F=y.key==="ArrowUp"?-1:1,ke=Math.max(0,Math.min(_+F,o.groups.length-1));ke!==_&&(y.preventDefault(),a("reorder-project",{projectName:C,toIndex:ke}))}function jr(y){return ce.value[y]===!0}function xo(y){return B.value[y]===!0}function Nr(y){ce.value={...ce.value,[y]:!jr(y)}}function qe(){Ae.value=!Ae.value}function Ce(y){if(Gt.value===y){Gt.value="";return}B.value={...B.value,[y]:!xo(y)}}function Gn(y){const C=Wn.value[y]??0,_=We.value,ke=((_==null?void 0:_.projectName)===y?_.groupHeight:null)??C,it=xo(y)?0:Vm;return Math.max(0,ke+it)}function Oa(y,C){const _=C instanceof HTMLElement?C:C&&"$el"in C&&C.$el instanceof HTMLElement?C.$el:null;if(_){yo.set(y,_);return}yo.delete(y)}function kr(y,C){const _=C instanceof HTMLElement?C:C&&"$el"in C&&C.$el instanceof HTMLElement?C.$el:null;if(_){eo.set(y,_);return}eo.delete(y)}function Rs(y){let C=y.parentElement;for(;C;){const _=window.getComputedStyle(C),F=_.overflowY||_.overflow;if(F==="auto"||F==="scroll"||F==="hidden"||F==="clip")return C.getBoundingClientRect();C=C.parentElement}return new DOMRect(0,0,window.innerWidth,window.innerHeight)}function fn(y,C){const _=y.getBoundingClientRect(),F=Rs(y),ke=6,it=F.bottom-_.bottom,Et=_.top-F.top;return it>=C+ke?"down":Et>it?"up":"down"}function ra(y,C){const _=eo.get(y);if(!_)return"down";const F=fn(_,C);return He.value={...He.value,[y]:F},F}function Ll(y){return He.value[y]??"down"}function es(y){const C=yo.get(y);if(!C)return;const _=C.querySelector(".project-menu-panel"),F=(_==null?void 0:_.getBoundingClientRect().height)??0;Ye.value={...Ye.value,[y]:fn(C,F)}}function Pn(y,C,_){return Math.min(Math.max(y,C),_)}function Ao(y){const C=eo.get(y);if(!C)return;const _=fr.value,F=_==null?void 0:_.getBoundingClientRect(),ke=(F==null?void 0:F.height)||(_==null?void 0:_.offsetHeight)||112,it=(F==null?void 0:F.width)||(_==null?void 0:_.offsetWidth)||160,Et=ra(y,ke),Bo=C.getBoundingClientRect(),Qt=8,zn=4,Tn=Math.max(Qt,window.innerWidth-it-Qt),ir=Pn(Bo.right-it,Qt,Tn),Fr=Pn(Et==="up"?Bo.top-ke-zn:Bo.bottom+zn,Qt,Math.max(Qt,window.innerHeight-ke-Qt));xt.value={left:`${Math.round(ir)}px`,top:`${Math.round(Fr)}px`}}function po(){const y=Ee.value;y&&Ao(y)}function nr(){window.addEventListener("resize",po),document.addEventListener("scroll",po,!0)}function jn(){window.removeEventListener("resize",po),document.removeEventListener("scroll",po,!0)}function ts(y){const C=Pe.value;if(!C)return!1;const _=yo.get(C);if(!_)return!1;if((typeof y.composedPath=="function"?y.composedPath():[]).includes(_))return!0;const ke=y.target;return ke instanceof Node?_.contains(ke):!1}function aa(y){const C=Ee.value;if(!C)return!1;const _=eo.get(C);if(!_)return!1;const F=typeof y.composedPath=="function"?y.composedPath():[];if(F.includes(_))return!0;const ke=fr.value;if(ke&&F.includes(ke))return!0;const it=y.target;return it instanceof Node?!!(_.contains(it)||ke&&ke.contains(it)):!1}function Lr(y){if(bn.value){const C=Qo.value,_=typeof y.composedPath=="function"?y.composedPath():[];!!C&&(_.includes(C)||y.target instanceof Node&&C.contains(y.target))||(bn.value=!1)}Pe.value&&(ts(y)||qn(),Ee.value&&(aa(y)||Nt()))}function pi(y){Pe.value&&!ts(y)&&qn(),Ee.value&&!aa(y)&&Nt()}function or(){bn.value&&(bn.value=!1),Pe.value&&qn(),Ee.value&&Nt()}function rr(){window.addEventListener("pointerdown",Lr,{capture:!0}),window.addEventListener("focusin",pi,{capture:!0}),window.addEventListener("blur",or)}function Cr(){window.removeEventListener("pointerdown",Lr,{capture:!0}),window.removeEventListener("focusin",pi,{capture:!0}),window.removeEventListener("blur",or)}function pn(y,C){const _=C.getBoundingClientRect().height;if(!Number.isFinite(_)||_<=0)return;const F=Wn.value[y];F!==void 0&&Math.abs(F-_)<.5||(Wn.value={...Wn.value,[y]:_})}function sa(y,C){const _=Jo.get(y);_&&_!==C&&on&&on.unobserve(_);const F=C instanceof HTMLElement?C:C&&"$el"in C&&C.$el instanceof HTMLElement?C.$el:null;if(F){Jo.set(y,F),wo.set(F,y),pn(y,F),on==null||on.observe(F);return}_&&(on==null||on.unobserve(_)),Jo.delete(y)}function Da(y,C){if(y.button!==0||ln.value||De.value||We.value)return;const _=o.groups.findIndex(Et=>Et.projectName===C),F=Jo.get(C);if(_<0||!F)return;const ke=F.getBoundingClientRect(),it=xo(C)?0:Vm;De.value={projectName:C,fromIndex:_,startClientX:y.clientX,startClientY:y.clientY,pointerOffsetY:y.clientY-ke.top,groupLeft:ke.left,groupWidth:ke.width,groupHeight:ke.height,groupOuterHeight:ke.height+it},y.preventDefault(),ia()}function ia(){window.addEventListener("mousemove",ar),window.addEventListener("mouseup",la),window.addEventListener("keydown",Fa)}function ns(){window.removeEventListener("mousemove",ar),window.removeEventListener("mouseup",la),window.removeEventListener("keydown",Fa)}function ar(y){nt={clientX:y.clientX,clientY:y.clientY},Ol()}function la(y){hi({clientX:y.clientX,clientY:y.clientY});const C=We.value;if(C&&Dn.value!==null){const _=o.groups.findIndex(F=>F.projectName===C.projectName);if(_>=0){const F=Dn.value;F!==_&&a("reorder-project",{projectName:C.projectName,toIndex:F})}}os({preserveToggleSuppression:!!C})}function Fa(y){y.key==="Escape"&&(!De.value&&!We.value||(y.preventDefault(),os()))}function os(y={}){Bt!==null&&(window.cancelAnimationFrame(Bt),Bt=null),nt=null,De.value=null,We.value=null,y.preserveToggleSuppression||(Gt.value=""),ns()}function Ol(){Bt===null&&(Bt=window.requestAnimationFrame(()=>{if(Bt=null,!nt)return;const y=nt;nt=null,hi(y)}))}function hi(y){const C=De.value;if(!We.value&&C){const _=y.clientX-C.startClientX,F=y.clientY-C.startClientY;if(Math.hypot(_,F)<HE)return;qn(),Gt.value=C.projectName,We.value={projectName:C.projectName,fromIndex:C.fromIndex,pointerOffsetY:C.pointerOffsetY,groupLeft:C.groupLeft,groupWidth:C.groupWidth,groupHeight:C.groupHeight,groupOuterHeight:C.groupOuterHeight,ghostTop:y.clientY-C.pointerOffsetY,dropTargetIndexFull:null}}We.value&&Ms(y)}function Ms(y){const C=We.value;if(!C)return;if(C.ghostTop=y.clientY-C.pointerOffsetY,!Or(y)){C.dropTargetIndexFull=null;return}const _=y.clientY,F=de.value;if(!F){C.dropTargetIndexFull=null;return}const ke=F.getBoundingClientRect(),it=new Map(o.groups.map((zn,Tn)=>[zn.projectName,Tn])),Et=o.groups.map(zn=>zn.projectName).filter(zn=>zn!==C.projectName);let Bo=0,Qt=o.groups.length;for(const zn of Et){const Tn=it.get(zn);if(Tn===void 0)continue;const ir=Gn(zn),Fr=ke.top+Bo+ir/2;if(_<Fr){Qt=Tn;break}Bo+=ir}C.dropTargetIndexFull=Qt}function Or(y){const C=de.value;if(!C)return!1;const _=C.getBoundingClientRect(),F=y.clientX>=_.left&&y.clientX<=_.right,ke=y.clientY>=_.top-32&&y.clientY<=_.bottom+32;return F&&ke}function Dr(y){var C;return((C=We.value)==null?void 0:C.projectName)===y}function ua(y){const C=We.value,_=Qn.value[y]??0,F=Ee.value?bo.value.get(Ee.value)??"":"",ke=Pe.value===y||F===y;return!C||C.projectName!==y?{position:"absolute",top:"0",left:"0",right:"0",zIndex:ke?"40":"1",transform:`translate3d(0, ${_}px, 0)`,willChange:"transform",transition:"transform 180ms ease"}:{position:"fixed",top:"0",left:`${C.groupLeft}px`,width:`${C.groupWidth}px`,height:`${C.groupHeight}px`,zIndex:"50",pointerEvents:"none",transform:`translate3d(0, ${C.ghostTop}px, 0)`,willChange:"transform",transition:"transform 0ms linear"}}function rs(y){return No.value.get(y.projectName)??[]}function Gi(y){if(ln.value)return rs(y);if(xo(y.projectName))return[];const C=rs(y);return jr(y.projectName)?C:C.slice(0,10)}function en(y){return ln.value?!1:!xo(y.projectName)&&rs(y).length>10}function ho(y){return rs(y).length>0}function En(y){var C;return!!y.pendingRequestState||y.inProgress||y.unread||((C=y.externalSession)==null?void 0:C.active)===!0}function $s(y){return y.pendingRequestState==="approval"?r("Awaiting approval"):r("Awaiting response")}function sr(y){var C;return((C=y.externalSession)==null?void 0:C.active)===!0?"external":y.pendingRequestState==="approval"?"awaiting-approval":y.pendingRequestState==="response"?"awaiting-response":y.inProgress?"working":y.unread?"unread":"idle"}ot(()=>o.groups.map(y=>y.projectName),y=>{var ke,it;const C=((ke=We.value)==null?void 0:ke.projectName)??((it=De.value)==null?void 0:it.projectName)??"";C&&!o.groups.some(Et=>Et.projectName===C)&&os();const _=new Set(y),F=Object.fromEntries(Object.entries(Wn.value).filter(([Et])=>_.has(Et)));Object.keys(F).length!==Object.keys(Wn.value).length&&(Wn.value=F)}),ot(()=>{const y=Pe.value;return y?o.projectGitRepoByName[y]:void 0},()=>{const y=Pe.value;y&&Ht(()=>{Pe.value===y&&es(y)})});const as=ee(()=>bn.value||Pe.value!==""||Ee.value!=="");return ot(as,y=>{if(y){rr();return}Cr()}),ot(Ee,y=>{if(!y){jn();return}nr(),Ht(()=>{Ao(y)})}),zi(()=>{for(const y of Jo.values())on==null||on.unobserve(y);Jo.clear(),yo.clear(),jn(),Cr(),os()}),(y,C)=>(T(),A("section",{class:Ke(["thread-tree-root",{"chats-first":ye.value}])},[Mt.value.length>0?(T(),A("section",tA,[xe(ha,{as:"button",class:"section-toggle-row",type:"button","aria-expanded":Y.value,onClick:Vn},{left:et(()=>[Y.value?(T(),rt(ei,{key:1,class:"thread-icon"})):(T(),rt(wc,{key:0,class:"thread-icon"}))]),default:et(()=>[f("span",nA,k(v(r)("Pinned")),1)]),_:1},8,["aria-expanded"]),Y.value?(T(),A("ul",oA,[(T(!0),A(ze,null,Tt(Mt.value,_=>(T(),A("li",{key:_.id,class:"thread-row-item","data-menu-open":mn(_.id)?"true":"false"},[xe(ha,{class:"thread-row","data-active":_.id===e.selectedThreadId,"data-pinned":Zo(_.id),"data-menu-open":mn(_.id)?"true":"false","force-right-hover":mn(_.id),onClick:F=>un(_.id),onMouseleave:F=>Fo(_.id,F),onContextmenu:F=>To(F,_.id)},{left:et(()=>[f("span",aA,[En(_)?(T(),A("span",{key:0,class:"thread-status-indicator","data-state":sr(_)},null,8,sA)):Q("",!0),f("button",{class:"thread-delete-button",type:"button","data-confirming":gn(_.id),title:gn(_.id)?v(r)("Confirm delete"):v(r)("Delete thread"),onClick:Qe(F=>$n(_.id),["stop"])},[gn(_.id)?(T(),A("span",lA,k(v(r)("Confirm")),1)):(T(),rt(du,{key:1,class:"thread-icon"}))],8,iA)])]),right:et(()=>[f("span",vA,k(Ia(_)),1)]),"right-hover":et(()=>[f("div",{ref_for:!0,ref:F=>kr(_.id,F),class:"thread-menu-wrap"},[f("button",{class:"thread-menu-trigger",type:"button",title:"thread_menu",onClick:Qe(F=>tr(_.id),["stop"])},[xe(cl,{class:"thread-icon"})],8,gA)],512)]),default:et(()=>[f("button",{class:"thread-main-button",type:"button",onClick:Qe(F=>un(_.id),["stop"])},[f("span",cA,[f("span",dA,[f("span",fA,k(_.title),1),_.hasWorktree?(T(),rt(Oi,{key:0,class:"thread-row-worktree-icon",title:v(r)("Worktree thread")},null,8,["title"])):Q("",!0),ao(_.id)?(T(),A("span",{key:1,class:"thread-row-automation-chip",title:cn(_.id)},[xe(ga,{class:"thread-row-automation-icon"}),so(_.id)>1?(T(),A("span",hA,k(so(_.id)),1)):Q("",!0)],8,pA)):Q("",!0),_.pendingRequestState?(T(),A("span",{key:2,class:"thread-row-request-chip","data-state":_.pendingRequestState},k($s(_)),9,mA)):Q("",!0)])])],8,uA)]),_:2},1032,["data-active","data-pinned","data-menu-open","force-right-hover","onClick","onMouseleave","onContextmenu"])],8,rA))),128))])):Q("",!0)])):Q("",!0),f("section",yA,[xe(ha,{as:"button",class:"thread-tree-header-row section-toggle-row",type:"button","aria-expanded":J.value,onClick:_o},{left:et(()=>[J.value?(T(),rt(ei,{key:1,class:"thread-icon"})):(T(),rt(wc,{key:0,class:"thread-icon"}))]),right:et(()=>[f("div",{ref_key:"organizeMenuWrapRef",ref:Qo,class:"organize-menu-wrap"},[f("button",{class:"organize-menu-trigger",type:"button","aria-expanded":bn.value,"aria-label":v(r)("Organize threads"),title:v(r)("Organize threads"),onClick:Qe(Xa,["stop"])},[xe(cl,{class:"thread-icon"})],8,bA),bn.value?(T(),A("div",{key:0,class:"organize-menu-panel",onClick:C[4]||(C[4]=Qe(()=>{},["stop"]))},[f("p",_A,k(v(r)("Organize")),1),f("button",{class:"organize-menu-item","data-active":mt.value==="project",type:"button",onClick:C[0]||(C[0]=_=>ci("project"))},[f("span",null,k(v(r)("By project")),1),mt.value==="project"?(T(),A("span",CA,"✓")):Q("",!0)],8,kA),f("button",{class:"organize-menu-item","data-active":mt.value==="chronological",type:"button",onClick:C[1]||(C[1]=_=>ci("chronological"))},[f("span",null,k(v(r)("Chronological list")),1),mt.value==="chronological"?(T(),A("span",SA,"✓")):Q("",!0)],8,TA),f("button",{class:"organize-menu-item","data-active":ye.value,type:"button",onClick:di},[f("span",null,k(v(r)("Chats first")),1),ye.value?(T(),A("span",AA,"✓")):Q("",!0)],8,xA),C[31]||(C[31]=f("div",{class:"organize-menu-separator"},null,-1)),f("p",PA,k(v(r)("Sort by")),1),f("button",{class:"organize-menu-item","data-active":$e.value==="created",type:"button",onClick:C[2]||(C[2]=_=>Vi("created"))},[f("span",null,k(v(r)("Created")),1),$e.value==="created"?(T(),A("span",IA,"✓")):Q("",!0)],8,EA),f("button",{class:"organize-menu-item","data-active":$e.value==="updated",type:"button",onClick:C[3]||(C[3]=_=>Vi("updated"))},[f("span",null,k(v(r)("Updated")),1),$e.value==="updated"?(T(),A("span",MA,"✓")):Q("",!0)],8,RA),C[32]||(C[32]=f("div",{class:"organize-menu-separator"},null,-1)),f("button",{class:"organize-menu-item",type:"button",onClick:z},[f("span",null,k(v(r)("Recycle bin")),1)])])):Q("",!0)],512)]),default:et(()=>[f("span",wA,k(v(r)("Projects")),1)]),_:1},8,["aria-expanded"]),J.value?(T(),A(ze,{key:0},[Ie.value?(T(),A("p",$A,k(Ie.value),1)):Q("",!0),ln.value&&Pa.value.length===0?(T(),A("p",jA,k(v(r)("No matching threads")),1)):e.isLoading&&e.groups.length===0?(T(),A("p",NA,k(v(r)("Loading threads...")),1)):Ja.value?(T(),A("ul",LA,[(T(!0),A(ze,null,Tt(Jn.value,_=>(T(),A("li",{key:_.id,class:"thread-row-item","data-menu-open":mn(_.id)?"true":"false"},[xe(ha,{class:"thread-row","data-active":_.id===e.selectedThreadId,"data-pinned":Zo(_.id),"data-menu-open":mn(_.id)?"true":"false","force-right-hover":mn(_.id),onClick:F=>un(_.id),onMouseleave:F=>Fo(_.id,F),onContextmenu:F=>To(F,_.id)},{left:et(()=>[f("span",DA,[En(_)?(T(),A("span",{key:0,class:"thread-status-indicator","data-state":sr(_)},null,8,FA)):Q("",!0),f("button",{class:"thread-delete-button",type:"button","data-confirming":gn(_.id),title:gn(_.id)?v(r)("Confirm delete"):v(r)("Delete thread"),onClick:Qe(F=>$n(_.id),["stop"])},[gn(_.id)?(T(),A("span",BA,k(v(r)("Confirm")),1)):(T(),rt(du,{key:1,class:"thread-icon"}))],8,UA)])]),right:et(()=>[f("span",YA,k(Ia(_)),1)]),"right-hover":et(()=>[f("div",{ref_for:!0,ref:F=>kr(_.id,F),class:"thread-menu-wrap"},[f("button",{class:"thread-menu-trigger",type:"button",title:"thread_menu",onClick:Qe(F=>tr(_.id),["stop"])},[xe(cl,{class:"thread-icon"})],8,JA)],512)]),default:et(()=>[f("button",{class:"thread-main-button",type:"button",onClick:Qe(F=>un(_.id),["stop"])},[f("span",zA,[f("span",HA,[f("span",WA,k(_.title),1),_.hasWorktree?(T(),rt(Oi,{key:0,class:"thread-row-worktree-icon",title:v(r)("Worktree thread")},null,8,["title"])):Q("",!0),ao(_.id)?(T(),A("span",{key:1,class:"thread-row-automation-chip",title:cn(_.id)},[xe(ga,{class:"thread-row-automation-icon"}),so(_.id)>1?(T(),A("span",GA,k(so(_.id)),1)):Q("",!0)],8,VA)):Q("",!0),_.pendingRequestState?(T(),A("span",{key:2,class:"thread-row-request-chip","data-state":_.pendingRequestState},k($s(_)),9,KA)):Q("",!0)])])],8,qA)]),_:2},1032,["data-active","data-pinned","data-menu-open","force-right-hover","onClick","onMouseleave","onContextmenu"])],8,OA))),128))])):(T(),A("div",{key:4,ref_key:"groupsContainerRef",ref:de,class:"thread-tree-groups",style:Pr(Ir.value)},[(T(!0),A(ze,null,Tt(Pa.value,_=>(T(),A("article",{key:_.projectName,ref_for:!0,ref:F=>sa(_.projectName,F),class:"project-group","data-project-name":_.projectName,"data-expanded":!xo(_.projectName),"data-dragging":Dr(_.projectName),style:Pr(ua(_.projectName))},[xe(ha,{as:"div",class:"project-header-row",role:"button",tabindex:"0",onClick:F=>Ce(_.projectName),onContextmenu:Qe(F=>fi(_.projectName),["prevent"]),onKeydown:[F=>Za(F,_.projectName),In(Qe(F=>Ce(_.projectName),["prevent"]),["enter"]),In(Qe(F=>Ce(_.projectName),["prevent"]),["space"])]},{left:et(()=>[f("span",XA,[f("span",ZA,[xo(_.projectName)?(T(),rt(Sp,{key:0,class:"thread-icon"})):(T(),rt(ox,{key:1,class:"thread-icon"}))]),f("span",eP,[xo(_.projectName)?(T(),rt(wc,{key:0,class:"thread-icon"})):(T(),rt(ei,{key:1,class:"thread-icon"}))])])]),right:et(()=>[f("div",aP,[f("div",{ref_for:!0,ref:F=>Oa(_.projectName,F),class:"project-menu-wrap"},[f("button",{class:"project-menu-trigger",type:"button",title:"project_menu",onClick:Qe(F=>Nl(_.projectName),["stop"])},[xe(cl,{class:"thread-icon"})],8,sP),ja(_.projectName)?(T(),A("div",{key:0,class:"project-menu-panel","data-open-direction":Ye.value[_.projectName]??"down",onClick:C[6]||(C[6]=Qe(()=>{},["stop"]))},[ut.value==="actions"?(T(),A(ze,{key:0},[f("button",{class:"project-menu-item",type:"button",onClick:F=>br(_.projectName)},k(v(r)("Browse files")),9,lP),f("button",{class:"project-menu-item",type:"button",onClick:F=>oa(_.projectName)},k(v(r)("Export Project")),9,uP),f("button",{class:"project-menu-item",type:"button",onClick:F=>q(_.projectName)},k(kt(_.projectName)?v(r)("Manage automations…"):v(r)("Add automation…")),9,cP),e.projectGitRepoByName[_.projectName]?(T(),A("button",{key:0,class:"project-menu-item",type:"button",onClick:F=>Na(_.projectName)},k(v(r)("New worktree")),9,dP)):Q("",!0),f("button",{class:"project-menu-item",type:"button",onClick:F=>na(_)},k(v(r)("Rename project")),9,fP),f("button",{class:"project-menu-item project-menu-item-danger",type:"button",onClick:F=>La(_.projectName)},k(v(r)("Remove")),9,pP)],64)):(T(),A(ze,{key:1},[f("label",hP,k(v(r)("Project name")),1),Ot(f("input",{"onUpdate:modelValue":C[5]||(C[5]=F=>Ge.value=F),class:"project-menu-input",type:"text",onInput:F=>_r(_.projectName)},null,40,mP),[[sn,Ge.value]])],64))],8,iP)):Q("",!0)],512),f("button",{class:"thread-start-button",type:"button","aria-label":Co(_.projectName),title:Co(_.projectName),onClick:Qe(F=>Rr(_.projectName),["stop"])},[xe(Rl,{class:"thread-icon"})],8,vP)])]),default:et(()=>[f("span",{class:"project-main-button","data-dragging-handle":Dr(_.projectName),onMousedown:Qe(F=>Da(F,_.projectName),["left"])},[f("span",{class:"project-title",title:Wi(_.projectName)},k(ui(_)),9,nP),kt(_.projectName)?(T(),A("span",{key:0,class:"thread-row-automation-chip",title:Oo(_.projectName)},[xe(ga,{class:"thread-row-automation-icon"}),Un(_.projectName)>1?(T(),A("span",rP,k(Un(_.projectName)),1)):Q("",!0)],8,oP)):Q("",!0)],40,tP)]),_:2},1032,["onClick","onContextmenu","onKeydown"]),ho(_)?(T(),A("ul",gP,[(T(!0),A(ze,null,Tt(Gi(_),F=>(T(),A("li",{key:F.id,class:"thread-row-item","data-menu-open":mn(F.id)?"true":"false"},[xe(ha,{class:"thread-row","data-active":F.id===e.selectedThreadId,"data-pinned":Zo(F.id),"data-menu-open":mn(F.id)?"true":"false","force-right-hover":mn(F.id),onClick:ke=>un(F.id),onMouseleave:ke=>Fo(F.id,ke),onContextmenu:ke=>To(ke,F.id)},{left:et(()=>[f("span",wP,[En(F)?(T(),A("span",{key:0,class:"thread-status-indicator","data-state":sr(F)},null,8,bP)):Q("",!0),f("button",{class:"thread-delete-button",type:"button","data-confirming":gn(F.id),title:gn(F.id)?v(r)("Confirm delete"):v(r)("Delete thread"),onClick:Qe(ke=>$n(F.id),["stop"])},[gn(F.id)?(T(),A("span",kP,k(v(r)("Confirm")),1)):(T(),rt(du,{key:1,class:"thread-icon"}))],8,_P)])]),right:et(()=>[f("span",IP,k(Ia(F)),1)]),"right-hover":et(()=>[f("div",{ref_for:!0,ref:ke=>kr(F.id,ke),class:"thread-menu-wrap"},[f("button",{class:"thread-menu-trigger",type:"button",title:"thread_menu",onClick:Qe(ke=>tr(F.id),["stop"])},[xe(cl,{class:"thread-icon"})],8,RP)],512)]),default:et(()=>[f("button",{class:"thread-main-button",type:"button",onClick:Qe(ke=>un(F.id),["stop"])},[f("span",TP,[f("span",SP,[f("span",xP,k(F.title),1),F.hasWorktree?(T(),rt(Oi,{key:0,class:"thread-row-worktree-icon",title:v(r)("Worktree thread")},null,8,["title"])):Q("",!0),ao(F.id)?(T(),A("span",{key:1,class:"thread-row-automation-chip",title:cn(F.id)},[xe(ga,{class:"thread-row-automation-icon"}),so(F.id)>1?(T(),A("span",PP,k(so(F.id)),1)):Q("",!0)],8,AP)):Q("",!0),F.pendingRequestState?(T(),A("span",{key:2,class:"thread-row-request-chip","data-state":F.pendingRequestState},k($s(F)),9,EP)):Q("",!0)])])],8,CP)]),_:2},1032,["data-active","data-pinned","data-menu-open","force-right-hover","onClick","onMouseleave","onContextmenu"])],8,yP))),128))])):(T(),rt(ha,{key:1,as:"p",class:"project-empty-row"},{left:et(()=>[...C[33]||(C[33]=[f("span",{class:"project-empty-spacer"},null,-1)])]),default:et(()=>[f("span",MP,k(v(r)("No threads")),1)]),_:1})),en(_)?(T(),rt(ha,{key:2,class:"thread-show-more-row"},{left:et(()=>[...C[34]||(C[34]=[f("span",{class:"thread-show-more-spacer"},null,-1)])]),default:et(()=>[f("button",{class:"thread-show-more-button",type:"button",onClick:F=>Nr(_.projectName)},k(jr(_.projectName)?"Show less":"Show more"),9,$P)]),_:2},1024)):Q("",!0)],12,QA))),128))],4))],64)):Q("",!0)]),f("section",jP,[xe(ha,{as:"button",class:"section-toggle-row",type:"button","aria-expanded":ge.value,onClick:ro},{left:et(()=>[ge.value?(T(),rt(ei,{key:1,class:"thread-icon"})):(T(),rt(wc,{key:0,class:"thread-icon"}))]),right:et(()=>[f("div",LP,[f("button",{class:"chats-section-action",type:"button","aria-label":v(r)("New chat"),title:v(r)("New chat"),onClick:C[7]||(C[7]=Qe(_=>y.$emit("start-new-chat"),["stop"]))},[xe(Rl,{class:"thread-icon"})],8,OP)])]),default:et(()=>[f("span",NP,k(v(r)("Chats")),1)]),_:1},8,["aria-expanded"]),ge.value&&Mn.value.length===0?(T(),A("p",DP,k(v(r)("No chats")),1)):ge.value?(T(),A("ul",FP,[(T(!0),A(ze,null,Tt(Qa.value,_=>(T(),A("li",{key:_.id,class:"thread-row-item","data-menu-open":mn(_.id)?"true":"false"},[xe(ha,{class:"thread-row","data-active":_.id===e.selectedThreadId,"data-pinned":Zo(_.id),"data-menu-open":mn(_.id)?"true":"false","force-right-hover":mn(_.id),onClick:F=>un(_.id),onMouseleave:F=>Fo(_.id,F),onContextmenu:F=>To(F,_.id)},{left:et(()=>[f("span",BP,[En(_)?(T(),A("span",{key:0,class:"thread-status-indicator","data-state":sr(_)},null,8,qP)):Q("",!0),f("button",{class:"thread-delete-button",type:"button","data-confirming":gn(_.id),title:gn(_.id)?v(r)("Confirm delete"):v(r)("Delete thread"),onClick:Qe(F=>$n(_.id),["stop"])},[gn(_.id)?(T(),A("span",HP,k(v(r)("Confirm")),1)):(T(),rt(du,{key:1,class:"thread-icon"}))],8,zP)])]),right:et(()=>[f("span",XP,k(Ia(_)),1)]),"right-hover":et(()=>[f("div",{ref_for:!0,ref:F=>kr(_.id,F),class:"thread-menu-wrap"},[f("button",{class:"thread-menu-trigger",type:"button",title:"thread_menu",onClick:Qe(F=>tr(_.id),["stop"])},[xe(cl,{class:"thread-icon"})],8,ZP)],512)]),default:et(()=>[f("button",{class:"thread-main-button",type:"button",onClick:Qe(F=>un(_.id),["stop"])},[f("span",VP,[f("span",GP,[f("span",KP,k(_.title),1),_.hasWorktree?(T(),rt(Oi,{key:0,class:"thread-row-worktree-icon",title:v(r)("Worktree thread")},null,8,["title"])):Q("",!0),ao(_.id)?(T(),A("span",{key:1,class:"thread-row-automation-chip",title:cn(_.id)},[xe(ga,{class:"thread-row-automation-icon"}),so(_.id)>1?(T(),A("span",JP,k(so(_.id)),1)):Q("",!0)],8,YP)):Q("",!0),_.pendingRequestState?(T(),A("span",{key:2,class:"thread-row-request-chip","data-state":_.pendingRequestState},k($s(_)),9,QP)):Q("",!0)])])],8,WP)]),_:2},1032,["data-active","data-pinned","data-menu-open","force-right-hover","onClick","onMouseleave","onContextmenu"])],8,UP))),128))])):Q("",!0),ge.value&&oo.value?(T(),rt(ha,{key:2,class:"thread-show-more-row"},{left:et(()=>[...C[35]||(C[35]=[f("span",{class:"thread-show-more-spacer"},null,-1)])]),default:et(()=>[f("button",{class:"thread-show-more-button",type:"button",onClick:qe},k(Ae.value?"Show less":"Show more"),1)]),_:1})):Q("",!0)]),(T(),rt(Bi,{to:"body"},[Dt.value?(T(),A("div",{key:0,ref_key:"openThreadMenuPanelRef",ref:fr,class:"thread-menu-panel thread-menu-panel-fixed",style:Pr(xt.value),"data-open-direction":Ll(Dt.value.id),onClick:C[17]||(C[17]=Qe(()=>{},["stop"]))},[f("button",{class:"thread-menu-item",type:"button",onClick:C[8]||(C[8]=_=>j(Dt.value.id))},k(ao(Dt.value.id)?v(r)("Manage automations…"):v(r)("Add automation…")),1),f("button",{class:"thread-menu-item",type:"button",onClick:C[9]||(C[9]=_=>Cn(Dt.value.id))},k(v(r)("Browse files")),1),f("button",{class:"thread-menu-item",type:"button",onClick:C[10]||(C[10]=_=>ta(Dt.value.id))},k(v(r)("Export Project")),1),f("button",{class:"thread-menu-item",type:"button",onClick:C[11]||(C[11]=_=>co(Dt.value.id))},k(v(r)("Copy path")),1),f("button",{class:"thread-menu-item",type:"button",disabled:Dt.value.id!==e.selectedThreadId,title:Dt.value.id===e.selectedThreadId?v(r)("Copy chat"):v(r)("Open this chat before copying"),onClick:C[12]||(C[12]=_=>er(Dt.value.id))},k(v(r)("Copy chat")),9,tE),f("button",{class:"thread-menu-item",type:"button",onClick:C[13]||(C[13]=_=>vr(Dt.value.id))},k(v(r)("Create chat fork")),1),f("button",{class:"thread-menu-item",type:"button",onClick:C[14]||(C[14]=_=>Ra(Dt.value.id))},k(Zo(Dt.value.id)?v(r)("Unpin thread"):v(r)("Pin thread")),1),f("button",{class:"thread-menu-item",type:"button",onClick:C[15]||(C[15]=_=>Mr(Dt.value.id,Dt.value.title))},k(v(r)("Rename thread")),1),f("button",{class:"thread-menu-item thread-menu-item-danger",type:"button",onClick:C[16]||(C[16]=_=>So(Dt.value.id,Dt.value.title))},k(v(r)("Delete thread")),1)],12,eE)):Q("",!0)])),xe(ff,{open:tt.value,title:v(r)("Rename thread"),subtitle:v(r)("Make it short and recognizable."),onClose:vn},{footer:et(()=>[f("button",{class:"rename-thread-button",type:"button",onClick:vn},k(v(r)("Cancel")),1),f("button",{class:"rename-thread-button rename-thread-button-primary",type:"button",onClick:Ma},k(v(r)("Save")),1)]),default:et(()=>[Ot(f("input",{ref_key:"renameThreadInputRef",ref:St,"onUpdate:modelValue":C[18]||(C[18]=_=>_t.value=_),class:"rename-thread-input",type:"text",placeholder:v(r)("Add title..."),onKeydown:In(Qe(Ma,["prevent"]),["enter"])},null,40,nE),[[sn,_t.value]])]),_:1},8,["open","title","subtitle"]),xe(ff,{open:yt.value,title:Qr.value?v(r)("Archive chat and remove automations?"):v(r)("Delete thread?"),subtitle:Ea.value,onClose:gr},{footer:et(()=>[f("button",{class:"rename-thread-button",type:"button",onClick:gr},k(v(r)("Cancel")),1),f("button",{class:"rename-thread-button rename-thread-button-danger",type:"button",onClick:si},k(Qr.value?v(r)("Archive and remove"):v(r)("Delete")),1)]),_:1},8,["open","title","subtitle"]),xe(ff,{open:x.value,title:v(r)("Recycle bin"),subtitle:v(r)("Threads you removed are kept here so you can restore them."),size:"md",onClose:C[19]||(C[19]=_=>x.value=!1)},{default:et(()=>[v(u).length===0?(T(),A("div",oE,k(v(r)("Recycle bin is empty.")),1)):(T(),A("ul",rE,[(T(!0),A(ze,null,Tt(v(u),_=>(T(),A("li",{key:_.id,class:"recycle-bin-item"},[f("div",aE,[f("span",sE,k(_.title),1),_.projectName?(T(),A("span",iE,k(_.projectName),1)):Q("",!0),f("span",lE,k(ai(_.archivedAtIso)),1)]),f("div",uE,[f("button",{class:"recycle-bin-button recycle-bin-button-primary",type:"button",disabled:O.value===_.id,onClick:F=>Z(_.id)},k(O.value===_.id?v(r)("Restoring…"):v(r)("Restore")),9,cE),f("button",{class:"recycle-bin-button recycle-bin-button-danger",type:"button",onClick:F=>v(g)(_.id)},k(v(r)("Delete permanently")),9,dE)])]))),128))])),R.value?(T(),A("p",fE,k(R.value),1)):Q("",!0)]),_:1},8,["open","title","subtitle"]),(T(),rt(Bi,{to:"body"},[Be.value?(T(),A("div",{key:0,class:"rename-thread-overlay",onClick:Qe(Zt,["self"])},[f("div",{class:"rename-thread-panel automation-thread-panel",role:"dialog","aria-modal":"true","aria-label":$.value==="project"?v(r)("Project automation"):v(r)("Thread automation")},[f("h3",hE,k(ie.value==="edit"?v(r)("Edit automation"):v(r)("Add automation")),1),f("p",mE,k(Rt.value),1),oe.value&&ie.value==="create"?(T(),A("div",vE,[C[36]||(C[36]=f("span",{class:"automation-thread-label"},"Target",-1)),f("div",gE,[f("button",{class:Ke(["automation-target-mode",{"is-active":Te.value==="thread"}]),type:"button",onClick:C[20]||(C[20]=_=>vt("thread"))}," Existing chat ",2),f("button",{class:Ke(["automation-target-mode",{"is-active":Te.value==="project"}]),type:"button",onClick:C[21]||(C[21]=_=>vt("project"))}," Project ",2)]),f("div",yE,[xe(ur,{modelValue:we.value,"onUpdate:modelValue":C[22]||(C[22]=_=>we.value=_),class:"automation-thread-dropdown",options:V.value,placeholder:Te.value==="project"?"Select project":"Select chat","enable-search":"","search-placeholder":Te.value==="project"?"Search projects":"Search chats"},null,8,["modelValue","options","placeholder","search-placeholder"])])])):Q("",!0),st.value.length>0?(T(),A("div",{key:1,class:"automation-thread-list","aria-label":$.value==="project"?"Project automations":"Thread automations"},[(T(!0),A(ze,null,Tt(st.value,_=>(T(),A("button",{key:_.id,class:Ke(["automation-thread-list-item",{"is-active":_.id===se.value}]),type:"button",onClick:F=>Lt(_.id)},[f("span",null,k(_.name),1),f("small",null,k(_.status==="PAUSED"?"Paused":"Active"),1)],10,bE))),128)),f("button",{class:"automation-thread-list-item automation-thread-list-add",type:"button",onClick:$t},k(v(r)("Add another automation")),1)],8,wE)):Q("",!0),f("label",_E,[f("span",kE,k(v(r)("Name")),1),Ot(f("input",{"onUpdate:modelValue":C[23]||(C[23]=_=>Me.value.name=_),class:"rename-thread-input",type:"text",placeholder:v(r)("Automation name")},null,8,CE),[[sn,Me.value.name]])]),f("label",TE,[f("span",SE,k(v(r)("Prompt")),1),Ot(f("textarea",{"onUpdate:modelValue":C[24]||(C[24]=_=>Me.value.prompt=_),class:"automation-thread-textarea",rows:"6",placeholder:v(r)("Describe what the automation should do")},null,8,xE),[[sn,Me.value.prompt]])]),f("div",AE,[f("span",PE,k(v(r)("Schedule")),1),f("div",EE,[f("button",{class:Ke(["automation-schedule-mode",{"is-active":Ve.value.mode==="daily"}]),type:"button",onClick:C[25]||(C[25]=_=>mr("daily"))},k(v(r)("Daily")),3),f("button",{class:Ke(["automation-schedule-mode",{"is-active":Ve.value.mode==="interval"}]),type:"button",onClick:C[26]||(C[26]=_=>mr("interval"))},k(v(r)("Interval")),3),f("button",{class:Ke(["automation-schedule-mode",{"is-active":Ve.value.mode==="advanced"}]),type:"button",onClick:C[27]||(C[27]=_=>mr("advanced"))}," RRULE ",2)]),Ve.value.mode==="daily"?(T(),A("div",IE,[f("span",RE,k(v(r)("Run every day at")),1),Ot(f("input",{"onUpdate:modelValue":C[28]||(C[28]=_=>Ve.value.dailyTime=_),class:"automation-schedule-time",type:"time",onInput:lo},null,544),[[sn,Ve.value.dailyTime]])])):Ve.value.mode==="interval"?(T(),A("div",ME,[f("span",$E,k(v(r)("Run every")),1),Ot(f("input",{"onUpdate:modelValue":C[29]||(C[29]=_=>Ve.value.interval=_),class:"automation-schedule-number",type:"number",min:"1",step:"1",onInput:lo},null,544),[[sn,Ve.value.interval,void 0,{number:!0}]]),xe(ur,{class:"automation-schedule-unit-dropdown","model-value":Ve.value.intervalUnit,options:K,placeholder:v(r)("Unit"),"onUpdate:modelValue":uo},null,8,["model-value","placeholder"])])):Q("",!0),Ve.value.mode==="advanced"?Ot((T(),A("input",{key:2,"onUpdate:modelValue":C[30]||(C[30]=_=>Me.value.rrule=_),class:"rename-thread-input",type:"text",placeholder:"FREQ=DAILY;BYHOUR=9;BYMINUTE=0",onInput:ea},null,544)),[[sn,Me.value.rrule]]):Q("",!0),f("p",jE,k(wt.value),1)]),f("div",NE,[f("span",LE,k(v(r)("Status")),1),xe(ur,{class:"automation-thread-dropdown","model-value":Me.value.status,options:X.value,placeholder:v(r)("Status"),"onUpdate:modelValue":ko},null,8,["model-value","options","placeholder"])]),ve.value?(T(),A("p",OE,k(ve.value),1)):ue.value?(T(),A("p",DE,k(ue.value),1)):Q("",!0),f("div",FE,[ie.value==="edit"&&$.value==="thread"?(T(),A("button",{key:0,class:"rename-thread-button",type:"button",disabled:be.value||Fe.value,onClick:Es},k(Fe.value?v(r)("Running…"):v(r)("Run now")),9,UE)):Q("",!0),ie.value==="edit"?(T(),A("button",{key:1,class:"rename-thread-button rename-thread-button-danger",type:"button",disabled:be.value||Fe.value,onClick:li},k(v(r)("Remove")),9,BE)):Q("",!0),f("button",{class:"rename-thread-button",type:"button",disabled:be.value||Fe.value,onClick:Zt},k(v(r)("Cancel")),9,qE),f("button",{class:"rename-thread-button rename-thread-button-primary",type:"button",disabled:be.value||Fe.value,onClick:tn},k(be.value?v(r)("Saving…"):v(r)("Save")),9,zE)])],8,pE)])):Q("",!0)]))],2))}}),VE=Pt(WE,[["__scopeId","data-v-db2bdbb0"]]),GE={class:"content-header"},KE=["title"],YE={class:"content-actions"},JE=Ln({__name:"ContentHeader",props:{title:{},accent:{type:Boolean}},setup(e){return(t,n)=>(T(),A("header",GE,[f("div",{class:Ke(["content-leading",{"is-accent":e.accent}])},[cr(t.$slots,"leading",{},void 0)],2),f("h1",{class:Ke(["content-title",{"is-accent":e.accent}]),title:e.title},k(e.title),11,KE),f("div",YE,[cr(t.$slots,"actions",{},void 0)])]))}}),QE=Pt(JE,[["__scopeId","data-v-61739409"]]),Xm=.0025,pf=3,Zm=2,XE=256;function ZE(e){var je;const t=S("idle"),n=S(typeof navigator<"u"&&!!((je=navigator.mediaDevices)!=null&&je.getUserMedia)),o=S(0),r=S(null);let s=null,a=null,u=[],d=null,m=null,g=null,w=null,x=[],R=!1,O=!1,z=null;function Z(){z&&(z.abort(),z=null),t.value==="transcribing"&&(t.value="idle")}function ce(){const he=r.value;if(!he||typeof window>"u")return;const Se=he.getContext("2d");if(!Se)return;const Pe=Math.max(1,Math.floor(he.clientWidth)),Ee=Math.max(1,Math.floor(he.clientHeight||36)),Ue=window.devicePixelRatio||1,Ye=Math.max(1,Math.floor(Pe*Ue)),He=Math.max(1,Math.floor(Ee*Ue));(he.width!==Ye||he.height!==He)&&(he.width=Ye,he.height=He),Se.setTransform(Ue,0,0,Ue,0,0),Se.clearRect(0,0,Pe,Ee);const xt=Math.max(12,Math.floor(Pe/(pf+Zm))),ut=x.slice(-xt),Ge=Math.max(0,xt-ut.length),tt=Ee/2,ct=getComputedStyle(he).color||"#000000";for(let _t=0;_t<xt;_t+=1){const St=ut[_t-Ge]??0,ae=Math.max(.08,Math.min(1,St*18))*tt,ne=_t*(pf+Zm);Se.globalAlpha=St<=Xm?.35:1,Se.fillStyle=ct,Se.fillRect(ne,tt-ae,pf,ae*2)}Se.globalAlpha=1}function B(){x=[],o.value=0,ce()}function Y(){g&&(g.disconnect(),g.onaudioprocess=null,g=null),m&&(m.disconnect(),m=null),d&&(d.close(),d=null),w=null}function J(he){if(typeof window>"u")return;const Se=window.webkitAudioContext,Pe=window.AudioContext??Se;Pe&&(Y(),B(),d=new Pe,m=d.createMediaStreamSource(he),g=d.createScriptProcessor(2048,1,1),w=performance.now(),g.onaudioprocess=Ee=>{const Ue=Ee.inputBuffer.getChannelData(0);let Ye=0;for(let He=0;He<Ue.length;He+=1){const xt=Math.abs(Ue[He]??0);Ye+=xt<Xm?0:xt}x.push(Ye/Ue.length),x.length>XE&&x.shift(),w!==null&&(o.value=Math.max(0,performance.now()-w)),ce()},m.connect(g),g.connect(d.destination),ce())}async function ge(){var he;if(t.value==="transcribing"&&Z(),!(t.value!=="idle"||!n.value||R)){R=!0,O=!1;try{a=await navigator.mediaDevices.getUserMedia({audio:{channelCount:1}}),u=[],s=new MediaRecorder(a),s.ondataavailable=Se=>{Se.data.size>0&&u.push(Se.data)},s.onstop=()=>{var Ee;const Se=u,Pe=(s==null?void 0:s.mimeType)||((Ee=Se[0])==null?void 0:Ee.type)||"audio/webm";pe(),$e(Se,Pe)},J(a),s.start(250),t.value="recording",O&&Ae()}catch(Se){pe(),t.value="idle",(he=e.onError)==null||he.call(e,Se)}finally{R=!1}}}function Ae(){if(R&&t.value==="idle"){O=!0;return}if(!(t.value!=="recording"||!s)&&s.state!=="inactive"){t.value="transcribing";try{s.requestData()}catch{}s.stop()}}function ye(){O=!1,Z(),pe(),t.value="idle"}async function $e(he,Se){var Ue,Ye,He,xt,ut;if(he.length===0){(Ue=e.onEmpty)==null||Ue.call(e),t.value="idle";return}const Pe=new Blob(he,{type:Se});t.value="transcribing";let Ee=null;try{const Ge=Se.split(/[/;]/)[1]??"webm",tt=new FormData;tt.append("file",Pe,`codex.${Ge}`);const ct=((Ye=e.getLanguage)==null?void 0:Ye.call(e).trim())??"";ct&&ct.toLowerCase()!=="auto"&&tt.append("language",ct),Ee=new AbortController,z=Ee;const _t=await fetch("/codex-api/transcribe",{method:"POST",body:tt,signal:Ee.signal}),St=await _t.text();let yt=null;try{yt=St.trim()?JSON.parse(St):null}catch{yt=null}if(!_t.ok){const ne=(He=yt==null?void 0:yt.error)==null?void 0:He.trim(),re=St.trim();throw new Error(ne||re||`Transcription failed: ${_t.status}`)}const ae=((yt==null?void 0:yt.text)??"").trim();ae.length>0?e.onTranscript(ae):(xt=e.onEmpty)==null||xt.call(e)}catch(Ge){if(Ge instanceof DOMException&&Ge.name==="AbortError")return;(ut=e.onError)==null||ut.call(e,Ge)}finally{Ee&&z===Ee&&(z=null),t.value==="transcribing"&&(t.value="idle")}}function pe(){Y(),B(),s&&(s.ondataavailable=null,s.onstop=null,s=null),a&&(a.getTracks().forEach(he=>he.stop()),a=null),u=[]}zi(()=>{ye()});function Ne(){if(t.value==="recording"){Ae();return}(t.value==="idle"||t.value==="transcribing")&&ge()}return{state:t,isSupported:n,recordingDurationMs:o,waveformCanvasRef:r,startRecording:ge,stopRecording:Ae,toggleRecording:Ne,cancel:ye}}const eI={},tI={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function nI(e,t){return T(),A("svg",tI,[...t[0]||(t[0]=[f("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m12 5l0 14m-6-8l6-6l6 6"},null,-1)])])}const oI=Pt(eI,[["render",nI]]),rI={},aI={viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"};function sI(e,t){return T(),A("svg",aI,[...t[0]||(t[0]=[f("path",{d:"M4 8V4h4"},null,-1),f("path",{d:"M20 8V4h-4"},null,-1),f("path",{d:"M4 16v4h4"},null,-1),f("path",{d:"M20 16v4h-4"},null,-1)])])}const iI=Pt(rI,[["render",sI]]),lI={},uI={viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"};function cI(e,t){return T(),A("svg",uI,[...t[0]||(t[0]=[f("path",{d:"M8 4v4H4"},null,-1),f("path",{d:"M16 4v4h4"},null,-1),f("path",{d:"M8 20v-4H4"},null,-1),f("path",{d:"M16 20v-4h4"},null,-1)])])}const dI=Pt(lI,[["render",cI]]),fI={},pI={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function hI(e,t){return T(),A("svg",pI,[...t[0]||(t[0]=[f("path",{stroke:"none",fill:"none",d:"M0 0h24v24H0z"},null,-1),f("path",{fill:"currentColor",d:"M8 5a3 3 0 0 0 -3 3v8a3 3 0 0 0 3 3h8a3 3 0 0 0 3 -3v-8a3 3 0 0 0 -3 -3h-8z"},null,-1)])])}const mI=Pt(fI,[["render",hI]]),vI=["aria-label"],gI=Ln({__name:"ComposerPopover",props:{open:{type:Boolean},align:{},width:{},panelClass:{},ariaLabel:{}},emits:["update:open"],setup(e,{expose:t,emit:n}){const o=e,r=n,s=S(null),a=S(null),u=ee(()=>o.open),d=ee(()=>o.width==="lg"?"composer-popover-panel--lg":"composer-popover-panel--md");ot(u,async w=>{var x;w&&(await Ht(),(x=a.value)==null||x.focus())});function m(){r("update:open",!o.open)}function g(w){var ce,B,Y;if(w.key==="Escape"){r("update:open",!1);return}const x=a.value;if(!x)return;const R=Array.from(x.querySelectorAll("button")).filter(J=>!J.disabled&&J.offsetParent!==null);if(R.length===0)return;if(w.key==="Home"){w.preventDefault(),(ce=R[0])==null||ce.focus();return}if(w.key==="End"){w.preventDefault(),(B=R[R.length-1])==null||B.focus();return}if(w.key!=="ArrowDown"&&w.key!=="ArrowUp")return;w.preventDefault();let O=R.findIndex(J=>J===document.activeElement);O<0&&(O=w.key==="ArrowDown"?-1:0);const z=w.key==="ArrowDown"?1:-1,Z=(O+z+R.length)%R.length;(Y=R[Z])==null||Y.focus()}return t({root:s}),(w,x)=>(T(),A("div",{ref_key:"rootRef",ref:s,class:Ke(["composer-popover-anchor",{"is-align-end":e.align==="end","is-align-center":e.align==="center"}])},[cr(w.$slots,"trigger",{toggle:m,isOpen:u.value},void 0),xe(Au,{name:"composer-popover"},{default:et(()=>[u.value?(T(),A("div",{key:0,ref_key:"panelRef",ref:a,class:Ke(["composer-popover-panel",[d.value,e.panelClass]]),role:"menu",tabindex:"-1","aria-label":e.ariaLabel,onKeydown:g},[cr(w.$slots,"default",{},void 0,!0)],42,vI)):Q("",!0)]),_:3})],2))}}),bc=Pt(gI,[["__scopeId","data-v-bdd45c16"]]),yI=["aria-label"],wI={class:"composer-popover-group-label"},bI=["aria-selected","onMousedown"],_I={class:"thread-composer-slash-body"},kI={class:"thread-composer-slash-name"},CI={class:"thread-composer-slash-desc"},TI={class:"thread-composer-slash-kind"},SI={class:"composer-popover-group-label composer-popover-group-label--skills"},xI=["aria-selected","onMousedown"],AI=["aria-label","title"],PI={class:"thread-composer-slash-body thread-composer-slash-body--skill"},EI={class:"thread-composer-slash-skill-name"},II={class:"thread-composer-slash-desc thread-composer-slash-desc--skill"},RI=Ln({__name:"ComposerSlashMenu",props:{commands:{},highlightedIndex:{}},emits:["select"],setup(e,{emit:t}){const n=e,o=t,{t:r}=Er(),s=S(null),a=ee(()=>n.commands.filter(w=>w.group!=="skill")),u=ee(()=>n.commands.filter(w=>w.group==="skill"));ot(()=>n.highlightedIndex,async()=>{var w,x;await Ht(),(x=(w=s.value)==null?void 0:w.querySelector(".is-active"))==null||x.scrollIntoView({block:"nearest"})});function d(w){return r(w==="rpc"?"Action":w==="text"?"Prompt":w==="skill"?"Skill":"Local")}function m(w){return w==="system"?"S":w==="repo"?"R":w==="plugin"?"P":"U"}function g(w){return r(w==="system"?"System":w==="repo"?"Repo":w==="plugin"?"Plugin":"User")}return(w,x)=>(T(),A("div",{ref_key:"rootRef",ref:s,class:"composer-popover",role:"listbox","aria-label":v(r)("Commands")},[a.value.length>0?(T(),A(ze,{key:0},[f("div",wI,k(v(r)("Commands")),1),(T(!0),A(ze,null,Tt(a.value,(R,O)=>(T(),A("button",{key:R.id,class:Ke(["thread-composer-slash-row",{"is-active":O===e.highlightedIndex}]),type:"button",role:"option","aria-selected":O===e.highlightedIndex,onMousedown:Qe(z=>o("select",R),["prevent"])},[x[0]||(x[0]=f("span",{class:"thread-composer-slash-prefix","aria-hidden":"true"},"/",-1)),f("span",_I,[f("span",kI,k(R.id),1),f("span",CI,k(v(r)(R.description)),1)]),f("span",TI,k(d(R.kind)),1)],42,bI))),128))],64)):Q("",!0),u.value.length>0?(T(),A(ze,{key:1},[f("div",SI,k(v(r)("Skills")),1),(T(!0),A(ze,null,Tt(u.value,(R,O)=>(T(),A("button",{key:R.skillPath||R.id,class:Ke(["thread-composer-slash-row thread-composer-slash-row--skill",{"is-active":a.value.length+O===e.highlightedIndex}]),type:"button",role:"option","aria-selected":a.value.length+O===e.highlightedIndex,onMousedown:Qe(z=>o("select",R),["prevent"])},[f("span",{class:Ke(["thread-composer-slash-skill-icon",`is-${R.scope||"user"}`]),"aria-label":g(R.scope),title:g(R.scope)},k(m(R.scope)),11,AI),f("span",PI,[f("span",EI,k(R.displayName||R.id),1),f("span",II,k(R.description),1)])],42,xI))),128))],64)):Q("",!0)],8,yI))}}),MI=Pt(RI,[["__scopeId","data-v-ca16aa11"]]),$I=/(^|\s)(\/[a-zA-Z]*)$/,ev=[{id:"compact",description:"Compact the current thread context",kind:"rpc",group:"builtin"},{id:"review",description:"Open the code review pane",kind:"rpc",group:"builtin"},{id:"rename",description:"Rename the current thread",kind:"rpc",group:"builtin"},{id:"archive",description:"Archive the current thread",kind:"rpc",group:"builtin"},{id:"fork",description:"Fork the current thread",kind:"rpc",group:"builtin"},{id:"new",description:"Start a new thread",kind:"rpc",group:"builtin"},{id:"skills",description:"Open the skills page",kind:"rpc",group:"builtin"},{id:"init",description:"Generate or update AGENTS.md",kind:"text",group:"builtin",insertText:"Create or update the AGENTS.md file for this project: include an overview, architecture notes, development conventions, and a workflow guide based on the codebase."},{id:"help",description:"Show help about Codex",kind:"text",group:"builtin",insertText:"How do I use Codex? Point me to the official documentation and explain the available commands."},{id:"mention",description:"Mention files with @",kind:"text",group:"builtin",insertText:"Please review the files I mention with @, starting with: "},{id:"diff",description:"Show the current git diff",kind:"text",group:"builtin",insertText:"Show the current git diff of this project and summarize the changes."},{id:"clear",description:"Clear the input",kind:"local",group:"builtin"}];function jI(e){var o,r,s;const t=[],n=new Set;for(const a of e){const u=a.name.trim().replace(/^\//u,"").toLowerCase().replace(/\s+/gu,"-");if(!u)continue;const d=a.path.trim()||u;n.has(d)||(n.add(d),t.push({id:u,description:((o=a.description)==null?void 0:o.trim())||"Run this skill",kind:"skill",group:"skill",skillPath:a.path,displayName:((r=a.displayName)==null?void 0:r.trim())||a.name.trim(),scope:((s=a.scope)==null?void 0:s.trim())||"user"}))}return t.sort((a,u)=>a.id.localeCompare(u.id))}function NI(e){const t=e.match($I);if(!t)return null;const n=t[2]??"";return{query:n.slice(1).toLowerCase(),token:n,startIndex:e.length-n.length}}function LI(e,t){const n=t.trim().toLowerCase();if(!n)return e;const o=e.filter(r=>r.id===n);return o.length>0?o:e.filter(r=>r.id.startsWith(n))}const OI=["data-streaming"],DI=["aria-expanded"],FI={class:"thread-composer-plan-panel-title"},UI={key:0,class:"thread-composer-plan-panel-badge"},BI={class:"thread-composer-plan-panel-progress"},qI=["title"],zI=["data-status"],HI={class:"thread-composer-plan-panel-latest-text"},WI={class:"thread-composer-plan-panel-popover-content"},VI={class:"thread-composer-plan-panel-popover-scroll"},GI={class:"thread-composer-plan-panel-popover-head"},KI={class:"thread-composer-plan-panel-title"},YI={class:"thread-composer-plan-panel-progress"},JI={key:0,class:"thread-composer-plan-panel-popover-section"},QI={class:"thread-composer-plan-panel-section-label"},XI=["title"],ZI={class:"thread-composer-plan-panel-popover-section"},eR={class:"thread-composer-plan-panel-section-label"},tR={class:"thread-composer-plan-panel-steps"},nR=["data-status"],oR=["data-status"],rR=["title"],aR={class:"thread-composer-plan-panel-popover-footer"},sR=["disabled","data-state"],iR={key:1,class:"thread-composer-attachments"},lR=["src"],uR=["src","alt"],cR=["aria-label","disabled","onClick"],dR={key:2,class:"thread-composer-folder-chips"},fR=["title"],pR={class:"thread-composer-folder-chip-meta"},hR=["aria-label","disabled","onClick"],mR={key:3,class:"thread-composer-file-chips"},vR=["title"],gR=["aria-label","disabled","onClick"],yR={key:4,class:"thread-composer-skill-chips"},wR=["title","aria-label","onClick"],bR=["aria-label","onClick"],_R={class:"thread-composer-main"},kR={class:"thread-composer-input-row"},CR={key:0,class:"thread-composer-drop-overlay","aria-hidden":"true"},TR={class:"thread-composer-drop-overlay-copy"},SR={key:1,class:"composer-popover"},xR=["onMousedown"],AR={key:1,class:"thread-composer-file-mention-icon-markdown"},PR={class:"thread-composer-file-mention-text"},ER={class:"thread-composer-file-mention-name"},IR={key:0,class:"thread-composer-file-mention-dir"},RR={key:1,class:"thread-composer-file-mention-empty"},MR={key:2,class:"thread-composer-file-mention-empty"},$R=["placeholder","disabled"],jR=["aria-label","title","disabled"],NR={class:"thread-composer-actions"},LR=["aria-label","title","disabled"],OR={key:0,class:"thread-composer-stop-spinner","aria-hidden":"true"},DR=["aria-label","title","disabled"],FR=["aria-label","disabled"],UR=["disabled"],BR=["disabled"],qR=["disabled"],zR={class:"thread-composer-attach-mode"},HR={class:"thread-composer-attach-mode-label"},WR={class:"thread-composer-attach-mode-buttons"},VR=["disabled"],GR=["disabled"],KR={class:"thread-composer-attach-mode"},YR={class:"thread-composer-attach-mode-label"},JR={class:"thread-composer-attach-mode-buttons"},QR=["disabled","onClick"],XR={class:"thread-composer-attach-mode"},ZR={class:"thread-composer-attach-mode-label"},eM={class:"thread-composer-attach-mode-buttons"},tM=["disabled","onClick"],nM={key:0,class:"thread-composer-menu-error",role:"alert"},oM={key:0,class:"thread-composer-approval-tip",role:"status"},rM=["aria-label","disabled"],aM={class:"thread-composer-plan-trigger-label"},sM=["aria-checked","disabled","onClick"],iM={class:"thread-composer-menu-item-copy"},lM={class:"thread-composer-menu-item-title"},uM={key:0,class:"thread-composer-menu-item-sub"},cM={key:1,class:"thread-composer-menu-item-hint"},dM={key:0,class:"thread-composer-menu-item-check","aria-hidden":"true"},fM=["aria-label","disabled"],pM={class:"thread-composer-approval-trigger-label"},hM=["aria-checked","disabled","onClick"],mM={class:"thread-composer-menu-item-copy"},vM={class:"thread-composer-menu-item-title"},gM={key:0,class:"thread-composer-menu-item-check","aria-hidden":"true"},yM={key:0,class:"thread-composer-menu-error",role:"alert"},wM={key:0,class:"thread-composer-approval-tip",role:"status"},bM=["title","aria-label"],_M={class:"thread-composer-context-usage-value"},kM={key:0,class:"thread-composer-context-usage-compact"},CM=["disabled"],TM=["disabled"],SM=["disabled"],hf=12e3,xM=2e3,AM="codex-web-local.thread-draft.v1.",PM=Ln({__name:"ThreadComposer",props:{activeThreadId:{},cwd:{},fuzzyFileSearchResults:{},collaborationModes:{},selectedCollaborationMode:{},models:{},modelReasoningEfforts:{},selectedModel:{},selectedReasoningEffort:{},selectedSpeedMode:{},skills:{},threadTokenUsage:{},codexQuota:{},isTurnInProgress:{type:Boolean},isStopPending:{type:Boolean},isInterruptingTurn:{type:Boolean},isCompacting:{type:Boolean},externalSessionActive:{type:Boolean},isUpdatingSpeedMode:{type:Boolean},disabled:{type:Boolean},hasQueueAbove:{type:Boolean},sendWithEnter:{type:Boolean},inProgressSubmitMode:{},dictationClickToToggle:{type:Boolean},dictationAutoSend:{type:Boolean},dictationLanguage:{},approvalPolicy:{},isApprovalPolicySaving:{type:Boolean},approvalPolicyError:{},approvalPolicyNotice:{},planPanel:{}},emits:["submit","interrupt","register-fuzzy-session","slash-command","update:selected-collaboration-mode","update:selected-model","update:selected-reasoning-effort","update:selected-speed-mode","update:approval-policy","save-approval-policy","implement-plan","compact-context"],setup(e,{expose:t,emit:n}){const o=e,r=n,{t:s}=Er(),a=S(""),u=S([]),d=S([]),m=S([]),g=S([]),w=S(""),x=S(0),R=S(null),O=S(!1),{state:z,cancel:Z}=ZE({getLanguage:()=>o.dictationLanguage??"auto",onTranscript:I=>{if(a.value=a.value?`${a.value}
|
|
58
|
-
${I}`:I,w.value="",o.dictationAutoSend!==!1){const j=o.isTurnInProgress?de.value:"steer";on(j);return}Ht(()=>{var j;return(j=J.value)==null?void 0:j.focus()})},onEmpty:()=>{w.value=o.dictationClickToToggle?"No speech detected. Click again after speaking.":"No speech detected. Hold the mic and speak."},onError:I=>{if(I instanceof DOMException&&I.name==="NotAllowedError"){w.value="Microphone access was denied.";return}w.value=I instanceof Error?I.message:"Dictation failed."}}),ce=S(null),B=S(null),Y=S(null),J=S(null),{isMobile:ge}=yp(),Ae=S(!1),ye=S(!1),$e=S(!1),pe=S(null),Ne=S(""),je=S([]),he=S(!1),Se=S(0),Pe=S(!1),Ee=S(null),Ue=S(""),Ye=S(0),He=S(ev),xt=ee(()=>[...ev,...jI(o.skills??[])]),ut=S(!1),Ge=S(!1),tt=ee(()=>{var j;return(((j=o.planPanel)==null?void 0:j.steps)??[]).filter(q=>q.status==="completed").length}),ct=ee(()=>{var j;const I=((j=o.planPanel)==null?void 0:j.steps)??[];if(I.length===0)return null;for(let q=I.length-1;q>=0;q-=1){const _e=I[q];if(_e.status==="inProgress")return _e}return I[I.length-1]}),_t=ee(()=>{var _e,ht,vt;const I=((ht=(_e=o.planPanel)==null?void 0:_e.explanation)==null?void 0:ht.trim())??"";if(!I)return"";const j=((vt=I.split(/[。!?!?\n]/u)[0])==null?void 0:vt.trim())??"";if(!j)return I;const q=80;return j.length>q?`${j.slice(0,q)}…`:j});function St(I){switch(I){case"completed":return"✓";case"inProgress":return"•";default:return"○"}}function yt(){Ge.value=!1,r("implement-plan")}const ae=S(!1);let ne=!1;const re=S(0);let W=0,Be=null,$="",D=!1,G=0,se=0;const ie=typeof navigator<"u"&&/Android/i.test(navigator.userAgent);let oe="";const Te=[{value:"
|
|
58
|
+
${I}`:I,w.value="",o.dictationAutoSend!==!1){const j=o.isTurnInProgress?de.value:"steer";on(j);return}Ht(()=>{var j;return(j=J.value)==null?void 0:j.focus()})},onEmpty:()=>{w.value=o.dictationClickToToggle?"No speech detected. Click again after speaking.":"No speech detected. Hold the mic and speak."},onError:I=>{if(I instanceof DOMException&&I.name==="NotAllowedError"){w.value="Microphone access was denied.";return}w.value=I instanceof Error?I.message:"Dictation failed."}}),ce=S(null),B=S(null),Y=S(null),J=S(null),{isMobile:ge}=yp(),Ae=S(!1),ye=S(!1),$e=S(!1),pe=S(null),Ne=S(""),je=S([]),he=S(!1),Se=S(0),Pe=S(!1),Ee=S(null),Ue=S(""),Ye=S(0),He=S(ev),xt=ee(()=>[...ev,...jI(o.skills??[])]),ut=S(!1),Ge=S(!1),tt=ee(()=>{var j;return(((j=o.planPanel)==null?void 0:j.steps)??[]).filter(q=>q.status==="completed").length}),ct=ee(()=>{var j;const I=((j=o.planPanel)==null?void 0:j.steps)??[];if(I.length===0)return null;for(let q=I.length-1;q>=0;q-=1){const _e=I[q];if(_e.status==="inProgress")return _e}return I[I.length-1]}),_t=ee(()=>{var _e,ht,vt;const I=((ht=(_e=o.planPanel)==null?void 0:_e.explanation)==null?void 0:ht.trim())??"";if(!I)return"";const j=((vt=I.split(/[。!?!?\n]/u)[0])==null?void 0:vt.trim())??"";if(!j)return I;const q=80;return j.length>q?`${j.slice(0,q)}…`:j});function St(I){switch(I){case"completed":return"✓";case"inProgress":return"•";default:return"○"}}function yt(){Ge.value=!1,r("implement-plan")}const ae=S(!1);let ne=!1;const re=S(0);let W=0,Be=null,$="",D=!1,G=0,se=0;const ie=typeof navigator<"u"&&/Android/i.test(navigator.userAgent);let oe="";const Te=[{value:"low",label:"Low"},{value:"medium",label:"Medium"},{value:"high",label:"High"}],we=ee(()=>{var q;const I=(q=o.modelReasoningEfforts)==null?void 0:q[o.selectedModel];if(I===void 0)return Te;const j=new Set(I);return Te.filter(_e=>j.has(_e.value))});function ve(I){return I.trim().replace(/^gpt/i,"GPT")}const ue=ee(()=>o.models.map(I=>({value:I,label:ve(I)}))),Ie=ee(()=>{const I=new Set((o.collaborationModes??[]).map(j=>j.value));return[{value:"default",labelKey:"Default",subLabel:"",disabled:!1},{value:"plan",labelKey:"Plan mode",subLabel:s("Agent proposes a plan before acting"),disabled:!1},{value:"execplans",labelKey:"Execution plans",subLabel:"",disabled:!I.has("execplans")}]}),be=[{value:"on-request",label:"When Codex requests it"},{value:"untrusted",label:"Unless trusted"},{value:"never",label:"Never"}],Fe=ee(()=>{const I=Ie.value.find(j=>j.value===o.selectedCollaborationMode);return s(I?I.labelKey:"Plan mode")}),Me=ee(()=>{const I=be.find(j=>j.value===o.approvalPolicy);return s(I?I.label:"Approval policy")}),Ve=ee(()=>o.selectedCollaborationMode==="plan"&&o.selectedModel.trim().length===0),st=ee(()=>o.disabled||o.isUpdatingSpeedMode||!o.activeThreadId||Ve.value||x.value>0?!1:a.value.trim().length>0||u.value.length>0||m.value.length>0),wt=ee(()=>a.value.trim().length>0||u.value.length>0||d.value.length>0||m.value.length>0||g.value.length>0),Rt=ee(()=>{const I=new Set;for(const j of g.value)for(const q of j.filePaths)I.add(q);return m.value.filter(j=>!I.has(j.fsPath))}),Ze=ee(()=>o.disabled||!o.activeThreadId||o.externalSessionActive===!0),Vt=ee(()=>o.disabled||!o.activeThreadId),V=ee(()=>/^gpt-5\.(?:4|5)(?:$|-)/.test(o.selectedModel.trim())),K=ee(()=>o.selectedSpeedMode==="fast"&&V.value),X=ee(()=>o.inProgressSubmitMode==="steer"?"steer":"queue"),de=S(X.value),De=ee(()=>z.value==="recording"),We=ee(()=>o.activeThreadId?Ve.value?s("Loading models for plan mode..."):s("Ask Codex anything, @ to add files, / for commands"):s("Select a thread to send a message")),nt=ee(()=>a.value.trim().length>0||u.value.length>0||m.value.length>0),Bt=ee(()=>a.value.split(`
|
|
59
59
|
`).length),Gt=ee(()=>ut.value||Bt.value>=6||ae.value),Wn=ee(()=>mt(o.threadTokenUsage??null)),Jo=ee(()=>{var I;return((I=Wn.value)==null?void 0:I.summaryText)??""}),yo=ee(()=>{var I;return((I=Wn.value)==null?void 0:I.tooltipText)??""}),eo=ee(()=>{var I;return((I=Wn.value)==null?void 0:I.tone)??"healthy"});function wo(){eo.value!=="healthy"&&r("compact-context")}function Qo(I){if(!Number.isFinite(I))return"0";const j=Math.abs(I);return j>=1e6?`${(j>=1e7?(I/1e6).toFixed(0):(I/1e6).toFixed(1)).replace(/\.0$/,"")}M`:j>=1e3?`${(j>=1e5?(I/1e3).toFixed(0):(I/1e3).toFixed(1)).replace(/\.0$/,"")}k`:String(Math.round(I))}function fr(I){const j=Math.max(0,I.inputTokens-I.cachedInputTokens),q=[`${Qo(I.totalTokens)} ${s("total")}`,`${Qo(j)} ${s("input")}`];return I.cachedInputTokens>0&&q.push(`${Qo(I.cachedInputTokens)} ${s("cached")}`),I.outputTokens>0&&q.push(`${Qo(I.outputTokens)} ${s("output")}`),I.reasoningOutputTokens>0&&q.push(`${Qo(I.reasoningOutputTokens)} ${s("reasoning")}`),q.join(" · ")}function bn(I,j){if(!Number.isFinite(I)||!Number.isFinite(j)||j<=0)return 0;if(j<=hf){const vt=Math.max(0,j-Math.max(0,I));return Math.max(0,Math.min(100,Math.round(vt/j*100)))}const q=j-hf,_e=Math.max(0,I-hf),ht=Math.max(0,q-_e);return Math.max(0,Math.min(100,Math.round(ht/q*100)))}function mt(I){if(!I)return null;const j=I.modelContextWindow??null;if(typeof j!="number"||!Number.isFinite(j)||j<=0)return null;const q=Math.max(0,I.last.totalTokens),_e=bn(q,j),ht=Math.max(0,Math.min(100,100-_e)),vt=_e<=15?"danger":_e<=35?"warning":"healthy";return{summaryText:`${_e}% · ${Qo(q)} / ${Qo(j)}`,tooltipText:[`${s("Context window")}: ${_e}% ${s("left")} (${ht}% ${s("used")})`,`${s("In context")}: ${q.toLocaleString()} / ${j.toLocaleString()} tokens`,`${s("Last turn")}: ${fr(I.last)}`,`${s("Session total")}: ${fr(I.total)}`].join(`
|
|
60
60
|
`),percentRemaining:_e,tone:vt}}function on(I="steer"){var q;const j=a.value.trim();if(st.value){if(r("submit",{text:j,imageUrls:u.value.map(_e=>_e.url),fileAttachments:[...m.value],skills:d.value.map(_e=>({name:_e.name,path:_e.path})),mode:I}),Xo(o.activeThreadId),As(),ut.value=!1,g.value=[],Ae.value=!1,Cn(),ie||ge.value){(q=J.value)==null||q.blur();return}Ht(()=>{var _e;return(_e=J.value)==null?void 0:_e.focus()})}}function to(I){de.value=I}function Aa(I){re.value+=1,a.value=I.text,u.value=I.imageUrls.map((j,q)=>({id:`queued-${Date.now()}-${q}-${Math.random().toString(36).slice(2,8)}`,name:`${s("Image")} ${q+1}`,url:j})),d.value=I.skills.map(j=>(o.skills??[]).find(q=>q.path===j.path)??{name:j.name,displayName:void 0,description:"",path:j.path}),m.value=I.fileAttachments.map(j=>({...j})),g.value=[],w.value="",R.value=null,x.value=0,Ae.value=!1,Cn(),co(),se+=1}function As(){Aa({text:"",imageUrls:[],fileAttachments:[],skills:[]}),ut.value=!1}function At(I){return`${AM}${I}`}function Kt(I){if(typeof window>"u")return null;const j=I.trim();if(!j)return null;try{const q=window.localStorage.getItem(At(j));if(!q)return null;const _e=JSON.parse(q);return typeof _e=="string"?{text:_e,imageUrls:[],fileAttachments:[],skills:[]}:{text:typeof _e.text=="string"?_e.text:"",imageUrls:Array.isArray(_e.imageUrls)?_e.imageUrls.filter(ht=>typeof ht=="string"):[],fileAttachments:Array.isArray(_e.fileAttachments)?_e.fileAttachments.filter(ht=>!!ht&&typeof ht.label=="string"&&typeof ht.path=="string"&&typeof ht.fsPath=="string"):[],skills:Array.isArray(_e.skills)?_e.skills.filter(ht=>!!ht&&typeof ht.name=="string"&&typeof ht.path=="string"):[]}}catch{return null}}function pt(I,j){if(typeof window>"u")return;const q=I.trim();if(q)try{if(j.text.trim().length>0||j.imageUrls.length>0||j.fileAttachments.length>0||j.skills.length>0){window.localStorage.setItem(At(q),JSON.stringify(j));return}window.localStorage.removeItem(At(q))}catch{}}function Xo(I){pt(I,{text:"",imageUrls:[],fileAttachments:[],skills:[]})}function ln(){return{text:a.value,imageUrls:u.value.map(I=>I.url),fileAttachments:m.value.map(I=>({...I})),skills:d.value.map(I=>({name:I.name,path:I.path}))}}function pr(){r("interrupt")}function no(){const I=J.value;if(!I){ae.value=!1;return}ae.value=I.scrollHeight>I.clientHeight+2}function On(){ne||(ne=!0,Ht(()=>{ne=!1,no()}))}function hr(){Ze.value||(ut.value=!ut.value,On(),Ht(()=>{var I;return(I=J.value)==null?void 0:I.focus()}))}function Pa(I){r("update:selected-model",I)}function Ja(I){if(I===o.selectedCollaborationMode){ye.value=!1;return}r("update:selected-collaboration-mode",I),ye.value=!1}function Jn(I){if(I===o.selectedCollaborationMode){Ae.value=!1;return}r("update:selected-collaboration-mode",I),Ae.value=!1}function Mn(I){r("update:selected-reasoning-effort",I)}function Qa(I){o.approvalPolicy===I||o.isApprovalPolicySaving===!0||(r("update:approval-policy",I),r("save-approval-policy"))}function oo(){o.dictationClickToToggle}function _n(){Ze.value||(Ae.value=!Ae.value,ye.value=!1,$e.value=!1)}function Jr(){Vt.value||(ye.value=!ye.value,Ae.value=!1,$e.value=!1)}function Xt(){Vt.value||($e.value=!$e.value,Ae.value=!1,ye.value=!1)}function Qr(){var I;(I=ce.value)==null||I.click()}function Ea(){var I;(I=B.value)==null||I.click()}function bo(){var I;(I=Y.value)==null||I.click()}function No(I){const j=u.value.find(q=>q.id===I);if(j&&Xr(j.url)){const q=Ia(j.url);q&&Vn(q)}u.value=u.value.filter(q=>q.id!==I)}function Lo(I){d.value=d.value.filter(j=>j.path!==I)}function Dt(I){const j=I.trim();return j?j.endsWith("/SKILL.md")?j:`${j.replace(/\/+$/,"")}/SKILL.md`:""}function Mt(I){const j=Dt(I.path);!j||typeof window>"u"||window.open(`/codex-local-browse${encodeURI(j)}`,"_blank","noopener,noreferrer")}function Vn(I){m.value=m.value.filter(j=>j.fsPath!==I)}function _o(I){const j=g.value.find(_e=>_e.id===I);if(!j)return;const q=new Set(j.filePaths);m.value=m.value.filter(_e=>!q.has(_e.fsPath)),g.value=g.value.filter(_e=>_e.id!==I)}function ro(I){return I.total<=0?0:Math.round(I.processed/I.total*100)}function Dn(I,j){const q=I.replace(/\\/g,"/");if(m.value.some(vt=>vt.fsPath===q))return;const _e=q.split("/").filter(Boolean),ht=(j==null?void 0:j.trim())||_e[_e.length-1]||q;m.value=[...m.value,{label:ht,path:q,fsPath:q}]}function Fn(I){return I.type.startsWith("image/")?!0:/\.(png|jpe?g|gif|webp)$/i.test(I.name)}const Qn=/\.(mp4|m4v|webm|mov|mkv|ogv|ogg|mpeg|avi)$/iu;function Ir(I){return I.type.startsWith("video/")?!0:Qn.test(I.name)}function Xr(I){const j=I.trim();if(!j)return!1;if(j.startsWith("data:video/"))return!0;try{const q=new URL(j,window.location.href);return Qn.test(q.pathname)?!0:q.pathname==="/codex-local-image"?Qn.test(q.searchParams.get("path")??""):!1}catch{return Qn.test(j)}}function Ia(I){try{const j=new URL(I,window.location.href);return j.pathname!=="/codex-local-image"?"":decodeURIComponent(j.searchParams.get("path")??"").replace(/\\/g,"/")}catch{return""}}function ai(I){return I?Array.from(I):[]}function Zo(I){return I!==se?!1:(x.value+=1,!0)}function Zr(I){I===se&&(x.value=Math.max(0,x.value-1))}function Ra(I){if(I<=0)return;const j=R.value,q=j?j.succeeded+j.failed:0;if(!j||q>=j.total){R.value={total:I,succeeded:0,failed:0};return}R.value={...j,total:j.total+I}}function un(I){const j=R.value;j&&(R.value={...j,succeeded:j.succeeded+(I==="success"?1:0),failed:j.failed+(I==="failure"?1:0)})}function ao(){return`${Date.now()}-${Math.random().toString(36).slice(2)}`}function so(I){const j=new Date,q=[j.getFullYear(),String(j.getMonth()+1).padStart(2,"0"),String(j.getDate()).padStart(2,"0"),String(j.getHours()).padStart(2,"0"),String(j.getMinutes()).padStart(2,"0"),String(j.getSeconds()).padStart(2,"0")].join("-"),_e=I.type.startsWith("image/")&&I.type.slice(6).replace(/[^a-z0-9]+/gi,"")||"png";return`pasted-image-${q}.${_e}`}function kt(){const I=new Date;return`pasted-text-${[I.getFullYear(),String(I.getMonth()+1).padStart(2,"0"),String(I.getDate()).padStart(2,"0"),String(I.getHours()).padStart(2,"0"),String(I.getMinutes()).padStart(2,"0"),String(I.getSeconds()).padStart(2,"0")].join("-")}.txt`}function Un(I){return I.name.trim()?I:new File([I],so(I),{type:I.type||"image/png",lastModified:Date.now()})}async function io(I,j){if(Zo(j))try{const q=Un(I),_e=await yc(q);if(j!==se)return;if(!_e){un("failure");return}u.value=[...u.value,{id:ao(),name:q.name,url:`/codex-local-image?path=${encodeURIComponent(_e)}`}],un("success")}catch{j===se&&un("failure")}finally{Zr(j)}}async function cn(I,j){if(Zo(j))try{const q=await yc(I);if(j!==se)return;if(!q){un("failure");return}Dn(q),un("success")}catch{j===se&&un("failure")}finally{Zr(j)}}async function Oo(I,j){if(Zo(j))try{const q=Un(I),_e=await yc(q);if(j!==se)return;if(!_e){un("failure");return}const ht=_e.replace(/\\/g,"/");u.value=[...u.value,{id:ao(),name:q.name,url:`/codex-local-image?path=${encodeURIComponent(ht)}`}],Dn(ht),un("success")}catch{j===se&&un("failure")}finally{Zr(j)}}function Xn(I){const j=ai(I);if(j.length===0)return;Ra(j.length),Ae.value=!1,Cn();const q=se;for(const _e of j)Fn(_e)?io(_e,q):Ir(_e)?Oo(_e,q):cn(_e,q)}function Do(){G=0,O.value=!1}function Bn(I){return I?Array.from(I.types??[]).includes("Files"):!1}async function jt(I){if(!I||I.length===0)return;const j=re.value,q=Array.from(I),ht=(q[0].webkitRelativePath||q[0].name).split("/").filter(Boolean)[0]||"Folder",vt=`${Date.now()}-${Math.random().toString(36).slice(2)}`;g.value=[...g.value,{id:vt,name:ht,total:q.length,processed:0,filePaths:[],isUploading:!0}];const $t=Lt=>{j===re.value&&(g.value=g.value.map(Zt=>Zt.id===vt?Lt(Zt):Zt))};for(const Lt of q)try{const Zt=await yc(Lt);if(j!==re.value)return;if(Zt){const An=Lt.webkitRelativePath||Lt.name;Dn(Zt,An),$t(Zn=>({...Zn,processed:Zn.processed+1,filePaths:[...Zn.filePaths,Zt]}));continue}$t(An=>({...An,processed:An.processed+1}))}catch{$t(Zt=>({...Zt,processed:Zt.processed+1}))}$t(Lt=>({...Lt,isUploading:!1}))}function dn(I){I&&(I.value="")}function Yt(I){const j=I.target;Xn((j==null?void 0:j.files)??null),dn(j),Ae.value=!1}function kn(I){const j=I.target;Xn((j==null?void 0:j.files)??null),dn(j),Ae.value=!1}function lo(I){const j=I.target;jt((j==null?void 0:j.files)??null),dn(j),Ae.value=!1}function uo(I){Ze.value||!Bn(I.dataTransfer)||(I.preventDefault(),G+=1,O.value=!0)}function ko(I){Ze.value||!Bn(I.dataTransfer)||(I.preventDefault(),I.dataTransfer&&(I.dataTransfer.dropEffect="copy"),O.value=!0)}function ea(I){O.value&&(I.preventDefault(),G=Math.max(0,G-1),G===0&&Do())}function mr(I){var j;Ze.value||!Bn(I.dataTransfer)||(I.preventDefault(),Do(),Xn(((j=I.dataTransfer)==null?void 0:j.files)??null))}function er(){!O.value&&G===0||Do()}function vr(I){var vt,$t;if(Ze.value)return;const j=((vt=I.clipboardData)==null?void 0:vt.getData("text/plain"))??"";if(j.length>=xM){I.preventDefault();const Lt=new File([j],kt(),{type:"text/plain",lastModified:Date.now()});Xn([Lt]);return}const q=Array.from((($t=I.clipboardData)==null?void 0:$t.items)??[]);if(q.length===0)return;const _e=j.length>0,ht=q.filter(Lt=>Lt.kind==="file"&&Lt.type.startsWith("image/")).map(Lt=>Lt.getAsFile()).filter(Lt=>Lt instanceof File);ht.length!==0&&(_e||I.preventDefault(),Xn(ht))}function Co(){w.value&&(w.value=""),On(),ta(),Fo()}function Rr(I){if(I.isComposing||I.keyCode===229)return;if(he.value){if(I.key==="Escape"){I.preventDefault(),Cn();return}if(I.key==="ArrowDown"){I.preventDefault(),je.value.length>0&&(Se.value=(Se.value+1)%je.value.length);return}if(I.key==="ArrowUp"){if(I.preventDefault(),je.value.length>0){const q=je.value.length;Se.value=(Se.value+q-1)%q}return}if(I.key==="Enter"||I.key==="Tab"){I.preventDefault();const q=je.value[Se.value];q?tr(q):Cn();return}}if(Pe.value){if(I.key==="Escape"){I.preventDefault(),co();return}if(I.key==="ArrowDown"){I.preventDefault(),He.value.length>0&&(Ye.value=(Ye.value+1)%He.value.length);return}if(I.key==="ArrowUp"){if(I.preventDefault(),He.value.length>0){const q=He.value.length;Ye.value=(Ye.value+q-1)%q}return}if(I.key==="Enter"||I.key==="Tab"){I.preventDefault();const q=He.value[Ye.value];q?mn(q):co();return}}if(o.sendWithEnter!==!1?I.key==="Enter"&&!I.shiftKey:I.key==="Enter"&&(I.metaKey||I.ctrlKey)){I.preventDefault(),on(o.isTurnInProgress?de.value:"steer");return}}function Cn(){if(he.value=!1,pe.value=null,Ne.value="",je.value=[],Se.value=0,D=!1,$){const I=$;$="",FT(I)}}function ta(){const I=J.value;if(!I){Cn();return}const j=I.selectionStart??a.value.length,_e=a.value.slice(0,j).match(/(^|\s)(@[^\s@]*)$/);if(!_e){Cn();return}const ht=_e[2]??"",vt=ht.length,$t=j-vt;Pe.value&&co(),pe.value=$t,Ne.value=ht.slice(1),he.value=!0,Nt()}function co(){Pe.value=!1,Ee.value=null,Ue.value="",Ye.value=0,He.value=xt.value}function Fo(){const I=J.value;if(!I){co();return}const j=I.selectionStart??a.value.length,q=a.value.slice(0,j),_e=NI(q);if(!_e){co();return}he.value&&Cn(),Ee.value=_e.startIndex,Ue.value=_e.query,He.value=LI(xt.value,_e.query),Ye.value=0,Pe.value=!0}function mn(I){const j=J.value,q=Ee.value;if(q!==null&&j){const _e=j.selectionStart??a.value.length;a.value=`${a.value.slice(0,q)}${a.value.slice(_e)}`}if(co(),I.kind==="skill"){const _e=(o.skills??[]).find(vt=>vt.path===I.skillPath||vt.name===I.id);_e&&!d.value.some(vt=>vt.path===_e.path)&&(d.value=[...d.value,{..._e}]);const ht=a.value.trim();a.value=ht.length>0?`${ht} (Use the ${I.id} skill.)`:`Use the ${I.id} skill.`,Ht(()=>{j==null||j.focus(),no()});return}if(I.kind==="rpc"){r("slash-command",I.id);return}I.kind==="text"&&I.insertText&&(a.value=a.value.trimEnd(),a.value=a.value.length>0?`${a.value} ${I.insertText}`:I.insertText),I.kind==="local"&&I.id==="clear"&&(a.value=""),Ht(()=>{j==null||j.focus(),no()})}async function Nt(){if(!he.value)return;const I=(o.cwd??"").trim();if(!I){je.value=[],D=!0;return}D=!1,Be&&clearTimeout(Be);const j=++W;Be=setTimeout(async()=>{const q=`composer-${j}`,_e=Ne.value;try{if($||(await OT([I],q),$=q,r("register-fuzzy-session",q)),await DT($,_e),!he.value||j!==W)return;if(je.value=(o.fuzzyFileSearchResults??[]).map(ht=>({path:ht.path})),Se.value=0,je.value.length===0)try{const ht=await Om(I,_e,20);if(!he.value||j!==W)return;je.value=ht,Se.value=0}catch{if(!he.value||j!==W)return;je.value=[]}}catch{if(!he.value||j!==W)return;$="";try{const ht=await Om(I,_e,20);if(!he.value||j!==W)return;je.value=ht,Se.value=0}catch{if(!he.value||j!==W)return;je.value=[]}}},120)}function tr(I){const j=J.value,q=pe.value;if(q!==null&&j){const _e=j.selectionStart??a.value.length;a.value=`${a.value.slice(0,q)}${a.value.slice(_e)}`.trimEnd()}Dn(I.path),Cn(),Ht(()=>j==null?void 0:j.focus())}function To(I){Z(),Aa(I),Ht(()=>{var j;(j=J.value)==null||j.focus(),no()})}function Mr(I){const j=I.trim();j&&(a.value=a.value.trim()?`${a.value.trim()}
|
|
61
|
-
${j}`:j,Ht(()=>{var q;(q=J.value)==null||q.focus(),no()}))}function vn(I){const j=I.lastIndexOf("/");return j<0?I:I.slice(j+1)}function Ma(I){const j=I.lastIndexOf("/");return j<=0?"":I.slice(0,j)}function So(I){const j=vn(I),q=j.lastIndexOf(".");return q<=0?"":j.slice(q+1).toLowerCase()}function gr(I){const j=So(I);return j==="ts"?"TS":j==="tsx"?"TSX":j==="js"?"JS":j==="jsx"?"JSX":j==="json"?"{}":""}function si(I){const j=So(I);return j.startsWith("ts")?"ts":j.startsWith("js")?"js":j==="json"?"json":"default"}function gn(I){const j=So(I);return j==="md"||j==="mdx"}function $n(I){if(!Ae.value&&!ye.value&&!$e.value)return;const j=I.target;j&&(typeof j.closest=="function"&&j.closest(".composer-popover-anchor")||(Ae.value=!1,ye.value=!1,$e.value=!1))}return xs(()=>{document.addEventListener("click",$n),window.addEventListener("drop",er),window.addEventListener("dragend",er),window.addEventListener("blur",er),On()}),t({hydrateDraft:To,appendTextToDraft:Mr,hasUnsavedDraft:()=>wt.value}),zi(()=>{document.removeEventListener("click",$n),window.removeEventListener("drop",er),window.removeEventListener("dragend",er),window.removeEventListener("blur",er),window.removeEventListener("pointerup",oo),window.removeEventListener("pointercancel",oo),window.removeEventListener("blur",oo),Be&&clearTimeout(Be)}),ot(()=>o.activeThreadId,I=>{Z(),oe&&pt(oe,ln()),As();const j=Kt(I);j&&(Aa(j),Co()),oe=I.trim()},{immediate:!0}),ot([a,u,m,d],()=>{oe&&pt(oe,ln())},{deep:!0}),ot(a,()=>{On()}),ot(()=>o.cwd,()=>{he.value&&Nt()}),ot(()=>o.fuzzyFileSearchResults,I=>{!he.value||!$||(je.value=(I??[]).map(j=>({path:j.path})),Se.value=0)}),ot(X,I=>{de.value=I}),(I,j)=>(T(),A("form",{class:"thread-composer",onSubmit:j[9]||(j[9]=Qe(q=>on(e.isTurnInProgress?de.value:"steer"),["prevent"]))},[f("div",{class:Ke(["thread-composer-shell",{"thread-composer-shell--no-top-radius":e.hasQueueAbove,"thread-composer-shell--drag-active":O.value}])},[e.planPanel?(T(),A("div",{key:0,class:"thread-composer-plan-panel","data-streaming":e.planPanel.streaming},[xe(bc,{open:Ge.value,align:"center",width:"lg","panel-class":"thread-composer-plan-panel-popover","aria-label":v(s)("Plan"),"onUpdate:open":j[1]||(j[1]=q=>Ge.value=q)},{trigger:et(()=>{var q,_e;return[f("button",{type:"button",class:"thread-composer-plan-panel-header","aria-expanded":Ge.value,onClick:j[0]||(j[0]=ht=>Ge.value=!Ge.value)},[j[10]||(j[10]=f("span",{class:"thread-composer-plan-panel-icon","aria-hidden":"true"},"🗒",-1)),f("span",FI,k(v(s)("Plan")),1),e.planPanel.streaming?(T(),A("span",UI,k(v(s)("Updating")),1)):Q("",!0),f("span",BI,k(tt.value)+"/"+k(e.planPanel.steps.length),1),f("span",{class:"thread-composer-plan-panel-latest",title:((q=ct.value)==null?void 0:q.step)??""},[ct.value?(T(),A("span",{key:0,class:"thread-composer-plan-panel-latest-status","data-status":ct.value.status},k(St(ct.value.status)),9,zI)):Q("",!0),f("span",HI,k(((_e=ct.value)==null?void 0:_e.step)??""),1)],8,qI),xe(ei,{class:"thread-composer-plan-panel-chevron"})],8,DI)]}),default:et(()=>[f("div",WI,[f("div",VI,[f("header",GI,[j[11]||(j[11]=f("span",{class:"thread-composer-plan-panel-icon","aria-hidden":"true"},"🗒",-1)),f("span",KI,k(v(s)("Plan")),1),f("span",YI,k(tt.value)+"/"+k(e.planPanel.steps.length),1)]),e.planPanel.explanation?(T(),A("section",JI,[f("p",QI,k(v(s)("Summary")),1),f("p",{class:"thread-composer-plan-panel-explanation",title:e.planPanel.explanation},k(_t.value),9,XI)])):Q("",!0),f("section",ZI,[f("p",eR,k(v(s)("Steps"))+" ("+k(e.planPanel.steps.length)+")",1),f("ol",tR,[(T(!0),A(ze,null,Tt(e.planPanel.steps,(q,_e)=>(T(),A("li",{key:`composer-plan-${e.planPanel.id}-${_e}`,class:"thread-composer-plan-panel-step","data-status":q.status},[f("span",{class:"thread-composer-plan-panel-step-status","data-status":q.status},k(St(q.status)),9,oR),f("span",{class:"thread-composer-plan-panel-step-text",title:q.step},k(q.step),9,rR)],8,nR))),128))])])]),f("footer",aR,[f("button",{type:"button",class:"thread-composer-plan-panel-implement",disabled:e.planPanel.streaming||e.planPanel.implemented,"data-state":e.planPanel.implemented?"done":e.planPanel.streaming?"running":"idle",onClick:yt},k(e.planPanel.implemented?v(s)("Plan executed"):e.planPanel.streaming?v(s)("Implementing…"):v(s)("Implement plan")),9,sR)])])]),_:1},8,["open","aria-label"])],8,OI)):Q("",!0),u.value.length>0?(T(),A("div",iR,[(T(!0),A(ze,null,Tt(u.value,q=>(T(),A("div",{key:q.id,class:"thread-composer-attachment"},[Xr(q.url)?(T(),A("video",{key:0,class:"thread-composer-attachment-image",src:q.url,controls:"",preload:"metadata"},null,8,lR)):(T(),A("img",{key:1,class:"thread-composer-attachment-image",src:q.url,alt:q.name||"Selected image"},null,8,uR)),f("button",{class:"thread-composer-attachment-remove",type:"button","aria-label":`Remove ${q.name||"image"}`,disabled:Ze.value,onClick:_e=>No(q.id)}," x ",8,cR)]))),128))])):Q("",!0),g.value.length>0?(T(),A("div",dR,[(T(!0),A(ze,null,Tt(g.value,q=>(T(),A("span",{key:q.id,class:"thread-composer-folder-chip"},[xe(Sp,{class:"thread-composer-folder-chip-icon"}),f("span",{class:"thread-composer-folder-chip-name",title:q.name},k(q.name),9,fR),f("span",pR,[q.isUploading?(T(),A(ze,{key:0},[bs(k(ro(q))+"% uploading ("+k(q.processed)+"/"+k(q.total)+") ",1)],64)):(T(),A(ze,{key:1},[bs(k(q.filePaths.length)+" file"+k(q.filePaths.length===1?"":"s"),1)],64))]),f("button",{class:"thread-composer-folder-chip-remove",type:"button","aria-label":`Remove folder ${q.name}`,disabled:Ze.value,onClick:_e=>_o(q.id)},"×",8,hR)]))),128))])):Q("",!0),Rt.value.length>0?(T(),A("div",mR,[(T(!0),A(ze,null,Tt(Rt.value,q=>(T(),A("span",{key:q.fsPath,class:"thread-composer-file-chip"},[xe(Rl,{class:"thread-composer-file-chip-icon"}),f("span",{class:"thread-composer-file-chip-name",title:q.fsPath},k(q.label),9,vR),f("button",{class:"thread-composer-file-chip-remove",type:"button","aria-label":`Remove ${q.label}`,disabled:Ze.value,onClick:_e=>Vn(q.fsPath)},"×",8,gR)]))),128))])):Q("",!0),d.value.length>0?(T(),A("div",yR,[(T(!0),A(ze,null,Tt(d.value,q=>(T(),A("span",{key:q.path,class:"thread-composer-skill-chip"},[f("button",{class:"thread-composer-skill-chip-name",type:"button",title:Dt(q.path),"aria-label":`Open ${q.displayName||q.name} SKILL.md`,onClick:_e=>Mt(q)},k(q.displayName||q.name),9,wR),f("button",{class:"thread-composer-skill-chip-remove",type:"button","aria-label":`Remove skill ${q.displayName||q.name}`,onClick:_e=>Lo(q.path)},"×",8,bR)]))),128))])):Q("",!0),f("div",_R,[f("div",kR,[f("div",{class:Ke(["thread-composer-input-wrap",{"thread-composer-input-wrap--drag-active":O.value,"thread-composer-input-wrap--expanded":ut.value}]),onDragenter:uo,onDragover:ko,onDragleave:ea,onDrop:mr},[O.value?(T(),A("div",CR,[f("span",TR,k(v(s)("Drop images or files")),1)])):Q("",!0),he.value?(T(),A("div",SR,[je.value.length>0?(T(!0),A(ze,{key:0},Tt(je.value,(q,_e)=>(T(),A("button",{key:q.path,class:Ke(["thread-composer-file-mention-row",{"is-active":_e===Se.value}]),type:"button",onMousedown:Qe(ht=>tr(q),["prevent"])},[gr(q.path)?(T(),A("span",{key:0,class:Ke(["thread-composer-file-mention-icon-badge",`is-${si(q.path)}`])},k(gr(q.path)),3)):gn(q.path)?(T(),A("span",AR,"↓")):(T(),rt(Rl,{key:2,class:"thread-composer-file-mention-icon-file"})),f("span",PR,[f("span",ER,k(vn(q.path)),1),Ma(q.path)?(T(),A("span",IR,k(Ma(q.path)),1)):Q("",!0)])],42,xR))),128)):v(D)?(T(),A("div",RR,k(v(s)("No searchable directory for this thread")),1)):(T(),A("div",MR,k(v(s)("No matching files")),1))])):Q("",!0),Pe.value?(T(),rt(MI,{key:2,commands:He.value,"highlighted-index":Ye.value,onSelect:mn},null,8,["commands","highlighted-index"])):Q("",!0),Ot(f("textarea",{ref_key:"inputRef",ref:J,"onUpdate:modelValue":j[2]||(j[2]=q=>a.value=q),class:"thread-composer-input",placeholder:We.value,disabled:Ze.value,onInput:Co,onKeydown:Rr,onPaste:vr},null,40,$R),[[sn,a.value]]),Gt.value?(T(),A("button",{key:3,class:"thread-composer-expand",type:"button","aria-label":ut.value?v(s)("Exit full screen composer"):v(s)("Expand composer"),title:ut.value?v(s)("Exit full screen composer"):v(s)("Expand composer"),disabled:Ze.value,onClick:hr},[ut.value?(T(),rt(dI,{key:0,class:"thread-composer-expand-icon"})):(T(),rt(iI,{key:1,class:"thread-composer-expand-icon"}))],8,jR)):Q("",!0)],34),f("div",NR,[e.isTurnInProgress&&!nt.value?(T(),A("button",{key:0,class:"thread-composer-stop",type:"button","aria-label":e.isStopPending?v(s)("Saving thread before stop is available"):v(s)("Stop"),title:e.isStopPending?v(s)("Saving thread before stop is available"):v(s)("Stop"),disabled:e.disabled||!e.activeThreadId||e.isInterruptingTurn||e.isStopPending||e.externalSessionActive===!0,onClick:pr},[e.isStopPending?(T(),A("span",OR)):(T(),rt(mI,{key:1,class:"thread-composer-stop-icon"}))],8,LR)):(T(),A("button",{key:1,class:Ke(["thread-composer-submit",{"thread-composer-submit--queue":e.isTurnInProgress&&de.value==="queue"}]),type:"button","aria-label":e.isCompacting?v(s)("Compacting context — the message will send after compaction"):e.isTurnInProgress&&de.value==="queue"?v(s)("Queue message"):v(s)("Send message"),title:e.isCompacting?v(s)("Compacting context — the message will send after compaction"):e.isTurnInProgress?`${v(s)("Send")} ${de.value==="queue"?v(s)("Queue"):v(s)("Steer")}`:v(s)("Send"),disabled:!st.value,onClick:j[3]||(j[3]=q=>on(e.isTurnInProgress?de.value:"steer"))},[xe(oI,{class:"thread-composer-submit-icon"})],10,DR))])]),f("div",{class:Ke(["thread-composer-controls",{"thread-composer-controls--recording":De.value}])},[xe(bc,{open:Ae.value,align:"start",width:"lg","aria-label":v(s)("Add photos & files"),"onUpdate:open":j[6]||(j[6]=q=>Ae.value=q)},{trigger:et(()=>[f("button",{class:"thread-composer-attach-trigger",type:"button","aria-label":v(s)("Add photos & files"),disabled:Ze.value,onClick:_n}," + ",8,FR)]),default:et(()=>[f("button",{class:"thread-composer-attach-item",type:"button",disabled:Ze.value,onClick:Qr},k(v(s)("Add photos & files")),9,UR),f("button",{class:"thread-composer-attach-item",type:"button",disabled:Ze.value,onClick:bo},k(v(s)("Add folder")),9,BR),f("button",{class:"thread-composer-attach-item",type:"button",disabled:Ze.value,onClick:Ea},k(v(s)("Take photo")),9,qR),j[14]||(j[14]=f("div",{class:"thread-composer-attach-separator"},null,-1)),f("div",zR,[f("span",HR,k(v(s)("In-progress send")),1),f("div",WR,[f("button",{class:Ke(["thread-composer-attach-mode-button",{"is-active":de.value==="steer"}]),type:"button",disabled:Ze.value,onClick:j[4]||(j[4]=q=>to("steer"))},k(v(s)("Steer")),11,VR),f("button",{class:Ke(["thread-composer-attach-mode-button",{"is-active":de.value==="queue"}]),type:"button",disabled:Ze.value,onClick:j[5]||(j[5]=q=>to("queue"))},k(v(s)("Queue")),11,GR)])]),v(ge)?(T(),A(ze,{key:0},[j[12]||(j[12]=f("div",{class:"thread-composer-attach-separator"},null,-1)),f("div",KR,[f("span",YR,k(v(s)("Plan mode")),1),f("div",JR,[(T(!0),A(ze,null,Tt(Ie.value,q=>(T(),A("button",{key:`mobile-plan-${q.value}`,class:Ke(["thread-composer-attach-mode-button",{"is-active":e.selectedCollaborationMode===q.value}]),type:"button",disabled:q.disabled||Vt.value,onClick:_e=>Jn(q.value)},k(v(s)(q.labelKey)),11,QR))),128))])]),j[13]||(j[13]=f("div",{class:"thread-composer-attach-separator"},null,-1)),f("div",XR,[f("span",ZR,k(v(s)("Approval policy")),1),f("div",eM,[(T(),A(ze,null,Tt(be,q=>f("button",{key:`mobile-approval-${q.value}`,class:Ke(["thread-composer-attach-mode-button",{"is-active":e.approvalPolicy===q.value}]),type:"button",disabled:e.isApprovalPolicySaving,onClick:_e=>Qa(q.value)},k(v(s)(q.label)),11,tM)),64))])]),e.approvalPolicyError?(T(),A("p",nM,k(e.approvalPolicyError),1)):Q("",!0),xe(Au,{name:"approval-tip"},{default:et(()=>[e.approvalPolicyNotice?(T(),A("span",oM,k(e.approvalPolicyNotice),1)):Q("",!0)]),_:1})],64)):Q("",!0)]),_:1},8,["open","aria-label"]),v(ge)?Q("",!0):(T(),rt(bc,{key:0,open:ye.value,align:"start",width:"md","aria-label":v(s)("Plan mode"),"onUpdate:open":j[7]||(j[7]=q=>ye.value=q)},{trigger:et(()=>[f("button",{class:Ke(["thread-composer-plan-trigger",{"is-active":ye.value}]),type:"button","aria-label":v(s)("Plan mode"),disabled:Vt.value,onClick:Jr},[f("span",aM,k(Fe.value),1),xe(ei,{class:"thread-composer-plan-trigger-chevron"})],10,rM)]),default:et(()=>[(T(!0),A(ze,null,Tt(Ie.value,q=>(T(),A("button",{key:q.value,class:Ke(["thread-composer-menu-item",{"is-active":e.selectedCollaborationMode===q.value}]),type:"button",role:"menuitemradio","aria-checked":e.selectedCollaborationMode===q.value,disabled:q.disabled||Vt.value,onClick:_e=>Ja(q.value)},[f("span",iM,[f("span",lM,k(v(s)(q.labelKey)),1),q.subLabel?(T(),A("span",uM,k(q.subLabel),1)):Q("",!0),q.disabled?(T(),A("span",cM,k(v(s)("Not supported by this Codex version")),1)):Q("",!0)]),e.selectedCollaborationMode===q.value?(T(),A("span",dM,"✓")):Q("",!0)],10,sM))),128))]),_:1},8,["open","aria-label"])),v(ge)?Q("",!0):(T(),rt(bc,{key:1,open:$e.value,align:"center",width:"md","aria-label":v(s)("Approval policy"),"onUpdate:open":j[8]||(j[8]=q=>$e.value=q)},{trigger:et(()=>[f("button",{class:Ke(["thread-composer-approval-trigger",{"is-active":$e.value}]),type:"button","aria-label":v(s)("Approval policy"),disabled:Vt.value,onClick:Xt},[f("span",pM,k(Me.value),1),xe(ei,{class:"thread-composer-approval-trigger-chevron"})],10,fM)]),default:et(()=>[(T(),A(ze,null,Tt(be,q=>f("button",{key:q.value,class:Ke(["thread-composer-menu-item",{"is-active":e.approvalPolicy===q.value}]),type:"button",role:"menuitemradio","aria-checked":e.approvalPolicy===q.value,disabled:e.isApprovalPolicySaving,onClick:_e=>Qa(q.value)},[f("span",mM,[f("span",vM,k(v(s)(q.label)),1)]),e.approvalPolicy===q.value?(T(),A("span",gM,"✓")):Q("",!0)],10,hM)),64)),e.approvalPolicyError?(T(),A("p",yM,k(e.approvalPolicyError),1)):Q("",!0),xe(Au,{name:"approval-tip"},{default:et(()=>[e.approvalPolicyNotice?(T(),A("span",wM,k(e.approvalPolicyNotice),1)):Q("",!0)]),_:1})]),_:1},8,["open","aria-label"])),xe(ur,{class:"thread-composer-control thread-composer-model-control","model-value":e.selectedModel,options:ue.value,"selected-prefix-icon":K.value?ga:null,placeholder:v(s)("Model"),"open-direction":"up",variant:"pill",disabled:Vt.value||e.models.length===0,"enable-search":"","search-placeholder":v(s)("Search models..."),"onUpdate:modelValue":Pa},null,8,["model-value","options","selected-prefix-icon","placeholder","disabled","search-placeholder"]),xe(ur,{class:"thread-composer-control thread-composer-thinking-control","model-value":e.selectedReasoningEffort,options:we.value,placeholder:v(s)("Thinking"),"open-direction":"up",variant:"pill",disabled:Vt.value||we.value.length===0,"onUpdate:modelValue":Mn},null,8,["model-value","options","placeholder","disabled"]),Wn.value?(T(),A("button",{key:2,type:"button",class:Ke(["thread-composer-context-usage-inline",{"is-warning":eo.value==="warning","is-danger":eo.value==="danger"}]),title:yo.value,"aria-label":v(s)("Context"),onClick:wo},[f("span",_M,k(Jo.value),1),eo.value!=="healthy"?(T(),A("span",kM,k(v(s)("Compact")),1)):Q("",!0)],10,bM)):Q("",!0)],2)])],2),f("input",{ref_key:"photoLibraryInputRef",ref:ce,class:"thread-composer-hidden-input",type:"file",multiple:"",disabled:Ze.value,onChange:Yt},null,40,CM),f("input",{ref_key:"cameraCaptureInputRef",ref:B,class:"thread-composer-hidden-input",type:"file",accept:"image/*",capture:"environment",disabled:Ze.value,onChange:kn},null,40,TM),f("input",{ref_key:"folderPickerInputRef",ref:Y,class:"thread-composer-hidden-input",type:"file",multiple:"",webkitdirectory:"",directory:"",disabled:Ze.value,onChange:lo},null,40,SM)],32))}}),tv=Pt(PM,[["__scopeId","data-v-d4f9813b"]]),EM={class:"thread-pending-request-title"},IM=["title"],RM={class:"thread-pending-request-approval"},MM=["aria-label"],$M=["aria-pressed","onClick"],jM={class:"thread-pending-request-option-index"},NM={class:"thread-pending-request-option-label"},LM={class:"thread-pending-request-footer thread-pending-request-footer--approval"},OM=["value","placeholder"],DM={key:0,class:"thread-pending-request-validation-error",role:"alert"},FM={class:"thread-pending-request-header"},UM={class:"thread-pending-request-heading"},BM={class:"thread-pending-request-eyebrow"},qM={class:"thread-pending-request-title"},zM={key:0,class:"thread-pending-request-counter"},HM={key:0,class:"thread-pending-request-preview"},WM={class:"thread-pending-request-preview-code"},VM={key:1,class:"thread-pending-request-validation-error",role:"alert"},GM={key:2,class:"thread-pending-request-user-input"},KM={key:0,class:"thread-pending-request-question-description"},YM=["href"],JM={class:"thread-pending-request-question-title"},QM={key:0},XM={key:0,class:"thread-pending-request-question-text"},ZM={key:1,class:"thread-pending-request-input-wrap"},e$={class:"thread-pending-request-select-label"},t$=["type","value","onInput"],n$={key:2,class:"thread-pending-request-select-wrap"},o$={class:"thread-pending-request-select-label"},r$={key:3,class:"thread-pending-request-select-wrap"},a$={class:"thread-pending-request-select-label"},s$={key:4,class:"thread-pending-request-question-options"},i$=["checked","onChange"],l$={class:"thread-pending-request-checkbox-label"},u$={key:2,class:"thread-pending-request-validation-error"},c$={class:"thread-pending-request-footer"},d$={key:3,class:"thread-pending-request-user-input"},f$={class:"thread-pending-request-question-title"},p$={key:0,class:"thread-pending-request-question-text"},h$={key:1,class:"thread-pending-request-question-options"},m$={class:"thread-pending-request-select-wrap"},v$={class:"thread-pending-request-select-label"},g$={key:0,class:"thread-pending-request-question-description"},y$={key:2,class:"thread-pending-request-input-wrap"},w$={class:"thread-pending-request-select-label"},b$=["value","placeholder","onInput"],_$={class:"thread-pending-request-footer"},k$={key:4,class:"thread-pending-request-actions"},C$={key:5,class:"thread-pending-request-actions"},T$=Ln({__name:"ThreadPendingRequestPanel",props:{request:{},requestCount:{},hasQueueAbove:{type:Boolean},panelWidth:{},panelError:{}},emits:["respondServerRequest"],setup(e,{emit:t}){const n=e,o=t,r=ee(()=>{const V=typeof n.panelWidth=="number"&&n.panelWidth>0?n.panelWidth:0;return V>0?{width:`${V}px`}:{}}),s=S("accept"),a=S(""),u=S({}),d=S({}),m=S({}),g=S(""),{t:w}=Er();function x(V){return V!==null&&typeof V=="object"&&!Array.isArray(V)?V:null}function R(V){return typeof V=="string"?V.trim():""}function O(V){return typeof V=="string"?V:null}function z(V){return/^[A-Za-z0-9_./:@%+=,-]+$/.test(V)?V:JSON.stringify(V)}function Z(V){const X=(Array.isArray(V.commandActions)?V.commandActions:[]).map(de=>x(de)).map(de=>R(de==null?void 0:de.command)).find(de=>de.length>0);if(X)return X.replace(/\s+/g," ").trim();if(Array.isArray(V.command)){const de=V.command.filter(De=>typeof De=="string").map(De=>De.trim()).filter(De=>De.length>0);if(de.length>0)return de.map(De=>z(De)).join(" ")}return pe(R(V.command))}function ce(V){return V.method==="item/commandExecution/requestApproval"||V.method==="execCommandApproval"}function B(V){return V.method==="item/fileChange/requestApproval"||V.method==="applyPatchApproval"}function Y(V){return V.method==="item/permissions/requestApproval"}function J(V){return ce(V)||B(V)||Y(V)}function ge(V){return V.method==="mcpServer/elicitation/request"}function Ae(V){const K=x(V.params);return R(K==null?void 0:K.reason)||R(K==null?void 0:K.prompt)||R(K==null?void 0:K.message)}function ye(V){return J(V)?w("Awaiting approval"):ge(V)?w("MCP server input required"):V.method==="item/tool/requestUserInput"?w("Awaiting response"):V.method==="item/tool/call"?w("Tool call waiting for response"):V.method}function $e(V){const K=Ae(V);return K||(ce(V)?w("Do you want to run this command?"):B(V)?w("Do you want to make these changes?"):Y(V)?w("Do you want to grant these permissions?"):ge(V)?w("An MCP server needs your input before Codex can continue."):V.method==="item/tool/requestUserInput"?w("Codex needs your answer before it can continue."):w("Codex is waiting for a response before it can continue."))}function pe(V){var We;const K=V.trim();if(!K)return"";const X=K.match(/-Command\s+(.+)$/i),de=((We=X==null?void 0:X[1])==null?void 0:We.trim())??K;return(de.startsWith('"')&&de.endsWith('"')?de.slice(1,-1):de).replace(/\\"/g,'"').replace(/`"/g,'"').replace(/""/g,'"').replace(/\s+/g," ").trim()}function Ne(V){const K=x(V.params);if(!K)return"";if(ce(V))return Z(K);if(B(V)){const X=R(K.grantRoot)||R(K.grant_root);if(X)return X.replace(/\s+/g," ").trim();const de=x(K.fileChanges)??x(K.changes);if(!de)return"";const De=Object.keys(de).map(We=>We.trim()).filter(We=>We.length>0);return De.length===0?"":De.slice(0,3).join(", ")}return Y(V)?je(K.permissions):ge(V)?R(K.serverName)||R(K.url):""}function je(V){const K=x(V);if(!K)return"";const X=[],de=x(K.fileSystem),De=x(K.network),We=Array.isArray(de==null?void 0:de.read)?de.read.filter(Bt=>typeof Bt=="string"):[],nt=Array.isArray(de==null?void 0:de.write)?de.write.filter(Bt=>typeof Bt=="string"):[];return We.length>0&&X.push(`${w("Read")}: ${We.join(", ")}`),nt.length>0&&X.push(`${w("Write")}: ${nt.join(", ")}`),(De==null?void 0:De.enabled)===!0&&X.push(w("Network access")),X.join(" • ")}function he(V){return!V||!J(V)?[]:[{id:"accept",label:w("Yes")},{id:"acceptForSession",label:w("Yes for Session")}]}const Se=ee(()=>he(n.request));ot(()=>{var V;return((V=n.request)==null?void 0:V.id)??0},()=>{var V;a.value="",u.value={},d.value={},m.value={},g.value="",s.value=((V=Se.value[0])==null?void 0:V.id)??"accept"},{immediate:!0}),ot(Se,V=>{var K;s.value!=="decline"&&(V.some(X=>X.id===s.value)||(s.value=((K=V[0])==null?void 0:K.id)??"accept"))},{immediate:!0});function Pe(V,K){return`${String(V)}:${K}`}function Ee(V){const K=x(V.params),X=Array.isArray(K==null?void 0:K.questions)?K.questions:[],de=[];for(const De of X){const We=x(De);if(!We)continue;const nt=R(We.id);if(!nt)continue;const Bt=Array.isArray(We.options)?We.options.map(Gt=>x(Gt)).map(Gt=>({label:R(Gt==null?void 0:Gt.label),description:R(Gt==null?void 0:Gt.description)})).filter(Gt=>Gt.label.length>0):[];de.push({id:nt,header:R(We.header),question:R(We.question),isOther:We.isOther===!0,options:Bt})}return de}function Ue(V,K,X){const de=Pe(V,K),De=u.value[de];return typeof De=="string"&&De.length>0?De:X}function Ye(V,K){return d.value[Pe(V,K)]??""}function He(V,K,X){const de=Pe(V,K);u.value={...u.value,[de]:X}}function xt(V){return V.options.map(K=>({value:K.label,label:K.label}))}function ut(V,K,X){const de=X.target;if(!(de instanceof HTMLInputElement))return;const De=Pe(V,K);d.value={...d.value,[De]:de.value}}function Ge(V,K,X){var De,We;const de=Ue(V,K,((De=X[0])==null?void 0:De.label)||"");return((We=X.find(nt=>nt.label===de))==null?void 0:We.description)??""}function tt(V,K){return`${String(V)}:${K}`}function ct(V){var K;return R((K=x(V.params))==null?void 0:K.serverName)}function _t(V){var X;const K=R((X=x(V.params))==null?void 0:X.url);if(!K)return"";try{const de=new URL(K),De=de.protocol.toLowerCase();return De==="https:"||De==="http:"?de.toString():""}catch{return""}}function St(V){const K=x(V.params),X=x(K==null?void 0:K.requestedSchema),de=x(X==null?void 0:X.properties);if(!de)return[];const De=new Set(Array.isArray(X==null?void 0:X.required)?X.required.filter(We=>typeof We=="string"):[]);return Object.entries(de).map(([We,nt])=>yt(We,x(nt),De.has(We))).filter(We=>We!==null)}function yt(V,K,X){if(!K)return null;const de=R(K.title)||V,De=R(K.description),We=R(K.type);if(We==="boolean")return{key:V,label:de,description:De,required:X,kind:"boolean",inputType:"checkbox",options:[],defaultValue:typeof K.default=="boolean"?K.default:null,hasExplicitDefault:typeof K.default=="boolean"};if(We==="number"||We==="integer")return{key:V,label:de,description:De,required:X,kind:"number",inputType:"number",options:[],defaultValue:typeof K.default=="number"?K.default:null,hasExplicitDefault:typeof K.default=="number"};const nt=ae(K);if(We==="array")return{key:V,label:de,description:De,required:X,kind:"multiEnum",inputType:"checkbox",options:nt,defaultValue:Array.isArray(K.default)?K.default.filter(Gt=>typeof Gt=="string"):[],hasExplicitDefault:Array.isArray(K.default)};const Bt=O(K.default);return nt.length>0?{key:V,label:de,description:De,required:X,kind:"singleEnum",inputType:"select",options:nt,defaultValue:Bt,hasExplicitDefault:Bt!==null}:{key:V,label:de,description:De,required:X,kind:"string",inputType:ne(K),options:[],defaultValue:Bt,hasExplicitDefault:Bt!==null}}function ae(V){const X=(Array.isArray(V.oneOf)?V.oneOf:Array.isArray(V.anyOf)?V.anyOf:[]).map(nt=>x(nt)).map(nt=>({value:R(nt==null?void 0:nt.const),label:R(nt==null?void 0:nt.title)||R(nt==null?void 0:nt.const)})).filter(nt=>nt.value.length>0);if(X.length>0)return X;const de=x(V.items);if(de){const nt=ae(de);if(nt.length>0)return nt}const De=Array.isArray(V.enum)?V.enum.filter(nt=>typeof nt=="string"):[],We=Array.isArray(V.enumNames)?V.enumNames.filter(nt=>typeof nt=="string"):[];return De.map((nt,Bt)=>({value:nt,label:We[Bt]||nt}))}function ne(V){const K=R(V.format);return K==="email"?"email":K==="uri"?"url":K==="date"?"date":K==="date-time"?"datetime-local":"text"}function re(V,K){const X=m.value[tt(V,K.key)];return X!==void 0?X:K.defaultValue}function W(V,K){const X=re(V,K);return Array.isArray(X)?X.filter(de=>typeof de=="string"):[]}function Be(V,K,X){const de=X.target;de instanceof HTMLInputElement&&$(V,K,de.value)}function $(V,K,X){const de=(K.kind==="number",X);m.value={...m.value,[tt(V,K.key)]:X.length>0?de:null},g.value=""}function D(V,K,X){let de=null;X==="true"?de=!0:X==="false"&&(de=!1),m.value={...m.value,[tt(V,K.key)]:de},g.value=""}function G(V,K,X,de){const De=de.target;if(!(De instanceof HTMLInputElement))return;const We=new Set(W(V,K));De.checked?We.add(X):We.delete(X),m.value={...m.value,[tt(V,K.key)]:Array.from(We)},g.value=""}function se(V){return V===!0?"true":V===!1?"false":""}function ie(V){const K=[{value:"true",label:w("True")},{value:"false",label:w("False")}];return V.hasExplicitDefault||K.unshift({value:"",label:w("Select true or false")}),K}function oe(V){const K=V.options.map(X=>({value:X.value,label:X.label}));return V.hasExplicitDefault||K.unshift({value:"",label:w("Select an option")}),K}function Te(V,K){const X=re(V,K);return K.kind==="multiEnum"?Array.isArray(X)&&X.length>0:K.kind==="boolean"?typeof X=="boolean":K.kind==="number"&&typeof X=="number"?!0:typeof X=="string"&&X.trim().length>0}function we(V){const K=St(V).filter(X=>X.required&&!Te(V.id,X)).map(X=>X.label);return K.length===0?"":K.length===1?`${w("Answer the required field")}: ${K[0]}.`:`${w("Answer the required field")}: ${K.join(", ")}.`}function ve(V){const K={};for(const X of St(V)){const de=re(V.id,X);if(X.kind==="multiEnum"){const We=Array.isArray(de)?de:[];(We.length>0||X.required)&&(K[X.key]=We);continue}if(X.kind==="boolean"){typeof de=="boolean"&&(K[X.key]=de);continue}if(X.kind==="number"){const We=typeof de=="number"?de:Number(String(de).trim());Number.isNaN(We)||(K[X.key]=We);continue}const De=String(de??"").trim();(De.length>0||X.required)&&(K[X.key]=De)}return K}function ue(V){s.value=V}function Ie(){s.value="decline"}function be(V){const K=V.target;K instanceof HTMLInputElement&&(a.value=K.value,s.value="decline")}function Fe(V,K){var X;if(Y(V)){if(K==="decline"||K==="cancel"){o("respondServerRequest",{id:V.id,error:{code:-32e3,message:K==="cancel"?"Cancelled from CodexUI.":"Declined from CodexUI."}});return}const de=x((X=x(V.params))==null?void 0:X.permissions)??{};o("respondServerRequest",{id:V.id,result:{permissions:de,scope:K==="acceptForSession"?"session":"turn"}});return}o("respondServerRequest",{id:V.id,result:{decision:K}})}function Me(V){const K=a.value.trim(),X=K.length>0?"decline":s.value;if(Y(V)){Fe(V,X);return}o("respondServerRequest",{id:V.id,result:{decision:X},followUpMessageText:K||void 0})}function Ve(V,K){const X=x(V.params),de={action:K};if(K==="accept"&&R(X==null?void 0:X.mode)==="form"){const De=we(V);if(De){g.value=De;return}de.content=ve(V)}o("respondServerRequest",{id:V.id,result:de})}function st(V){var de;const K=Ee(V),X={};for(const De of K){const We=Ue(V.id,De.id,((de=De.options[0])==null?void 0:de.label)||""),nt=Ye(V.id,De.id).trim(),Bt=[We,nt].map(Gt=>Gt.trim()).filter(Gt=>Gt.length>0);X[De.id]={answers:Bt}}o("respondServerRequest",{id:V.id,result:{answers:X}})}function wt(V){o("respondServerRequest",{id:V.id,result:{success:!1,contentItems:[{type:"inputText",text:"Tool call rejected from CodexUI."}]}})}function Rt(V){o("respondServerRequest",{id:V.id,result:{success:!0,contentItems:[]}})}function Ze(V){o("respondServerRequest",{id:V.id,result:{}})}function Vt(V){o("respondServerRequest",{id:V.id,error:{code:-32e3,message:"Rejected from CodexUI."}})}return(V,K)=>e.request?(T(),A("section",{key:0,class:"thread-pending-request",style:Pr(r.value)},[f("article",{class:Ke(["thread-pending-request-shell",{"thread-pending-request-shell--no-top-radius":e.hasQueueAbove}])},[J(e.request)?(T(),A(ze,{key:0},[f("p",EM,k($e(e.request)),1),Ne(e.request)?(T(),A("p",{key:0,class:"thread-pending-request-command-line",title:Ne(e.request)},k(Ne(e.request)),9,IM)):Q("",!0),f("section",RM,[f("div",{class:"thread-pending-request-options",role:"radiogroup","aria-label":v(w)("Approval choices")},[(T(!0),A(ze,null,Tt(Se.value,(X,de)=>(T(),A("button",{key:X.id,type:"button",class:Ke(["thread-pending-request-option",{"is-selected":s.value===X.id}]),"aria-pressed":s.value===X.id,onClick:De=>ue(X.id)},[f("span",jM,k(de+1)+".",1),f("span",NM,k(X.label),1)],10,$M))),128))],8,MM),f("footer",LM,[f("label",{class:Ke(["thread-pending-request-inline-input",{"is-active":s.value==="decline"||a.value.length>0}])},[K[11]||(K[11]=f("span",{class:"thread-pending-request-option-index"},"3.",-1)),f("input",{class:"thread-pending-request-inline-control",type:"text",value:a.value,placeholder:v(w)("No, and tell Codex what to do differently"),onFocus:Ie,onInput:be,onKeydown:K[0]||(K[0]=In(Qe(X=>Me(e.request),["prevent"]),["enter"]))},null,40,OM)],2),f("button",{type:"button",class:"thread-pending-request-secondary",onClick:K[1]||(K[1]=X=>Fe(e.request,"cancel"))},k(v(w)("Skip")),1),f("button",{type:"button",class:"thread-pending-request-primary",onClick:K[2]||(K[2]=X=>Me(e.request))},k(v(w)("Send")),1)]),e.panelError?(T(),A("p",DM,k(e.panelError),1)):Q("",!0)])],64)):(T(),A(ze,{key:1},[f("header",FM,[f("div",UM,[f("p",BM,k(ye(e.request)),1),f("p",qM,k($e(e.request)),1)]),(e.requestCount??0)>1?(T(),A("span",zM,k(e.requestCount??0)+" "+k(v(w)("pending")),1)):Q("",!0)]),Ne(e.request)?(T(),A("div",HM,[f("code",WM,k(Ne(e.request)),1)])):Q("",!0),e.panelError?(T(),A("p",VM,k(e.panelError),1)):Q("",!0),e.request.method==="mcpServer/elicitation/request"?(T(),A("section",GM,[ct(e.request)?(T(),A("p",KM,k(v(w)("Server"))+": "+k(ct(e.request)),1)):Q("",!0),_t(e.request)?(T(),A("a",{key:1,class:"thread-pending-request-link",href:_t(e.request),target:"_blank",rel:"noopener noreferrer"},k(v(w)("Open authorization link")),9,YM)):Q("",!0),(T(!0),A(ze,null,Tt(St(e.request),X=>(T(),A("div",{key:`${e.request.id}:${X.key}`,class:"thread-pending-request-question"},[f("p",JM,[bs(k(X.label),1),X.required?(T(),A("span",QM," *")):Q("",!0)]),X.description?(T(),A("p",XM,k(X.description),1)):Q("",!0),X.kind==="string"||X.kind==="number"?(T(),A("label",ZM,[f("span",e$,k(v(w)("Value")),1),f("input",{class:"thread-pending-request-input",type:X.inputType,value:String(re(e.request.id,X)??""),onInput:de=>Be(e.request.id,X,de)},null,40,t$)])):X.kind==="boolean"?(T(),A("div",n$,[f("span",o$,k(v(w)("Choice")),1),xe(ur,{class:"thread-pending-request-dropdown","model-value":se(re(e.request.id,X)),options:ie(X),placeholder:v(w)("Select true or false"),"onUpdate:modelValue":de=>D(e.request.id,X,de)},null,8,["model-value","options","placeholder","onUpdate:modelValue"])])):X.kind==="singleEnum"?(T(),A("div",r$,[f("span",a$,k(v(w)("Choice")),1),xe(ur,{class:"thread-pending-request-dropdown","model-value":String(re(e.request.id,X)??""),options:oe(X),placeholder:v(w)("Select an option"),"enable-search":"","search-placeholder":v(w)("Search options..."),"onUpdate:modelValue":de=>$(e.request.id,X,de)},null,8,["model-value","options","placeholder","search-placeholder","onUpdate:modelValue"])])):(T(),A("div",s$,[(T(!0),A(ze,null,Tt(X.options,de=>(T(),A("label",{key:`${e.request.id}:${X.key}:${de.value}`,class:"thread-pending-request-checkbox-row"},[f("input",{class:"thread-pending-request-checkbox",type:"checkbox",checked:W(e.request.id,X).includes(de.value),onChange:De=>G(e.request.id,X,de.value,De)},null,40,i$),f("span",l$,k(de.label),1)]))),128))]))]))),128)),g.value?(T(),A("p",u$,k(g.value),1)):Q("",!0),f("footer",c$,[f("button",{type:"button",class:"thread-pending-request-secondary",onClick:K[3]||(K[3]=X=>Ve(e.request,"cancel"))},k(v(w)("Cancel")),1),f("button",{type:"button",class:"thread-pending-request-secondary",onClick:K[4]||(K[4]=X=>Ve(e.request,"decline"))},k(v(w)("Decline")),1),f("button",{type:"button",class:"thread-pending-request-primary",onClick:K[5]||(K[5]=X=>Ve(e.request,"accept"))},k(v(w)("Continue")),1)])])):e.request.method==="item/tool/requestUserInput"?(T(),A("section",d$,[(T(!0),A(ze,null,Tt(Ee(e.request),X=>{var de;return T(),A("div",{key:`${e.request.id}:${X.id}`,class:"thread-pending-request-question"},[f("p",f$,k(X.header||X.question),1),X.question?(T(),A("p",p$,k(X.question),1)):Q("",!0),X.options.length>0?(T(),A("div",h$,[f("div",m$,[f("span",v$,k(v(w)("Choice")),1),xe(ur,{class:"thread-pending-request-dropdown","model-value":Ue(e.request.id,X.id,((de=X.options[0])==null?void 0:de.label)||""),options:xt(X),placeholder:v(w)("Choice"),"onUpdate:modelValue":De=>He(e.request.id,X.id,De)},null,8,["model-value","options","placeholder","onUpdate:modelValue"])]),Ge(e.request.id,X.id,X.options)?(T(),A("p",g$,k(Ge(e.request.id,X.id,X.options)),1)):Q("",!0)])):Q("",!0),X.isOther?(T(),A("label",y$,[f("span",w$,k(v(w)("Other answer")),1),f("input",{class:"thread-pending-request-input",type:"text",value:Ye(e.request.id,X.id),placeholder:v(w)("Other answer"),onInput:De=>ut(e.request.id,X.id,De)},null,40,b$)])):Q("",!0)])}),128)),f("footer",_$,[f("button",{type:"button",class:"thread-pending-request-primary",onClick:K[6]||(K[6]=X=>st(e.request))},k(v(w)("Send")),1)])])):e.request.method==="item/tool/call"?(T(),A("section",k$,[f("button",{type:"button",class:"thread-pending-request-primary",onClick:K[7]||(K[7]=X=>wt(e.request))},k(v(w)("Fail Tool Call")),1),f("button",{type:"button",class:"thread-pending-request-secondary",onClick:K[8]||(K[8]=X=>Rt(e.request))},k(v(w)("Success (Empty)")),1)])):(T(),A("section",C$,[f("button",{type:"button",class:"thread-pending-request-primary",onClick:K[9]||(K[9]=X=>Ze(e.request))},k(v(w)("Return Empty Result")),1),f("button",{type:"button",class:"thread-pending-request-secondary",onClick:K[10]||(K[10]=X=>Vt(e.request))},k(v(w)("Reject Request")),1)]))],64))],2)],4)):Q("",!0)}}),S$=Pt(T$,[["__scopeId","data-v-ffe669ea"]]),x$={key:0,class:"queued-messages"},A$={class:"queued-messages-inner"},P$=["onDragstart","onDragover","onDragleave","onDrop"],E$=["aria-label","title"],I$={class:"queued-row-text"},R$={key:0,class:"queued-row-badge"},M$={class:"queued-row-actions"},$$=["title","onClick"],j$=["title","onClick"],N$=["aria-label","title","onClick"],L$=Ln({__name:"QueuedMessages",props:{messages:{}},emits:["edit","steer","delete","reorder"],setup(e,{emit:t}){const n=t,{t:o}=Er(),r=S(""),s=S("");function a(x,R){var O;r.value=R,s.value="",(O=x.dataTransfer)==null||O.setData("text/plain",R),x.dataTransfer&&(x.dataTransfer.effectAllowed="move")}function u(x){!r.value||r.value===x||(s.value=x)}function d(x){s.value===x&&(s.value="")}function m(x){const R=r.value;g(),!(!R||R===x)&&n("reorder",{draggedId:R,targetId:x})}function g(){r.value="",s.value=""}function w(x){var B,Y,J;const R=x.text.trim();if(R)return R;const O=[],z=((B=x.imageUrls)==null?void 0:B.length)??0,Z=((Y=x.fileAttachments)==null?void 0:Y.length)??0,ce=((J=x.skills)==null?void 0:J.length)??0;return z>0&&O.push(`${z} ${o(z===1?"image":"images")}`),Z>0&&O.push(`${Z} ${o(Z===1?"file":"files")}`),ce>0&&O.push(`${ce} ${o(ce===1?"skill":"skills")}`),O.join(", ")||o("(empty queued message)")}return(x,R)=>e.messages.length>0?(T(),A("div",x$,[f("div",A$,[(T(!0),A(ze,null,Tt(e.messages,O=>(T(),A("div",{key:O.id,class:Ke(["queued-row",{"is-dragging":r.value===O.id,"is-drop-target":s.value===O.id&&r.value!==O.id}]),draggable:"true",onDragstart:z=>a(z,O.id),onDragover:Qe(z=>u(O.id),["prevent"]),onDragleave:z=>d(O.id),onDrop:Qe(z=>m(O.id),["prevent"]),onDragend:g},[f("button",{class:"queued-row-drag",type:"button","aria-label":v(o)("Drag to reorder queued message"),title:v(o)("Drag to reorder queued message")},[...R[0]||(R[0]=[f("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"},[f("path",{fill:"currentColor",d:"M9 5.5A1.5 1.5 0 1 1 6 5.5a1.5 1.5 0 0 1 3 0m0 6.5a1.5 1.5 0 1 1-3 0a1.5 1.5 0 0 1 3 0m-1.5 8A1.5 1.5 0 1 0 7.5 17a1.5 1.5 0 0 0 0 3m10-13A1.5 1.5 0 1 0 17.5 4a1.5 1.5 0 0 0 0 3m1.5 5a1.5 1.5 0 1 1-3 0a1.5 1.5 0 0 1 3 0m-1.5 8a1.5 1.5 0 1 0 0-3a1.5 1.5 0 0 0 0 3"})],-1)])],8,E$),R[2]||(R[2]=f("svg",{class:"queued-row-icon",xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"},[f("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})],-1)),f("span",I$,k(w(O)),1),O.awaitingCompaction?(T(),A("span",R$,k(v(o)("Compacts context before send")),1)):Q("",!0),f("div",M$,[f("button",{class:"queued-row-edit",type:"button",title:v(o)("Edit queued message"),onClick:z=>x.$emit("edit",O.id)},k(v(o)("Edit")),9,$$),f("button",{class:"queued-row-steer",type:"button",title:v(o)("Send now without interrupting work"),onClick:z=>x.$emit("steer",O.id)},k(v(o)("Steer")),9,j$),f("button",{class:"queued-row-delete",type:"button","aria-label":v(o)("Delete queued message"),title:v(o)("Delete queued message"),onClick:z=>x.$emit("delete",O.id)},[...R[1]||(R[1]=[f("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"},[f("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 7h16M10 11v6M14 11v6M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-12M9 7V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3"})],-1)])],8,N$)])],42,P$))),128))])])):Q("",!0)}}),O$=Pt(L$,[["__scopeId","data-v-631d6962"]]),D$={key:0,class:"rate-limit-status","aria-live":"polite"},F$=["title"],U$={class:"rate-limit-card-header"},B$={class:"rate-limit-card-title"},q$={key:0,class:"rate-limit-card-plan"},z$={class:"rate-limit-card-metrics"},H$={key:0,class:"rate-limit-card-footer"},W$=Ln({__name:"RateLimitStatus",props:{snapshots:{}},setup(e){const{t}=Er();function n(B){var Y,J;return((Y=B.limitId)==null?void 0:Y.trim())||((J=B.limitName)==null?void 0:J.trim())||"__default__"}function o(B){var Y,J;return((Y=B.limitName)==null?void 0:Y.trim())||((J=B.limitId)==null?void 0:J.trim())||t("Rate limits")}function r(B){const Y=B.trim();return Y?Y.replace(/[_-]+/g," ").replace(/\b\w/g,J=>J.toUpperCase()):""}function s(B){return!B||B<=0?t("Window"):B%1440===0?`${B/1440}d`:B%60===0?`${B/60}h`:B<60?`${B}m`:`${Math.round(B/60*10)/10}h`}function a(B){const Y=Math.max(0,Math.min(100,100-B));return`${Math.round(Y)}% ${t("left")}`}function u(B){return`${Math.round(B)}%`}function d(B,Y){return{key:Y,label:`${s(B.windowDurationMins)} ${a(B.usedPercent)}`}}function m(B){const Y=[];return B.primary&&Y.push(d(B.primary,"primary")),B.secondary&&Y.push(d(B.secondary,"secondary")),Y}function g(B){if(!B)return"";const Y=new Date(B*1e3),J=Y.getMonth()+1,ge=String(Y.getDate()).padStart(2,"0"),Ae=String(Y.getHours()).padStart(2,"0"),ye=String(Y.getMinutes()).padStart(2,"0");return`${J}.${ge} ${Ae}:${ye}`}function w(B){if(!(B!=null&&B.resetsAt))return"";const Y=B.resetsAt*1e3-Date.now();if(Y<=0)return t("Resetting now");const J=Math.round(Y/6e4);if(J<60)return`${t("Resets in")} ${J}m`;const ge=Math.round(J/60);if(ge<24)return`${t("Resets in")} ${ge}h`;const Ae=Math.round(ge/24);return`${t("Resets in")} ${Ae}d`}function x(B){return[B.primary,B.secondary].filter(Y=>Y!==null)}function R(B){const Y=x(B);return Y.length===0?null:[...Y].sort((J,ge)=>{const Ae=J.windowDurationMins??Number.MAX_SAFE_INTEGER,ye=ge.windowDurationMins??Number.MAX_SAFE_INTEGER;return Ae!==ye?Ae-ye:(J.resetsAt??Number.MAX_SAFE_INTEGER)-(ge.resetsAt??Number.MAX_SAFE_INTEGER)})[0]}function O(B){const Y=x(B);if(Y.length===0)return"";const J=[...Y].sort((Ae,ye)=>{const $e=Ae.windowDurationMins??-1,pe=ye.windowDurationMins??-1;return $e!==pe?pe-$e:(ye.resetsAt??-1)-(Ae.resetsAt??-1)})[0],ge=g(J.resetsAt);return ge||""}function z(B){const Y=B.credits;return Y?Y.unlimited?t("Unlimited credits"):Y.balance?`${t("Credits")} ${Y.balance}`:Y.hasCredits?t("Credits available"):"":""}function Z(B){return[w(R(B)),O(B),z(B)].filter(Y=>Y.length>0)}function ce(B){const Y=[o(B)];for(const J of m(B))Y.push(J.label);for(const J of x(B))Y.push(`${s(J.windowDurationMins)} used ${u(J.usedPercent)}`);for(const J of Z(B))Y.push(J);return Y.join(`
|
|
61
|
+
${j}`:j,Ht(()=>{var q;(q=J.value)==null||q.focus(),no()}))}function vn(I){const j=I.lastIndexOf("/");return j<0?I:I.slice(j+1)}function Ma(I){const j=I.lastIndexOf("/");return j<=0?"":I.slice(0,j)}function So(I){const j=vn(I),q=j.lastIndexOf(".");return q<=0?"":j.slice(q+1).toLowerCase()}function gr(I){const j=So(I);return j==="ts"?"TS":j==="tsx"?"TSX":j==="js"?"JS":j==="jsx"?"JSX":j==="json"?"{}":""}function si(I){const j=So(I);return j.startsWith("ts")?"ts":j.startsWith("js")?"js":j==="json"?"json":"default"}function gn(I){const j=So(I);return j==="md"||j==="mdx"}function $n(I){if(!Ae.value&&!ye.value&&!$e.value)return;const j=I.target;j&&(typeof j.closest=="function"&&j.closest(".composer-popover-anchor")||(Ae.value=!1,ye.value=!1,$e.value=!1))}return xs(()=>{document.addEventListener("click",$n),window.addEventListener("drop",er),window.addEventListener("dragend",er),window.addEventListener("blur",er),On()}),t({hydrateDraft:To,appendTextToDraft:Mr,hasUnsavedDraft:()=>wt.value}),zi(()=>{document.removeEventListener("click",$n),window.removeEventListener("drop",er),window.removeEventListener("dragend",er),window.removeEventListener("blur",er),window.removeEventListener("pointerup",oo),window.removeEventListener("pointercancel",oo),window.removeEventListener("blur",oo),Be&&clearTimeout(Be)}),ot(()=>o.activeThreadId,I=>{Z(),oe&&pt(oe,ln()),As();const j=Kt(I);j&&(Aa(j),Co()),oe=I.trim()},{immediate:!0}),ot([a,u,m,d],()=>{oe&&pt(oe,ln())},{deep:!0}),ot(a,()=>{On()}),ot(()=>o.cwd,()=>{he.value&&Nt()}),ot(()=>o.fuzzyFileSearchResults,I=>{!he.value||!$||(je.value=(I??[]).map(j=>({path:j.path})),Se.value=0)}),ot(X,I=>{de.value=I}),(I,j)=>(T(),A("form",{class:"thread-composer",onSubmit:j[9]||(j[9]=Qe(q=>on(e.isTurnInProgress?de.value:"steer"),["prevent"]))},[f("div",{class:Ke(["thread-composer-shell",{"thread-composer-shell--no-top-radius":e.hasQueueAbove,"thread-composer-shell--drag-active":O.value}])},[e.planPanel?(T(),A("div",{key:0,class:"thread-composer-plan-panel","data-streaming":e.planPanel.streaming},[xe(bc,{open:Ge.value,align:"center",width:"lg","panel-class":"thread-composer-plan-panel-popover","aria-label":v(s)("Plan"),"onUpdate:open":j[1]||(j[1]=q=>Ge.value=q)},{trigger:et(()=>{var q,_e;return[f("button",{type:"button",class:"thread-composer-plan-panel-header","aria-expanded":Ge.value,onClick:j[0]||(j[0]=ht=>Ge.value=!Ge.value)},[j[10]||(j[10]=f("span",{class:"thread-composer-plan-panel-icon","aria-hidden":"true"},"🗒",-1)),f("span",FI,k(v(s)("Plan")),1),e.planPanel.streaming?(T(),A("span",UI,k(v(s)("Updating")),1)):Q("",!0),f("span",BI,k(tt.value)+"/"+k(e.planPanel.steps.length),1),f("span",{class:"thread-composer-plan-panel-latest",title:((q=ct.value)==null?void 0:q.step)??""},[ct.value?(T(),A("span",{key:0,class:"thread-composer-plan-panel-latest-status","data-status":ct.value.status},k(St(ct.value.status)),9,zI)):Q("",!0),f("span",HI,k(((_e=ct.value)==null?void 0:_e.step)??""),1)],8,qI),xe(ei,{class:"thread-composer-plan-panel-chevron"})],8,DI)]}),default:et(()=>[f("div",WI,[f("div",VI,[f("header",GI,[j[11]||(j[11]=f("span",{class:"thread-composer-plan-panel-icon","aria-hidden":"true"},"🗒",-1)),f("span",KI,k(v(s)("Plan")),1),f("span",YI,k(tt.value)+"/"+k(e.planPanel.steps.length),1)]),e.planPanel.explanation?(T(),A("section",JI,[f("p",QI,k(v(s)("Summary")),1),f("p",{class:"thread-composer-plan-panel-explanation",title:e.planPanel.explanation},k(_t.value),9,XI)])):Q("",!0),f("section",ZI,[f("p",eR,k(v(s)("Steps"))+" ("+k(e.planPanel.steps.length)+")",1),f("ol",tR,[(T(!0),A(ze,null,Tt(e.planPanel.steps,(q,_e)=>(T(),A("li",{key:`composer-plan-${e.planPanel.id}-${_e}`,class:"thread-composer-plan-panel-step","data-status":q.status},[f("span",{class:"thread-composer-plan-panel-step-status","data-status":q.status},k(St(q.status)),9,oR),f("span",{class:"thread-composer-plan-panel-step-text",title:q.step},k(q.step),9,rR)],8,nR))),128))])])]),f("footer",aR,[f("button",{type:"button",class:"thread-composer-plan-panel-implement",disabled:e.planPanel.streaming||e.planPanel.implemented,"data-state":e.planPanel.implemented?"done":e.planPanel.streaming?"running":"idle",onClick:yt},k(e.planPanel.implemented?v(s)("Plan executed"):e.planPanel.streaming?v(s)("Implementing…"):v(s)("Implement plan")),9,sR)])])]),_:1},8,["open","aria-label"])],8,OI)):Q("",!0),u.value.length>0?(T(),A("div",iR,[(T(!0),A(ze,null,Tt(u.value,q=>(T(),A("div",{key:q.id,class:"thread-composer-attachment"},[Xr(q.url)?(T(),A("video",{key:0,class:"thread-composer-attachment-image",src:q.url,controls:"",preload:"metadata"},null,8,lR)):(T(),A("img",{key:1,class:"thread-composer-attachment-image",src:q.url,alt:q.name||"Selected image"},null,8,uR)),f("button",{class:"thread-composer-attachment-remove",type:"button","aria-label":`Remove ${q.name||"image"}`,disabled:Ze.value,onClick:_e=>No(q.id)}," x ",8,cR)]))),128))])):Q("",!0),g.value.length>0?(T(),A("div",dR,[(T(!0),A(ze,null,Tt(g.value,q=>(T(),A("span",{key:q.id,class:"thread-composer-folder-chip"},[xe(Sp,{class:"thread-composer-folder-chip-icon"}),f("span",{class:"thread-composer-folder-chip-name",title:q.name},k(q.name),9,fR),f("span",pR,[q.isUploading?(T(),A(ze,{key:0},[bs(k(ro(q))+"% uploading ("+k(q.processed)+"/"+k(q.total)+") ",1)],64)):(T(),A(ze,{key:1},[bs(k(q.filePaths.length)+" file"+k(q.filePaths.length===1?"":"s"),1)],64))]),f("button",{class:"thread-composer-folder-chip-remove",type:"button","aria-label":`Remove folder ${q.name}`,disabled:Ze.value,onClick:_e=>_o(q.id)},"×",8,hR)]))),128))])):Q("",!0),Rt.value.length>0?(T(),A("div",mR,[(T(!0),A(ze,null,Tt(Rt.value,q=>(T(),A("span",{key:q.fsPath,class:"thread-composer-file-chip"},[xe(Rl,{class:"thread-composer-file-chip-icon"}),f("span",{class:"thread-composer-file-chip-name",title:q.fsPath},k(q.label),9,vR),f("button",{class:"thread-composer-file-chip-remove",type:"button","aria-label":`Remove ${q.label}`,disabled:Ze.value,onClick:_e=>Vn(q.fsPath)},"×",8,gR)]))),128))])):Q("",!0),d.value.length>0?(T(),A("div",yR,[(T(!0),A(ze,null,Tt(d.value,q=>(T(),A("span",{key:q.path,class:"thread-composer-skill-chip"},[f("button",{class:"thread-composer-skill-chip-name",type:"button",title:Dt(q.path),"aria-label":`Open ${q.displayName||q.name} SKILL.md`,onClick:_e=>Mt(q)},k(q.displayName||q.name),9,wR),f("button",{class:"thread-composer-skill-chip-remove",type:"button","aria-label":`Remove skill ${q.displayName||q.name}`,onClick:_e=>Lo(q.path)},"×",8,bR)]))),128))])):Q("",!0),f("div",_R,[f("div",kR,[f("div",{class:Ke(["thread-composer-input-wrap",{"thread-composer-input-wrap--drag-active":O.value,"thread-composer-input-wrap--expanded":ut.value}]),onDragenter:uo,onDragover:ko,onDragleave:ea,onDrop:mr},[O.value?(T(),A("div",CR,[f("span",TR,k(v(s)("Drop images or files")),1)])):Q("",!0),he.value?(T(),A("div",SR,[je.value.length>0?(T(!0),A(ze,{key:0},Tt(je.value,(q,_e)=>(T(),A("button",{key:q.path,class:Ke(["thread-composer-file-mention-row",{"is-active":_e===Se.value}]),type:"button",onMousedown:Qe(ht=>tr(q),["prevent"])},[gr(q.path)?(T(),A("span",{key:0,class:Ke(["thread-composer-file-mention-icon-badge",`is-${si(q.path)}`])},k(gr(q.path)),3)):gn(q.path)?(T(),A("span",AR,"↓")):(T(),rt(Rl,{key:2,class:"thread-composer-file-mention-icon-file"})),f("span",PR,[f("span",ER,k(vn(q.path)),1),Ma(q.path)?(T(),A("span",IR,k(Ma(q.path)),1)):Q("",!0)])],42,xR))),128)):v(D)?(T(),A("div",RR,k(v(s)("No searchable directory for this thread")),1)):(T(),A("div",MR,k(v(s)("No matching files")),1))])):Q("",!0),Pe.value?(T(),rt(MI,{key:2,commands:He.value,"highlighted-index":Ye.value,onSelect:mn},null,8,["commands","highlighted-index"])):Q("",!0),Ot(f("textarea",{ref_key:"inputRef",ref:J,"onUpdate:modelValue":j[2]||(j[2]=q=>a.value=q),class:"thread-composer-input",placeholder:We.value,disabled:Ze.value,onInput:Co,onKeydown:Rr,onPaste:vr},null,40,$R),[[sn,a.value]]),Gt.value?(T(),A("button",{key:3,class:"thread-composer-expand",type:"button","aria-label":ut.value?v(s)("Exit full screen composer"):v(s)("Expand composer"),title:ut.value?v(s)("Exit full screen composer"):v(s)("Expand composer"),disabled:Ze.value,onClick:hr},[ut.value?(T(),rt(dI,{key:0,class:"thread-composer-expand-icon"})):(T(),rt(iI,{key:1,class:"thread-composer-expand-icon"}))],8,jR)):Q("",!0)],34),f("div",NR,[e.isTurnInProgress&&!nt.value?(T(),A("button",{key:0,class:"thread-composer-stop",type:"button","aria-label":e.isStopPending?v(s)("Saving thread before stop is available"):v(s)("Stop"),title:e.isStopPending?v(s)("Saving thread before stop is available"):v(s)("Stop"),disabled:e.disabled||!e.activeThreadId||e.isInterruptingTurn||e.isStopPending||e.externalSessionActive===!0,onClick:pr},[e.isStopPending?(T(),A("span",OR)):(T(),rt(mI,{key:1,class:"thread-composer-stop-icon"}))],8,LR)):(T(),A("button",{key:1,class:Ke(["thread-composer-submit",{"thread-composer-submit--queue":e.isTurnInProgress&&de.value==="queue"}]),type:"button","aria-label":e.isCompacting?v(s)("Compacting context — the message will send after compaction"):e.isTurnInProgress&&de.value==="queue"?v(s)("Queue message"):v(s)("Send message"),title:e.isCompacting?v(s)("Compacting context — the message will send after compaction"):e.isTurnInProgress?`${v(s)("Send")} ${de.value==="queue"?v(s)("Queue"):v(s)("Steer")}`:v(s)("Send"),disabled:!st.value,onClick:j[3]||(j[3]=q=>on(e.isTurnInProgress?de.value:"steer"))},[xe(oI,{class:"thread-composer-submit-icon"})],10,DR))])]),f("div",{class:Ke(["thread-composer-controls",{"thread-composer-controls--recording":De.value}])},[xe(bc,{open:Ae.value,align:"start",width:"lg","aria-label":v(s)("Add photos & files"),"onUpdate:open":j[6]||(j[6]=q=>Ae.value=q)},{trigger:et(()=>[f("button",{class:"thread-composer-attach-trigger",type:"button","aria-label":v(s)("Add photos & files"),disabled:Ze.value,onClick:_n}," + ",8,FR)]),default:et(()=>[f("button",{class:"thread-composer-attach-item",type:"button",disabled:Ze.value,onClick:Qr},k(v(s)("Add photos & files")),9,UR),f("button",{class:"thread-composer-attach-item",type:"button",disabled:Ze.value,onClick:bo},k(v(s)("Add folder")),9,BR),f("button",{class:"thread-composer-attach-item",type:"button",disabled:Ze.value,onClick:Ea},k(v(s)("Take photo")),9,qR),j[14]||(j[14]=f("div",{class:"thread-composer-attach-separator"},null,-1)),f("div",zR,[f("span",HR,k(v(s)("In-progress send")),1),f("div",WR,[f("button",{class:Ke(["thread-composer-attach-mode-button",{"is-active":de.value==="steer"}]),type:"button",disabled:Ze.value,onClick:j[4]||(j[4]=q=>to("steer"))},k(v(s)("Steer")),11,VR),f("button",{class:Ke(["thread-composer-attach-mode-button",{"is-active":de.value==="queue"}]),type:"button",disabled:Ze.value,onClick:j[5]||(j[5]=q=>to("queue"))},k(v(s)("Queue")),11,GR)])]),v(ge)?(T(),A(ze,{key:0},[j[12]||(j[12]=f("div",{class:"thread-composer-attach-separator"},null,-1)),f("div",KR,[f("span",YR,k(v(s)("Plan mode")),1),f("div",JR,[(T(!0),A(ze,null,Tt(Ie.value,q=>(T(),A("button",{key:`mobile-plan-${q.value}`,class:Ke(["thread-composer-attach-mode-button",{"is-active":e.selectedCollaborationMode===q.value}]),type:"button",disabled:q.disabled||Vt.value,onClick:_e=>Jn(q.value)},k(v(s)(q.labelKey)),11,QR))),128))])]),j[13]||(j[13]=f("div",{class:"thread-composer-attach-separator"},null,-1)),f("div",XR,[f("span",ZR,k(v(s)("Approval policy")),1),f("div",eM,[(T(),A(ze,null,Tt(be,q=>f("button",{key:`mobile-approval-${q.value}`,class:Ke(["thread-composer-attach-mode-button",{"is-active":e.approvalPolicy===q.value}]),type:"button",disabled:e.isApprovalPolicySaving,onClick:_e=>Qa(q.value)},k(v(s)(q.label)),11,tM)),64))])]),e.approvalPolicyError?(T(),A("p",nM,k(e.approvalPolicyError),1)):Q("",!0),xe(Au,{name:"approval-tip"},{default:et(()=>[e.approvalPolicyNotice?(T(),A("span",oM,k(e.approvalPolicyNotice),1)):Q("",!0)]),_:1})],64)):Q("",!0)]),_:1},8,["open","aria-label"]),v(ge)?Q("",!0):(T(),rt(bc,{key:0,open:ye.value,align:"start",width:"md","aria-label":v(s)("Plan mode"),"onUpdate:open":j[7]||(j[7]=q=>ye.value=q)},{trigger:et(()=>[f("button",{class:Ke(["thread-composer-plan-trigger",{"is-active":ye.value}]),type:"button","aria-label":v(s)("Plan mode"),disabled:Vt.value,onClick:Jr},[f("span",aM,k(Fe.value),1),xe(ei,{class:"thread-composer-plan-trigger-chevron"})],10,rM)]),default:et(()=>[(T(!0),A(ze,null,Tt(Ie.value,q=>(T(),A("button",{key:q.value,class:Ke(["thread-composer-menu-item",{"is-active":e.selectedCollaborationMode===q.value}]),type:"button",role:"menuitemradio","aria-checked":e.selectedCollaborationMode===q.value,disabled:q.disabled||Vt.value,onClick:_e=>Ja(q.value)},[f("span",iM,[f("span",lM,k(v(s)(q.labelKey)),1),q.subLabel?(T(),A("span",uM,k(q.subLabel),1)):Q("",!0),q.disabled?(T(),A("span",cM,k(v(s)("Not supported by this Codex version")),1)):Q("",!0)]),e.selectedCollaborationMode===q.value?(T(),A("span",dM,"✓")):Q("",!0)],10,sM))),128))]),_:1},8,["open","aria-label"])),v(ge)?Q("",!0):(T(),rt(bc,{key:1,open:$e.value,align:"center",width:"md","aria-label":v(s)("Approval policy"),"onUpdate:open":j[8]||(j[8]=q=>$e.value=q)},{trigger:et(()=>[f("button",{class:Ke(["thread-composer-approval-trigger",{"is-active":$e.value}]),type:"button","aria-label":v(s)("Approval policy"),disabled:Vt.value,onClick:Xt},[f("span",pM,k(Me.value),1),xe(ei,{class:"thread-composer-approval-trigger-chevron"})],10,fM)]),default:et(()=>[(T(),A(ze,null,Tt(be,q=>f("button",{key:q.value,class:Ke(["thread-composer-menu-item",{"is-active":e.approvalPolicy===q.value}]),type:"button",role:"menuitemradio","aria-checked":e.approvalPolicy===q.value,disabled:e.isApprovalPolicySaving,onClick:_e=>Qa(q.value)},[f("span",mM,[f("span",vM,k(v(s)(q.label)),1)]),e.approvalPolicy===q.value?(T(),A("span",gM,"✓")):Q("",!0)],10,hM)),64)),e.approvalPolicyError?(T(),A("p",yM,k(e.approvalPolicyError),1)):Q("",!0),xe(Au,{name:"approval-tip"},{default:et(()=>[e.approvalPolicyNotice?(T(),A("span",wM,k(e.approvalPolicyNotice),1)):Q("",!0)]),_:1})]),_:1},8,["open","aria-label"])),xe(ur,{class:"thread-composer-control thread-composer-model-control","model-value":e.selectedModel,options:ue.value,"selected-prefix-icon":K.value?ga:null,placeholder:v(s)("Model"),"open-direction":"up",variant:"pill",disabled:Vt.value||e.models.length===0,"enable-search":"","search-placeholder":v(s)("Search models..."),"onUpdate:modelValue":Pa},null,8,["model-value","options","selected-prefix-icon","placeholder","disabled","search-placeholder"]),xe(ur,{class:"thread-composer-control thread-composer-thinking-control","model-value":e.selectedReasoningEffort,options:we.value,placeholder:v(s)("Thinking"),"open-direction":"up",variant:"pill",disabled:Vt.value||we.value.length===0,"onUpdate:modelValue":Mn},null,8,["model-value","options","placeholder","disabled"]),Wn.value?(T(),A("button",{key:2,type:"button",class:Ke(["thread-composer-context-usage-inline",{"is-warning":eo.value==="warning","is-danger":eo.value==="danger"}]),title:yo.value,"aria-label":v(s)("Context"),onClick:wo},[f("span",_M,k(Jo.value),1),eo.value!=="healthy"?(T(),A("span",kM,k(v(s)("Compact")),1)):Q("",!0)],10,bM)):Q("",!0)],2)])],2),f("input",{ref_key:"photoLibraryInputRef",ref:ce,class:"thread-composer-hidden-input",type:"file",multiple:"",disabled:Ze.value,onChange:Yt},null,40,CM),f("input",{ref_key:"cameraCaptureInputRef",ref:B,class:"thread-composer-hidden-input",type:"file",accept:"image/*",capture:"environment",disabled:Ze.value,onChange:kn},null,40,TM),f("input",{ref_key:"folderPickerInputRef",ref:Y,class:"thread-composer-hidden-input",type:"file",multiple:"",webkitdirectory:"",directory:"",disabled:Ze.value,onChange:lo},null,40,SM)],32))}}),tv=Pt(PM,[["__scopeId","data-v-8f122452"]]),EM={class:"thread-pending-request-title"},IM=["title"],RM={class:"thread-pending-request-approval"},MM=["aria-label"],$M=["aria-pressed","onClick"],jM={class:"thread-pending-request-option-index"},NM={class:"thread-pending-request-option-label"},LM={class:"thread-pending-request-footer thread-pending-request-footer--approval"},OM=["value","placeholder"],DM={key:0,class:"thread-pending-request-validation-error",role:"alert"},FM={class:"thread-pending-request-header"},UM={class:"thread-pending-request-heading"},BM={class:"thread-pending-request-eyebrow"},qM={class:"thread-pending-request-title"},zM={key:0,class:"thread-pending-request-counter"},HM={key:0,class:"thread-pending-request-preview"},WM={class:"thread-pending-request-preview-code"},VM={key:1,class:"thread-pending-request-validation-error",role:"alert"},GM={key:2,class:"thread-pending-request-user-input"},KM={key:0,class:"thread-pending-request-question-description"},YM=["href"],JM={class:"thread-pending-request-question-title"},QM={key:0},XM={key:0,class:"thread-pending-request-question-text"},ZM={key:1,class:"thread-pending-request-input-wrap"},e$={class:"thread-pending-request-select-label"},t$=["type","value","onInput"],n$={key:2,class:"thread-pending-request-select-wrap"},o$={class:"thread-pending-request-select-label"},r$={key:3,class:"thread-pending-request-select-wrap"},a$={class:"thread-pending-request-select-label"},s$={key:4,class:"thread-pending-request-question-options"},i$=["checked","onChange"],l$={class:"thread-pending-request-checkbox-label"},u$={key:2,class:"thread-pending-request-validation-error"},c$={class:"thread-pending-request-footer"},d$={key:3,class:"thread-pending-request-user-input"},f$={class:"thread-pending-request-question-title"},p$={key:0,class:"thread-pending-request-question-text"},h$={key:1,class:"thread-pending-request-question-options"},m$={class:"thread-pending-request-select-wrap"},v$={class:"thread-pending-request-select-label"},g$={key:0,class:"thread-pending-request-question-description"},y$={key:2,class:"thread-pending-request-input-wrap"},w$={class:"thread-pending-request-select-label"},b$=["value","placeholder","onInput"],_$={class:"thread-pending-request-footer"},k$={key:4,class:"thread-pending-request-actions"},C$={key:5,class:"thread-pending-request-actions"},T$=Ln({__name:"ThreadPendingRequestPanel",props:{request:{},requestCount:{},hasQueueAbove:{type:Boolean},panelWidth:{},panelError:{}},emits:["respondServerRequest"],setup(e,{emit:t}){const n=e,o=t,r=ee(()=>{const V=typeof n.panelWidth=="number"&&n.panelWidth>0?n.panelWidth:0;return V>0?{width:`${V}px`}:{}}),s=S("accept"),a=S(""),u=S({}),d=S({}),m=S({}),g=S(""),{t:w}=Er();function x(V){return V!==null&&typeof V=="object"&&!Array.isArray(V)?V:null}function R(V){return typeof V=="string"?V.trim():""}function O(V){return typeof V=="string"?V:null}function z(V){return/^[A-Za-z0-9_./:@%+=,-]+$/.test(V)?V:JSON.stringify(V)}function Z(V){const X=(Array.isArray(V.commandActions)?V.commandActions:[]).map(de=>x(de)).map(de=>R(de==null?void 0:de.command)).find(de=>de.length>0);if(X)return X.replace(/\s+/g," ").trim();if(Array.isArray(V.command)){const de=V.command.filter(De=>typeof De=="string").map(De=>De.trim()).filter(De=>De.length>0);if(de.length>0)return de.map(De=>z(De)).join(" ")}return pe(R(V.command))}function ce(V){return V.method==="item/commandExecution/requestApproval"||V.method==="execCommandApproval"}function B(V){return V.method==="item/fileChange/requestApproval"||V.method==="applyPatchApproval"}function Y(V){return V.method==="item/permissions/requestApproval"}function J(V){return ce(V)||B(V)||Y(V)}function ge(V){return V.method==="mcpServer/elicitation/request"}function Ae(V){const K=x(V.params);return R(K==null?void 0:K.reason)||R(K==null?void 0:K.prompt)||R(K==null?void 0:K.message)}function ye(V){return J(V)?w("Awaiting approval"):ge(V)?w("MCP server input required"):V.method==="item/tool/requestUserInput"?w("Awaiting response"):V.method==="item/tool/call"?w("Tool call waiting for response"):V.method}function $e(V){const K=Ae(V);return K||(ce(V)?w("Do you want to run this command?"):B(V)?w("Do you want to make these changes?"):Y(V)?w("Do you want to grant these permissions?"):ge(V)?w("An MCP server needs your input before Codex can continue."):V.method==="item/tool/requestUserInput"?w("Codex needs your answer before it can continue."):w("Codex is waiting for a response before it can continue."))}function pe(V){var We;const K=V.trim();if(!K)return"";const X=K.match(/-Command\s+(.+)$/i),de=((We=X==null?void 0:X[1])==null?void 0:We.trim())??K;return(de.startsWith('"')&&de.endsWith('"')?de.slice(1,-1):de).replace(/\\"/g,'"').replace(/`"/g,'"').replace(/""/g,'"').replace(/\s+/g," ").trim()}function Ne(V){const K=x(V.params);if(!K)return"";if(ce(V))return Z(K);if(B(V)){const X=R(K.grantRoot)||R(K.grant_root);if(X)return X.replace(/\s+/g," ").trim();const de=x(K.fileChanges)??x(K.changes);if(!de)return"";const De=Object.keys(de).map(We=>We.trim()).filter(We=>We.length>0);return De.length===0?"":De.slice(0,3).join(", ")}return Y(V)?je(K.permissions):ge(V)?R(K.serverName)||R(K.url):""}function je(V){const K=x(V);if(!K)return"";const X=[],de=x(K.fileSystem),De=x(K.network),We=Array.isArray(de==null?void 0:de.read)?de.read.filter(Bt=>typeof Bt=="string"):[],nt=Array.isArray(de==null?void 0:de.write)?de.write.filter(Bt=>typeof Bt=="string"):[];return We.length>0&&X.push(`${w("Read")}: ${We.join(", ")}`),nt.length>0&&X.push(`${w("Write")}: ${nt.join(", ")}`),(De==null?void 0:De.enabled)===!0&&X.push(w("Network access")),X.join(" • ")}function he(V){return!V||!J(V)?[]:[{id:"accept",label:w("Yes")},{id:"acceptForSession",label:w("Yes for Session")}]}const Se=ee(()=>he(n.request));ot(()=>{var V;return((V=n.request)==null?void 0:V.id)??0},()=>{var V;a.value="",u.value={},d.value={},m.value={},g.value="",s.value=((V=Se.value[0])==null?void 0:V.id)??"accept"},{immediate:!0}),ot(Se,V=>{var K;s.value!=="decline"&&(V.some(X=>X.id===s.value)||(s.value=((K=V[0])==null?void 0:K.id)??"accept"))},{immediate:!0});function Pe(V,K){return`${String(V)}:${K}`}function Ee(V){const K=x(V.params),X=Array.isArray(K==null?void 0:K.questions)?K.questions:[],de=[];for(const De of X){const We=x(De);if(!We)continue;const nt=R(We.id);if(!nt)continue;const Bt=Array.isArray(We.options)?We.options.map(Gt=>x(Gt)).map(Gt=>({label:R(Gt==null?void 0:Gt.label),description:R(Gt==null?void 0:Gt.description)})).filter(Gt=>Gt.label.length>0):[];de.push({id:nt,header:R(We.header),question:R(We.question),isOther:We.isOther===!0,options:Bt})}return de}function Ue(V,K,X){const de=Pe(V,K),De=u.value[de];return typeof De=="string"&&De.length>0?De:X}function Ye(V,K){return d.value[Pe(V,K)]??""}function He(V,K,X){const de=Pe(V,K);u.value={...u.value,[de]:X}}function xt(V){return V.options.map(K=>({value:K.label,label:K.label}))}function ut(V,K,X){const de=X.target;if(!(de instanceof HTMLInputElement))return;const De=Pe(V,K);d.value={...d.value,[De]:de.value}}function Ge(V,K,X){var De,We;const de=Ue(V,K,((De=X[0])==null?void 0:De.label)||"");return((We=X.find(nt=>nt.label===de))==null?void 0:We.description)??""}function tt(V,K){return`${String(V)}:${K}`}function ct(V){var K;return R((K=x(V.params))==null?void 0:K.serverName)}function _t(V){var X;const K=R((X=x(V.params))==null?void 0:X.url);if(!K)return"";try{const de=new URL(K),De=de.protocol.toLowerCase();return De==="https:"||De==="http:"?de.toString():""}catch{return""}}function St(V){const K=x(V.params),X=x(K==null?void 0:K.requestedSchema),de=x(X==null?void 0:X.properties);if(!de)return[];const De=new Set(Array.isArray(X==null?void 0:X.required)?X.required.filter(We=>typeof We=="string"):[]);return Object.entries(de).map(([We,nt])=>yt(We,x(nt),De.has(We))).filter(We=>We!==null)}function yt(V,K,X){if(!K)return null;const de=R(K.title)||V,De=R(K.description),We=R(K.type);if(We==="boolean")return{key:V,label:de,description:De,required:X,kind:"boolean",inputType:"checkbox",options:[],defaultValue:typeof K.default=="boolean"?K.default:null,hasExplicitDefault:typeof K.default=="boolean"};if(We==="number"||We==="integer")return{key:V,label:de,description:De,required:X,kind:"number",inputType:"number",options:[],defaultValue:typeof K.default=="number"?K.default:null,hasExplicitDefault:typeof K.default=="number"};const nt=ae(K);if(We==="array")return{key:V,label:de,description:De,required:X,kind:"multiEnum",inputType:"checkbox",options:nt,defaultValue:Array.isArray(K.default)?K.default.filter(Gt=>typeof Gt=="string"):[],hasExplicitDefault:Array.isArray(K.default)};const Bt=O(K.default);return nt.length>0?{key:V,label:de,description:De,required:X,kind:"singleEnum",inputType:"select",options:nt,defaultValue:Bt,hasExplicitDefault:Bt!==null}:{key:V,label:de,description:De,required:X,kind:"string",inputType:ne(K),options:[],defaultValue:Bt,hasExplicitDefault:Bt!==null}}function ae(V){const X=(Array.isArray(V.oneOf)?V.oneOf:Array.isArray(V.anyOf)?V.anyOf:[]).map(nt=>x(nt)).map(nt=>({value:R(nt==null?void 0:nt.const),label:R(nt==null?void 0:nt.title)||R(nt==null?void 0:nt.const)})).filter(nt=>nt.value.length>0);if(X.length>0)return X;const de=x(V.items);if(de){const nt=ae(de);if(nt.length>0)return nt}const De=Array.isArray(V.enum)?V.enum.filter(nt=>typeof nt=="string"):[],We=Array.isArray(V.enumNames)?V.enumNames.filter(nt=>typeof nt=="string"):[];return De.map((nt,Bt)=>({value:nt,label:We[Bt]||nt}))}function ne(V){const K=R(V.format);return K==="email"?"email":K==="uri"?"url":K==="date"?"date":K==="date-time"?"datetime-local":"text"}function re(V,K){const X=m.value[tt(V,K.key)];return X!==void 0?X:K.defaultValue}function W(V,K){const X=re(V,K);return Array.isArray(X)?X.filter(de=>typeof de=="string"):[]}function Be(V,K,X){const de=X.target;de instanceof HTMLInputElement&&$(V,K,de.value)}function $(V,K,X){const de=(K.kind==="number",X);m.value={...m.value,[tt(V,K.key)]:X.length>0?de:null},g.value=""}function D(V,K,X){let de=null;X==="true"?de=!0:X==="false"&&(de=!1),m.value={...m.value,[tt(V,K.key)]:de},g.value=""}function G(V,K,X,de){const De=de.target;if(!(De instanceof HTMLInputElement))return;const We=new Set(W(V,K));De.checked?We.add(X):We.delete(X),m.value={...m.value,[tt(V,K.key)]:Array.from(We)},g.value=""}function se(V){return V===!0?"true":V===!1?"false":""}function ie(V){const K=[{value:"true",label:w("True")},{value:"false",label:w("False")}];return V.hasExplicitDefault||K.unshift({value:"",label:w("Select true or false")}),K}function oe(V){const K=V.options.map(X=>({value:X.value,label:X.label}));return V.hasExplicitDefault||K.unshift({value:"",label:w("Select an option")}),K}function Te(V,K){const X=re(V,K);return K.kind==="multiEnum"?Array.isArray(X)&&X.length>0:K.kind==="boolean"?typeof X=="boolean":K.kind==="number"&&typeof X=="number"?!0:typeof X=="string"&&X.trim().length>0}function we(V){const K=St(V).filter(X=>X.required&&!Te(V.id,X)).map(X=>X.label);return K.length===0?"":K.length===1?`${w("Answer the required field")}: ${K[0]}.`:`${w("Answer the required field")}: ${K.join(", ")}.`}function ve(V){const K={};for(const X of St(V)){const de=re(V.id,X);if(X.kind==="multiEnum"){const We=Array.isArray(de)?de:[];(We.length>0||X.required)&&(K[X.key]=We);continue}if(X.kind==="boolean"){typeof de=="boolean"&&(K[X.key]=de);continue}if(X.kind==="number"){const We=typeof de=="number"?de:Number(String(de).trim());Number.isNaN(We)||(K[X.key]=We);continue}const De=String(de??"").trim();(De.length>0||X.required)&&(K[X.key]=De)}return K}function ue(V){s.value=V}function Ie(){s.value="decline"}function be(V){const K=V.target;K instanceof HTMLInputElement&&(a.value=K.value,s.value="decline")}function Fe(V,K){var X;if(Y(V)){if(K==="decline"||K==="cancel"){o("respondServerRequest",{id:V.id,error:{code:-32e3,message:K==="cancel"?"Cancelled from CodexUI.":"Declined from CodexUI."}});return}const de=x((X=x(V.params))==null?void 0:X.permissions)??{};o("respondServerRequest",{id:V.id,result:{permissions:de,scope:K==="acceptForSession"?"session":"turn"}});return}o("respondServerRequest",{id:V.id,result:{decision:K}})}function Me(V){const K=a.value.trim(),X=K.length>0?"decline":s.value;if(Y(V)){Fe(V,X);return}o("respondServerRequest",{id:V.id,result:{decision:X},followUpMessageText:K||void 0})}function Ve(V,K){const X=x(V.params),de={action:K};if(K==="accept"&&R(X==null?void 0:X.mode)==="form"){const De=we(V);if(De){g.value=De;return}de.content=ve(V)}o("respondServerRequest",{id:V.id,result:de})}function st(V){var de;const K=Ee(V),X={};for(const De of K){const We=Ue(V.id,De.id,((de=De.options[0])==null?void 0:de.label)||""),nt=Ye(V.id,De.id).trim(),Bt=[We,nt].map(Gt=>Gt.trim()).filter(Gt=>Gt.length>0);X[De.id]={answers:Bt}}o("respondServerRequest",{id:V.id,result:{answers:X}})}function wt(V){o("respondServerRequest",{id:V.id,result:{success:!1,contentItems:[{type:"inputText",text:"Tool call rejected from CodexUI."}]}})}function Rt(V){o("respondServerRequest",{id:V.id,result:{success:!0,contentItems:[]}})}function Ze(V){o("respondServerRequest",{id:V.id,result:{}})}function Vt(V){o("respondServerRequest",{id:V.id,error:{code:-32e3,message:"Rejected from CodexUI."}})}return(V,K)=>e.request?(T(),A("section",{key:0,class:"thread-pending-request",style:Pr(r.value)},[f("article",{class:Ke(["thread-pending-request-shell",{"thread-pending-request-shell--no-top-radius":e.hasQueueAbove}])},[J(e.request)?(T(),A(ze,{key:0},[f("p",EM,k($e(e.request)),1),Ne(e.request)?(T(),A("p",{key:0,class:"thread-pending-request-command-line",title:Ne(e.request)},k(Ne(e.request)),9,IM)):Q("",!0),f("section",RM,[f("div",{class:"thread-pending-request-options",role:"radiogroup","aria-label":v(w)("Approval choices")},[(T(!0),A(ze,null,Tt(Se.value,(X,de)=>(T(),A("button",{key:X.id,type:"button",class:Ke(["thread-pending-request-option",{"is-selected":s.value===X.id}]),"aria-pressed":s.value===X.id,onClick:De=>ue(X.id)},[f("span",jM,k(de+1)+".",1),f("span",NM,k(X.label),1)],10,$M))),128))],8,MM),f("footer",LM,[f("label",{class:Ke(["thread-pending-request-inline-input",{"is-active":s.value==="decline"||a.value.length>0}])},[K[11]||(K[11]=f("span",{class:"thread-pending-request-option-index"},"3.",-1)),f("input",{class:"thread-pending-request-inline-control",type:"text",value:a.value,placeholder:v(w)("No, and tell Codex what to do differently"),onFocus:Ie,onInput:be,onKeydown:K[0]||(K[0]=In(Qe(X=>Me(e.request),["prevent"]),["enter"]))},null,40,OM)],2),f("button",{type:"button",class:"thread-pending-request-secondary",onClick:K[1]||(K[1]=X=>Fe(e.request,"cancel"))},k(v(w)("Skip")),1),f("button",{type:"button",class:"thread-pending-request-primary",onClick:K[2]||(K[2]=X=>Me(e.request))},k(v(w)("Send")),1)]),e.panelError?(T(),A("p",DM,k(e.panelError),1)):Q("",!0)])],64)):(T(),A(ze,{key:1},[f("header",FM,[f("div",UM,[f("p",BM,k(ye(e.request)),1),f("p",qM,k($e(e.request)),1)]),(e.requestCount??0)>1?(T(),A("span",zM,k(e.requestCount??0)+" "+k(v(w)("pending")),1)):Q("",!0)]),Ne(e.request)?(T(),A("div",HM,[f("code",WM,k(Ne(e.request)),1)])):Q("",!0),e.panelError?(T(),A("p",VM,k(e.panelError),1)):Q("",!0),e.request.method==="mcpServer/elicitation/request"?(T(),A("section",GM,[ct(e.request)?(T(),A("p",KM,k(v(w)("Server"))+": "+k(ct(e.request)),1)):Q("",!0),_t(e.request)?(T(),A("a",{key:1,class:"thread-pending-request-link",href:_t(e.request),target:"_blank",rel:"noopener noreferrer"},k(v(w)("Open authorization link")),9,YM)):Q("",!0),(T(!0),A(ze,null,Tt(St(e.request),X=>(T(),A("div",{key:`${e.request.id}:${X.key}`,class:"thread-pending-request-question"},[f("p",JM,[bs(k(X.label),1),X.required?(T(),A("span",QM," *")):Q("",!0)]),X.description?(T(),A("p",XM,k(X.description),1)):Q("",!0),X.kind==="string"||X.kind==="number"?(T(),A("label",ZM,[f("span",e$,k(v(w)("Value")),1),f("input",{class:"thread-pending-request-input",type:X.inputType,value:String(re(e.request.id,X)??""),onInput:de=>Be(e.request.id,X,de)},null,40,t$)])):X.kind==="boolean"?(T(),A("div",n$,[f("span",o$,k(v(w)("Choice")),1),xe(ur,{class:"thread-pending-request-dropdown","model-value":se(re(e.request.id,X)),options:ie(X),placeholder:v(w)("Select true or false"),"onUpdate:modelValue":de=>D(e.request.id,X,de)},null,8,["model-value","options","placeholder","onUpdate:modelValue"])])):X.kind==="singleEnum"?(T(),A("div",r$,[f("span",a$,k(v(w)("Choice")),1),xe(ur,{class:"thread-pending-request-dropdown","model-value":String(re(e.request.id,X)??""),options:oe(X),placeholder:v(w)("Select an option"),"enable-search":"","search-placeholder":v(w)("Search options..."),"onUpdate:modelValue":de=>$(e.request.id,X,de)},null,8,["model-value","options","placeholder","search-placeholder","onUpdate:modelValue"])])):(T(),A("div",s$,[(T(!0),A(ze,null,Tt(X.options,de=>(T(),A("label",{key:`${e.request.id}:${X.key}:${de.value}`,class:"thread-pending-request-checkbox-row"},[f("input",{class:"thread-pending-request-checkbox",type:"checkbox",checked:W(e.request.id,X).includes(de.value),onChange:De=>G(e.request.id,X,de.value,De)},null,40,i$),f("span",l$,k(de.label),1)]))),128))]))]))),128)),g.value?(T(),A("p",u$,k(g.value),1)):Q("",!0),f("footer",c$,[f("button",{type:"button",class:"thread-pending-request-secondary",onClick:K[3]||(K[3]=X=>Ve(e.request,"cancel"))},k(v(w)("Cancel")),1),f("button",{type:"button",class:"thread-pending-request-secondary",onClick:K[4]||(K[4]=X=>Ve(e.request,"decline"))},k(v(w)("Decline")),1),f("button",{type:"button",class:"thread-pending-request-primary",onClick:K[5]||(K[5]=X=>Ve(e.request,"accept"))},k(v(w)("Continue")),1)])])):e.request.method==="item/tool/requestUserInput"?(T(),A("section",d$,[(T(!0),A(ze,null,Tt(Ee(e.request),X=>{var de;return T(),A("div",{key:`${e.request.id}:${X.id}`,class:"thread-pending-request-question"},[f("p",f$,k(X.header||X.question),1),X.question?(T(),A("p",p$,k(X.question),1)):Q("",!0),X.options.length>0?(T(),A("div",h$,[f("div",m$,[f("span",v$,k(v(w)("Choice")),1),xe(ur,{class:"thread-pending-request-dropdown","model-value":Ue(e.request.id,X.id,((de=X.options[0])==null?void 0:de.label)||""),options:xt(X),placeholder:v(w)("Choice"),"onUpdate:modelValue":De=>He(e.request.id,X.id,De)},null,8,["model-value","options","placeholder","onUpdate:modelValue"])]),Ge(e.request.id,X.id,X.options)?(T(),A("p",g$,k(Ge(e.request.id,X.id,X.options)),1)):Q("",!0)])):Q("",!0),X.isOther?(T(),A("label",y$,[f("span",w$,k(v(w)("Other answer")),1),f("input",{class:"thread-pending-request-input",type:"text",value:Ye(e.request.id,X.id),placeholder:v(w)("Other answer"),onInput:De=>ut(e.request.id,X.id,De)},null,40,b$)])):Q("",!0)])}),128)),f("footer",_$,[f("button",{type:"button",class:"thread-pending-request-primary",onClick:K[6]||(K[6]=X=>st(e.request))},k(v(w)("Send")),1)])])):e.request.method==="item/tool/call"?(T(),A("section",k$,[f("button",{type:"button",class:"thread-pending-request-primary",onClick:K[7]||(K[7]=X=>wt(e.request))},k(v(w)("Fail Tool Call")),1),f("button",{type:"button",class:"thread-pending-request-secondary",onClick:K[8]||(K[8]=X=>Rt(e.request))},k(v(w)("Success (Empty)")),1)])):(T(),A("section",C$,[f("button",{type:"button",class:"thread-pending-request-primary",onClick:K[9]||(K[9]=X=>Ze(e.request))},k(v(w)("Return Empty Result")),1),f("button",{type:"button",class:"thread-pending-request-secondary",onClick:K[10]||(K[10]=X=>Vt(e.request))},k(v(w)("Reject Request")),1)]))],64))],2)],4)):Q("",!0)}}),S$=Pt(T$,[["__scopeId","data-v-ffe669ea"]]),x$={key:0,class:"queued-messages"},A$={class:"queued-messages-inner"},P$=["onDragstart","onDragover","onDragleave","onDrop"],E$=["aria-label","title"],I$={class:"queued-row-text"},R$={key:0,class:"queued-row-badge"},M$={class:"queued-row-actions"},$$=["title","onClick"],j$=["title","onClick"],N$=["aria-label","title","onClick"],L$=Ln({__name:"QueuedMessages",props:{messages:{}},emits:["edit","steer","delete","reorder"],setup(e,{emit:t}){const n=t,{t:o}=Er(),r=S(""),s=S("");function a(x,R){var O;r.value=R,s.value="",(O=x.dataTransfer)==null||O.setData("text/plain",R),x.dataTransfer&&(x.dataTransfer.effectAllowed="move")}function u(x){!r.value||r.value===x||(s.value=x)}function d(x){s.value===x&&(s.value="")}function m(x){const R=r.value;g(),!(!R||R===x)&&n("reorder",{draggedId:R,targetId:x})}function g(){r.value="",s.value=""}function w(x){var B,Y,J;const R=x.text.trim();if(R)return R;const O=[],z=((B=x.imageUrls)==null?void 0:B.length)??0,Z=((Y=x.fileAttachments)==null?void 0:Y.length)??0,ce=((J=x.skills)==null?void 0:J.length)??0;return z>0&&O.push(`${z} ${o(z===1?"image":"images")}`),Z>0&&O.push(`${Z} ${o(Z===1?"file":"files")}`),ce>0&&O.push(`${ce} ${o(ce===1?"skill":"skills")}`),O.join(", ")||o("(empty queued message)")}return(x,R)=>e.messages.length>0?(T(),A("div",x$,[f("div",A$,[(T(!0),A(ze,null,Tt(e.messages,O=>(T(),A("div",{key:O.id,class:Ke(["queued-row",{"is-dragging":r.value===O.id,"is-drop-target":s.value===O.id&&r.value!==O.id}]),draggable:"true",onDragstart:z=>a(z,O.id),onDragover:Qe(z=>u(O.id),["prevent"]),onDragleave:z=>d(O.id),onDrop:Qe(z=>m(O.id),["prevent"]),onDragend:g},[f("button",{class:"queued-row-drag",type:"button","aria-label":v(o)("Drag to reorder queued message"),title:v(o)("Drag to reorder queued message")},[...R[0]||(R[0]=[f("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"},[f("path",{fill:"currentColor",d:"M9 5.5A1.5 1.5 0 1 1 6 5.5a1.5 1.5 0 0 1 3 0m0 6.5a1.5 1.5 0 1 1-3 0a1.5 1.5 0 0 1 3 0m-1.5 8A1.5 1.5 0 1 0 7.5 17a1.5 1.5 0 0 0 0 3m10-13A1.5 1.5 0 1 0 17.5 4a1.5 1.5 0 0 0 0 3m1.5 5a1.5 1.5 0 1 1-3 0a1.5 1.5 0 0 1 3 0m-1.5 8a1.5 1.5 0 1 0 0-3a1.5 1.5 0 0 0 0 3"})],-1)])],8,E$),R[2]||(R[2]=f("svg",{class:"queued-row-icon",xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"},[f("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})],-1)),f("span",I$,k(w(O)),1),O.awaitingCompaction?(T(),A("span",R$,k(v(o)("Compacts context before send")),1)):Q("",!0),f("div",M$,[f("button",{class:"queued-row-edit",type:"button",title:v(o)("Edit queued message"),onClick:z=>x.$emit("edit",O.id)},k(v(o)("Edit")),9,$$),f("button",{class:"queued-row-steer",type:"button",title:v(o)("Send now without interrupting work"),onClick:z=>x.$emit("steer",O.id)},k(v(o)("Steer")),9,j$),f("button",{class:"queued-row-delete",type:"button","aria-label":v(o)("Delete queued message"),title:v(o)("Delete queued message"),onClick:z=>x.$emit("delete",O.id)},[...R[1]||(R[1]=[f("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"},[f("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 7h16M10 11v6M14 11v6M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-12M9 7V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3"})],-1)])],8,N$)])],42,P$))),128))])])):Q("",!0)}}),O$=Pt(L$,[["__scopeId","data-v-631d6962"]]),D$={key:0,class:"rate-limit-status","aria-live":"polite"},F$=["title"],U$={class:"rate-limit-card-header"},B$={class:"rate-limit-card-title"},q$={key:0,class:"rate-limit-card-plan"},z$={class:"rate-limit-card-metrics"},H$={key:0,class:"rate-limit-card-footer"},W$=Ln({__name:"RateLimitStatus",props:{snapshots:{}},setup(e){const{t}=Er();function n(B){var Y,J;return((Y=B.limitId)==null?void 0:Y.trim())||((J=B.limitName)==null?void 0:J.trim())||"__default__"}function o(B){var Y,J;return((Y=B.limitName)==null?void 0:Y.trim())||((J=B.limitId)==null?void 0:J.trim())||t("Rate limits")}function r(B){const Y=B.trim();return Y?Y.replace(/[_-]+/g," ").replace(/\b\w/g,J=>J.toUpperCase()):""}function s(B){return!B||B<=0?t("Window"):B%1440===0?`${B/1440}d`:B%60===0?`${B/60}h`:B<60?`${B}m`:`${Math.round(B/60*10)/10}h`}function a(B){const Y=Math.max(0,Math.min(100,100-B));return`${Math.round(Y)}% ${t("left")}`}function u(B){return`${Math.round(B)}%`}function d(B,Y){return{key:Y,label:`${s(B.windowDurationMins)} ${a(B.usedPercent)}`}}function m(B){const Y=[];return B.primary&&Y.push(d(B.primary,"primary")),B.secondary&&Y.push(d(B.secondary,"secondary")),Y}function g(B){if(!B)return"";const Y=new Date(B*1e3),J=Y.getMonth()+1,ge=String(Y.getDate()).padStart(2,"0"),Ae=String(Y.getHours()).padStart(2,"0"),ye=String(Y.getMinutes()).padStart(2,"0");return`${J}.${ge} ${Ae}:${ye}`}function w(B){if(!(B!=null&&B.resetsAt))return"";const Y=B.resetsAt*1e3-Date.now();if(Y<=0)return t("Resetting now");const J=Math.round(Y/6e4);if(J<60)return`${t("Resets in")} ${J}m`;const ge=Math.round(J/60);if(ge<24)return`${t("Resets in")} ${ge}h`;const Ae=Math.round(ge/24);return`${t("Resets in")} ${Ae}d`}function x(B){return[B.primary,B.secondary].filter(Y=>Y!==null)}function R(B){const Y=x(B);return Y.length===0?null:[...Y].sort((J,ge)=>{const Ae=J.windowDurationMins??Number.MAX_SAFE_INTEGER,ye=ge.windowDurationMins??Number.MAX_SAFE_INTEGER;return Ae!==ye?Ae-ye:(J.resetsAt??Number.MAX_SAFE_INTEGER)-(ge.resetsAt??Number.MAX_SAFE_INTEGER)})[0]}function O(B){const Y=x(B);if(Y.length===0)return"";const J=[...Y].sort((Ae,ye)=>{const $e=Ae.windowDurationMins??-1,pe=ye.windowDurationMins??-1;return $e!==pe?pe-$e:(ye.resetsAt??-1)-(Ae.resetsAt??-1)})[0],ge=g(J.resetsAt);return ge||""}function z(B){const Y=B.credits;return Y?Y.unlimited?t("Unlimited credits"):Y.balance?`${t("Credits")} ${Y.balance}`:Y.hasCredits?t("Credits available"):"":""}function Z(B){return[w(R(B)),O(B),z(B)].filter(Y=>Y.length>0)}function ce(B){const Y=[o(B)];for(const J of m(B))Y.push(J.label);for(const J of x(B))Y.push(`${s(J.windowDurationMins)} used ${u(J.usedPercent)}`);for(const J of Z(B))Y.push(J);return Y.join(`
|
|
62
62
|
`)}return(B,Y)=>e.snapshots.length>0?(T(),A("aside",D$,[(T(!0),A(ze,null,Tt(e.snapshots,J=>(T(),A("div",{key:n(J),class:"rate-limit-card",title:ce(J)},[f("div",U$,[f("span",B$,k(o(J)),1),J.planType?(T(),A("span",q$,k(r(J.planType)),1)):Q("",!0)]),f("div",z$,[(T(!0),A(ze,null,Tt(m(J),ge=>(T(),A("span",{key:ge.key,class:"rate-limit-card-metric"},k(ge.label),1))),128))]),Z(J).length>0?(T(),A("div",H$,k(Z(J).join(" | ")),1)):Q("",!0)],8,F$))),128))])):Q("",!0)}}),V$=Pt(W$,[["__scopeId","data-v-1fd5e1ec"]]),G$=["aria-label"],K$=["aria-checked","onClick"],Y$={class:"runtime-toggle-option-label"},J$=Ln({__name:"ComposerRuntimeDropdown",props:{modelValue:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=t,{t:o}=Er(),r=[{value:"local",label:o("Local project"),icon:Sp},{value:"worktree",label:o("New worktree"),icon:Oi}];function s(a){n("update:modelValue",a)}return(a,u)=>(T(),A("div",{class:"runtime-toggle",role:"radiogroup","aria-label":v(o)("Continue in")},[(T(),A(ze,null,Tt(r,d=>f("button",{key:d.value,class:Ke(["runtime-toggle-option",{"is-selected":e.modelValue===d.value}]),type:"button",role:"radio","aria-checked":e.modelValue===d.value,onClick:m=>s(d.value)},[(T(),rt(up(d.icon),{class:"runtime-toggle-option-icon"})),f("span",Y$,k(d.label),1)],10,K$)),64))],8,G$))}}),Q$=Pt(J$,[["__scopeId","data-v-4d282f1a"]]),X$={},Z$={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"};function ej(e,t){return T(),A("svg",Z$,[...t[0]||(t[0]=[f("path",{d:"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12"},null,-1),f("path",{d:"M9 4l0 16"},null,-1)])])}const Fy=Pt(X$,[["render",ej]]),tj={},nj={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true"};function oj(e,t){return T(),A("svg",nj,[...t[0]||(t[0]=[f("path",{d:"M6 21a3 3 0 0 1 -3 -3v-12a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3zm12 -16h-8v14h8a1 1 0 0 0 1 -1v-12a1 1 0 0 0 -1 -1"},null,-1)])])}const rj=Pt(tj,[["render",oj]]),aj={class:"sidebar-thread-controls"},sj=["aria-label","title"],ij=["aria-label","title"],lj=Ln({__name:"SidebarThreadControls",props:{isSidebarCollapsed:{type:Boolean},showNewThreadButton:{type:Boolean}},emits:["toggle-sidebar","start-new-thread"],setup(e){const{t}=Er();return(n,o)=>(T(),A("div",aj,[f("button",{class:"sidebar-thread-controls-button",type:"button","aria-label":e.isSidebarCollapsed?v(t)("Expand sidebar"):v(t)("Collapse sidebar"),title:e.isSidebarCollapsed?v(t)("Expand sidebar"):v(t)("Collapse sidebar"),onClick:o[0]||(o[0]=r=>n.$emit("toggle-sidebar"))},[e.isSidebarCollapsed?(T(),rt(rj,{key:0,class:"sidebar-thread-controls-icon"})):(T(),rt(Fy,{key:1,class:"sidebar-thread-controls-icon"}))],8,sj),cr(n.$slots,"default",{},void 0),e.showNewThreadButton?(T(),A("button",{key:0,class:"sidebar-thread-controls-button",type:"button","aria-label":v(t)("Start new thread"),title:v(t)("Start new thread"),onClick:o[1]||(o[1]=r=>n.$emit("start-new-thread"))},[xe(Rl,{class:"sidebar-thread-controls-icon"})],8,ij)):Q("",!0)]))}}),nv=Pt(lj,[["__scopeId","data-v-39c4ec05"]]);function uj(e){if(typeof document>"u")return!1;const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly","true"),t.style.position="fixed",t.style.left="-9999px",t.style.opacity="0",t.style.pointerEvents="none",document.body.appendChild(t),t.focus(),t.select(),t.setSelectionRange(0,e.length);try{return document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(t)}}async function Uy(e){var t;if(typeof navigator<"u"&&((t=navigator.clipboard)!=null&&t.writeText))try{await navigator.clipboard.writeText(e);return}catch{}if(!uj(e))throw new Error("Copy failed")}const cj={class:"right-git-panel"},dj={class:"rgp-review-label"},fj={class:"rgp-review-delta"},pj={class:"rgp-added"},hj={class:"rgp-removed"},mj={class:"rgp-state"},vj={class:"rgp-state-label"},gj={class:"rgp-state-value"},yj={key:0,class:"rgp-state-meta"},wj=["href"],bj={key:2,class:"rgp-section"},_j={class:"rgp-section-title"},kj={class:"rgp-file-list"},Cj=["title","onClick"],Tj={class:"rgp-file-status"},Sj={class:"rgp-file-path"},xj={key:0,class:"rgp-file-previous-path"},Aj={class:"rgp-section"},Pj={class:"rgp-section-title"},Ej={class:"rgp-search-wrap"},Ij=["placeholder"],Rj={class:"rgp-branches",role:"listbox"},Mj={class:"rgp-branch-row"},$j=["disabled","onClick"],jj={class:"rgp-branch-name"},Nj={key:0,class:"rgp-branch-meta"},Lj={key:1,class:"rgp-branch-meta"},Oj=["disabled","onClick"],Dj={key:0,class:"rgp-empty"},Fj={class:"rgp-section"},Uj={class:"rgp-section-title"},Bj={class:"rgp-search-wrap"},qj=["placeholder"],zj={class:"rgp-toggle-row"},Hj={class:"rgp-commit-list"},Wj={key:0,class:"rgp-empty"},Vj={key:1,class:"rgp-empty"},Gj={key:2,class:"rgp-empty is-error"},Kj=["disabled","title","onClick"],Yj={class:"rgp-commit-top"},Jj=["title","onClick","onKeydown"],Qj={class:"rgp-commit-meta"},Xj={key:0,class:"rgp-branch-meta"},Zj={class:"rgp-commit-subject"},eN={key:0,class:"rgp-empty"},tN={key:3,class:"rgp-section"},nN={class:"rgp-section-title"},oN=["title"],rN=["disabled"],aN={class:"rgp-commit-detail-subject"},sN={class:"rgp-file-list"},iN={key:0,class:"rgp-empty"},lN={key:1,class:"rgp-empty is-error"},uN=["title","onClick"],cN={class:"rgp-file-meta-row"},dN={class:"rgp-file-status"},fN={class:"rgp-file-delta"},pN={class:"rgp-added"},hN={class:"rgp-removed"},mN={class:"rgp-file-path"},vN={key:0,class:"rgp-file-previous-path"},gN={key:0,class:"rgp-empty"},yN=Ln({__name:"RightGitPanel",props:{currentBranch:{},headSha:{},headSubject:{},headDate:{},detached:{type:Boolean},dirty:{type:Boolean},worktreeChangeSummary:{},worktreeChanges:{},branches:{},commitsByBranch:{},commitsLoadingFor:{},commitsError:{},commitFilesBySha:{},commitFilesLoadingFor:{},commitFilesError:{},loading:{type:Boolean},busy:{type:Boolean},error:{},reviewOpen:{type:Boolean},showReview:{type:Boolean}},emits:["toggleReview","checkoutBranch","resetBranchToCommit","loadCommits","loadCommitFiles","openCommitFile"],setup(e,{emit:t}){const n=e,o=t,r=S(null),s=S(""),a=S(""),u=S(""),d=S(""),m=S(""),g=S(""),w=S(!0),x=ee(()=>n.showReview!==!1),{buildFeedbackMailto:R,feedbackMailtoBase:O,recordVisibleFailure:z}=xp(),{t:Z}=Er(),ce=O();function B(ne,re){z(re);const W=ne.currentTarget;W instanceof HTMLAnchorElement&&(W.href=R())}const Y=ee(()=>n.currentBranch?n.currentBranch:n.headSubject?n.headSubject:n.headSha?`${Z("Detached")} ${n.headSha}`:n.loading?Z("Loading branch..."):Z("Detached HEAD")),J=ee(()=>{var W;const ne=[n.headSha,n.headDate].filter(Boolean).join(" · "),re=((W=n.headSubject)==null?void 0:W.trim())??"";return re&&ne?`${re} (${ne})`:re||ne}),ge=ee(()=>n.busy||n.loading),Ae=ee(()=>n.error||(n.dirty?Z("Tracked changes must be committed, stashed, or discarded before switching or resetting. Untracked files are allowed unless Git would overwrite them."):"")),ye=ee(()=>n.error?"error":"info"),$e=ee(()=>{const ne=s.value.trim().toLowerCase(),re=[...n.branches].sort((W,Be)=>W.isRemote===!0&&Be.isRemote!==!0?1:W.isRemote!==!0&&Be.isRemote===!0?-1:0);return ne?re.filter(W=>W.label.toLowerCase().includes(ne)||W.value.toLowerCase().includes(ne)):re}),pe=ee(()=>n.branches.find(ne=>ne.value===u.value)??null),Ne=ee(()=>{var ne;return((ne=pe.value)==null?void 0:ne.isRemote)===!0}),je=ee(()=>u.value?`${u.value}\0${w.value?"with-reset-history":"without-reset-history"}`:""),he=ee(()=>je.value?n.commitsByBranch[je.value]||[]:[]),Se=ee(()=>he.value.find(ne=>ne.sha===d.value)??null),Pe=ee(()=>Se.value?n.commitFilesBySha[Se.value.sha]||[]:[]),Ee=ee(()=>{const ne=a.value.trim().toLowerCase(),re=he.value;return ne?re.filter(W=>W.sha.toLowerCase().includes(ne)||W.shortSha.toLowerCase().includes(ne)||W.subject.toLowerCase().includes(ne)||W.date.toLowerCase().includes(ne)):re});function Ue(ne){u.value=ne,d.value="",o("loadCommits",{branch:ne,includeResetHistory:w.value})}function Ye(){u.value&&o("loadCommits",{branch:u.value,includeResetHistory:w.value})}function He(ne){var W;const re=((W=n.headSha)==null?void 0:W.trim())??"";return re?ne.sha===re||ne.shortSha===re||ne.sha.startsWith(re):!1}function xt(ne){return`${Z("Show")} ${ne.shortSha} ${Z("files")}`}function ut(ne){d.value=ne.sha,o("loadCommitFiles",ne.sha)}function Ge(ne){const re=ne.sha.trim()||ne.shortSha.trim();re&&(m.value=ne.sha,Uy(re).catch(()=>{m.value=""}))}function tt(){!u.value||!Se.value||Ne.value||o("resetBranchToCommit",{branch:u.value,sha:Se.value.sha})}function ct(ne){return typeof ne=="number"&&Number.isFinite(ne)?String(ne):"-"}function _t(ne){Se.value&&o("openCommitFile",{sha:Se.value.sha,path:ne})}function St(ne){n.headSha&&o("openCommitFile",{sha:n.headSha,path:ne})}function yt(){var re,W;const ne=(re=n.currentBranch)==null?void 0:re.trim();return ne||(((W=n.branches[0])==null?void 0:W.value)??"")}function ae(){const ne=u.value||yt();ne&&(u.value=ne,o("loadCommits",{branch:ne,includeResetHistory:w.value}))}return xs(()=>{ae(),Ht(()=>{var ne;return(ne=r.value)==null?void 0:ne.focus()})}),ot(()=>[n.currentBranch,n.branches.map(ne=>ne.value).join(`
|
|
63
63
|
`)],()=>{var Be;const ne=yt();if(!ne){u.value="",g.value="";return}const re=((Be=n.currentBranch)==null?void 0:Be.trim())??"",W=re!==g.value;g.value=re,(W||!u.value||!n.branches.some($=>$.value===u.value))&&(u.value=ne),u.value&&o("loadCommits",{branch:u.value,includeResetHistory:w.value})},{immediate:!0}),ot(he,ne=>{d.value&&(ne.some(re=>re.sha===d.value)||(d.value=""))}),(ne,re)=>(T(),A("div",cj,[x.value?(T(),A("button",{key:0,class:"rgp-review",type:"button",onClick:re[0]||(re[0]=W=>o("toggleReview"))},[xe(Rl,{class:"rgp-review-icon"}),f("span",dj,k(e.reviewOpen?v(Z)("Review Worktree Changes (Open)"):v(Z)("Review Worktree Changes")),1),f("span",fj,[f("span",pj,"+"+k(e.worktreeChangeSummary.addedLineCount),1),f("span",hj,"-"+k(e.worktreeChangeSummary.removedLineCount),1)])])):Q("",!0),f("div",mj,[f("span",vj,k(e.detached?v(Z)("Detached HEAD"):v(Z)("Current branch")),1),f("span",gj,k(Y.value),1),J.value?(T(),A("span",yj,k(J.value),1)):Q("",!0)]),Ae.value?(T(),A("div",{key:1,class:Ke(["rgp-status",{"is-error":ye.value==="error"}])},[f("span",null,k(Ae.value),1),ye.value==="error"?(T(),A("a",{key:0,class:"rgp-feedback",href:v(ce),onClick:re[1]||(re[1]=W=>B(W,Ae.value))},k(v(Z)("Send feedback")),9,wj)):Q("",!0)],2)):Q("",!0),n.worktreeChanges.length>0?(T(),A("div",bj,[f("div",_j,k(n.worktreeChanges.length)+" "+k(n.worktreeChanges.length===1?v(Z)("file changed"):v(Z)("files changed")),1),f("div",kj,[(T(!0),A(ze,null,Tt(n.worktreeChanges,W=>(T(),A("button",{key:`${W.status}:${W.previousPath??""}:${W.path}`,class:"rgp-file",type:"button",title:W.previousPath?`${W.previousPath} → ${W.path}`:W.path,onClick:Be=>St(W.path)},[f("span",Tj,k(W.label),1),f("span",Sj,k(W.path),1),W.previousPath?(T(),A("span",xj,"← "+k(W.previousPath),1)):Q("",!0)],8,Cj))),128))])])):Q("",!0),f("div",Aj,[f("div",Pj,k(v(Z)("Branches")),1),f("div",Ej,[Ot(f("input",{ref_key:"searchInputRef",ref:r,"onUpdate:modelValue":re[2]||(re[2]=W=>s.value=W),class:"rgp-search",type:"text",placeholder:v(Z)("Search branches...")},null,8,Ij),[[sn,s.value]])]),f("ul",Rj,[(T(!0),A(ze,null,Tt($e.value,W=>(T(),A("li",{key:W.value,class:"rgp-branch-item"},[f("div",Mj,[f("button",{class:Ke(["rgp-branch-button",{"is-current":W.value===e.currentBranch,"is-selected":W.value===u.value}]),type:"button",disabled:ge.value,onClick:Be=>Ue(W.value)},[f("span",jj,k(W.label),1),W.value===e.currentBranch?(T(),A("span",Nj,k(v(Z)("current")),1)):W.isRemote?(T(),A("span",Lj,k(v(Z)("remote")),1)):Q("",!0)],10,$j),W.value===u.value&&W.value!==e.currentBranch&&!W.isRemote?(T(),A("button",{key:0,class:"rgp-branch-checkout",type:"button",disabled:ge.value,onClick:Be=>o("checkoutBranch",W.value)},k(v(Z)("Checkout")),9,Oj)):Q("",!0)])]))),128)),$e.value.length===0?(T(),A("li",Dj,k(v(Z)("No branches found.")),1)):Q("",!0)])]),f("div",Fj,[f("div",Uj,k(v(Z)("Commits")),1),f("div",Bj,[Ot(f("input",{"onUpdate:modelValue":re[3]||(re[3]=W=>a.value=W),class:"rgp-search",type:"text",placeholder:v(Z)("Search commits...")},null,8,qj),[[sn,a.value]])]),f("label",zj,[Ot(f("input",{"onUpdate:modelValue":re[4]||(re[4]=W=>w.value=W),type:"checkbox",onChange:Ye},null,544),[[Qg,w.value]]),f("span",null,k(v(Z)("Reset-history refs")),1)]),f("div",Hj,[u.value?e.commitsLoadingFor===je.value?(T(),A("div",Vj,k(v(Z)("Loading commits...")),1)):e.commitsError?(T(),A("div",Gj,k(e.commitsError),1)):(T(),A(ze,{key:3},[(T(!0),A(ze,null,Tt(Ee.value,W=>(T(),A("button",{key:W.sha,class:Ke(["rgp-commit",{"is-current":He(W),"is-selected":W.sha===d.value}]),type:"button",disabled:ge.value,title:xt(W),onClick:Be=>ut(W)},[f("span",Yj,[f("span",{class:"rgp-ref",role:"button",tabindex:"0",title:m.value===W.sha?v(Z)("Copied commit ref"):`${v(Z)("Copy")} ${W.sha}`,onClick:Qe(Be=>Ge(W),["stop"]),onKeydown:[In(Qe(Be=>Ge(W),["prevent","stop"]),["enter"]),In(Qe(Be=>Ge(W),["prevent","stop"]),["space"])]},k(W.shortSha),41,Jj),f("span",Qj,[He(W)?(T(),A("span",Xj,k(v(Z)("current")),1)):Q("",!0),f("span",null,k(W.date),1)])]),f("span",Zj,k(W.subject),1)],10,Kj))),128)),Ee.value.length===0?(T(),A("div",eN,k(v(Z)("No commits found.")),1)):Q("",!0)],64)):(T(),A("div",Wj,k(v(Z)("Select a branch.")),1))])]),Se.value?(T(),A("div",tN,[f("div",nN,[f("span",{class:"rgp-ref",role:"button",tabindex:"0",title:m.value===Se.value.sha?v(Z)("Copied commit ref"):`${v(Z)("Copy")} ${Se.value.sha}`,onClick:re[5]||(re[5]=Qe(W=>Ge(Se.value),["stop"])),onKeydown:re[6]||(re[6]=In(Qe(W=>Ge(Se.value),["prevent","stop"]),["enter"]))},k(Se.value.shortSha),41,oN),f("button",{class:"rgp-reset-commit",type:"button",disabled:ge.value||Ne.value||!u.value,onClick:tt},k(v(Z)("Reset")),9,rN)]),f("p",aN,k(Se.value.subject),1),f("div",sN,[e.commitFilesLoadingFor===Se.value.sha?(T(),A("div",iN,k(v(Z)("Loading files...")),1)):e.commitFilesError?(T(),A("div",lN,k(e.commitFilesError),1)):(T(),A(ze,{key:2},[(T(!0),A(ze,null,Tt(Pe.value,W=>(T(),A("button",{key:`${W.status}:${W.previousPath??""}:${W.path}`,class:"rgp-file",type:"button",title:W.previousPath?`${W.previousPath} → ${W.path}`:W.path,onClick:Be=>_t(W.path)},[f("span",cN,[f("span",dN,k(W.label),1),f("span",fN,[f("span",pN,"+"+k(ct(W.addedLineCount)),1),f("span",hN,"-"+k(ct(W.removedLineCount)),1)])]),f("span",mN,k(W.path),1),W.previousPath?(T(),A("span",vN,"← "+k(W.previousPath),1)):Q("",!0)],8,uN))),128)),Pe.value.length===0?(T(),A("div",gN,k(v(Z)("No file changes.")),1)):Q("",!0)],64))])])):Q("",!0)]))}}),wN=Pt(yN,[["__scopeId","data-v-76cdff49"]]),bN={class:"right-files-panel"},_N={class:"rfp-toolbar"},kN=["placeholder"],CN={key:0,class:"rfp-empty"},TN={key:1,class:"rfp-empty is-error"},SN={key:2,class:"rfp-empty"},xN={key:3,class:"rfp-groups"},AN=["aria-expanded","onClick"],PN={class:"rfp-dir-chevron","aria-hidden":"true"},EN={class:"rfp-dir-icon","aria-hidden":"true"},IN={class:"rfp-dir-name"},RN=["title","onClick"],MN={class:"rfp-file-label"},$N=Ln({__name:"RightFilesPanel",props:{cwd:{}},emits:["open-preview"],setup(e,{emit:t}){const n=e,o=t,{t:r}=Er(),s=S([]),a=S(!1),u=S(""),d=S(""),m=S(new Set);function g(B){return B.sort((Y,J)=>Y.kind!==J.kind?Y.kind==="dir"?-1:1:Y.name.localeCompare(J.name,void 0,{numeric:!0,sensitivity:"base"}))}function w(B){const Y=[],J=new Map;function ge(Ae){let ye="",$e=Y;for(const pe of Ae){ye=ye?`${ye}/${pe}`:pe;let Ne=J.get(ye);Ne||(Ne={name:pe,path:"",relativePath:ye,kind:"dir",children:[]},J.set(ye,Ne),$e.push(Ne)),$e=Ne.children}return J.get(ye)}for(const Ae of B){const ye=Ae.relativePath.split("/").filter(Boolean);if(ye.length===0)continue;if(Ae.isDirectory){const je=ge(ye);je.path=Ae.path;continue}const $e=ye[ye.length-1],pe=ye.slice(0,-1);(pe.length>0?ge(pe).children:Y).push({name:$e,path:Ae.path,relativePath:Ae.relativePath,kind:"file",children:[]})}g(Y);for(const Ae of J.values())g(Ae.children);return Y}const x=ee(()=>w(s.value)),R=ee(()=>{const B=d.value.trim().toLowerCase(),Y=[];function J(Ae){return!B||Ae.relativePath.toLowerCase().includes(B)?!0:Ae.children.some(J)}function ge(Ae,ye){for(const $e of Ae){if(B&&!J($e)||(Y.push({node:$e,depth:ye}),$e.kind==="file"))continue;(B?!0:!m.value.has($e.relativePath))&&ge($e.children,ye+1)}}return ge(x.value,0),Y});function O(B){return d.value.trim()?!0:!m.value.has(B)}function z(B){const Y=new Set(m.value);Y.has(B)?Y.delete(B):Y.add(B),m.value=Y}function Z(B){o("open-preview",{path:B.path,label:B.name})}async function ce(){const B=n.cwd.trim();if(!B){s.value=[],u.value="";return}a.value=!0,u.value="";try{s.value=await hS(B)}catch(Y){s.value=[],u.value=Y instanceof Error?Y.message:"Failed to load workspace files"}finally{a.value=!1}}return xs(()=>{ce()}),ot(()=>n.cwd,()=>{m.value=new Set,d.value="",ce()}),(B,Y)=>(T(),A("div",bN,[f("div",_N,[Ot(f("input",{"onUpdate:modelValue":Y[0]||(Y[0]=J=>d.value=J),class:"rfp-search",type:"text",placeholder:v(r)("Filter files...")},null,8,kN),[[sn,d.value]])]),a.value?(T(),A("div",CN,k(v(r)("Loading files...")),1)):u.value?(T(),A("div",TN,k(u.value),1)):R.value.length===0?(T(),A("div",SN,k(v(r)("No files in workspace.")),1)):(T(),A("div",xN,[(T(!0),A(ze,null,Tt(R.value,J=>(T(),A("div",{key:J.node.relativePath,class:"rfp-row",style:Pr({paddingLeft:`${J.depth*12+6}px`})},[J.node.kind==="dir"?(T(),A("button",{key:0,class:"rfp-dir",type:"button","aria-expanded":O(J.node.relativePath),onClick:ge=>z(J.node.relativePath)},[f("span",PN,k(O(J.node.relativePath)?"▾":"▸"),1),f("span",EN,k(O(J.node.relativePath)?"📂":"📁"),1),f("span",IN,k(J.node.name),1)],8,AN)):(T(),A("button",{key:1,class:"rfp-file",type:"button",title:J.node.relativePath,onClick:ge=>Z(J.node)},[Y[1]||(Y[1]=f("span",{class:"rfp-file-icon","aria-hidden":"true"},"📄",-1)),f("span",MN,k(J.node.name),1)],8,RN))],4))),128))]))]))}}),jN=Pt($N,[["__scopeId","data-v-686d6084"]]),NN={class:"right-file-preview"},LN={class:"right-file-preview-header"},ON={class:"right-file-preview-title-wrap"},DN={class:"right-file-preview-title"},FN={class:"right-file-preview-path"},UN=["href"],BN={class:"right-file-preview-body"},qN={key:0,class:"right-file-preview-empty"},zN={key:1,class:"right-file-preview-empty is-error"},HN=["src","alt"],WN={key:3,class:"right-file-preview-code"},VN={key:4,class:"right-file-preview-empty"},GN=["href"],KN={key:0,class:"right-file-preview-footer"},YN=Ln({__name:"RightFilePreview",props:{filePath:{},name:{}},setup(e){const t=e,{t:n}=Er(),o=S(null),r=S(!1),s=S(""),a=ee(()=>{const u=t.filePath.replace(/\\/g,"/"),d=u.startsWith("/")?u:`/${u}`;return`/codex-local-browse${encodeURI(d)}`});return ot(()=>t.filePath,async u=>{if(o.value=null,s.value="",!!u){r.value=!0;try{o.value=await mS(u)}catch(d){s.value=d instanceof Error?d.message:"Failed to preview file"}finally{r.value=!1}}},{immediate:!0}),(u,d)=>(T(),A("div",NN,[f("div",LN,[f("div",ON,[f("span",DN,k(e.name),1),f("span",FN,k(e.filePath),1)]),f("a",{class:"right-file-preview-open",href:a.value,target:"_blank",rel:"noopener noreferrer"},k(v(n)("Open in browser")),9,UN)]),f("div",BN,[r.value?(T(),A("div",qN,k(v(n)("Loading file…")),1)):s.value?(T(),A("div",zN,k(s.value),1)):o.value&&o.value.isImage?(T(),A("img",{key:2,class:"right-file-preview-image",src:a.value,alt:e.name},null,8,HN)):o.value&&o.value.isText&&o.value.content!==void 0?(T(),A("pre",WN,k(o.value.content),1)):(T(),A("div",VN,[f("p",null,k(v(n)("This file type cannot be previewed.")),1),f("a",{class:"right-file-preview-open",href:a.value,target:"_blank",rel:"noopener noreferrer"},k(v(n)("Open in browser")),9,GN)]))]),o.value&&o.value.truncated?(T(),A("div",KN,k(v(n)("File is large; showing the first part.")),1)):Q("",!0)]))}}),JN=Pt(YN,[["__scopeId","data-v-11e988a2"]]),QN={},XN={viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"};function ZN(e,t){return T(),A("svg",XN,[...t[0]||(t[0]=[f("circle",{cx:"11",cy:"11",r:"8"},null,-1),f("path",{d:"m21 21-4.35-4.35"},null,-1)])])}const ov=Pt(QN,[["render",ZN]]),e2={},t2={xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 24 24"};function n2(e,t){return T(),A("svg",t2,[...t[0]||(t[0]=[f("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[f("path",{d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 0 0-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 0 0-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 0 0-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 0 0-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 0 0 1.066-2.573c-.94-1.543.826-3.31 2.37-2.37c1 .608 2.296.07 2.572-1.065"}),f("path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0-6 0"})],-1)])])}const o2=Pt(e2,[["render",n2]]),r2={},a2={viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"};function s2(e,t){return T(),A("svg",a2,[...t[0]||(t[0]=[f("path",{d:"M5 7l5 5-5 5",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),f("path",{d:"M12 17h7",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},null,-1)])])}const i2=Pt(r2,[["render",s2]]),l2={},u2={xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 24 24"};function c2(e,t){return T(),A("svg",u2,[...t[0]||(t[0]=[f("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 7a2 2 0 0 1 2-2h2.586A2 2 0 0 1 14 5.586L15.414 7H18a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2zm-4 4V5a2 2 0 0 1 2-2h2"},null,-1)])])}const rv=Pt(l2,[["render",c2]]);function By(e){var r;const t=e.replace(/\r\n/g,`
|
|
64
64
|
`).trim();if(!t)return null;const n=[],o=[];for(const s of t.split(`
|
|
@@ -77,7 +77,7 @@ ${j}`:j,Ht(()=>{var q;(q=J.value)==null||q.focus(),no()}))}function vn(I){const
|
|
|
77
77
|
|
|
78
78
|
`)&&fi(b,`${Re}
|
|
79
79
|
|
|
80
|
-
`)}ua(i);const cs=ke(i);cs&&(Qt(b,cs),Jt(b,{label:"Running command",details:[((Zu=cs.commandExecution)==null?void 0:Zu.command)??""]}));const Bs=it(i);if(Bs){const Re=(O.value[b]??[]).find(Ft=>Ft.id===Bs.itemId);Re!=null&&Re.commandExecution&&Qt(b,{...Re,commandExecution:{...Re.commandExecution,aggregatedOutput:`${Re.commandExecution.aggregatedOutput}${Bs.delta}`}})}const Gu=Et(i);Gu&&Qt(b,Gu);const Ku=Bo(i);if(Ku&&Nl(b,Ku),ir(i)&&br(b,!0),i.method==="turn/completed"){ro=!1,br(b),w.clear(),O.value[b]&&(O.value=Ct(O.value,b));const Re=fn(i);Re&&(So(Re),$t(Re,!1),Jt(Re,null),ii(Re),Le||(co(Re),zl(Re)))}}function Ua(i){if(i.method==="thread/tokenUsage/updated"||i.method.startsWith("thread/realtime/"))return;const c=i.method,h=c==="turn/started"||c==="turn/completed"||c==="error",b=c.startsWith("thread/")||c==="turn/completed";if(!h&&!b)return;const P=fn(i);P&&h&&Xt.add(P),b&&(_n=!0,Jr=!0),!(pt!==null||typeof window>"u")&&(pt=window.setTimeout(()=>{pt=null,zr()},kc))}async function zo(i,c){if(!_o){_o=!0;try{if(!c)return;const h=[];for(const b of vd(c)){const P=qi(b);h.includes(P)||h.push(P)}if(h.length>0){const b=c.projectOrder.length>0?fl(h,i):fl(W.value,i);gs(W.value,b)||(W.value=b)}if(Object.keys(c.labels).length>0||(c.remoteProjects??[]).length>0){const b={...Be.value};let P=!1;for(const[E,L]of Object.entries(c.labels)){const H=at(E).trim(),te=[qi(E)];H&&te.push(H);for(const me of te)b[me]!==L&&(b[me]=L,P=!0)}for(const E of c.order){const L=qi(E),H=Gr(Tl(E));if(!H.startsWith(".")||H===L)continue;const te=`${L} ${H}`;b[L]!==void 0||b[L]===te||(b[L]=te,P=!0)}for(const E of c.remoteProjects??[]){const L=dL(E);b[E.id]!==L&&(b[E.id]=L,P=!0)}P&&(Be.value=b)}}catch{}}}async function Dl(i={}){if(!(i.force!==!0&&Object.keys(K.value).length>0))try{const c=await PS();if(Object.keys(c.titles).length>0){const h={};for(const[b,P]of Object.entries(c.titles))h[b]=Ys(P);K.value=h}}catch{}}async function Du(){try{return await ml()}catch{return null}}function Ba(i,c,h){const b=i.trim();if(b)return Ys(b);const P=h.map(E=>E.label.trim()).find(E=>E.length>0);return P?Ys(P):c.length>0?Ys("[Image]"):"Untitled thread"}async function Fu(i,c,h,b=[],P=[]){if(K.value[i])return;const E=c.trim();if(!E){const H=Ba(c,b,P);K.value={...K.value,[i]:H},j(),gc(i,H);return}const L=E.length>300?E.slice(0,300):E;try{const H=await NS(L,h);if(!H||K.value[i])return;const te=H.length>Kf?H.slice(0,Kf):H;K.value={...K.value,[i]:te},j(),gc(i,te)}catch{}}function gd(i,c){const h=Gf(i,c),b=mL(i,c),P=vL(b,c,h);if(!c||c.order.length===0&&(c.remoteProjects??[]).length===0)return P;const E=new Set;for(const H of Vf(c,h))E.add(H);const L=P.filter(H=>E.has(H.projectName)?!0:Yf(H));return hL(L,c,h)}function qa(i,c){const h=gd(i,c),b=!!(c&&(c.order.length>0||c.projectOrder.length>0||(c.remoteProjects??[]).length>0)),P=c!=null&&c.projectOrder.length?fl(Vf(c,Gf(i,c)),h):fl(W.value,h);gs(W.value,P)||(W.value=P,b||iu(W.value));const E=vf(h,W.value);Ps(new Set(Ro(E).map(te=>te.id)));const L=uL(t.value,E,Z.value);t.value=Ec(t.value,L),Z.value=Sn(Z.value,new Set(Ro(t.value).map(te=>te.id))),new Set(Ro(t.value).map(te=>te.id));const H={};for(const te of Ro(t.value))H[te.id]=te.externalSession??$e.value[te.id]??null;$e.value=H,j()}function Ur(i){const c={};for(const[h,b]of Object.entries(i)){const P=h.trim();!P||b.length===0||(c[P]=b.map(E=>({id:E.id,text:E.text,imageUrls:[...E.imageUrls],skills:E.skills.map(L=>({name:L.name,path:L.path})),fileAttachments:E.fileAttachments.map(L=>({label:L.label,path:L.path,fsPath:L.fsPath})),collaborationMode:E.collaborationMode})))}return c}function ca(){nS(Ur(pe.value)).catch(()=>{})}async function Fl(){if(!Pe){Pe=!0;try{pe.value=await Nm()}catch{}}}function Kn(i){Mt=kv(Mt,i),t.value=kv(t.value,i),Z.value=Ct(Z.value,i),j()}function Po(i,c){if(i.length===0)return c;if(c.length===0)return i;const h=new Map;for(const P of Ro(i))h.set(P.id,P);for(const P of Ro(c))h.set(P.id,P);const b=new Map;for(const P of h.values()){const E=b.get(P.projectName);E?E.push(P):b.set(P.projectName,[P])}return Array.from(b.entries()).map(([P,E])=>({projectName:P,threads:E.sort((L,H)=>new Date(H.updatedAtIso).getTime()-new Date(L.updatedAtIso).getTime())})).sort((P,E)=>{var te,me;const L=new Date(((te=P.threads[0])==null?void 0:te.updatedAtIso)??0).getTime();return new Date(((me=E.threads[0])==null?void 0:me.updatedAtIso)??0).getTime()-L})}function Eo(){return Object.values(Z.value).some(i=>i===!0)}function gi(i=Vn){if(!(!bo||Lo||Eo())){if(Vn=i,typeof window>"u"){Br(i);return}No!==null&&window.clearTimeout(No),No=window.setTimeout(()=>{No=null,!(!bo||Eo())&&Br(Vn)},y2)}}async function Br(i){if(!(Lo||!bo||Eo())){Lo=!0;try{const c=await Cm(bo,ZT());bo=c.nextCursor,Dt=c.nextCursor===null,Gt.value=Dt,Mt=Po(Mt,c.groups),qa(Mt,i)}catch{}finally{Lo=!1,bo&&!Eo()&&gi(i)}}}async function Ls(i={}){if(pr){await pr;return}i.force!==!0&&to.value&&Date.now()-Pa<_2||(pr=(async()=>{var c;to.value||(nt.value=!0);try{const[h,b]=await Promise.all([Cm(),Du(),Dl({force:i.force===!0})]);Vn=b;const P=h.groups;Mt=to.value?Po(Mt,P):P,bo=to.value&&!Dt?bo:h.nextCursor,Dt=h.nextCursor===null,Gt.value=Dt,await zo(P,b),qa(Mt,b),to.value=!0,Pa=Date.now(),Dt||gi(b);const E=Ro(e.value);_e(E),!E.some(H=>H.id===n.value)&&!n.value&&kn(((c=E[0])==null?void 0:c.id)??"")}finally{nt.value=!1}})().finally(()=>{pr=null}),await pr)}async function da(i,c={}){var H;if(!i)return;const h=Date.now()-(Ea.get(i)??0)<cv;if((H=ue.value[i])!=null&&H.transient&&(c.silent===!0||h))return;const b=no.get(i);if(b&&c.force!==!0){await b;return}const P=D.value[i]===!0,E=c.silent!==!0&&!P;E&&(Bt.value=!0);const L=(async()=>{try{const te=fo(i),me=$.value[i]??"",Le=Date.now()-(Qr.get(i)??0)<cv;if(c.force===!0?!1:P&&(Le||(te.length===0||me===te)&&Z.value[i]!==!0)){ht(i);return}const lt=ie.value[i]!==!0?await rf(i):null,It=lt??await of(i);It.modelProvider&&ea(i,It.modelProvider),It.model&&ko(i,mr(i,It.model,It.modelProvider)),lt&&(ie.value={...ie.value,[i]:!0});const{messages:Ha,inProgress:Fs,activeTurnId:fa,turnIndexByTurnId:xr}=It;G.value={...G.value,[i]:It.hasMoreOlder===!0},$a(i,Ha),os(i,xr),hi(i);const Us=o.value[i]??[],Vu=_v(Us,Ha,{preserveMissing:c.silent===!0||J2(Us)});wr(i,Vu);const cs=a.value[i]??[];if(Fs){const Bs=X2(cs,Ha);ja(i,Bs)}else qn(i);zn(i,Ha),Tn(i,Ha),D.value={...D.value,[i]:!0},Qr.set(i,Date.now()),Ea.delete(i),te&&($.value={...$.value,[i]:te}),$t(i,Fs),It.externalSession&&($e.value={...$e.value,[i]:It.externalSession}),li(i),fa?Ie.value={...Ie.value,[i]:fa}:Ie.value[i]&&(Ie.value=Ct(Ie.value,i)),Fs||Uo(i),ht(i)}catch(te){const me=te instanceof Error?te.message:"Unknown application error";throw n.value===i&&tn(i,me,{transient:!0}),Ea.set(i,Date.now()),te}finally{E&&(Bt.value=!1)}})().finally(()=>{no.delete(i)});no.set(i,L),await L}async function qr(i=n.value){if(!i||se.value[i]===!0||G.value[i]!==!0)return;const c=io(i);if(!c){G.value={...G.value,[i]:!1};return}se.value={...se.value,[i]:!0};try{const h=await t1(i,c),b=o.value[i]??[],P=_v(h.messages,b,{preserveMissing:!0});wr(i,P),os(i,{...oe.value[i]??{},...h.turnIndexByTurnId}),hi(i),G.value={...G.value,[i]:h.hasMoreOlder}}catch(h){throw mt.value=h instanceof Error?h.message:"Failed to load earlier messages",h}finally{se.value={...se.value,[i]:!1}}}async function yi(i,c={}){var h;i&&D.value[i]!==!0&&(c.silent===!0&&((h=ue.value[i])!=null&&h.transient)||await da(i,c))}async function Os(i={}){var b,P;const c=((P=(b=Ir.value)==null?void 0:b.cwd)==null?void 0:P.trim())??"",h=c||"__global__";if(On){await On;return}i.force!==!0&&Ja&&Qa===h&&Date.now()-Mn<k2||(On=(async()=>{try{X.value=await OS(c?[c]:void 0),Ja=!0,Mn=Date.now(),Qa=h}catch{}finally{On=null}})(),await On)}async function Ki(i={}){if(hr){await hr;return}i.force!==!0&&Jn||(We.value=!0,hr=(async()=>{try{De.value=await l1(),Jn=!0}catch{}finally{We.value=!1,hr=null}})(),await hr)}async function ss(i={}){await Promise.allSettled([Mr({providerChanged:i.providerChanged,includeProviderModels:i.includeProviderModels}),vn(),tr(),Os()])}function Ul(i={}){const c=()=>{ss(i)};if(typeof window>"u"){c();return}window.setTimeout(c,0)}async function wi(i={}){mt.value="",ae.value="";const c=i.includeSelectedThreadMessages!==!1,h=i.awaitAncillaryRefreshes===!0;try{if(await Fl(),await Ls({force:i.forceThreadRefresh===!0}),c)try{await da(n.value)}catch(b){mt.value=b instanceof Error?b.message:"Unknown application error"}h?await ss({providerChanged:i.providerChanged,includeProviderModels:i.providerChanged===!0||h}):Ul({providerChanged:i.providerChanged,includeProviderModels:!1})}catch(b){mt.value=b instanceof Error?b.message:"Unknown application error",fv(b)?ae.value=dv:ae.value=""}}async function za(i){kn(i);try{return await da(i),await Mr({includeProviderModels:!0}),Os(),"ok"}catch(c){const h=c instanceof Error?c.message:"Unknown application error";mt.value=h;const b=x2(c)?"not-found":"error";return i.trim()&&tn(i,h,{transient:!0}),b}}async function Bl(i){const c=n.value===i,h=c?h2(Ro(e.value),i):"";c&&(kn(h),h&&da(h,{silent:!0}));try{await $1(i),Kn(i),await Ls(),c&&h&&n.value===h&&await yi(h,{silent:!0})}catch(b){mt.value=b instanceof Error?b.message:"Unknown application error"}}async function Yi(i,c){const h=c.trim();if(!(!i||!h))try{await L1(i,h),K.value={...K.value,[i]:h},j(),gc(i,h)}catch(b){mt.value=b instanceof Error?b.message:"Unknown application error"}}async function ql(i){var L,H;const c=i.trim();if(!c)return"";const h=Ro(t.value).find(te=>te.id===c),b=((L=h==null?void 0:h.cwd)==null?void 0:L.trim())??"",P=((H=h==null?void 0:h.title)==null?void 0:H.trim())??"Forked chat",E=cn(c);mt.value="";try{const te=await Em(c,b||void 0,E||void 0),me=te.threadId.trim();return me?(q(me,b,P),ko(me,te.model),ie.value={...ie.value,[me]:!0},kn(me),await Ls(),await da(me),me):""}catch(te){return mt.value=te instanceof Error?te.message:"Unknown application error",""}}async function bi(i,c){var L;const h=i.trim();if(!h||!Number.isInteger(c)||c<0)return"";if(Z.value[h]===!0)return mt.value="Finish the current turn before forking from a response.","";if(D.value[h]!==!0)try{await da(h)}catch(H){return mt.value=H instanceof Error?H.message:"Unknown application error",""}const b=o.value[h]??[];let P=-1;for(const H of b)typeof H.turnIndex=="number"&&Number.isFinite(H.turnIndex)&&(P=Math.max(P,H.turnIndex));if(P>=0&&c>P)return"";const E=Ro(t.value).find(H=>H.id===h)??null;try{mt.value="";const H=await Em(h),te=H.threadId.trim();if(!te)return"";const me=H.cwd.trim()||((L=E==null?void 0:E.cwd)==null?void 0:L.trim())||"",Le=gL((E==null?void 0:E.title)||(E==null?void 0:E.preview)||"Untitled thread");q(te,me,Le),ko(te,H.model),wr(te,H.messages),D.value={...D.value,[te]:!0},ie.value={...ie.value,[te]:!0},_r(te),ja(te,[]),br(te),O.value[te]&&(O.value=Ct(O.value,te)),vt(te,null),Jt(te,null),tn(te,null),$t(te,!1);const Je=P-c;if(Je>0){const ft=await af(te,Je);wr(te,ft)}return await Yi(te,Le),kn(te),Ls().catch(()=>{}),te}catch(H){return mt.value=H instanceof Error?H.message:"Unknown application error",""}}async function is(i,c,h=[],b=[],P=[]){if(!i||!c.trim()||h.length>0||b.length>0||P.length>0)return!1;const L=(st.value[i]??[]).filter(me=>me.method==="item/tool/requestUserInput");if(L.length!==1)return!1;const[H]=L,te=Lr(H);return te.length!==1?!1:nl({id:H.id,result:{answers:{[te[0]]:{answers:[c.trim()]}}}})}function Nn(){if(typeof window>"u")return{};try{const i=window.localStorage.getItem(lv);if(!i)return{};const c=JSON.parse(i);if(!c||typeof c!="object"||Array.isArray(c))return{};const h={};for(const[b,P]of Object.entries(c)){if(!b||!Array.isArray(P))continue;const E=P.filter(L=>!!L&&typeof L=="object"&&typeof L.id=="string"&&typeof L.text=="string");E.length>0&&(h[b]=E)}return h}catch{return{}}}function Tr(){typeof window>"u"||window.localStorage.setItem(lv,JSON.stringify(je.value))}function ls(){if(typeof window>"u")return _c;try{const i=window.localStorage.getItem(uv);if(i===null)return _c;const c=Number(i);return Number.isFinite(c)&&c>=0?Math.round(c):_c}catch{return _c}}function Uu(i){const c=Number.isFinite(i)&&i>0?Math.round(i):0;c!==he.value&&(he.value=c,!(typeof window>"u")&&window.localStorage.setItem(uv,String(c)))}async function yd(i,c,h,b,P,E){if(Se||he.value<=0||Z.value[i]===!0)return!1;const L=Ze.value[i];if(!L||L.remainingContextPercent===null||L.remainingContextPercent>he.value)return!1;const H=je.value[i]??[],te=`stash-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,me=E==="plan"?"plan":E==="default"?"default":tt.value;return je.value={...je.value,[i]:[...H,{id:te,text:c,imageUrls:h,skills:b,fileAttachments:P,collaborationMode:me}]},Tr(),wo.value.has(i)||Wl(i),!0}async function _i(i){const c=je.value[i];if(!c||c.length===0||Z.value[i]===!0)return;const h=[...c];je.value=Ct(je.value,i),Tr(),Se=!0;try{for(const b of h)try{await Ji(b.text,b.imageUrls,b.skills,"steer",b.fileAttachments,void 0,b.collaborationMode)}catch{}}finally{Se=!1}}async function Ji(i,c=[],h=[],b="steer",P=[],E,L){if(yo.value)return;const H=n.value,te=i.trim();if(!H||!te&&c.length===0&&P.length===0||await is(H,te,c,h,P)||await yd(H,te,c,h,P,L))return;const me=Z.value[H]===!0;if(me&&b==="queue"){const Le=pe.value[H]??[],Je=`q-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,ft=[...Le],lt=typeof E=="number"?Math.max(0,Math.min(E,ft.length)):ft.length;ft.splice(lt,0,{id:Je,text:te,imageUrls:c,skills:h,fileAttachments:P,collaborationMode:L==="plan"?"plan":L==="default"?"default":tt.value}),pe.value={...pe.value,[H]:ft},ca();return}if(me){ro=!0,Qi(H,te,c,h,P,L).catch(Le=>{const Je=Le instanceof Error?Le.message:"Unknown application error";tn(H,Je),mt.value=Je});return}mt.value="",ro=!0,vt(H,null),Jt(H,{label:"Thinking",details:To(cn(H),_t.value,L==="plan"?"plan":L==="default"?"default":tt.value)}),tn(H,null),$t(H,!0);try{await Qi(H,te,c,h,P,L)}catch(Le){ro=!1,$t(H,!1),Jt(H,null);const Je=Le instanceof Error?Le.message:"Unknown application error";throw tn(H,Je),mt.value=Je,Le}}async function ki(i,c,h=[],b=[],P=[]){if(yo.value)return"";const E=i.trim(),L=c.trim(),H=cn(ni).trim(),te=tt.value;if(!E&&h.length===0&&P.length===0)return"";Wn.value=!0,mt.value="";let me="";try{try{const lt=await Pm(L||void 0,H||void 0);me=lt.threadId,ko(me,lt.model),ea(me,lt.modelProvider||yt.value),Co(me,te)}catch(lt){if(H&&H!==ma&&Ac(lt)){await Cn();const It=await Pm(L||void 0,ma);me=It.threadId,ko(me,It.model),ea(me,It.modelProvider||yt.value),Co(me,te)}else throw lt}if(!me)return"";q(me,L,E||"[Image]"),ui(me,E,h,b,P),Zt(me),ie.value={...ie.value,[me]:!0},kn(me),ro=!0,vt(me,null),Jt(me,{label:"Thinking",details:To(cn(me),_t.value,te)}),tn(me,null),$t(me,!0);const Le=me,Je=L||null,ft=E;return Qi(me,E,h,b,P,te).catch(lt=>{ro=!1,$t(me,!1),Jt(me,null);const It=lt instanceof Error?lt.message:"Unknown application error";tn(me,It),mt.value=It}).finally(()=>{Wn.value=!1}),Fu(Le,ft,Je,h,P),me}catch(Le){ro=!1,me&&($t(me,!1),Jt(me,null));const Je=Le instanceof Error?Le.message:"Unknown application error";throw me&&tn(me,Je),mt.value=Je,Wn.value=!1,Le}}async function Qi(i,c,h=[],b=[],P=[],E){const L=_t.value,H=E==="plan"?"plan":E==="default"?"default":tt.value,te=c.trim(),me=[...h];if(me.length===0&&As(te)){const ft=At(i);ft&&me.push(ft)}const Le=b.map(ft=>({name:ft.name,path:ft.path})),Je=P.map(ft=>({...ft}));ta(i,{text:te,imageUrls:[...me],skills:Le,fileAttachments:Je,effort:L,collaborationMode:H,fallbackRetried:!1});try{if(ie.value[i]!==!0){const It=await rf(i);It.model&&ko(i,mr(i,It.model,It.modelProvider)),It.modelProvider&&ea(i,It.modelProvider),ie.value={...ie.value,[i]:!0}}const ft=cn(i);let lt="";try{lt=await sf(i,c,me,ft||void 0,L||void 0,b.length>0?b:void 0,P,H)}catch(It){if(ft&&ft!==ma&&Ac(It))await Cn(i),ta(i,{text:te,imageUrls:[...me],skills:Le,fileAttachments:Je,effort:L,collaborationMode:H,fallbackRetried:!0}),lt=await sf(i,c,me,ma,L||void 0,b.length>0?b:void 0,P,H);else throw It}lt&&(Ie.value={...Ie.value,[i]:lt},Zn(i,lt)),Xt.add(i),await zr(),gr(i)}catch(ft){throw ft}}async function Xi(i){if(Ne.value[i]!==!0){Ne.value={...Ne.value,[i]:!0};try{pe.value=await Nm()}catch{}finally{Ne.value=Ct(Ne.value,i)}}}function zl(i){Xi(i),!(typeof window>"u")&&window.setTimeout(()=>{Xi(i)},650)}async function Bu(){const i=n.value;if(!i||Z.value[i]!==!0||be.value[i]===!0)return;let c=Ie.value[i];if(!c){const{activeTurnId:E}=await of(i);c=E,c&&(Ie.value={...Ie.value,[i]:c})}if(!c)throw new Error("Could not determine active turn id for interrupt");const h=ao.value.filter(E=>E.turnId===c),b=h.find(E=>E.role==="user"),P=h.some(E=>{if(E.role==="assistant")return!0;const L=E.messageType??"";return L==="commandExecution"||L==="toolCall"||L==="worked"||L==="fileChange"||L==="plan"||L==="plan.live"||L==="compaction.done"||L==="turnError"});Jo.value=!0,mt.value="";try{if(await z1(i,c),$t(i,!1),Jt(i,null),tn(i,null),Ie.value[i]&&(Ie.value=Ct(Ie.value,i)),Xt.add(i),_n=!0,await zr(),b&&!P){const E=(o.value[i]??[]).filter(H=>H.turnId!==c);wr(i,E);const L=d.value[i];if(L){const H=L.filter(te=>te.turnId!==c);H.length!==L.length&&(d.value={...d.value,[i]:H},Cc(d.value))}Ve.value={...Ve.value,[i]:{text:b.text??"",imageUrls:b.images??[],fileAttachments:(b.fileAttachments??[]).map(H=>({label:H.label,path:H.path,fsPath:H.fsPath??H.path})),skills:b.skills??[]}}}}catch(E){const L=E instanceof Error?E.message:"Failed to interrupt active turn";tn(i,L),mt.value=L}finally{Jo.value=!1}}function Hl(i){i&&Ve.value[i]&&(Ve.value=Ct(Ve.value,i))}async function wd(i){var h,b;const c=n.value;if(c&&!eo.value&&i.trim()){eo.value=!0,mt.value="";try{Z.value[c]===!0&&await Bu();const P=o.value[c]??[],E=P.find(Je=>Je.turnId===i),L=typeof(E==null?void 0:E.turnIndex)=="number"?E.turnIndex:-1;if(L<0)return;const H=P.reduce((Je,ft)=>typeof ft.turnIndex=="number"&&ft.turnIndex>Je?ft.turnIndex:Je,-1);if(H<0||L>H)return;const te=H-L+1;if(te<1)return;const me=((b=(h=Ir.value)==null?void 0:h.cwd)==null?void 0:b.trim())??"";me&&await D1(c,i,me);const Le=await af(c,te);wr(c,Le),ja(c,[]),br(c),O.value[c]&&(O.value=Ct(O.value,c)),vt(c,null),Jt(c,null),tn(c,null),_n=!0,await zr()}catch(P){mt.value=P instanceof Error?P.message:"Failed to rollback thread"}finally{eo.value=!1}}}function Sr(i,c){const b=(u.value[i]??[]).filter(P=>P.messageType!=="compaction.pending"&&P.messageType!=="compaction.done");b.push({id:`compaction:${c}:${i}:${Date.now()}`,role:"system",text:"",messageType:c==="pending"?"compaction.pending":"compaction.done"}),u.value={...u.value,[i]:b}}function Ds(i,c){const h=new Set(wo.value);c?h.add(i):h.delete(i),wo.value=h}function Zi(i){bn=i.trim(),fr.value=[]}async function Wl(i){const c=i.trim();if(!(!c||wo.value.has(c))){Ds(c,!0),Sr(c,"pending");try{await N1(c);const h=2e3,b=14,P=Date.now()+Qo;let E=0;for(;Date.now()<P&&E<b&&wo.value.has(c);){if((await of(c)).messages.some(te=>te.messageType==="compaction.done")){Ds(c,!1),n.value===c&&await da(c,{silent:!0,force:!0}),Sr(c,"done"),_i(c);break}E+=1,await p2(h)}wo.value.has(c)&&(Ds(c,!1),Sr(c,"done"),_i(c))}catch(h){mt.value=h instanceof Error?h.message:"Failed to compact thread",Ds(c,!1),Sr(c,"done"),_i(c)}}}let yn=null;async function el(i,c){try{const h=await ml(),b={...h.labels};let P=!1;for(const E of h.order){if(!Oc(E,i))continue;const L=c.trim();L.length===0?b[E]!==void 0&&(delete b[E],P=!0):b[E]!==L&&(b[E]=L,P=!0)}P&&await lf({order:h.order,labels:b,active:h.active,projectOrder:h.projectOrder})}catch{}}function bd(i,c){i.length===0||(Be.value[i]??"")===c||(Be.value={...Be.value,[i]:c},bv(Be.value),yn!==null&&clearTimeout(yn),yn=setTimeout(()=>{yn=null,el(i,c)},500))}async function tl(i){var E;if(i.length===0)return;const c=W.value.filter(L=>L!==i);if(gs(W.value,c)||(W.value=c,iu(W.value)),t.value=t.value.filter(L=>L.projectName!==i),Be.value[i]!==void 0){const L={...Be.value};delete L[i],Be.value=L,bv(L)}j();const h=Ro(e.value);_e(h),h.some(L=>L.id===n.value)||kn(((E=h[0])==null?void 0:E.id)??"");const P=new Set;try{const L=await ml();fL(L,i).forEach(H=>{P.add(H)})}catch{}if(P.size>0)try{const L=await ml(),H=L.order.filter(Le=>!P.has(Le)),te=L.active.filter(Le=>!P.has(Le)),me=te.length===0&&H.length>0?[H[0]]:te;await lf({order:H,labels:aL(L.labels,P),active:me,projectOrder:L.projectOrder.filter(Le=>Le!==i&&!P.has(Le))});return}catch{}await Ci()}function _d(i,c){if(i.length===0||t.value.length===0)return;const h=t.value.map(te=>te.projectName),b=h.indexOf(i);if(b===-1)return;const P=Math.max(0,Math.min(c,h.length-1)),E=W2(h,b,P);if(E===h)return;const L=fl(E,t.value);W.value=L,iu(W.value);const H=vf(t.value,W.value);t.value=Ec(t.value,H),j(),Ci()}function qu(i){const c=i.trim();if(!c)return;const h=[c,...W.value.filter(P=>P!==c)];if(gs(W.value,h))return;W.value=h,iu(W.value);const b=vf(t.value,W.value);t.value=Ec(t.value,b),j(),Ci()}async function Ci(){try{const i=await ml(),c=pL(i,W.value,t.value);await lf({order:c.order,labels:i.labels,active:c.active,projectOrder:c.projectOrder})}catch{}}async function zr(){if(on.value){typeof window<"u"&&pt===null&&(pt=window.setTimeout(()=>{pt=null,zr()},kc));return}on.value=!0;const i=_n,c=Jr,h=new Set(Xt);_n=!1,Jr=!1,Xt.clear();try{i&&await Ls({force:c});const b=n.value;if(!b)return;const P=h.has(b),E=Z.value[b]===!0,L=fo(b),H=$.value[b]??"";(L.length>0&&L!==H||P||E&&D.value[b]!==!0||i&&D.value[b]!==!0)&&await da(b,{silent:!0,force:P})}catch{}finally{on.value=!1,(_n||Xt.size>0)&&typeof window<"u"&&pt===null&&(pt=window.setTimeout(()=>{pt=null,zr()},kc))}}async function zu(){await Wu(),_n=!to.value,n.value&&D.value[n.value]!==!0&&Xt.add(n.value),await zr()}function Vl(i){const c=qe(i.params),h=typeof(c==null?void 0:c.threadId)=="string"?c.threadId.trim():"";if(!h)return;const b=qe(c==null?void 0:c.externalSession),P=b&&typeof b.origin=="string"&&b.origin.trim().length>0?{origin:b.origin.trim(),active:b.active===!0,lastWriteAt:typeof b.lastWriteAt=="string"?b.lastWriteAt:null}:null;$e.value={...$e.value,[h]:P},$t(h,(P==null?void 0:P.active)===!0),j(),_n=!0,n.value===h&&Xt.add(h),pt===null&&typeof window<"u"&&(pt=window.setTimeout(()=>{pt=null,zr()},kc))}function Hu(){typeof window>"u"||Kt||(Wu(),kd(),Kt=k1(i=>{if(i.method==="ready"){Es(),zu();return}if(i.method==="externalSessionChanged"){Vl(i);return}Ns(i),Ua(i)}))}async function Wu(){try{const c=(await xm()).map(h=>es(h)).filter(h=>h!==null);Cr(c)}catch{}}async function kd(){try{const i=await ES(),c=Object.entries(i);if(c.length===0)return;const h={...d.value};let b=!1;for(const[P,E]of c){const L=E.filter(Le=>!!Le&&typeof Le.id=="string");if(L.length===0)continue;const H=h[P]??[],te=new Set(H.map(Le=>Le.text)),me=[...H];for(const Le of L)te.has(Le.text)||(me.push(Le),te.add(Le.text));h[P]=me.slice(-20),b=!0}b&&(d.value=h,Cc(h))}catch{}}async function nl(i){try{return await S1(i.id,{result:i.result,error:i.error}),or(i.id),ve.value=Ct(ve.value,String(i.id)),!0}catch(c){const h=c instanceof Error?c.message:"Failed to reply to server request";return await Gl(i.id)?(mt.value=h,ve.value={...ve.value,[String(i.id)]:h},!1):(or(i.id),ve.value=Ct(ve.value,String(i.id)),!0)}}async function Gl(i){try{const c=await xm();for(const h of c){const b=qe(h);if((b==null?void 0:b.id)===i)return!0}return!1}catch{return!0}}function Cd(){if(Kt&&(Kt(),Kt=null),_n=!1,Xt.clear(),Dn.clear(),pt!==null&&typeof window<"u"&&(window.clearTimeout(pt),pt=null),Xo!==null&&typeof window<"u"&&(window.clearTimeout(Xo),Xo=null),No!==null&&typeof window<"u"&&(window.clearTimeout(No),No=null),typeof window<"u")for(const i of ln.values())window.clearTimeout(i);ln.clear(),ro=!1,o.value={},r.value={},a.value={},m.value={},d.value={},O.value={},z.value={},oe.value={},we.value={},Te.value={},ue.value={},Ie.value={},R.clear(),w.clear(),x.clear(),ti.clear(),Dc=0,be.value={},Fe.value={},Me.value={},pe.value={},Ne.value={},je.value={},Tr(),ca(),Rt.value=null,Ze.value={}}const Ti=ee(()=>{const i=n.value;if(!i)return[];const c=pe.value[i]??[];return[...(je.value[i]??[]).map(P=>({...P,awaitingCompaction:!0})),...c]});function ol(i){const c=n.value;if(!c)return;const h=je.value[c];if(h!=null&&h.some(E=>E.id===i)){const E=h.filter(L=>L.id!==i);je.value=E.length>0?{...je.value,[c]:E}:Ct(je.value,c),Tr();return}const b=pe.value[c];if(!b)return;const P=b.filter(E=>E.id!==i);pe.value=P.length>0?{...pe.value,[c]:P}:Ct(pe.value,c),ca()}function Kl(i,c){const h=n.value;if(!h)return;const b=pe.value[h];if(!b)return;const P=je.value[h];if(P!=null&&P.some(me=>me.id===i||me.id===c))return;const E=b.findIndex(me=>me.id===i),L=b.findIndex(me=>me.id===c);if(E<0||L<0||E===L)return;const H=[...b],[te]=H.splice(E,1);H.splice(L,0,te),pe.value={...pe.value,[h]:H},ca()}function us(i){const c=n.value;if(!c)return;const h=je.value[c],b=h==null?void 0:h.find(L=>L.id===i);if(b){ol(i),vr(b.collaborationMode),Se=!0,Ji(b.text,b.imageUrls,b.skills,"steer",b.fileAttachments).finally(()=>{Se=!1});return}const P=pe.value[c];if(!P)return;const E=P.find(L=>L.id===i);E&&(ol(i),vr(E.collaborationMode),Ji(E.text,E.imageUrls,E.skills,"steer",E.fileAttachments))}function Td(i,c={}){kn(i,c)}return{projectGroups:e,projectDisplayNameById:Be,selectedThread:Ir,selectedThreadTokenUsage:un,selectedThreadTerminalOpen:Xr,isSelectedThreadInterruptPending:Ia,selectedThreadServerRequests:ai,selectedLiveOverlay:Zr,selectedActiveTurnId:Zo,lastPlanByThreadId:s,resolveThreadTurnIndex:Ol,codexQuota:Ra,selectedThreadId:n,availableCollaborationModes:xt,availableModelIds:Ue,availableModelReasoningEfforts:Ye,selectedCollaborationMode:tt,selectedModelId:ct,selectedReasoningEffort:_t,selectedSpeedMode:St,codexCliMissingError:ae,installedSkills:X,accountRateLimitSnapshots:de,messages:ao,hasMoreOlderMessages:kt,isLoadingThreads:nt,isThreadListFullyLoaded:Gt,isLoadingMessages:Bt,isLoadingOlderMessages:Un,isSendingMessage:Wn,isInterruptingTurn:Jo,isUpdatingSpeedMode:yo,isRollingBack:eo,compactingThreadIds:wo,fuzzyFileSearchResults:fr,registerFuzzyFileSearchSession:Zi,error:mt,refreshAll:wi,refreshSkills:Os,refreshHooks:Ki,hooksList:De,isHooksLoading:We,onRealtimeEvent:js,selectThread:za,loadMessages:da,loadOlderMessages:qr,ensureThreadMessagesLoaded:yi,setThreadTerminalOpen:yr,toggleSelectedThreadTerminal:Wi,archiveThreadById:Bl,compactThreadById:Wl,renameThreadById:Yi,forkThreadById:ql,forkThreadFromTurn:bi,rollbackSelectedThread:wd,sendMessageToSelectedThread:Ji,sendMessageToNewThread:ki,interruptSelectedThreadTurn:Bu,interruptedUnsubmittedMessage:so,clearInterruptedUnsubmittedMessage:Hl,selectedThreadQueuedMessages:Ti,removeQueuedMessage:ol,reorderQueuedMessage:Kl,steerQueuedMessage:us,autoCompactThreshold:he,setAutoCompactThreshold:Uu,setSelectedCollaborationMode:vr,readModelIdForThread:cn,setSelectedModelIdForThread:lo,setSelectedModelId:uo,setSelectedReasoningEffort:mn,updateSelectedSpeedMode:Nt,respondToPendingServerRequest:nl,pendingReplyErrorForRequest:rr,renameProject:bd,removeProject:tl,reorderProject:_d,pinProjectToTop:qu,startPolling:Hu,stopPolling:Cd,primeSelectedThread:Td}}const CL={class:"sidebar-root"},TL=["aria-pressed","aria-label","title"],SL={key:1,class:"sidebar-search-bar"},xL=["placeholder"],AL=["aria-label"],PL={class:"sidebar-skills-link-icon","aria-hidden":"true"},EL={class:"sidebar-skills-link-copy"},IL={class:"sidebar-skills-link-title"},RL={class:"sidebar-skills-link-subtitle"},ML={class:"sidebar-skills-link-icon sidebar-automations-link-icon","aria-hidden":"true"},$L={class:"sidebar-skills-link-copy"},jL={class:"sidebar-skills-link-title"},NL={class:"sidebar-skills-link-subtitle"},LL=["aria-label"],OL={class:"settings-dialog-header"},DL={class:"settings-dialog-title"},FL=["aria-label","title"],UL={class:"settings-dialog-body"},BL=["aria-label"],qL=["aria-current","onClick"],zL={class:"settings-group-content"},HL={class:"sidebar-settings-account-section"},WL={class:"sidebar-settings-account-header"},VL={class:"sidebar-settings-account-header-main"},GL=["aria-expanded","title"],KL={class:"sidebar-settings-account-collapse-icon"},YL={class:"sidebar-settings-account-title"},JL={class:"sidebar-settings-account-count"},QL=["disabled"],XL={key:0,class:"sidebar-settings-account-error visible-error-with-feedback"},ZL=["href"],eO={class:"sidebar-settings-account-login"},tO=["disabled"],nO=["href"],oO={key:1,class:"sidebar-settings-account-empty"},rO={key:2,class:"sidebar-settings-account-list"},aO=["title","onMouseenter","onMouseleave"],sO={class:"sidebar-settings-account-main"},iO={class:"sidebar-settings-account-email"},lO={class:"sidebar-settings-account-meta"},uO={class:"sidebar-settings-account-quota"},cO={class:"sidebar-settings-account-id"},dO={class:"sidebar-settings-account-actions"},fO=["disabled","onClick"],pO=["disabled","onClick"],hO=["title"],mO={class:"sidebar-settings-label"},vO=["title"],gO={class:"sidebar-settings-label"},yO={class:"sidebar-settings-value"},wO=["title"],bO={class:"sidebar-settings-label"},_O={class:"sidebar-settings-value"},kO=["title"],CO={class:"sidebar-settings-label"},TO=["title"],SO={class:"sidebar-settings-label"},xO={class:"sidebar-settings-value"},AO=["title"],PO={class:"sidebar-settings-label"},EO=["title"],IO={class:"sidebar-settings-label"},RO=["title"],MO={class:"sidebar-settings-label"},$O=["title"],jO={class:"sidebar-settings-label"},NO=["href"],LO={class:"sidebar-settings-label"},OO={class:"sidebar-settings-value"},DO=["title"],FO={class:"sidebar-settings-label"},UO={key:0,class:"sidebar-settings-row sidebar-settings-error"},BO=["href"],qO={key:1,class:"sidebar-settings-row sidebar-settings-row--input"},zO={class:"sidebar-settings-provider-info"},HO={class:"sidebar-settings-label"},WO={class:"sidebar-settings-provider-link",href:"https://openrouter.ai/keys",target:"_blank",rel:"noopener noreferrer"},VO={class:"sidebar-settings-key-group"},GO={class:"sidebar-settings-key-masked"},KO=["disabled","title"],YO=["placeholder"],JO=["disabled"],QO={class:"sidebar-settings-row sidebar-settings-row--select",style:{"margin-top":"4px",padding:"0"}},XO={class:"sidebar-settings-label"},ZO=["aria-label"],eD=["disabled"],tD=["disabled"],nD={key:2,class:"sidebar-settings-row sidebar-settings-row--input"},oD={class:"sidebar-settings-provider-info"},rD={class:"sidebar-settings-label"},aD={class:"sidebar-settings-provider-link",href:"https://opencode.ai/auth",target:"_blank",rel:"noopener noreferrer"},sD={class:"sidebar-settings-key-group"},iD=["placeholder"],lD=["disabled"],uD={key:3,class:"sidebar-settings-row sidebar-settings-row--input"},cD={class:"sidebar-settings-label"},dD={class:"sidebar-settings-key-group"},fD=["placeholder"],pD={class:"sidebar-settings-label",style:{"margin-top":"4px"}},hD={class:"sidebar-settings-key-group"},mD=["placeholder"],vD=["disabled"],gD={class:"sidebar-settings-row sidebar-settings-row--select",style:{"margin-top":"4px",padding:"0"}},yD={class:"sidebar-settings-label"},wD=["aria-label"],bD={class:"sidebar-settings-label"},_D={class:"sidebar-settings-value"},kD={key:0,class:"sidebar-settings-telegram-panel"},CD={class:"sidebar-settings-field"},TD={class:"sidebar-settings-field-label"},SD={class:"sidebar-settings-field"},xD={class:"sidebar-settings-field-label"},AD={class:"sidebar-settings-field-help"},PD={key:0,class:"sidebar-settings-telegram-error"},ED=["href"],ID={class:"sidebar-settings-telegram-actions"},RD=["disabled"],MD={class:"sidebar-settings-hooks-section"},$D={class:"sidebar-settings-hooks-header"},jD={class:"sidebar-settings-hooks-title"},ND=["disabled","title"],LD={key:0,class:"sidebar-settings-hooks-empty"},OD={key:0,class:"sidebar-settings-hooks-empty"},DD={key:1,class:"sidebar-settings-hooks-empty"},FD={key:2,class:"sidebar-settings-hooks-list"},UD={class:"sidebar-settings-hooks-cwd"},BD={class:"sidebar-settings-hooks-event"},qD={class:"sidebar-settings-hooks-command"},zD={class:"sidebar-settings-remote-section"},HD={class:"sidebar-settings-remote-header"},WD={class:"sidebar-settings-remote-title"},VD=["disabled","title"],GD={class:"sidebar-settings-remote-toggle-label"},KD={key:0,class:"sidebar-settings-remote-empty"},YD={key:0,class:"sidebar-settings-remote-error"},JD={key:1,class:"sidebar-settings-remote-notice"},QD={key:2,class:"sidebar-settings-remote-empty"},XD=["disabled"],ZD={class:"sidebar-settings-remote-label"},eF={class:"sidebar-settings-remote-value"},tF={class:"sidebar-settings-remote-clients"},nF={class:"sidebar-settings-remote-clients-header"},oF={class:"sidebar-settings-remote-label"},rF=["disabled"],aF={key:0,class:"sidebar-settings-remote-empty"},sF={class:"sidebar-settings-remote-client-name"},iF=["disabled","onClick"],lF={class:"sidebar-settings-rate-limits"},uF=["aria-label"],cF={class:"sidebar-settings-actions"},dF=["title","aria-label"],fF=["title","aria-label"],pF={class:"content-root-wrap"},hF={key:0,class:"content-keyboard-spacer","aria-hidden":"true"},mF={key:1,class:"skills-route-header-icon","aria-hidden":"true"},vF={key:2,class:"skills-route-header-icon automations-route-header-icon","aria-hidden":"true"},gF=["aria-label","title"],yF={class:"content-body"},wF={key:2,class:"content-grid content-grid-home"},bF={class:"new-thread-empty"},_F={class:"new-thread-hero"},kF=["title"],CF={class:"new-thread-folder-actions"},TF=["disabled"],SF={key:1,class:"new-thread-launch-card","aria-label":"Plugins and Apps announcement"},xF={class:"new-thread-launch-card-copy"},AF={class:"new-thread-launch-card-topline"},PF={class:"new-thread-launch-card-badge","aria-hidden":"true"},EF={class:"new-thread-launch-card-eyebrow"},IF={class:"new-thread-launch-card-title"},RF={class:"new-thread-launch-card-text"},MF={class:"new-thread-launch-card-actions"},$F=["aria-label","onKeydown"],jF={class:"new-thread-open-folder-header"},NF={class:"new-thread-open-folder-title"},LF={class:"new-thread-open-folder-label"},OF={class:"new-thread-open-folder-current"},DF=["placeholder","title","disabled","onKeydown"],FF=["disabled"],UF={class:"new-thread-open-folder-actions"},BF={class:"new-thread-open-folder-toggle"},qF=["aria-pressed","disabled"],zF={key:0,class:"new-thread-open-folder-create"},HF={class:"new-thread-open-folder-create-composer"},WF=["placeholder","onKeydown"],VF=["disabled"],GF={key:0,class:"new-thread-open-folder-error visible-error-with-feedback"},KF=["href"],YF=["placeholder","onKeydown"],JF={key:1,class:"new-thread-open-folder-error-actions"},QF={class:"new-thread-open-folder-error visible-error-with-feedback"},XF=["href"],ZF=["disabled"],eU={key:2,class:"new-thread-open-folder-status"},tU={key:3,class:"new-thread-open-folder-status"},nU={key:4,class:"new-thread-open-folder-list"},oU=["title","disabled","onClick"],rU={class:"new-thread-open-folder-item-name"},aU=["disabled","onClick"],sU=["aria-label","onKeydown"],iU={class:"new-thread-open-folder-header"},lU={class:"new-thread-open-folder-title"},uU=["disabled"],cU=["aria-label"],dU=["aria-selected","disabled"],fU=["aria-selected","disabled"],pU={class:"new-thread-project-field"},hU={class:"new-thread-open-folder-label"},mU=["disabled","placeholder"],vU={key:0,class:"new-thread-project-field"},gU={class:"new-thread-open-folder-label"},yU=["disabled","placeholder","onKeydown"],wU={key:1,class:"new-thread-project-field"},bU={class:"new-thread-open-folder-label"},_U=["disabled","onKeydown"],kU={key:2,class:"new-thread-open-folder-error visible-error-with-feedback"},CU=["href"],TU={class:"new-thread-project-modal-actions"},SU=["disabled"],xU=["disabled"],AU={key:3,class:"new-thread-branch-select"},PU={class:"new-thread-branch-select-label"},EU={class:"new-thread-branch-select-help"},IU={key:4,class:"new-thread-runtime-help"},RU={class:"worktree-init-status-title"},MU={class:"worktree-init-status-message"},$U={class:"composer-with-queue"},jU={key:0,class:"composer-runtime-error",role:"alert"},NU=["href"],LU={key:3,class:"content-grid"},OU={class:"content-thread"},DU={key:0,class:"external-session-banner",role:"alert"},FU={key:1,class:"composer-runtime-error",role:"alert"},UU=["href"],BU={key:2,class:"interrupt-recovered-banner",role:"status"},qU=["aria-label"],zU={class:"content-right-panel-header"},HU={class:"content-right-panel-tabs",role:"tablist"},WU=["aria-selected"],VU=["aria-selected"],GU=["aria-selected","title","onClick"],KU={class:"content-right-panel-tab-label"},YU=["aria-label","title","onClick"],JU={class:"content-right-panel-actions"},QU={class:"content-right-panel-add-wrap"},XU=["aria-label","title"],ZU={key:0,class:"content-right-panel-menu"},e4=["aria-label","title"],t4={class:"content-right-panel-body"},n4={key:0,class:"project-zip-modal-backdrop",role:"presentation"},o4=["aria-label"],r4={class:"project-zip-modal-header"},a4={class:"project-zip-modal-title"},s4=["aria-label","disabled"],i4={class:"project-zip-modal-copy"},l4={class:"project-zip-progress-label",role:"status","aria-live":"polite"},u4={class:"project-zip-progress-track"},c4={key:0,class:"project-zip-modal-error",role:"alert"},d4={class:"project-zip-modal-actions"},f4=["disabled"],p4=["disabled"],h4=["disabled"],m4=["aria-label"],v4={class:"codex-login-modal-header"},g4={class:"codex-login-modal-title"},y4=["aria-label","disabled"],w4={class:"codex-login-modal-copy"},b4=["href"],_4=["placeholder","disabled"],k4={key:1,class:"codex-login-modal-error visible-error-with-feedback"},C4=["href"],T4={class:"codex-login-modal-actions"},S4=["disabled"],x4=["disabled"],Tv="codex-web-local.sidebar-collapsed.v1",Sv="codex-web-local.accounts-section-collapsed.v1",xv="codex-web-local.right-panel-width.v1",A4=260,P4=640,Av=320,E4=400,Pv="codex-web-local.send-with-enter.v1",Ev="codex-web-local.in-progress-send-mode.v1",Iv="codex-web-local.dark-mode.v1",Rv="codex-web-local.dictation-click-to-toggle.v1",Mv="codex-web-local.dictation-auto-send.v1",$v="codex-web-local.dictation-language.v1",jv="codex-web-local.chat-width.v1",I4=400,R4=Ln({__name:"App",setup(e){var lh,uh;const t=nu(()=>au(()=>import("./ThreadConversation-CePFhT28.js"),__vite__mapDeps([0,1,2]))),n=nu(()=>au(()=>import("./ThreadTerminalPanel-ahrD1lQx.js"),__vite__mapDeps([3,4]))),o=nu(()=>au(()=>import("./ReviewPane-C2FeOMMp.js"),__vite__mapDeps([5,6]))),r=nu(()=>au(()=>import("./DirectoryHub-BtP13Q0A.js"),__vite__mapDeps([7,1,8]))),s=nu(()=>au(()=>import("./AutomationsPanel-L3Dmhf5P.js"),__vite__mapDeps([9,10]))),{t:a,uiLanguage:u,uiLanguageOptions:d,setUiLanguage:m}=Er(),g="codex-mobile",w="0.1.95",x={sendWithEnter:a("When enabled, press Enter to send. When disabled, use Command+Enter to send."),inProgressSendMode:a("If a turn is still running, choose whether a new prompt should steer the current turn or be queued."),appearance:a("Switch between system theme, light mode, and dark mode."),chatWidth:a("Choose how wide the conversation column and composer can grow on desktop screens."),dictationClickToToggle:a("Use click-to-start and click-to-stop dictation instead of hold-to-talk."),dictationAutoSend:a("Automatically send transcribed dictation when recording stops."),dictationLanguage:a("Choose transcription language or keep auto-detect.")},R={standard:{label:"Standard",columnMax:"45rem",cardMax:"76ch"},wide:{label:"Wide",columnMax:"72rem",cardMax:"88ch"},"extra-wide":{label:"Extra wide",columnMax:"96rem",cardMax:"96ch"}},O={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:z,projectDisplayNameById:Z,selectedThread:ce,selectedThreadTokenUsage:B,selectedThreadServerRequests:Y,selectedLiveOverlay:J,lastPlanByThreadId:ge,resolveThreadTurnIndex:Ae,selectedActiveTurnId:ye,codexQuota:$e,selectedThreadId:pe,availableCollaborationModes:Ne,availableModelIds:je,availableModelReasoningEfforts:he,selectedCollaborationMode:Se,selectedReasoningEffort:Pe,selectedSpeedMode:Ee,codexCliMissingError:Ue,installedSkills:Ye,accountRateLimitSnapshots:He,messages:xt,hasMoreOlderMessages:ut,isLoadingThreads:Ge,isThreadListFullyLoaded:tt,isLoadingMessages:ct,isLoadingOlderMessages:_t,isSendingMessage:St,isInterruptingTurn:yt,isSelectedThreadInterruptPending:ae,isUpdatingSpeedMode:ne,error:re,refreshAll:W,refreshSkills:Be,refreshHooks:$,hooksList:D,isHooksLoading:G,onRealtimeEvent:se,selectThread:ie,ensureThreadMessagesLoaded:oe,loadMessages:Te,loadOlderMessages:we,archiveThreadById:ve,compactThreadById:ue,compactingThreadIds:Ie,fuzzyFileSearchResults:be,registerFuzzyFileSearchSession:Fe,forkThreadById:Me,renameThreadById:Ve,forkThreadFromTurn:st,sendMessageToSelectedThread:wt,sendMessageToNewThread:Rt,interruptSelectedThreadTurn:Ze,interruptedUnsubmittedMessage:Vt,clearInterruptedUnsubmittedMessage:V,selectedThreadQueuedMessages:K,removeQueuedMessage:X,reorderQueuedMessage:de,steerQueuedMessage:De,autoCompactThreshold:We,setAutoCompactThreshold:nt,setSelectedCollaborationMode:Bt,readModelIdForThread:Gt,setSelectedModelIdForThread:Wn,setSelectedReasoningEffort:Jo,updateSelectedSpeedMode:yo,respondToPendingServerRequest:eo,pendingReplyErrorForRequest:wo,renameProject:Qo,removeProject:fr,reorderProject:bn,pinProjectToTop:mt,startPolling:on,stopPolling:to,primeSelectedThread:Aa,rollbackSelectedThread:As}=kL(),At=XC(),Kt=QC(),{isMobile:pt}=yp();function Xo(){return typeof navigator<"u"&&/mac|iphone|ipad|ipod/i.test(navigator.platform)}const ln=S(null),pr=S(null),no=S(null);let On=null;const{buildFeedbackMailto:hr,feedbackMailtoBase:Pa,recordVisibleFailure:Ja}=xp(),Jn=Pa();function Mn(l,p){p&&Ja(p);const M=l.currentTarget;M instanceof HTMLAnchorElement&&(M.href=hr())}const Qa=S(null),oo=S(null),_n=S(null),Jr=S(0);let Xt=null;function Qr(){const l=_n.value;if(!l)return;const p=window.getComputedStyle(l),M=Number.parseFloat(p.paddingLeft)+Number.parseFloat(p.paddingRight),N=Math.max(0,l.clientWidth-(Number.isFinite(M)?M:0)),U=window.getComputedStyle(l).getPropertyValue("--chat-column-max").trim(),fe=Number.parseFloat(U)*(U.endsWith("rem")?16:1),Oe=Number.isFinite(fe)&&fe>0?Math.min(N,fe):N;Jr.value=Oe}const Ea=S(null),bo=S(null),No=S(!1),Lo=S(!1),Dt=S(!0),Mt=S("git"),Vn=S([]),_o=S(""),ro=ee(()=>Vn.value.find(l=>l.key===_o.value)??null),Dn=S(!1),Fn=S(!1),Qn=S(!1),Ir=S(Ia());function Xr(l){return Math.min(P4,Math.max(A4,l))}function Ia(){if(typeof window>"u")return Av;const l=window.localStorage.getItem(xv),p=Number(l);return Number.isFinite(p)?Xr(p):Av}function ai(l){typeof window>"u"||window.localStorage.setItem(xv,String(l))}function Zo(l){l.preventDefault();const p=l.clientX,M=Ir.value,N=fe=>{const Oe=p-fe.clientX;Ir.value=Xr(M+Oe)},U=()=>{ai(Ir.value),window.removeEventListener("mousemove",N),window.removeEventListener("mouseup",U)};window.addEventListener("mousemove",N),window.addEventListener("mouseup",U)}const Zr=S(null),Ra=S(!1),un=S("");let ao=!1;const so=S(!1),kt=S(""),Un=S("local"),io=S({}),cn=new Map,Oo=S(""),Xn=S([]),Do=S(!1),Bn=S({order:[],labels:{},projectOrder:[]}),jt=S({phase:"idle",loaded:0,total:null,blob:null,fileName:"",error:""}),dn=S({phase:"idle",title:"",message:""}),Yt=S(e_()),kn=S(""),lo=S(!1),uo=S(null),ko=S(null),ea=S(null),mr=S(null),er=S(null),vr=S(null);let Co=null,Rr=null,Cn=0,ta=0,co=!1,Fo=0,mn=0,Nt=0,tr=0;const To=S("New Project (1)"),Mr=S(""),vn=S(!1),Ma=[{id:"general",label:"General settings"},{id:"models",label:"Models & providers"},{id:"integrations",label:"Integrations"},{id:"usage",label:"Usage & about"}],So=S("general");let gr=0;function si(){if(vn.value){gr=Date.now(),vn.value=!1;return}Date.now()-gr<E4||(vn.value=!0)}const gn=S(n_()),$n=S(!1),I=S(!1),j=S(new Set);async function q(){try{j.value=new Set(await s1())}catch{}finally{I.value=!0}}const _e=ee(()=>!I.value||j.value.has("hooks/list")),ht=ee(()=>!I.value||["remoteControl/status/read","remoteControl/enable","remoteControl/pairing/start","remoteControl/client/list"].every(l=>j.value.has(l)));ot(vn,l=>{l&&($(),ui(),ht.value&&ci())});const vt=S({enabled:!1,clients:[]}),$t=S(null),Lt=S(!1),Zt=S(!1),An=S(""),Zn=S(""),Ps=S("");let $a=null,ii=!1,Jt=null;const tn=S("never"),li=S(!1),Es=S(!1),fo=S(""),yr=S("");let Wi=!1;const wr=S(!1);async function ui(l={}){if(!(l.force!==!0&&Wi)){li.value=!0,fo.value="";try{tn.value=await d1(),Wi=!0}catch(p){fo.value=p instanceof Error?p.message:"Failed to load approval policy"}finally{li.value=!1}}}function ja(l){tn.value=l}async function qn(){Es.value=!0,fo.value="",yr.value="";try{await f1(tn.value),wr.value=!0,yr.value=a("Approval policy saved"),Xa&&clearTimeout(Xa),Xa=setTimeout(()=>{yr.value=""},2200)}catch(l){fo.value=l instanceof Error?l.message:"Failed to save approval policy"}finally{Es.value=!1}}let Xa=null;async function ci(l={}){if(!(l.force!==!0&&ii)){Lt.value=!0,Zn.value="";try{const p=await c1();vt.value=p,ii=!0}catch(p){Zn.value=p instanceof Error?p.message:"Failed to load remote control status"}finally{Lt.value=!1}}}async function di(){const l=!vt.value.enabled;Zt.value=!0,An.value=l?"enable":"disable";try{await p1(l),vt.value={...vt.value,enabled:l},fi(l?"Remote control enabled":"Remote control disabled")}catch(p){Zn.value=p instanceof Error?p.message:"Failed to update remote control"}finally{Zt.value=!1,An.value=""}}async function Vi(){Zt.value=!0,An.value="pairing";try{$t.value=await h1()}catch(l){Zn.value=l instanceof Error?l.message:"Failed to start pairing"}finally{Zt.value=!1,An.value=""}}async function Is(){Zt.value=!0,An.value="clients";try{vt.value={...vt.value,clients:await m1()}}catch(l){Zn.value=l instanceof Error?l.message:"Failed to load remote clients"}finally{Zt.value=!1,An.value=""}}async function Nl(l){Zt.value=!0,An.value=`revoke:${l}`;try{await v1(l),vt.value={...vt.value,clients:vt.value.clients.filter(p=>p.clientId!==l)},fi("Remote client removed")}catch(p){Zn.value=p instanceof Error?p.message:"Failed to remove remote client"}finally{Zt.value=!1,An.value=""}}function fi(l){Ps.value=l,$a&&clearTimeout($a),$a=setTimeout(()=>{Ps.value=""},3e3)}const $r=S(""),na=S(""),br=S([]),oa=S(null),Na=S(null),_r=S(null),La=S(null),Uo=S(!1),Za=S(!1),jr=S({addedLineCount:0,removedLineCount:0}),xo=S([]),Nr=S(""),qe=S({}),Ce=S(""),Gn=S(""),Oa=S({}),kr=S(""),Rs=S(""),fn=S(!1),ra=S(!1);function Ll(l,p){return`${l}\0${p?"with-reset-history":"without-reset-history"}`}const es=S(null),Pn=S([]),Ao=S(!1),po=S(!1),nr=S(!1),jn=S(!1),ts=S(!1),aa=S(""),Lr=S(""),pi=S(null),or=S(""),rr=S(""),Cr=S(""),pn=S(""),sa=S(jd(Pv,!0)),Da=S(Fb()),ia=S(Db()),ns=S(Ub()),ar=S(jd(Rv,!1)),la=S(jd(Mv,!0)),Fa=S(Xb()),os=ee(()=>Zb()),Ol=ee(()=>{const{loaded:l,total:p}=jt.value,M=jp(l);return p&&p>0?`${M} / ${jp(p)}`:l>0?M:a("Preparing...")}),hi=ee(()=>{const{loaded:l,total:p,phase:M}=jt.value;return M==="ready"?"100%":!p||p<=0?l>0?"55%":"20%":`${Math.min(100,Math.max(5,Math.round(l/p*100)))}%`}),Ms=S(!1),Or=S(!1),Dr=S(!1),ua=S(""),rs=S(!1),Gi=S(null),en=S(!1),ho=S(""),En=S("codex"),$s=ee(()=>[{value:"codex",label:a("Codex")},{value:"openrouter",label:a("OpenRouter")},{value:"opencode-zen",label:a("OpenCode Zen")},{value:"custom",label:a("Custom endpoint")}]),sr=S(""),as=S(""),y=S("responses"),C=S("responses"),_=S(""),F=S(!1),ke=S(""),it=S(""),Et=S(""),Bo=S(!1),Qt=S(!1),zn=S(""),Tn=S(""),ir=S(!1),Fr=S(!1),qo=S("create"),js=S(""),mi=S(""),vi=S(""),Ns=S(!1),Ua=S(""),zo=S(!1),Dl=S(null),Du=S(null),Ba=S(!1),Fu=S(null),gd=S(null),qa=S(""),Ur=S(""),ca=S(""),Fl=S([]),Kn=S(""),Po=S(!1),Eo=S(!1),gi=S(!1),Br=S(""),Ls=[re,Ue,Nr,Gn,pn,ho,Et,Tn,Ua,Kn],da=ee(()=>Ls.some(l=>l.value.trim().length>0)),qr=S({configured:!1,active:!1,mappedChats:0,mappedThreads:0,allowedUsers:0,allowAllUsers:!1,lastError:""}),yi=S(null),Os=S(!1),Ki=S(!1),ss=S(typeof window<"u"?((lh=window.visualViewport)==null?void 0:lh.height)??window.innerHeight:0),Ul=S(typeof window<"u"?((uh=window.visualViewport)==null?void 0:uh.offsetTop)??0:0),wi=S(typeof window<"u"?window.innerHeight:0);let za=null,Bl=!1,Yi=!1,ql=!1,bi=0;const is=ee(()=>{const l=At.params.threadId;return typeof l=="string"?l:""}),Nn=ee(()=>At.name==="home"),Tr=ee(()=>At.name==="skills"),ls=ee(()=>At.name==="automations"),Uu=ee(()=>{const l=At.query.automationId;return typeof l=="string"?l:""}),yd=ee(()=>{var l;return ls.value?a("Automations"):Tr.value?a("Skills"):Nn.value?a("Start new thread"):((l=ce.value)==null?void 0:l.title)??a("Choose a thread")}),_i=typeof window<"u"&&(window.location.hostname||window.location.host)||"codexui",Ji=ee(()=>{var p,M;return(((M=(p=ce.value)==null?void 0:p.title)==null?void 0:M.trim())??"")||_i}),ki=ee(()=>xt.value.filter(l=>{const p=r_(l.messageType,l.role);return p==="worked"?!0:!(p==="turnActivity.live"||p==="turnError.live"||p==="agentReasoning.live")})),Qi=new Set(["commandExecution","worked","toolCall","fileChange","agentMessage","agentMessage.live","plan"]),Xi=S(null);function zl(l,p,M){const N=typeof p.turnIndex=="number"?p.turnIndex:-1;return N<0?!1:l.some((U,fe)=>fe>M&&typeof U.turnIndex=="number"&&U.turnIndex>=N&&Qi.has(U.messageType??""))}function Bu(l,p){return l.some(M=>typeof M.turnIndex=="number"&&M.turnIndex>=p&&Qi.has(M.messageType??""))}const Hl=ee(()=>{const l=ki.value,p=ct.value;for(let fe=l.length-1;fe>=0;fe-=1){const Oe=l[fe];if(Oe.messageType!=="plan"&&Oe.messageType!=="plan.live")continue;const rn=av(Oe);if(!rn||Xi.value!==null&&Oe.id===Xi.value)return null;const c_=p?!0:zl(l,Oe,fe);return{id:Oe.id,streaming:Oe.messageType==="plan.live",explanation:rn.explanation,steps:rn.steps,implemented:c_}}const M=pe.value?ge.value[pe.value]??null:null;if(!M)return null;const N=av(M);if(!N)return null;const U=typeof M.turnIndex=="number"?M.turnIndex:M.turnId?Ae(pe.value,M.turnId)??-1:-1;return{id:M.id,streaming:M.messageType==="plan.live",explanation:N.explanation,steps:N.steps,implemented:p?!0:U>=0?Bu(l,U):!1}}),wd=ee(()=>J.value),Sr=ee(()=>Nn.value?"__new-thread__":pe.value),Ds=ee(()=>Gt(Sr.value)),Zi=ee(()=>{const l=Y.value;return l.length>0?l[l.length-1]:null}),Wl=ee(()=>Zi.value?wo(Zi.value.id):""),yn=ee(()=>{var l,p;return Nn.value?kt.value.trim():((p=(l=ce.value)==null?void 0:l.cwd)==null?void 0:p.trim())??""}),el=ee(()=>Dt.value&&(Nn.value&&yn.value.length>0||At.name==="thread"&&pe.value.length>0)),bd=ee(()=>el.value&&Mt.value==="terminal"),tl=ee(()=>!pt.value||ss.value<=0||wi.value<=0?!1:wi.value-ss.value>120),_d=ee(()=>tl.value||bd.value&&Lo.value),qu=ee(()=>{var l,p;return((p=(l=ce.value)==null?void 0:l.cwd)==null?void 0:p.trim())??kt.value.trim()}),Ci=ee(()=>{var l;return!Nn.value&&((l=ce.value)==null?void 0:l.inProgress)===!0}),zr=ee(()=>{const l=pe.value;return!!l&&Ie.value.has(l)}),zu=ee(()=>{var l,p;return!Nn.value&&((p=(l=ce.value)==null?void 0:l.externalSession)==null?void 0:p.active)===!0}),Vl=ee(()=>St.value||yt.value||Ci.value||Y.value.length>0);function Hu(){Ms.value&&(Ms.value=!1,jS(!0))}function Wu(){Hu(),Kt.push({name:"skills",query:{tab:"plugins"}})}function kd(){const l=pe.value;l&&ue(l)}function nl(l,p){const M=at(l).trim(),N=Ar(M);return!M||!N?!1:p.some(U=>{const fe=at(U).trim();return fe!==M&&Ar(fe)===N})}function Gl(l,p=""){const M=at(l).trim(),N=p.trim();if(N)return N;const U=Ar(M),fe=[...Bn.value.order,...z.value.map(Oe=>{var rn,lr;return((lr=(rn=Oe.threads[0])==null?void 0:rn.cwd)==null?void 0:lr.trim())??""}).filter(Boolean)];return nl(M,fe)?M:U}function Cd(){const l=new Set(Bn.value.order),p=Bn.value.projectOrder.filter(M=>l.has(M));for(const M of Bn.value.order)p.includes(M)||p.push(M);return p}function Ti(l){const p=at(l).trim(),M=[...Bn.value.order,...z.value.map(N=>{var U,fe;return((fe=(U=N.threads[0])==null?void 0:U.cwd)==null?void 0:fe.trim())??""}).filter(Boolean)];return nl(p,M)?p:Ar(p)}function ol(l){const p=at(l).trim();if(!p)return"";const M=[...Bn.value.order,...z.value.map(N=>{var U,fe;return((fe=(U=N.threads[0])==null?void 0:U.cwd)==null?void 0:fe.trim())??""}).filter(Boolean)];for(const N of Bn.value.order){const U=at(N).trim();if(!U)continue;const fe=Ar(U),Oe=nl(U,M)?U:fe;if(U===p||Oe===p||fe===p)return U}return""}const Kl=ee(()=>{var N,U;const l=[],p=new Set;for(const fe of Cd()){const Oe=fe.trim();!Oe||p.has(Oe)||(p.add(Oe),l.push({value:Oe,label:Gl(Oe,Bn.value.labels[Oe])}))}for(const fe of z.value){const Oe=((U=(N=fe.threads[0])==null?void 0:N.cwd)==null?void 0:U.trim())??"";!Oe||p.has(Oe)||Yc(Oe)||(p.add(Oe),l.push({value:Oe,label:Gl(Oe,Z.value[fe.projectName])}))}const M=kt.value.trim();return M&&!p.has(M)&&l.unshift({value:M,label:Gl(M)}),l}),us=ee(()=>{const l=kt.value.trim();return l?io.value[l]===!0:!1}),Td=ee(()=>{var p,M;const l={};for(const N of z.value){const U=al(N.projectName,((M=(p=N.threads[0])==null?void 0:p.cwd)==null?void 0:M.trim())??"");l[N.projectName]=U?io.value[U]===!0:!1}return l}),i=ee(()=>{const l=Oo.value.trim(),p=[...Xn.value];return l&&!p.some(M=>M.value===l)&&p.unshift({value:l,label:l}),p}),c=ee(()=>{const l=Oo.value.trim();if(!l)return"";const p=i.value.find(M=>M.value===l);return(p==null?void 0:p.label)??l}),h=ee(()=>Ur.value.trim()),b=ee(()=>{const l=zn.value.trim();return!l||l==="."||l===".."?!1:!/[\\/]/u.test(l)}),P=ee(()=>b.value&&h.value.trim().length>0&&!Kn.value),E=ee(()=>{const l=mi.value.trim();return!l||l==="."||l===".."?!1:!/[\\/]/u.test(l)}),L=ee(()=>js.value.trim()?qo.value==="create"?E.value:vi.value.trim().length>0:!1),H=ee(()=>{const l=at(qa.value).trim();return l||Ur.value.trim()}),te=ee(()=>ir.value?"Creating…":"Create"),me=ee(()=>zo.value?qo.value==="clone"?a("Cloning…"):a("Creating…"):qo.value==="clone"?a("Clone repository"):a("Create project")),Le=ee(()=>{const l=Ur.value.trim(),p=ca.value.trim();return!!(l&&p&&l!==p)}),Je=ee(()=>{const l=[];Le.value&&l.push({key:`parent:${ca.value}`,name:"..",path:ca.value,kind:"parent"});for(const p of Fl.value)l.push({key:`directory:${p.path}`,name:p.name,path:p.path,kind:"directory"});return l}),ft=ee(()=>{const l=Br.value.trim().toLowerCase();return l?Je.value.filter(p=>p.kind==="parent"||p.name.toLowerCase().includes(l)):Je.value}),lt=typeof window<"u"?window.matchMedia("(prefers-color-scheme: dark)"):null,It=ee(()=>a(R[ns.value].label)),Ha=ee(()=>{const l=R[ns.value],p=Math.max(0,wi.value-ss.value-Ul.value);return{"--chat-column-max":l.columnMax,"--chat-card-max":l.cardMax,"--visual-viewport-height":ss.value>0?`${ss.value}px`:"100dvh","--visual-viewport-offset-top":`${Math.max(0,Ul.value)}px`,"--virtual-keyboard-inset":`${p}px`}}),Fs=ee(()=>{if(!qr.value.configured)return a("Not configured");const l=qr.value.active?a("Online"):a("Configured (offline)"),p=qr.value.allowAllUsers?a("allow all users"):`${qr.value.allowedUsers} ${a("allowed user(s)")}`,M=`${qr.value.mappedChats} ${a("chat(s)")}, ${qr.value.mappedThreads} ${a("thread(s)")}, ${p}`,N=qr.value.lastError?`, ${a("error")}: ${qr.value.lastError}`:"";return`${l}, ${M}${N}`});xs(()=>{var l,p;document.addEventListener("pointerdown",Bp),window.addEventListener("keydown",Dp),document.addEventListener("visibilitychange",qp),window.addEventListener("pageshow",zp),window.addEventListener("focus",Hp),window.addEventListener("resize",fa),(l=window.visualViewport)==null||l.addEventListener("resize",fa),(p=window.visualViewport)==null||p.addEventListener("scroll",fa),fa(),lc(),lt==null||lt.addEventListener("change",lc),On=se(M=>{no.value&&no.value.refreshFromNotification(M)}),Jt=se(M=>{M==="remoteControl/status/changed"&&ci({force:!0})}),a_(),Ib(),q(),Gu(),Hs(),pa(),Bs(),cs(),Ld(),Qw(),ui()}),ot(Ls,(l,p)=>{l.forEach((M,N)=>{if(M===p[N])return;const U=M.trim();U&&Ja(U)})}),ot(_n,l=>{Xt&&(Xt.disconnect(),Xt=null),typeof ResizeObserver<"u"&&(Xt=new ResizeObserver(Qr),l&&Xt.observe(l)),Qr()},{immediate:!0}),Nu(()=>{var l,p;document.removeEventListener("pointerdown",Bp),window.removeEventListener("keydown",Dp),document.removeEventListener("visibilitychange",qp),window.removeEventListener("pageshow",zp),window.removeEventListener("focus",Hp),window.removeEventListener("resize",fa),(l=window.visualViewport)==null||l.removeEventListener("resize",fa),(p=window.visualViewport)==null||p.removeEventListener("scroll",fa),lt==null||lt.removeEventListener("change",lc),Xt&&(Xt.disconnect(),Xt=null),za!==null&&(window.clearInterval(za),za=null),Co&&(clearTimeout(Co),Co=null),rc(),to(),On&&(On(),On=null),Jt&&(Jt(),Jt=null),$a&&(clearTimeout($a),$a=null)});function fa(){var l,p;typeof window>"u"||(wi.value=Math.max(wi.value,window.innerHeight),ss.value=((l=window.visualViewport)==null?void 0:l.height)??window.innerHeight,Ul.value=((p=window.visualViewport)==null?void 0:p.offsetTop)??0)}ot(kn,l=>{const p=l.trim();if(Co&&(clearTimeout(Co),Co=null),!p){vr.value=null;return}Co=setTimeout(()=>{TS(p,1e3).then(M=>{kn.value.trim()===p&&(vr.value=M.threadIds)}).catch(()=>{kn.value.trim()===p&&(vr.value=null)})},220)}),ot(tl,l=>{l||(Lo.value=!1)}),ot(Pn,()=>{if(typeof window>"u")return;if(!Pn.value.some(p=>p.quotaStatus==="loading")){za!==null&&(window.clearInterval(za),za=null);return}za===null&&(za=window.setInterval(()=>{Bl||(Bl=!0,Jl({silent:!0}).finally(()=>{Bl=!1}))},1500))},{deep:!0}),ot(He,()=>{xr().then(l=>{l&&W({includeSelectedThreadMessages:!1,providerChanged:!0,awaitAncillaryRefreshes:!0})})},{deep:!0});async function xr(){if(!Yi||ql||En.value!=="codex"||Pn.value.length>0||He.value.length===0)return!1;ql=!0;const l=JSON.stringify(Pn.value.map(M=>M.accountId).sort());try{const M=await Am();Pn.value=M.accounts}catch{await Jl({silent:!0})}const p=JSON.stringify(Pn.value.map(M=>M.accountId).sort());return l!==p}function Us(){Be({force:!0})}function Vu(l){l&&Te(l,{silent:!0,force:!0})}async function cs(){try{qr.value=await AS()}catch(l){const p=l instanceof Error?l.message:"Failed to load Telegram status";qr.value={configured:!1,active:!1,mappedChats:0,mappedThreads:0,allowedUsers:0,allowAllUsers:!1,lastError:p}}}async function Bs(){try{const l=await xS();ke.value=l.botToken,it.value=l.allowedUserIds.map(p=>String(p)).join(`
|
|
80
|
+
`)}ua(i);const cs=ke(i);cs&&(Qt(b,cs),Jt(b,{label:"Running command",details:[((Zu=cs.commandExecution)==null?void 0:Zu.command)??""]}));const Bs=it(i);if(Bs){const Re=(O.value[b]??[]).find(Ft=>Ft.id===Bs.itemId);Re!=null&&Re.commandExecution&&Qt(b,{...Re,commandExecution:{...Re.commandExecution,aggregatedOutput:`${Re.commandExecution.aggregatedOutput}${Bs.delta}`}})}const Gu=Et(i);Gu&&Qt(b,Gu);const Ku=Bo(i);if(Ku&&Nl(b,Ku),ir(i)&&br(b,!0),i.method==="turn/completed"){ro=!1,br(b),w.clear(),O.value[b]&&(O.value=Ct(O.value,b));const Re=fn(i);Re&&(So(Re),$t(Re,!1),Jt(Re,null),ii(Re),Le||(co(Re),zl(Re)))}}function Ua(i){if(i.method==="thread/tokenUsage/updated"||i.method.startsWith("thread/realtime/"))return;const c=i.method,h=c==="turn/started"||c==="turn/completed"||c==="error",b=c.startsWith("thread/")||c==="turn/completed";if(!h&&!b)return;const P=fn(i);P&&h&&Xt.add(P),b&&(_n=!0,Jr=!0),!(pt!==null||typeof window>"u")&&(pt=window.setTimeout(()=>{pt=null,zr()},kc))}async function zo(i,c){if(!_o){_o=!0;try{if(!c)return;const h=[];for(const b of vd(c)){const P=qi(b);h.includes(P)||h.push(P)}if(h.length>0){const b=c.projectOrder.length>0?fl(h,i):fl(W.value,i);gs(W.value,b)||(W.value=b)}if(Object.keys(c.labels).length>0||(c.remoteProjects??[]).length>0){const b={...Be.value};let P=!1;for(const[E,L]of Object.entries(c.labels)){const H=at(E).trim(),te=[qi(E)];H&&te.push(H);for(const me of te)b[me]!==L&&(b[me]=L,P=!0)}for(const E of c.order){const L=qi(E),H=Gr(Tl(E));if(!H.startsWith(".")||H===L)continue;const te=`${L} ${H}`;b[L]!==void 0||b[L]===te||(b[L]=te,P=!0)}for(const E of c.remoteProjects??[]){const L=dL(E);b[E.id]!==L&&(b[E.id]=L,P=!0)}P&&(Be.value=b)}}catch{}}}async function Dl(i={}){if(!(i.force!==!0&&Object.keys(K.value).length>0))try{const c=await PS();if(Object.keys(c.titles).length>0){const h={};for(const[b,P]of Object.entries(c.titles))h[b]=Ys(P);K.value=h}}catch{}}async function Du(){try{return await ml()}catch{return null}}function Ba(i,c,h){const b=i.trim();if(b)return Ys(b);const P=h.map(E=>E.label.trim()).find(E=>E.length>0);return P?Ys(P):c.length>0?Ys("[Image]"):"Untitled thread"}async function Fu(i,c,h,b=[],P=[]){if(K.value[i])return;const E=c.trim();if(!E){const H=Ba(c,b,P);K.value={...K.value,[i]:H},j(),gc(i,H);return}const L=E.length>300?E.slice(0,300):E;try{const H=await NS(L,h);if(!H||K.value[i])return;const te=H.length>Kf?H.slice(0,Kf):H;K.value={...K.value,[i]:te},j(),gc(i,te)}catch{}}function gd(i,c){const h=Gf(i,c),b=mL(i,c),P=vL(b,c,h);if(!c||c.order.length===0&&(c.remoteProjects??[]).length===0)return P;const E=new Set;for(const H of Vf(c,h))E.add(H);const L=P.filter(H=>E.has(H.projectName)?!0:Yf(H));return hL(L,c,h)}function qa(i,c){const h=gd(i,c),b=!!(c&&(c.order.length>0||c.projectOrder.length>0||(c.remoteProjects??[]).length>0)),P=c!=null&&c.projectOrder.length?fl(Vf(c,Gf(i,c)),h):fl(W.value,h);gs(W.value,P)||(W.value=P,b||iu(W.value));const E=vf(h,W.value);Ps(new Set(Ro(E).map(te=>te.id)));const L=uL(t.value,E,Z.value);t.value=Ec(t.value,L),Z.value=Sn(Z.value,new Set(Ro(t.value).map(te=>te.id))),new Set(Ro(t.value).map(te=>te.id));const H={};for(const te of Ro(t.value))H[te.id]=te.externalSession??$e.value[te.id]??null;$e.value=H,j()}function Ur(i){const c={};for(const[h,b]of Object.entries(i)){const P=h.trim();!P||b.length===0||(c[P]=b.map(E=>({id:E.id,text:E.text,imageUrls:[...E.imageUrls],skills:E.skills.map(L=>({name:L.name,path:L.path})),fileAttachments:E.fileAttachments.map(L=>({label:L.label,path:L.path,fsPath:L.fsPath})),collaborationMode:E.collaborationMode})))}return c}function ca(){nS(Ur(pe.value)).catch(()=>{})}async function Fl(){if(!Pe){Pe=!0;try{pe.value=await Nm()}catch{}}}function Kn(i){Mt=kv(Mt,i),t.value=kv(t.value,i),Z.value=Ct(Z.value,i),j()}function Po(i,c){if(i.length===0)return c;if(c.length===0)return i;const h=new Map;for(const P of Ro(i))h.set(P.id,P);for(const P of Ro(c))h.set(P.id,P);const b=new Map;for(const P of h.values()){const E=b.get(P.projectName);E?E.push(P):b.set(P.projectName,[P])}return Array.from(b.entries()).map(([P,E])=>({projectName:P,threads:E.sort((L,H)=>new Date(H.updatedAtIso).getTime()-new Date(L.updatedAtIso).getTime())})).sort((P,E)=>{var te,me;const L=new Date(((te=P.threads[0])==null?void 0:te.updatedAtIso)??0).getTime();return new Date(((me=E.threads[0])==null?void 0:me.updatedAtIso)??0).getTime()-L})}function Eo(){return Object.values(Z.value).some(i=>i===!0)}function gi(i=Vn){if(!(!bo||Lo||Eo())){if(Vn=i,typeof window>"u"){Br(i);return}No!==null&&window.clearTimeout(No),No=window.setTimeout(()=>{No=null,!(!bo||Eo())&&Br(Vn)},y2)}}async function Br(i){if(!(Lo||!bo||Eo())){Lo=!0;try{const c=await Cm(bo,ZT());bo=c.nextCursor,Dt=c.nextCursor===null,Gt.value=Dt,Mt=Po(Mt,c.groups),qa(Mt,i)}catch{}finally{Lo=!1,bo&&!Eo()&&gi(i)}}}async function Ls(i={}){if(pr){await pr;return}i.force!==!0&&to.value&&Date.now()-Pa<_2||(pr=(async()=>{var c;to.value||(nt.value=!0);try{const[h,b]=await Promise.all([Cm(),Du(),Dl({force:i.force===!0})]);Vn=b;const P=h.groups;Mt=to.value?Po(Mt,P):P,bo=to.value&&!Dt?bo:h.nextCursor,Dt=h.nextCursor===null,Gt.value=Dt,await zo(P,b),qa(Mt,b),to.value=!0,Pa=Date.now(),Dt||gi(b);const E=Ro(e.value);_e(E),!E.some(H=>H.id===n.value)&&!n.value&&kn(((c=E[0])==null?void 0:c.id)??"")}finally{nt.value=!1}})().finally(()=>{pr=null}),await pr)}async function da(i,c={}){var H;if(!i)return;const h=Date.now()-(Ea.get(i)??0)<cv;if((H=ue.value[i])!=null&&H.transient&&(c.silent===!0||h))return;const b=no.get(i);if(b&&c.force!==!0){await b;return}const P=D.value[i]===!0,E=c.silent!==!0&&!P;E&&(Bt.value=!0);const L=(async()=>{try{const te=fo(i),me=$.value[i]??"",Le=Date.now()-(Qr.get(i)??0)<cv;if(c.force===!0?!1:P&&(Le||(te.length===0||me===te)&&Z.value[i]!==!0)){ht(i);return}const lt=ie.value[i]!==!0?await rf(i):null,It=lt??await of(i);It.modelProvider&&ea(i,It.modelProvider),It.model&&ko(i,mr(i,It.model,It.modelProvider)),lt&&(ie.value={...ie.value,[i]:!0});const{messages:Ha,inProgress:Fs,activeTurnId:fa,turnIndexByTurnId:xr}=It;G.value={...G.value,[i]:It.hasMoreOlder===!0},$a(i,Ha),os(i,xr),hi(i);const Us=o.value[i]??[],Vu=_v(Us,Ha,{preserveMissing:c.silent===!0||J2(Us)});wr(i,Vu);const cs=a.value[i]??[];if(Fs){const Bs=X2(cs,Ha);ja(i,Bs)}else qn(i);zn(i,Ha),Tn(i,Ha),D.value={...D.value,[i]:!0},Qr.set(i,Date.now()),Ea.delete(i),te&&($.value={...$.value,[i]:te}),$t(i,Fs),It.externalSession&&($e.value={...$e.value,[i]:It.externalSession}),li(i),fa?Ie.value={...Ie.value,[i]:fa}:Ie.value[i]&&(Ie.value=Ct(Ie.value,i)),Fs||Uo(i),ht(i)}catch(te){const me=te instanceof Error?te.message:"Unknown application error";throw n.value===i&&tn(i,me,{transient:!0}),Ea.set(i,Date.now()),te}finally{E&&(Bt.value=!1)}})().finally(()=>{no.delete(i)});no.set(i,L),await L}async function qr(i=n.value){if(!i||se.value[i]===!0||G.value[i]!==!0)return;const c=io(i);if(!c){G.value={...G.value,[i]:!1};return}se.value={...se.value,[i]:!0};try{const h=await t1(i,c),b=o.value[i]??[],P=_v(h.messages,b,{preserveMissing:!0});wr(i,P),os(i,{...oe.value[i]??{},...h.turnIndexByTurnId}),hi(i),G.value={...G.value,[i]:h.hasMoreOlder}}catch(h){throw mt.value=h instanceof Error?h.message:"Failed to load earlier messages",h}finally{se.value={...se.value,[i]:!1}}}async function yi(i,c={}){var h;i&&D.value[i]!==!0&&(c.silent===!0&&((h=ue.value[i])!=null&&h.transient)||await da(i,c))}async function Os(i={}){var b,P;const c=((P=(b=Ir.value)==null?void 0:b.cwd)==null?void 0:P.trim())??"",h=c||"__global__";if(On){await On;return}i.force!==!0&&Ja&&Qa===h&&Date.now()-Mn<k2||(On=(async()=>{try{X.value=await OS(c?[c]:void 0),Ja=!0,Mn=Date.now(),Qa=h}catch{}finally{On=null}})(),await On)}async function Ki(i={}){if(hr){await hr;return}i.force!==!0&&Jn||(We.value=!0,hr=(async()=>{try{De.value=await l1(),Jn=!0}catch{}finally{We.value=!1,hr=null}})(),await hr)}async function ss(i={}){await Promise.allSettled([Mr({providerChanged:i.providerChanged,includeProviderModels:i.includeProviderModels}),vn(),tr(),Os()])}function Ul(i={}){const c=()=>{ss(i)};if(typeof window>"u"){c();return}window.setTimeout(c,0)}async function wi(i={}){mt.value="",ae.value="";const c=i.includeSelectedThreadMessages!==!1,h=i.awaitAncillaryRefreshes===!0;try{if(await Fl(),await Ls({force:i.forceThreadRefresh===!0}),c)try{await da(n.value)}catch(b){mt.value=b instanceof Error?b.message:"Unknown application error"}h?await ss({providerChanged:i.providerChanged,includeProviderModels:i.providerChanged===!0||h}):Ul({providerChanged:i.providerChanged,includeProviderModels:!1})}catch(b){mt.value=b instanceof Error?b.message:"Unknown application error",fv(b)?ae.value=dv:ae.value=""}}async function za(i){kn(i);try{return await da(i),await Mr({includeProviderModels:!0}),Os(),"ok"}catch(c){const h=c instanceof Error?c.message:"Unknown application error";mt.value=h;const b=x2(c)?"not-found":"error";return i.trim()&&tn(i,h,{transient:!0}),b}}async function Bl(i){const c=n.value===i,h=c?h2(Ro(e.value),i):"";c&&(kn(h),h&&da(h,{silent:!0}));try{await $1(i),Kn(i),await Ls(),c&&h&&n.value===h&&await yi(h,{silent:!0})}catch(b){mt.value=b instanceof Error?b.message:"Unknown application error"}}async function Yi(i,c){const h=c.trim();if(!(!i||!h))try{await L1(i,h),K.value={...K.value,[i]:h},j(),gc(i,h)}catch(b){mt.value=b instanceof Error?b.message:"Unknown application error"}}async function ql(i){var L,H;const c=i.trim();if(!c)return"";const h=Ro(t.value).find(te=>te.id===c),b=((L=h==null?void 0:h.cwd)==null?void 0:L.trim())??"",P=((H=h==null?void 0:h.title)==null?void 0:H.trim())??"Forked chat",E=cn(c);mt.value="";try{const te=await Em(c,b||void 0,E||void 0),me=te.threadId.trim();return me?(q(me,b,P),ko(me,te.model),ie.value={...ie.value,[me]:!0},kn(me),await Ls(),await da(me),me):""}catch(te){return mt.value=te instanceof Error?te.message:"Unknown application error",""}}async function bi(i,c){var L;const h=i.trim();if(!h||!Number.isInteger(c)||c<0)return"";if(Z.value[h]===!0)return mt.value="Finish the current turn before forking from a response.","";if(D.value[h]!==!0)try{await da(h)}catch(H){return mt.value=H instanceof Error?H.message:"Unknown application error",""}const b=o.value[h]??[];let P=-1;for(const H of b)typeof H.turnIndex=="number"&&Number.isFinite(H.turnIndex)&&(P=Math.max(P,H.turnIndex));if(P>=0&&c>P)return"";const E=Ro(t.value).find(H=>H.id===h)??null;try{mt.value="";const H=await Em(h),te=H.threadId.trim();if(!te)return"";const me=H.cwd.trim()||((L=E==null?void 0:E.cwd)==null?void 0:L.trim())||"",Le=gL((E==null?void 0:E.title)||(E==null?void 0:E.preview)||"Untitled thread");q(te,me,Le),ko(te,H.model),wr(te,H.messages),D.value={...D.value,[te]:!0},ie.value={...ie.value,[te]:!0},_r(te),ja(te,[]),br(te),O.value[te]&&(O.value=Ct(O.value,te)),vt(te,null),Jt(te,null),tn(te,null),$t(te,!1);const Je=P-c;if(Je>0){const ft=await af(te,Je);wr(te,ft)}return await Yi(te,Le),kn(te),Ls().catch(()=>{}),te}catch(H){return mt.value=H instanceof Error?H.message:"Unknown application error",""}}async function is(i,c,h=[],b=[],P=[]){if(!i||!c.trim()||h.length>0||b.length>0||P.length>0)return!1;const L=(st.value[i]??[]).filter(me=>me.method==="item/tool/requestUserInput");if(L.length!==1)return!1;const[H]=L,te=Lr(H);return te.length!==1?!1:nl({id:H.id,result:{answers:{[te[0]]:{answers:[c.trim()]}}}})}function Nn(){if(typeof window>"u")return{};try{const i=window.localStorage.getItem(lv);if(!i)return{};const c=JSON.parse(i);if(!c||typeof c!="object"||Array.isArray(c))return{};const h={};for(const[b,P]of Object.entries(c)){if(!b||!Array.isArray(P))continue;const E=P.filter(L=>!!L&&typeof L=="object"&&typeof L.id=="string"&&typeof L.text=="string");E.length>0&&(h[b]=E)}return h}catch{return{}}}function Tr(){typeof window>"u"||window.localStorage.setItem(lv,JSON.stringify(je.value))}function ls(){if(typeof window>"u")return _c;try{const i=window.localStorage.getItem(uv);if(i===null)return _c;const c=Number(i);return Number.isFinite(c)&&c>=0?Math.round(c):_c}catch{return _c}}function Uu(i){const c=Number.isFinite(i)&&i>0?Math.round(i):0;c!==he.value&&(he.value=c,!(typeof window>"u")&&window.localStorage.setItem(uv,String(c)))}async function yd(i,c,h,b,P,E){if(Se||he.value<=0||Z.value[i]===!0)return!1;const L=Ze.value[i];if(!L||L.remainingContextPercent===null||L.remainingContextPercent>he.value)return!1;const H=je.value[i]??[],te=`stash-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,me=E==="plan"?"plan":E==="default"?"default":tt.value;return je.value={...je.value,[i]:[...H,{id:te,text:c,imageUrls:h,skills:b,fileAttachments:P,collaborationMode:me}]},Tr(),wo.value.has(i)||Wl(i),!0}async function _i(i){const c=je.value[i];if(!c||c.length===0||Z.value[i]===!0)return;const h=[...c];je.value=Ct(je.value,i),Tr(),Se=!0;try{for(const b of h)try{await Ji(b.text,b.imageUrls,b.skills,"steer",b.fileAttachments,void 0,b.collaborationMode)}catch{}}finally{Se=!1}}async function Ji(i,c=[],h=[],b="steer",P=[],E,L){if(yo.value)return;const H=n.value,te=i.trim();if(!H||!te&&c.length===0&&P.length===0||await is(H,te,c,h,P)||await yd(H,te,c,h,P,L))return;const me=Z.value[H]===!0;if(me&&b==="queue"){const Le=pe.value[H]??[],Je=`q-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,ft=[...Le],lt=typeof E=="number"?Math.max(0,Math.min(E,ft.length)):ft.length;ft.splice(lt,0,{id:Je,text:te,imageUrls:c,skills:h,fileAttachments:P,collaborationMode:L==="plan"?"plan":L==="default"?"default":tt.value}),pe.value={...pe.value,[H]:ft},ca();return}if(me){ro=!0,Qi(H,te,c,h,P,L).catch(Le=>{const Je=Le instanceof Error?Le.message:"Unknown application error";tn(H,Je),mt.value=Je});return}mt.value="",ro=!0,vt(H,null),Jt(H,{label:"Thinking",details:To(cn(H),_t.value,L==="plan"?"plan":L==="default"?"default":tt.value)}),tn(H,null),$t(H,!0);try{await Qi(H,te,c,h,P,L)}catch(Le){ro=!1,$t(H,!1),Jt(H,null);const Je=Le instanceof Error?Le.message:"Unknown application error";throw tn(H,Je),mt.value=Je,Le}}async function ki(i,c,h=[],b=[],P=[]){if(yo.value)return"";const E=i.trim(),L=c.trim(),H=cn(ni).trim(),te=tt.value;if(!E&&h.length===0&&P.length===0)return"";Wn.value=!0,mt.value="";let me="";try{try{const lt=await Pm(L||void 0,H||void 0);me=lt.threadId,ko(me,lt.model),ea(me,lt.modelProvider||yt.value),Co(me,te)}catch(lt){if(H&&H!==ma&&Ac(lt)){await Cn();const It=await Pm(L||void 0,ma);me=It.threadId,ko(me,It.model),ea(me,It.modelProvider||yt.value),Co(me,te)}else throw lt}if(!me)return"";q(me,L,E||"[Image]"),ui(me,E,h,b,P),Zt(me),ie.value={...ie.value,[me]:!0},kn(me),ro=!0,vt(me,null),Jt(me,{label:"Thinking",details:To(cn(me),_t.value,te)}),tn(me,null),$t(me,!0);const Le=me,Je=L||null,ft=E;return Qi(me,E,h,b,P,te).catch(lt=>{ro=!1,$t(me,!1),Jt(me,null);const It=lt instanceof Error?lt.message:"Unknown application error";tn(me,It),mt.value=It}).finally(()=>{Wn.value=!1}),Fu(Le,ft,Je,h,P),me}catch(Le){ro=!1,me&&($t(me,!1),Jt(me,null));const Je=Le instanceof Error?Le.message:"Unknown application error";throw me&&tn(me,Je),mt.value=Je,Wn.value=!1,Le}}async function Qi(i,c,h=[],b=[],P=[],E){const L=_t.value,H=E==="plan"?"plan":E==="default"?"default":tt.value,te=c.trim(),me=[...h];if(me.length===0&&As(te)){const ft=At(i);ft&&me.push(ft)}const Le=b.map(ft=>({name:ft.name,path:ft.path})),Je=P.map(ft=>({...ft}));ta(i,{text:te,imageUrls:[...me],skills:Le,fileAttachments:Je,effort:L,collaborationMode:H,fallbackRetried:!1});try{if(ie.value[i]!==!0){const It=await rf(i);It.model&&ko(i,mr(i,It.model,It.modelProvider)),It.modelProvider&&ea(i,It.modelProvider),ie.value={...ie.value,[i]:!0}}const ft=cn(i);let lt="";try{lt=await sf(i,c,me,ft||void 0,L||void 0,b.length>0?b:void 0,P,H)}catch(It){if(ft&&ft!==ma&&Ac(It))await Cn(i),ta(i,{text:te,imageUrls:[...me],skills:Le,fileAttachments:Je,effort:L,collaborationMode:H,fallbackRetried:!0}),lt=await sf(i,c,me,ma,L||void 0,b.length>0?b:void 0,P,H);else throw It}lt&&(Ie.value={...Ie.value,[i]:lt},Zn(i,lt)),Xt.add(i),await zr(),gr(i)}catch(ft){throw ft}}async function Xi(i){if(Ne.value[i]!==!0){Ne.value={...Ne.value,[i]:!0};try{pe.value=await Nm()}catch{}finally{Ne.value=Ct(Ne.value,i)}}}function zl(i){Xi(i),!(typeof window>"u")&&window.setTimeout(()=>{Xi(i)},650)}async function Bu(){const i=n.value;if(!i||Z.value[i]!==!0||be.value[i]===!0)return;let c=Ie.value[i];if(!c){const{activeTurnId:E}=await of(i);c=E,c&&(Ie.value={...Ie.value,[i]:c})}if(!c)throw new Error("Could not determine active turn id for interrupt");const h=ao.value.filter(E=>E.turnId===c),b=h.find(E=>E.role==="user"),P=h.some(E=>{if(E.role==="assistant")return!0;const L=E.messageType??"";return L==="commandExecution"||L==="toolCall"||L==="worked"||L==="fileChange"||L==="plan"||L==="plan.live"||L==="compaction.done"||L==="turnError"});Jo.value=!0,mt.value="";try{if(await z1(i,c),$t(i,!1),Jt(i,null),tn(i,null),Ie.value[i]&&(Ie.value=Ct(Ie.value,i)),Xt.add(i),_n=!0,await zr(),b&&!P){const E=(o.value[i]??[]).filter(H=>H.turnId!==c);wr(i,E);const L=d.value[i];if(L){const H=L.filter(te=>te.turnId!==c);H.length!==L.length&&(d.value={...d.value,[i]:H},Cc(d.value))}Ve.value={...Ve.value,[i]:{text:b.text??"",imageUrls:b.images??[],fileAttachments:(b.fileAttachments??[]).map(H=>({label:H.label,path:H.path,fsPath:H.fsPath??H.path})),skills:b.skills??[]}}}}catch(E){const L=E instanceof Error?E.message:"Failed to interrupt active turn";tn(i,L),mt.value=L}finally{Jo.value=!1}}function Hl(i){i&&Ve.value[i]&&(Ve.value=Ct(Ve.value,i))}async function wd(i){var h,b;const c=n.value;if(c&&!eo.value&&i.trim()){eo.value=!0,mt.value="";try{Z.value[c]===!0&&await Bu();const P=o.value[c]??[],E=P.find(Je=>Je.turnId===i),L=typeof(E==null?void 0:E.turnIndex)=="number"?E.turnIndex:-1;if(L<0)return;const H=P.reduce((Je,ft)=>typeof ft.turnIndex=="number"&&ft.turnIndex>Je?ft.turnIndex:Je,-1);if(H<0||L>H)return;const te=H-L+1;if(te<1)return;const me=((b=(h=Ir.value)==null?void 0:h.cwd)==null?void 0:b.trim())??"";me&&await D1(c,i,me);const Le=await af(c,te);wr(c,Le),ja(c,[]),br(c),O.value[c]&&(O.value=Ct(O.value,c)),vt(c,null),Jt(c,null),tn(c,null),_n=!0,await zr()}catch(P){mt.value=P instanceof Error?P.message:"Failed to rollback thread"}finally{eo.value=!1}}}function Sr(i,c){const b=(u.value[i]??[]).filter(P=>P.messageType!=="compaction.pending"&&P.messageType!=="compaction.done");b.push({id:`compaction:${c}:${i}:${Date.now()}`,role:"system",text:"",messageType:c==="pending"?"compaction.pending":"compaction.done"}),u.value={...u.value,[i]:b}}function Ds(i,c){const h=new Set(wo.value);c?h.add(i):h.delete(i),wo.value=h}function Zi(i){bn=i.trim(),fr.value=[]}async function Wl(i){const c=i.trim();if(!(!c||wo.value.has(c))){Ds(c,!0),Sr(c,"pending");try{await N1(c);const h=2e3,b=14,P=Date.now()+Qo;let E=0;for(;Date.now()<P&&E<b&&wo.value.has(c);){if((await of(c)).messages.some(te=>te.messageType==="compaction.done")){Ds(c,!1),n.value===c&&await da(c,{silent:!0,force:!0}),Sr(c,"done"),_i(c);break}E+=1,await p2(h)}wo.value.has(c)&&(Ds(c,!1),Sr(c,"done"),_i(c))}catch(h){mt.value=h instanceof Error?h.message:"Failed to compact thread",Ds(c,!1),Sr(c,"done"),_i(c)}}}let yn=null;async function el(i,c){try{const h=await ml(),b={...h.labels};let P=!1;for(const E of h.order){if(!Oc(E,i))continue;const L=c.trim();L.length===0?b[E]!==void 0&&(delete b[E],P=!0):b[E]!==L&&(b[E]=L,P=!0)}P&&await lf({order:h.order,labels:b,active:h.active,projectOrder:h.projectOrder})}catch{}}function bd(i,c){i.length===0||(Be.value[i]??"")===c||(Be.value={...Be.value,[i]:c},bv(Be.value),yn!==null&&clearTimeout(yn),yn=setTimeout(()=>{yn=null,el(i,c)},500))}async function tl(i){var E;if(i.length===0)return;const c=W.value.filter(L=>L!==i);if(gs(W.value,c)||(W.value=c,iu(W.value)),t.value=t.value.filter(L=>L.projectName!==i),Be.value[i]!==void 0){const L={...Be.value};delete L[i],Be.value=L,bv(L)}j();const h=Ro(e.value);_e(h),h.some(L=>L.id===n.value)||kn(((E=h[0])==null?void 0:E.id)??"");const P=new Set;try{const L=await ml();fL(L,i).forEach(H=>{P.add(H)})}catch{}if(P.size>0)try{const L=await ml(),H=L.order.filter(Le=>!P.has(Le)),te=L.active.filter(Le=>!P.has(Le)),me=te.length===0&&H.length>0?[H[0]]:te;await lf({order:H,labels:aL(L.labels,P),active:me,projectOrder:L.projectOrder.filter(Le=>Le!==i&&!P.has(Le))});return}catch{}await Ci()}function _d(i,c){if(i.length===0||t.value.length===0)return;const h=t.value.map(te=>te.projectName),b=h.indexOf(i);if(b===-1)return;const P=Math.max(0,Math.min(c,h.length-1)),E=W2(h,b,P);if(E===h)return;const L=fl(E,t.value);W.value=L,iu(W.value);const H=vf(t.value,W.value);t.value=Ec(t.value,H),j(),Ci()}function qu(i){const c=i.trim();if(!c)return;const h=[c,...W.value.filter(P=>P!==c)];if(gs(W.value,h))return;W.value=h,iu(W.value);const b=vf(t.value,W.value);t.value=Ec(t.value,b),j(),Ci()}async function Ci(){try{const i=await ml(),c=pL(i,W.value,t.value);await lf({order:c.order,labels:i.labels,active:c.active,projectOrder:c.projectOrder})}catch{}}async function zr(){if(on.value){typeof window<"u"&&pt===null&&(pt=window.setTimeout(()=>{pt=null,zr()},kc));return}on.value=!0;const i=_n,c=Jr,h=new Set(Xt);_n=!1,Jr=!1,Xt.clear();try{i&&await Ls({force:c});const b=n.value;if(!b)return;const P=h.has(b),E=Z.value[b]===!0,L=fo(b),H=$.value[b]??"";(L.length>0&&L!==H||P||E&&D.value[b]!==!0||i&&D.value[b]!==!0)&&await da(b,{silent:!0,force:P})}catch{}finally{on.value=!1,(_n||Xt.size>0)&&typeof window<"u"&&pt===null&&(pt=window.setTimeout(()=>{pt=null,zr()},kc))}}async function zu(){await Wu(),_n=!to.value,n.value&&D.value[n.value]!==!0&&Xt.add(n.value),await zr()}function Vl(i){const c=qe(i.params),h=typeof(c==null?void 0:c.threadId)=="string"?c.threadId.trim():"";if(!h)return;const b=qe(c==null?void 0:c.externalSession),P=b&&typeof b.origin=="string"&&b.origin.trim().length>0?{origin:b.origin.trim(),active:b.active===!0,lastWriteAt:typeof b.lastWriteAt=="string"?b.lastWriteAt:null}:null;$e.value={...$e.value,[h]:P},$t(h,(P==null?void 0:P.active)===!0),j(),_n=!0,n.value===h&&Xt.add(h),pt===null&&typeof window<"u"&&(pt=window.setTimeout(()=>{pt=null,zr()},kc))}function Hu(){typeof window>"u"||Kt||(Wu(),kd(),Kt=k1(i=>{if(i.method==="ready"){Es(),zu();return}if(i.method==="externalSessionChanged"){Vl(i);return}Ns(i),Ua(i)}))}async function Wu(){try{const c=(await xm()).map(h=>es(h)).filter(h=>h!==null);Cr(c)}catch{}}async function kd(){try{const i=await ES(),c=Object.entries(i);if(c.length===0)return;const h={...d.value};let b=!1;for(const[P,E]of c){const L=E.filter(Le=>!!Le&&typeof Le.id=="string");if(L.length===0)continue;const H=h[P]??[],te=new Set(H.map(Le=>Le.text)),me=[...H];for(const Le of L)te.has(Le.text)||(me.push(Le),te.add(Le.text));h[P]=me.slice(-20),b=!0}b&&(d.value=h,Cc(h))}catch{}}async function nl(i){try{return await S1(i.id,{result:i.result,error:i.error}),or(i.id),ve.value=Ct(ve.value,String(i.id)),!0}catch(c){const h=c instanceof Error?c.message:"Failed to reply to server request";return await Gl(i.id)?(mt.value=h,ve.value={...ve.value,[String(i.id)]:h},!1):(or(i.id),ve.value=Ct(ve.value,String(i.id)),!0)}}async function Gl(i){try{const c=await xm();for(const h of c){const b=qe(h);if((b==null?void 0:b.id)===i)return!0}return!1}catch{return!0}}function Cd(){if(Kt&&(Kt(),Kt=null),_n=!1,Xt.clear(),Dn.clear(),pt!==null&&typeof window<"u"&&(window.clearTimeout(pt),pt=null),Xo!==null&&typeof window<"u"&&(window.clearTimeout(Xo),Xo=null),No!==null&&typeof window<"u"&&(window.clearTimeout(No),No=null),typeof window<"u")for(const i of ln.values())window.clearTimeout(i);ln.clear(),ro=!1,o.value={},r.value={},a.value={},m.value={},d.value={},O.value={},z.value={},oe.value={},we.value={},Te.value={},ue.value={},Ie.value={},R.clear(),w.clear(),x.clear(),ti.clear(),Dc=0,be.value={},Fe.value={},Me.value={},pe.value={},Ne.value={},je.value={},Tr(),ca(),Rt.value=null,Ze.value={}}const Ti=ee(()=>{const i=n.value;if(!i)return[];const c=pe.value[i]??[];return[...(je.value[i]??[]).map(P=>({...P,awaitingCompaction:!0})),...c]});function ol(i){const c=n.value;if(!c)return;const h=je.value[c];if(h!=null&&h.some(E=>E.id===i)){const E=h.filter(L=>L.id!==i);je.value=E.length>0?{...je.value,[c]:E}:Ct(je.value,c),Tr();return}const b=pe.value[c];if(!b)return;const P=b.filter(E=>E.id!==i);pe.value=P.length>0?{...pe.value,[c]:P}:Ct(pe.value,c),ca()}function Kl(i,c){const h=n.value;if(!h)return;const b=pe.value[h];if(!b)return;const P=je.value[h];if(P!=null&&P.some(me=>me.id===i||me.id===c))return;const E=b.findIndex(me=>me.id===i),L=b.findIndex(me=>me.id===c);if(E<0||L<0||E===L)return;const H=[...b],[te]=H.splice(E,1);H.splice(L,0,te),pe.value={...pe.value,[h]:H},ca()}function us(i){const c=n.value;if(!c)return;const h=je.value[c],b=h==null?void 0:h.find(L=>L.id===i);if(b){ol(i),vr(b.collaborationMode),Se=!0,Ji(b.text,b.imageUrls,b.skills,"steer",b.fileAttachments).finally(()=>{Se=!1});return}const P=pe.value[c];if(!P)return;const E=P.find(L=>L.id===i);E&&(ol(i),vr(E.collaborationMode),Ji(E.text,E.imageUrls,E.skills,"steer",E.fileAttachments))}function Td(i,c={}){kn(i,c)}return{projectGroups:e,projectDisplayNameById:Be,selectedThread:Ir,selectedThreadTokenUsage:un,selectedThreadTerminalOpen:Xr,isSelectedThreadInterruptPending:Ia,selectedThreadServerRequests:ai,selectedLiveOverlay:Zr,selectedActiveTurnId:Zo,lastPlanByThreadId:s,resolveThreadTurnIndex:Ol,codexQuota:Ra,selectedThreadId:n,availableCollaborationModes:xt,availableModelIds:Ue,availableModelReasoningEfforts:Ye,selectedCollaborationMode:tt,selectedModelId:ct,selectedReasoningEffort:_t,selectedSpeedMode:St,codexCliMissingError:ae,installedSkills:X,accountRateLimitSnapshots:de,messages:ao,hasMoreOlderMessages:kt,isLoadingThreads:nt,isThreadListFullyLoaded:Gt,isLoadingMessages:Bt,isLoadingOlderMessages:Un,isSendingMessage:Wn,isInterruptingTurn:Jo,isUpdatingSpeedMode:yo,isRollingBack:eo,compactingThreadIds:wo,fuzzyFileSearchResults:fr,registerFuzzyFileSearchSession:Zi,error:mt,refreshAll:wi,refreshSkills:Os,refreshHooks:Ki,hooksList:De,isHooksLoading:We,onRealtimeEvent:js,selectThread:za,loadMessages:da,loadOlderMessages:qr,ensureThreadMessagesLoaded:yi,setThreadTerminalOpen:yr,toggleSelectedThreadTerminal:Wi,archiveThreadById:Bl,compactThreadById:Wl,renameThreadById:Yi,forkThreadById:ql,forkThreadFromTurn:bi,rollbackSelectedThread:wd,sendMessageToSelectedThread:Ji,sendMessageToNewThread:ki,interruptSelectedThreadTurn:Bu,interruptedUnsubmittedMessage:so,clearInterruptedUnsubmittedMessage:Hl,selectedThreadQueuedMessages:Ti,removeQueuedMessage:ol,reorderQueuedMessage:Kl,steerQueuedMessage:us,autoCompactThreshold:he,setAutoCompactThreshold:Uu,setSelectedCollaborationMode:vr,readModelIdForThread:cn,setSelectedModelIdForThread:lo,setSelectedModelId:uo,setSelectedReasoningEffort:mn,updateSelectedSpeedMode:Nt,respondToPendingServerRequest:nl,pendingReplyErrorForRequest:rr,renameProject:bd,removeProject:tl,reorderProject:_d,pinProjectToTop:qu,startPolling:Hu,stopPolling:Cd,primeSelectedThread:Td}}const CL={class:"sidebar-root"},TL=["aria-pressed","aria-label","title"],SL={key:1,class:"sidebar-search-bar"},xL=["placeholder"],AL=["aria-label"],PL={class:"sidebar-skills-link-icon","aria-hidden":"true"},EL={class:"sidebar-skills-link-copy"},IL={class:"sidebar-skills-link-title"},RL={class:"sidebar-skills-link-subtitle"},ML={class:"sidebar-skills-link-icon sidebar-automations-link-icon","aria-hidden":"true"},$L={class:"sidebar-skills-link-copy"},jL={class:"sidebar-skills-link-title"},NL={class:"sidebar-skills-link-subtitle"},LL=["aria-label"],OL={class:"settings-dialog-header"},DL={class:"settings-dialog-title"},FL=["aria-label","title"],UL={class:"settings-dialog-body"},BL=["aria-label"],qL=["aria-current","onClick"],zL={class:"settings-group-content"},HL={class:"sidebar-settings-account-section"},WL={class:"sidebar-settings-account-header"},VL={class:"sidebar-settings-account-header-main"},GL=["aria-expanded","title"],KL={class:"sidebar-settings-account-collapse-icon"},YL={class:"sidebar-settings-account-title"},JL={class:"sidebar-settings-account-count"},QL=["disabled"],XL={key:0,class:"sidebar-settings-account-error visible-error-with-feedback"},ZL=["href"],eO={class:"sidebar-settings-account-login"},tO=["disabled"],nO=["href"],oO={key:1,class:"sidebar-settings-account-empty"},rO={key:2,class:"sidebar-settings-account-list"},aO=["title","onMouseenter","onMouseleave"],sO={class:"sidebar-settings-account-main"},iO={class:"sidebar-settings-account-email"},lO={class:"sidebar-settings-account-meta"},uO={class:"sidebar-settings-account-quota"},cO={class:"sidebar-settings-account-id"},dO={class:"sidebar-settings-account-actions"},fO=["disabled","onClick"],pO=["disabled","onClick"],hO=["title"],mO={class:"sidebar-settings-label"},vO=["title"],gO={class:"sidebar-settings-label"},yO={class:"sidebar-settings-value"},wO=["title"],bO={class:"sidebar-settings-label"},_O={class:"sidebar-settings-value"},kO=["title"],CO={class:"sidebar-settings-label"},TO=["title"],SO={class:"sidebar-settings-label"},xO={class:"sidebar-settings-value"},AO=["title"],PO={class:"sidebar-settings-label"},EO=["title"],IO={class:"sidebar-settings-label"},RO=["title"],MO={class:"sidebar-settings-label"},$O=["title"],jO={class:"sidebar-settings-label"},NO=["href"],LO={class:"sidebar-settings-label"},OO={class:"sidebar-settings-value"},DO=["title"],FO={class:"sidebar-settings-label"},UO={key:0,class:"sidebar-settings-row sidebar-settings-error"},BO=["href"],qO={key:1,class:"sidebar-settings-row sidebar-settings-row--input"},zO={class:"sidebar-settings-provider-info"},HO={class:"sidebar-settings-label"},WO={class:"sidebar-settings-provider-link",href:"https://openrouter.ai/keys",target:"_blank",rel:"noopener noreferrer"},VO={class:"sidebar-settings-key-group"},GO={class:"sidebar-settings-key-masked"},KO=["disabled","title"],YO=["placeholder"],JO=["disabled"],QO={class:"sidebar-settings-row sidebar-settings-row--select",style:{"margin-top":"4px",padding:"0"}},XO={class:"sidebar-settings-label"},ZO=["aria-label"],eD=["disabled"],tD=["disabled"],nD={key:2,class:"sidebar-settings-row sidebar-settings-row--input"},oD={class:"sidebar-settings-provider-info"},rD={class:"sidebar-settings-label"},aD={class:"sidebar-settings-provider-link",href:"https://opencode.ai/auth",target:"_blank",rel:"noopener noreferrer"},sD={class:"sidebar-settings-key-group"},iD=["placeholder"],lD=["disabled"],uD={key:3,class:"sidebar-settings-row sidebar-settings-row--input"},cD={class:"sidebar-settings-label"},dD={class:"sidebar-settings-key-group"},fD=["placeholder"],pD={class:"sidebar-settings-label",style:{"margin-top":"4px"}},hD={class:"sidebar-settings-key-group"},mD=["placeholder"],vD=["disabled"],gD={class:"sidebar-settings-row sidebar-settings-row--select",style:{"margin-top":"4px",padding:"0"}},yD={class:"sidebar-settings-label"},wD=["aria-label"],bD={class:"sidebar-settings-label"},_D={class:"sidebar-settings-value"},kD={key:0,class:"sidebar-settings-telegram-panel"},CD={class:"sidebar-settings-field"},TD={class:"sidebar-settings-field-label"},SD={class:"sidebar-settings-field"},xD={class:"sidebar-settings-field-label"},AD={class:"sidebar-settings-field-help"},PD={key:0,class:"sidebar-settings-telegram-error"},ED=["href"],ID={class:"sidebar-settings-telegram-actions"},RD=["disabled"],MD={class:"sidebar-settings-hooks-section"},$D={class:"sidebar-settings-hooks-header"},jD={class:"sidebar-settings-hooks-title"},ND=["disabled","title"],LD={key:0,class:"sidebar-settings-hooks-empty"},OD={key:0,class:"sidebar-settings-hooks-empty"},DD={key:1,class:"sidebar-settings-hooks-empty"},FD={key:2,class:"sidebar-settings-hooks-list"},UD={class:"sidebar-settings-hooks-cwd"},BD={class:"sidebar-settings-hooks-event"},qD={class:"sidebar-settings-hooks-command"},zD={class:"sidebar-settings-remote-section"},HD={class:"sidebar-settings-remote-header"},WD={class:"sidebar-settings-remote-title"},VD=["disabled","title"],GD={class:"sidebar-settings-remote-toggle-label"},KD={key:0,class:"sidebar-settings-remote-empty"},YD={key:0,class:"sidebar-settings-remote-error"},JD={key:1,class:"sidebar-settings-remote-notice"},QD={key:2,class:"sidebar-settings-remote-empty"},XD=["disabled"],ZD={class:"sidebar-settings-remote-label"},eF={class:"sidebar-settings-remote-value"},tF={class:"sidebar-settings-remote-clients"},nF={class:"sidebar-settings-remote-clients-header"},oF={class:"sidebar-settings-remote-label"},rF=["disabled"],aF={key:0,class:"sidebar-settings-remote-empty"},sF={class:"sidebar-settings-remote-client-name"},iF=["disabled","onClick"],lF={class:"sidebar-settings-rate-limits"},uF=["aria-label"],cF={class:"sidebar-settings-actions"},dF=["title","aria-label"],fF=["title","aria-label"],pF={class:"content-root-wrap"},hF={key:0,class:"content-keyboard-spacer","aria-hidden":"true"},mF={key:1,class:"skills-route-header-icon","aria-hidden":"true"},vF={key:2,class:"skills-route-header-icon automations-route-header-icon","aria-hidden":"true"},gF=["aria-label","title"],yF={class:"content-body"},wF={key:2,class:"content-grid content-grid-home"},bF={class:"new-thread-empty"},_F={class:"new-thread-hero"},kF=["title"],CF={class:"new-thread-folder-actions"},TF=["disabled"],SF={key:1,class:"new-thread-launch-card","aria-label":"Plugins and Apps announcement"},xF={class:"new-thread-launch-card-copy"},AF={class:"new-thread-launch-card-topline"},PF={class:"new-thread-launch-card-badge","aria-hidden":"true"},EF={class:"new-thread-launch-card-eyebrow"},IF={class:"new-thread-launch-card-title"},RF={class:"new-thread-launch-card-text"},MF={class:"new-thread-launch-card-actions"},$F=["aria-label","onKeydown"],jF={class:"new-thread-open-folder-header"},NF={class:"new-thread-open-folder-title"},LF={class:"new-thread-open-folder-label"},OF={class:"new-thread-open-folder-current"},DF=["placeholder","title","disabled","onKeydown"],FF=["disabled"],UF={class:"new-thread-open-folder-actions"},BF={class:"new-thread-open-folder-toggle"},qF=["aria-pressed","disabled"],zF={key:0,class:"new-thread-open-folder-create"},HF={class:"new-thread-open-folder-create-composer"},WF=["placeholder","onKeydown"],VF=["disabled"],GF={key:0,class:"new-thread-open-folder-error visible-error-with-feedback"},KF=["href"],YF=["placeholder","onKeydown"],JF={key:1,class:"new-thread-open-folder-error-actions"},QF={class:"new-thread-open-folder-error visible-error-with-feedback"},XF=["href"],ZF=["disabled"],eU={key:2,class:"new-thread-open-folder-status"},tU={key:3,class:"new-thread-open-folder-status"},nU={key:4,class:"new-thread-open-folder-list"},oU=["title","disabled","onClick"],rU={class:"new-thread-open-folder-item-name"},aU=["disabled","onClick"],sU=["aria-label","onKeydown"],iU={class:"new-thread-open-folder-header"},lU={class:"new-thread-open-folder-title"},uU=["disabled"],cU=["aria-label"],dU=["aria-selected","disabled"],fU=["aria-selected","disabled"],pU={class:"new-thread-project-field"},hU={class:"new-thread-open-folder-label"},mU=["disabled","placeholder"],vU={key:0,class:"new-thread-project-field"},gU={class:"new-thread-open-folder-label"},yU=["disabled","placeholder","onKeydown"],wU={key:1,class:"new-thread-project-field"},bU={class:"new-thread-open-folder-label"},_U=["disabled","onKeydown"],kU={key:2,class:"new-thread-open-folder-error visible-error-with-feedback"},CU=["href"],TU={class:"new-thread-project-modal-actions"},SU=["disabled"],xU=["disabled"],AU={key:3,class:"new-thread-branch-select"},PU={class:"new-thread-branch-select-label"},EU={class:"new-thread-branch-select-help"},IU={key:4,class:"new-thread-runtime-help"},RU={class:"worktree-init-status-title"},MU={class:"worktree-init-status-message"},$U={class:"composer-with-queue"},jU={key:0,class:"composer-runtime-error",role:"alert"},NU=["href"],LU={key:3,class:"content-grid"},OU={class:"content-thread"},DU={key:0,class:"external-session-banner",role:"alert"},FU={key:1,class:"composer-runtime-error",role:"alert"},UU=["href"],BU={key:2,class:"interrupt-recovered-banner",role:"status"},qU=["aria-label"],zU={class:"content-right-panel-header"},HU={class:"content-right-panel-tabs",role:"tablist"},WU=["aria-selected"],VU=["aria-selected"],GU=["aria-selected","title","onClick"],KU={class:"content-right-panel-tab-label"},YU=["aria-label","title","onClick"],JU={class:"content-right-panel-actions"},QU={class:"content-right-panel-add-wrap"},XU=["aria-label","title"],ZU={key:0,class:"content-right-panel-menu"},e4=["aria-label","title"],t4={class:"content-right-panel-body"},n4={key:0,class:"project-zip-modal-backdrop",role:"presentation"},o4=["aria-label"],r4={class:"project-zip-modal-header"},a4={class:"project-zip-modal-title"},s4=["aria-label","disabled"],i4={class:"project-zip-modal-copy"},l4={class:"project-zip-progress-label",role:"status","aria-live":"polite"},u4={class:"project-zip-progress-track"},c4={key:0,class:"project-zip-modal-error",role:"alert"},d4={class:"project-zip-modal-actions"},f4=["disabled"],p4=["disabled"],h4=["disabled"],m4=["aria-label"],v4={class:"codex-login-modal-header"},g4={class:"codex-login-modal-title"},y4=["aria-label","disabled"],w4={class:"codex-login-modal-copy"},b4=["href"],_4=["placeholder","disabled"],k4={key:1,class:"codex-login-modal-error visible-error-with-feedback"},C4=["href"],T4={class:"codex-login-modal-actions"},S4=["disabled"],x4=["disabled"],Tv="codex-web-local.sidebar-collapsed.v1",Sv="codex-web-local.accounts-section-collapsed.v1",xv="codex-web-local.right-panel-width.v1",A4=260,P4=640,Av=320,E4=400,Pv="codex-web-local.send-with-enter.v1",Ev="codex-web-local.in-progress-send-mode.v1",Iv="codex-web-local.dark-mode.v1",Rv="codex-web-local.dictation-click-to-toggle.v1",Mv="codex-web-local.dictation-auto-send.v1",$v="codex-web-local.dictation-language.v1",jv="codex-web-local.chat-width.v1",I4=400,R4=Ln({__name:"App",setup(e){var lh,uh;const t=nu(()=>au(()=>import("./ThreadConversation-Ct2n-SwV.js"),__vite__mapDeps([0,1,2]))),n=nu(()=>au(()=>import("./ThreadTerminalPanel-DQnmzO-G.js"),__vite__mapDeps([3,4]))),o=nu(()=>au(()=>import("./ReviewPane-BgaQ7pMs.js"),__vite__mapDeps([5,6]))),r=nu(()=>au(()=>import("./DirectoryHub-rK4pGPCJ.js"),__vite__mapDeps([7,1,8]))),s=nu(()=>au(()=>import("./AutomationsPanel-BM68E8O8.js"),__vite__mapDeps([9,10]))),{t:a,uiLanguage:u,uiLanguageOptions:d,setUiLanguage:m}=Er(),g="codex-mobile",w="0.1.97",x={sendWithEnter:a("When enabled, press Enter to send. When disabled, use Command+Enter to send."),inProgressSendMode:a("If a turn is still running, choose whether a new prompt should steer the current turn or be queued."),appearance:a("Switch between system theme, light mode, and dark mode."),chatWidth:a("Choose how wide the conversation column and composer can grow on desktop screens."),dictationClickToToggle:a("Use click-to-start and click-to-stop dictation instead of hold-to-talk."),dictationAutoSend:a("Automatically send transcribed dictation when recording stops."),dictationLanguage:a("Choose transcription language or keep auto-detect.")},R={standard:{label:"Standard",columnMax:"45rem",cardMax:"76ch"},wide:{label:"Wide",columnMax:"72rem",cardMax:"88ch"},"extra-wide":{label:"Extra wide",columnMax:"96rem",cardMax:"96ch"}},O={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:z,projectDisplayNameById:Z,selectedThread:ce,selectedThreadTokenUsage:B,selectedThreadServerRequests:Y,selectedLiveOverlay:J,lastPlanByThreadId:ge,resolveThreadTurnIndex:Ae,selectedActiveTurnId:ye,codexQuota:$e,selectedThreadId:pe,availableCollaborationModes:Ne,availableModelIds:je,availableModelReasoningEfforts:he,selectedCollaborationMode:Se,selectedReasoningEffort:Pe,selectedSpeedMode:Ee,codexCliMissingError:Ue,installedSkills:Ye,accountRateLimitSnapshots:He,messages:xt,hasMoreOlderMessages:ut,isLoadingThreads:Ge,isThreadListFullyLoaded:tt,isLoadingMessages:ct,isLoadingOlderMessages:_t,isSendingMessage:St,isInterruptingTurn:yt,isSelectedThreadInterruptPending:ae,isUpdatingSpeedMode:ne,error:re,refreshAll:W,refreshSkills:Be,refreshHooks:$,hooksList:D,isHooksLoading:G,onRealtimeEvent:se,selectThread:ie,ensureThreadMessagesLoaded:oe,loadMessages:Te,loadOlderMessages:we,archiveThreadById:ve,compactThreadById:ue,compactingThreadIds:Ie,fuzzyFileSearchResults:be,registerFuzzyFileSearchSession:Fe,forkThreadById:Me,renameThreadById:Ve,forkThreadFromTurn:st,sendMessageToSelectedThread:wt,sendMessageToNewThread:Rt,interruptSelectedThreadTurn:Ze,interruptedUnsubmittedMessage:Vt,clearInterruptedUnsubmittedMessage:V,selectedThreadQueuedMessages:K,removeQueuedMessage:X,reorderQueuedMessage:de,steerQueuedMessage:De,autoCompactThreshold:We,setAutoCompactThreshold:nt,setSelectedCollaborationMode:Bt,readModelIdForThread:Gt,setSelectedModelIdForThread:Wn,setSelectedReasoningEffort:Jo,updateSelectedSpeedMode:yo,respondToPendingServerRequest:eo,pendingReplyErrorForRequest:wo,renameProject:Qo,removeProject:fr,reorderProject:bn,pinProjectToTop:mt,startPolling:on,stopPolling:to,primeSelectedThread:Aa,rollbackSelectedThread:As}=kL(),At=XC(),Kt=QC(),{isMobile:pt}=yp();function Xo(){return typeof navigator<"u"&&/mac|iphone|ipad|ipod/i.test(navigator.platform)}const ln=S(null),pr=S(null),no=S(null);let On=null;const{buildFeedbackMailto:hr,feedbackMailtoBase:Pa,recordVisibleFailure:Ja}=xp(),Jn=Pa();function Mn(l,p){p&&Ja(p);const M=l.currentTarget;M instanceof HTMLAnchorElement&&(M.href=hr())}const Qa=S(null),oo=S(null),_n=S(null),Jr=S(0);let Xt=null;function Qr(){const l=_n.value;if(!l)return;const p=window.getComputedStyle(l),M=Number.parseFloat(p.paddingLeft)+Number.parseFloat(p.paddingRight),N=Math.max(0,l.clientWidth-(Number.isFinite(M)?M:0)),U=window.getComputedStyle(l).getPropertyValue("--chat-column-max").trim(),fe=Number.parseFloat(U)*(U.endsWith("rem")?16:1),Oe=Number.isFinite(fe)&&fe>0?Math.min(N,fe):N;Jr.value=Oe}const Ea=S(null),bo=S(null),No=S(!1),Lo=S(!1),Dt=S(!0),Mt=S("git"),Vn=S([]),_o=S(""),ro=ee(()=>Vn.value.find(l=>l.key===_o.value)??null),Dn=S(!1),Fn=S(!1),Qn=S(!1),Ir=S(Ia());function Xr(l){return Math.min(P4,Math.max(A4,l))}function Ia(){if(typeof window>"u")return Av;const l=window.localStorage.getItem(xv),p=Number(l);return Number.isFinite(p)?Xr(p):Av}function ai(l){typeof window>"u"||window.localStorage.setItem(xv,String(l))}function Zo(l){l.preventDefault();const p=l.clientX,M=Ir.value,N=fe=>{const Oe=p-fe.clientX;Ir.value=Xr(M+Oe)},U=()=>{ai(Ir.value),window.removeEventListener("mousemove",N),window.removeEventListener("mouseup",U)};window.addEventListener("mousemove",N),window.addEventListener("mouseup",U)}const Zr=S(null),Ra=S(!1),un=S("");let ao=!1;const so=S(!1),kt=S(""),Un=S("local"),io=S({}),cn=new Map,Oo=S(""),Xn=S([]),Do=S(!1),Bn=S({order:[],labels:{},projectOrder:[]}),jt=S({phase:"idle",loaded:0,total:null,blob:null,fileName:"",error:""}),dn=S({phase:"idle",title:"",message:""}),Yt=S(e_()),kn=S(""),lo=S(!1),uo=S(null),ko=S(null),ea=S(null),mr=S(null),er=S(null),vr=S(null);let Co=null,Rr=null,Cn=0,ta=0,co=!1,Fo=0,mn=0,Nt=0,tr=0;const To=S("New Project (1)"),Mr=S(""),vn=S(!1),Ma=[{id:"general",label:"General settings"},{id:"models",label:"Models & providers"},{id:"integrations",label:"Integrations"},{id:"usage",label:"Usage & about"}],So=S("general");let gr=0;function si(){if(vn.value){gr=Date.now(),vn.value=!1;return}Date.now()-gr<E4||(vn.value=!0)}const gn=S(n_()),$n=S(!1),I=S(!1),j=S(new Set);async function q(){try{j.value=new Set(await s1())}catch{}finally{I.value=!0}}const _e=ee(()=>!I.value||j.value.has("hooks/list")),ht=ee(()=>!I.value||["remoteControl/status/read","remoteControl/enable","remoteControl/pairing/start","remoteControl/client/list"].every(l=>j.value.has(l)));ot(vn,l=>{l&&($(),ui(),ht.value&&ci())});const vt=S({enabled:!1,clients:[]}),$t=S(null),Lt=S(!1),Zt=S(!1),An=S(""),Zn=S(""),Ps=S("");let $a=null,ii=!1,Jt=null;const tn=S("never"),li=S(!1),Es=S(!1),fo=S(""),yr=S("");let Wi=!1;const wr=S(!1);async function ui(l={}){if(!(l.force!==!0&&Wi)){li.value=!0,fo.value="";try{tn.value=await d1(),Wi=!0}catch(p){fo.value=p instanceof Error?p.message:"Failed to load approval policy"}finally{li.value=!1}}}function ja(l){tn.value=l}async function qn(){Es.value=!0,fo.value="",yr.value="";try{await f1(tn.value),wr.value=!0,yr.value=a("Approval policy saved"),Xa&&clearTimeout(Xa),Xa=setTimeout(()=>{yr.value=""},2200)}catch(l){fo.value=l instanceof Error?l.message:"Failed to save approval policy"}finally{Es.value=!1}}let Xa=null;async function ci(l={}){if(!(l.force!==!0&&ii)){Lt.value=!0,Zn.value="";try{const p=await c1();vt.value=p,ii=!0}catch(p){Zn.value=p instanceof Error?p.message:"Failed to load remote control status"}finally{Lt.value=!1}}}async function di(){const l=!vt.value.enabled;Zt.value=!0,An.value=l?"enable":"disable";try{await p1(l),vt.value={...vt.value,enabled:l},fi(l?"Remote control enabled":"Remote control disabled")}catch(p){Zn.value=p instanceof Error?p.message:"Failed to update remote control"}finally{Zt.value=!1,An.value=""}}async function Vi(){Zt.value=!0,An.value="pairing";try{$t.value=await h1()}catch(l){Zn.value=l instanceof Error?l.message:"Failed to start pairing"}finally{Zt.value=!1,An.value=""}}async function Is(){Zt.value=!0,An.value="clients";try{vt.value={...vt.value,clients:await m1()}}catch(l){Zn.value=l instanceof Error?l.message:"Failed to load remote clients"}finally{Zt.value=!1,An.value=""}}async function Nl(l){Zt.value=!0,An.value=`revoke:${l}`;try{await v1(l),vt.value={...vt.value,clients:vt.value.clients.filter(p=>p.clientId!==l)},fi("Remote client removed")}catch(p){Zn.value=p instanceof Error?p.message:"Failed to remove remote client"}finally{Zt.value=!1,An.value=""}}function fi(l){Ps.value=l,$a&&clearTimeout($a),$a=setTimeout(()=>{Ps.value=""},3e3)}const $r=S(""),na=S(""),br=S([]),oa=S(null),Na=S(null),_r=S(null),La=S(null),Uo=S(!1),Za=S(!1),jr=S({addedLineCount:0,removedLineCount:0}),xo=S([]),Nr=S(""),qe=S({}),Ce=S(""),Gn=S(""),Oa=S({}),kr=S(""),Rs=S(""),fn=S(!1),ra=S(!1);function Ll(l,p){return`${l}\0${p?"with-reset-history":"without-reset-history"}`}const es=S(null),Pn=S([]),Ao=S(!1),po=S(!1),nr=S(!1),jn=S(!1),ts=S(!1),aa=S(""),Lr=S(""),pi=S(null),or=S(""),rr=S(""),Cr=S(""),pn=S(""),sa=S(jd(Pv,!0)),Da=S(Fb()),ia=S(Db()),ns=S(Ub()),ar=S(jd(Rv,!1)),la=S(jd(Mv,!0)),Fa=S(Xb()),os=ee(()=>Zb()),Ol=ee(()=>{const{loaded:l,total:p}=jt.value,M=jp(l);return p&&p>0?`${M} / ${jp(p)}`:l>0?M:a("Preparing...")}),hi=ee(()=>{const{loaded:l,total:p,phase:M}=jt.value;return M==="ready"?"100%":!p||p<=0?l>0?"55%":"20%":`${Math.min(100,Math.max(5,Math.round(l/p*100)))}%`}),Ms=S(!1),Or=S(!1),Dr=S(!1),ua=S(""),rs=S(!1),Gi=S(null),en=S(!1),ho=S(""),En=S("codex"),$s=ee(()=>[{value:"codex",label:a("Codex")},{value:"openrouter",label:a("OpenRouter")},{value:"opencode-zen",label:a("OpenCode Zen")},{value:"custom",label:a("Custom endpoint")}]),sr=S(""),as=S(""),y=S("responses"),C=S("responses"),_=S(""),F=S(!1),ke=S(""),it=S(""),Et=S(""),Bo=S(!1),Qt=S(!1),zn=S(""),Tn=S(""),ir=S(!1),Fr=S(!1),qo=S("create"),js=S(""),mi=S(""),vi=S(""),Ns=S(!1),Ua=S(""),zo=S(!1),Dl=S(null),Du=S(null),Ba=S(!1),Fu=S(null),gd=S(null),qa=S(""),Ur=S(""),ca=S(""),Fl=S([]),Kn=S(""),Po=S(!1),Eo=S(!1),gi=S(!1),Br=S(""),Ls=[re,Ue,Nr,Gn,pn,ho,Et,Tn,Ua,Kn],da=ee(()=>Ls.some(l=>l.value.trim().length>0)),qr=S({configured:!1,active:!1,mappedChats:0,mappedThreads:0,allowedUsers:0,allowAllUsers:!1,lastError:""}),yi=S(null),Os=S(!1),Ki=S(!1),ss=S(typeof window<"u"?((lh=window.visualViewport)==null?void 0:lh.height)??window.innerHeight:0),Ul=S(typeof window<"u"?((uh=window.visualViewport)==null?void 0:uh.offsetTop)??0:0),wi=S(typeof window<"u"?window.innerHeight:0);let za=null,Bl=!1,Yi=!1,ql=!1,bi=0;const is=ee(()=>{const l=At.params.threadId;return typeof l=="string"?l:""}),Nn=ee(()=>At.name==="home"),Tr=ee(()=>At.name==="skills"),ls=ee(()=>At.name==="automations"),Uu=ee(()=>{const l=At.query.automationId;return typeof l=="string"?l:""}),yd=ee(()=>{var l;return ls.value?a("Automations"):Tr.value?a("Skills"):Nn.value?a("Start new thread"):((l=ce.value)==null?void 0:l.title)??a("Choose a thread")}),_i=typeof window<"u"&&(window.location.hostname||window.location.host)||"codexui",Ji=ee(()=>{var p,M;return(((M=(p=ce.value)==null?void 0:p.title)==null?void 0:M.trim())??"")||_i}),ki=ee(()=>xt.value.filter(l=>{const p=r_(l.messageType,l.role);return p==="worked"?!0:!(p==="turnActivity.live"||p==="turnError.live"||p==="agentReasoning.live")})),Qi=new Set(["commandExecution","worked","toolCall","fileChange","agentMessage","agentMessage.live","plan"]),Xi=S(null);function zl(l,p,M){const N=typeof p.turnIndex=="number"?p.turnIndex:-1;return N<0?!1:l.some((U,fe)=>fe>M&&typeof U.turnIndex=="number"&&U.turnIndex>=N&&Qi.has(U.messageType??""))}function Bu(l,p){return l.some(M=>typeof M.turnIndex=="number"&&M.turnIndex>=p&&Qi.has(M.messageType??""))}const Hl=ee(()=>{const l=ki.value,p=ct.value;for(let fe=l.length-1;fe>=0;fe-=1){const Oe=l[fe];if(Oe.messageType!=="plan"&&Oe.messageType!=="plan.live")continue;const rn=av(Oe);if(!rn||Xi.value!==null&&Oe.id===Xi.value)return null;const c_=p?!0:zl(l,Oe,fe);return{id:Oe.id,streaming:Oe.messageType==="plan.live",explanation:rn.explanation,steps:rn.steps,implemented:c_}}const M=pe.value?ge.value[pe.value]??null:null;if(!M)return null;const N=av(M);if(!N)return null;const U=typeof M.turnIndex=="number"?M.turnIndex:M.turnId?Ae(pe.value,M.turnId)??-1:-1;return{id:M.id,streaming:M.messageType==="plan.live",explanation:N.explanation,steps:N.steps,implemented:p?!0:U>=0?Bu(l,U):!1}}),wd=ee(()=>J.value),Sr=ee(()=>Nn.value?"__new-thread__":pe.value),Ds=ee(()=>Gt(Sr.value)),Zi=ee(()=>{const l=Y.value;return l.length>0?l[l.length-1]:null}),Wl=ee(()=>Zi.value?wo(Zi.value.id):""),yn=ee(()=>{var l,p;return Nn.value?kt.value.trim():((p=(l=ce.value)==null?void 0:l.cwd)==null?void 0:p.trim())??""}),el=ee(()=>Dt.value&&(Nn.value&&yn.value.length>0||At.name==="thread"&&pe.value.length>0)),bd=ee(()=>el.value&&Mt.value==="terminal"),tl=ee(()=>!pt.value||ss.value<=0||wi.value<=0?!1:wi.value-ss.value>120),_d=ee(()=>tl.value||bd.value&&Lo.value),qu=ee(()=>{var l,p;return((p=(l=ce.value)==null?void 0:l.cwd)==null?void 0:p.trim())??kt.value.trim()}),Ci=ee(()=>{var l;return!Nn.value&&((l=ce.value)==null?void 0:l.inProgress)===!0}),zr=ee(()=>{const l=pe.value;return!!l&&Ie.value.has(l)}),zu=ee(()=>{var l,p;return!Nn.value&&((p=(l=ce.value)==null?void 0:l.externalSession)==null?void 0:p.active)===!0}),Vl=ee(()=>St.value||yt.value||Ci.value||Y.value.length>0);function Hu(){Ms.value&&(Ms.value=!1,jS(!0))}function Wu(){Hu(),Kt.push({name:"skills",query:{tab:"plugins"}})}function kd(){const l=pe.value;l&&ue(l)}function nl(l,p){const M=at(l).trim(),N=Ar(M);return!M||!N?!1:p.some(U=>{const fe=at(U).trim();return fe!==M&&Ar(fe)===N})}function Gl(l,p=""){const M=at(l).trim(),N=p.trim();if(N)return N;const U=Ar(M),fe=[...Bn.value.order,...z.value.map(Oe=>{var rn,lr;return((lr=(rn=Oe.threads[0])==null?void 0:rn.cwd)==null?void 0:lr.trim())??""}).filter(Boolean)];return nl(M,fe)?M:U}function Cd(){const l=new Set(Bn.value.order),p=Bn.value.projectOrder.filter(M=>l.has(M));for(const M of Bn.value.order)p.includes(M)||p.push(M);return p}function Ti(l){const p=at(l).trim(),M=[...Bn.value.order,...z.value.map(N=>{var U,fe;return((fe=(U=N.threads[0])==null?void 0:U.cwd)==null?void 0:fe.trim())??""}).filter(Boolean)];return nl(p,M)?p:Ar(p)}function ol(l){const p=at(l).trim();if(!p)return"";const M=[...Bn.value.order,...z.value.map(N=>{var U,fe;return((fe=(U=N.threads[0])==null?void 0:U.cwd)==null?void 0:fe.trim())??""}).filter(Boolean)];for(const N of Bn.value.order){const U=at(N).trim();if(!U)continue;const fe=Ar(U),Oe=nl(U,M)?U:fe;if(U===p||Oe===p||fe===p)return U}return""}const Kl=ee(()=>{var N,U;const l=[],p=new Set;for(const fe of Cd()){const Oe=fe.trim();!Oe||p.has(Oe)||(p.add(Oe),l.push({value:Oe,label:Gl(Oe,Bn.value.labels[Oe])}))}for(const fe of z.value){const Oe=((U=(N=fe.threads[0])==null?void 0:N.cwd)==null?void 0:U.trim())??"";!Oe||p.has(Oe)||Yc(Oe)||(p.add(Oe),l.push({value:Oe,label:Gl(Oe,Z.value[fe.projectName])}))}const M=kt.value.trim();return M&&!p.has(M)&&l.unshift({value:M,label:Gl(M)}),l}),us=ee(()=>{const l=kt.value.trim();return l?io.value[l]===!0:!1}),Td=ee(()=>{var p,M;const l={};for(const N of z.value){const U=al(N.projectName,((M=(p=N.threads[0])==null?void 0:p.cwd)==null?void 0:M.trim())??"");l[N.projectName]=U?io.value[U]===!0:!1}return l}),i=ee(()=>{const l=Oo.value.trim(),p=[...Xn.value];return l&&!p.some(M=>M.value===l)&&p.unshift({value:l,label:l}),p}),c=ee(()=>{const l=Oo.value.trim();if(!l)return"";const p=i.value.find(M=>M.value===l);return(p==null?void 0:p.label)??l}),h=ee(()=>Ur.value.trim()),b=ee(()=>{const l=zn.value.trim();return!l||l==="."||l===".."?!1:!/[\\/]/u.test(l)}),P=ee(()=>b.value&&h.value.trim().length>0&&!Kn.value),E=ee(()=>{const l=mi.value.trim();return!l||l==="."||l===".."?!1:!/[\\/]/u.test(l)}),L=ee(()=>js.value.trim()?qo.value==="create"?E.value:vi.value.trim().length>0:!1),H=ee(()=>{const l=at(qa.value).trim();return l||Ur.value.trim()}),te=ee(()=>ir.value?"Creating…":"Create"),me=ee(()=>zo.value?qo.value==="clone"?a("Cloning…"):a("Creating…"):qo.value==="clone"?a("Clone repository"):a("Create project")),Le=ee(()=>{const l=Ur.value.trim(),p=ca.value.trim();return!!(l&&p&&l!==p)}),Je=ee(()=>{const l=[];Le.value&&l.push({key:`parent:${ca.value}`,name:"..",path:ca.value,kind:"parent"});for(const p of Fl.value)l.push({key:`directory:${p.path}`,name:p.name,path:p.path,kind:"directory"});return l}),ft=ee(()=>{const l=Br.value.trim().toLowerCase();return l?Je.value.filter(p=>p.kind==="parent"||p.name.toLowerCase().includes(l)):Je.value}),lt=typeof window<"u"?window.matchMedia("(prefers-color-scheme: dark)"):null,It=ee(()=>a(R[ns.value].label)),Ha=ee(()=>{const l=R[ns.value],p=Math.max(0,wi.value-ss.value-Ul.value);return{"--chat-column-max":l.columnMax,"--chat-card-max":l.cardMax,"--visual-viewport-height":ss.value>0?`${ss.value}px`:"100dvh","--visual-viewport-offset-top":`${Math.max(0,Ul.value)}px`,"--virtual-keyboard-inset":`${p}px`}}),Fs=ee(()=>{if(!qr.value.configured)return a("Not configured");const l=qr.value.active?a("Online"):a("Configured (offline)"),p=qr.value.allowAllUsers?a("allow all users"):`${qr.value.allowedUsers} ${a("allowed user(s)")}`,M=`${qr.value.mappedChats} ${a("chat(s)")}, ${qr.value.mappedThreads} ${a("thread(s)")}, ${p}`,N=qr.value.lastError?`, ${a("error")}: ${qr.value.lastError}`:"";return`${l}, ${M}${N}`});xs(()=>{var l,p;document.addEventListener("pointerdown",Bp),window.addEventListener("keydown",Dp),document.addEventListener("visibilitychange",qp),window.addEventListener("pageshow",zp),window.addEventListener("focus",Hp),window.addEventListener("resize",fa),(l=window.visualViewport)==null||l.addEventListener("resize",fa),(p=window.visualViewport)==null||p.addEventListener("scroll",fa),fa(),lc(),lt==null||lt.addEventListener("change",lc),On=se(M=>{no.value&&no.value.refreshFromNotification(M)}),Jt=se(M=>{M==="remoteControl/status/changed"&&ci({force:!0})}),a_(),Ib(),q(),Gu(),Hs(),pa(),Bs(),cs(),Ld(),Qw(),ui()}),ot(Ls,(l,p)=>{l.forEach((M,N)=>{if(M===p[N])return;const U=M.trim();U&&Ja(U)})}),ot(_n,l=>{Xt&&(Xt.disconnect(),Xt=null),typeof ResizeObserver<"u"&&(Xt=new ResizeObserver(Qr),l&&Xt.observe(l)),Qr()},{immediate:!0}),Nu(()=>{var l,p;document.removeEventListener("pointerdown",Bp),window.removeEventListener("keydown",Dp),document.removeEventListener("visibilitychange",qp),window.removeEventListener("pageshow",zp),window.removeEventListener("focus",Hp),window.removeEventListener("resize",fa),(l=window.visualViewport)==null||l.removeEventListener("resize",fa),(p=window.visualViewport)==null||p.removeEventListener("scroll",fa),lt==null||lt.removeEventListener("change",lc),Xt&&(Xt.disconnect(),Xt=null),za!==null&&(window.clearInterval(za),za=null),Co&&(clearTimeout(Co),Co=null),rc(),to(),On&&(On(),On=null),Jt&&(Jt(),Jt=null),$a&&(clearTimeout($a),$a=null)});function fa(){var l,p;typeof window>"u"||(wi.value=Math.max(wi.value,window.innerHeight),ss.value=((l=window.visualViewport)==null?void 0:l.height)??window.innerHeight,Ul.value=((p=window.visualViewport)==null?void 0:p.offsetTop)??0)}ot(kn,l=>{const p=l.trim();if(Co&&(clearTimeout(Co),Co=null),!p){vr.value=null;return}Co=setTimeout(()=>{TS(p,1e3).then(M=>{kn.value.trim()===p&&(vr.value=M.threadIds)}).catch(()=>{kn.value.trim()===p&&(vr.value=null)})},220)}),ot(tl,l=>{l||(Lo.value=!1)}),ot(Pn,()=>{if(typeof window>"u")return;if(!Pn.value.some(p=>p.quotaStatus==="loading")){za!==null&&(window.clearInterval(za),za=null);return}za===null&&(za=window.setInterval(()=>{Bl||(Bl=!0,Jl({silent:!0}).finally(()=>{Bl=!1}))},1500))},{deep:!0}),ot(He,()=>{xr().then(l=>{l&&W({includeSelectedThreadMessages:!1,providerChanged:!0,awaitAncillaryRefreshes:!0})})},{deep:!0});async function xr(){if(!Yi||ql||En.value!=="codex"||Pn.value.length>0||He.value.length===0)return!1;ql=!0;const l=JSON.stringify(Pn.value.map(M=>M.accountId).sort());try{const M=await Am();Pn.value=M.accounts}catch{await Jl({silent:!0})}const p=JSON.stringify(Pn.value.map(M=>M.accountId).sort());return l!==p}function Us(){Be({force:!0})}function Vu(l){l&&Te(l,{silent:!0,force:!0})}async function cs(){try{qr.value=await AS()}catch(l){const p=l instanceof Error?l.message:"Failed to load Telegram status";qr.value={configured:!1,active:!1,mappedChats:0,mappedThreads:0,allowedUsers:0,allowAllUsers:!1,lastError:p}}}async function Bs(){try{const l=await xS();ke.value=l.botToken,it.value=l.allowedUserIds.map(p=>String(p)).join(`
|
|
81
81
|
`),Et.value=""}catch(l){Et.value=l instanceof Error?l.message:"Failed to load Telegram configuration"}}async function Gu(){const l=await $S();Ms.value=l.dismissed!==!0}function Ku(l){const p=l.split(/[\n,]/).map(U=>U.trim().replace(/^(telegram|tg):/i,"").trim()).filter(Boolean),M=p.includes("*"),N=Array.from(new Set(p.filter(U=>/^-?\d+$/.test(U)).map(U=>Number.parseInt(U,10))));return M?["*",...N]:N}async function Yu(){const l=ke.value.trim(),p=Ku(it.value);if(!l){Et.value=a("Telegram bot token is required.");return}if(p.length===0){Et.value=a("At least one allowed Telegram user ID or * is required.");return}Bo.value=!0,Et.value="";try{await SS(l,p),it.value=p.map(M=>String(M)).join(`
|
|
82
82
|
`),await Promise.all([Bs(),cs()]),window.alert(a("Telegram bot configured. Only allowlisted Telegram users can use the bridge."))}catch(M){Et.value=M instanceof Error?M.message:a("Failed to connect Telegram bot"),cs()}finally{Bo.value=!1}}function Ju(){lo.value=!lo.value,lo.value?Ht(()=>{var l;return(l=ko.value)==null?void 0:l.focus()}):kn.value=""}function Qu(){var l;kn.value="",(l=ko.value)==null||l.focus()}function rl(){return uo.value?uo.value:typeof document>"u"?null:document.querySelector(".mobile-drawer .sidebar-scrollable, .sidebar-scrollable")}function Xu(l){if(Yt.value||co)return;const p=l==null?void 0:l.currentTarget,M=p instanceof HTMLElement?p:rl();Cn=(M==null?void 0:M.scrollTop)??Cn}function Zu(){const l=++ta,p=Cn,M=90;co=!0;const N=()=>{l===ta&&(Cn=p,co=!1)},U=fe=>{if(l!==ta)return;if(Yt.value){N();return}const Oe=rl();if(Oe&&(Oe.scrollTop=p,Math.abs(Oe.scrollTop-p)<=1||fe>=M)){N();return}if(fe>=M||typeof window>"u"){N();return}window.requestAnimationFrame(()=>U(fe+1))};Ht(()=>U(0))}function Re(l){l.key==="Escape"&&(lo.value=!1,kn.value="")}function Ft(l){l&&(At.name==="thread"&&is.value===l||(Kt.push({name:"thread",params:{threadId:l}}),pt.value&&Io(!0)))}function qs(l){At.name==="automations"&&Uu.value!==l&&Kt.replace({name:"automations",query:l?{automationId:l}:{}})}async function ec(l){var p;Yt.value&&(Io(!1),await Ht()),(p=ln.value)==null||p.openAutomationEditorFromPanel(l)}async function nw(){var l;Yt.value&&(Io(!1),await Ht()),(l=ln.value)==null||l.openAutomationCreatorFromPanel()}function ow(){var l;At.name==="automations"&&((l=pr.value)==null||l.loadAutomations())}async function rw(l){l&&pe.value===l&&await Nb()}function aw(l){return l.length>8?l.slice(-8):l}function Pp(l){const p=[l.planType||a("unknown")];return l.authMode&&p.unshift(l.authMode),p.join(" · ")}function sw(l){if(!l)return!1;const p=l.toLowerCase();return p.includes("payment required")||/\b402\b/.test(p)}function Yl(l){return l.unavailableReason==="payment_required"||sw(l.quotaError)}function Ep(l){return Ao.value||po.value||nr.value||jn.value||or.value.length>0||l.isActive&&or.value!==l.storageId&&Vl.value}function tc(l){return rr.value===l.storageId}function Ip(l){return Cr.value===l.storageId||tc(l)}function iw(l){return Yl(l)?a("Unavailable"):l.isActive?a("Active"):po.value?a("Switching…"):a("Switch")}function lw(l){return or.value===l.storageId?a("Removing…"):tc(l)?a("Click again to remove"):a("Remove")}function uw(l){Cr.value=l}function cw(l){Cr.value===l&&(Cr.value=""),or.value!==l&&rr.value===l&&(rr.value="")}function dw(l){const p=l.quotaSnapshot;if(!p)return null;const M=[p==null?void 0:p.primary,p==null?void 0:p.secondary].filter(fe=>fe!==null),N=M.find(fe=>fe.windowMinutes===7*24*60);if(N)return N;const U=M.filter(fe=>typeof fe.windowMinutes=="number"&&fe.windowMinutes>=7*24*60).sort((fe,Oe)=>(fe.windowMinutes??0)-(Oe.windowMinutes??0))[0]??null;return U||(p.secondary??null)}function fw(l){if(typeof l!="number"||!Number.isFinite(l))return"";const p=new Date(l*1e3);return`${p.getMonth()+1}月${p.getDate()}日`}function Rp(l){var fe,Oe;if(Yl(l))return l.quotaError||a("402 Payment Required");const p=l.quotaSnapshot,M=dw(l),N=(p==null?void 0:p.primary)??(p==null?void 0:p.secondary)??null,U=M??N;if(U){const rn=Math.max(0,Math.min(100,100-Math.round(U.usedPercent))),lr=fw(U.resetsAt);return lr?`${rn}% ${a("weekly remaining")} · ${lr}`:`${rn}% ${a("weekly remaining")}`}return(fe=p==null?void 0:p.credits)!=null&&fe.unlimited?a("Unlimited credits"):(Oe=p==null?void 0:p.credits)!=null&&Oe.hasCredits&&p.credits.balance?`${p.credits.balance} ${a("credits")}`:l.quotaStatus==="loading"?a("Loading quota…"):l.quotaStatus==="error"?l.quotaError||a("Quota unavailable"):l.quotaStatus==="ready"||l.quotaStatus==="idle"?a("Quota unavailable"):a("Fetching account details…")}function pw(l){return[l.email||a("Account"),Pp(l),Yl(l)?a("Unavailable account"):null,Rp(l),`${a("Workspace")} ${l.accountId}`].filter(Boolean).join(`
|
|
83
83
|
`)}async function Jl(l={}){try{const p=await A1();Pn.value=p.accounts,p.accounts.some(M=>M.storageId===Cr.value)||(Cr.value=""),p.accounts.some(M=>M.storageId===rr.value)||(rr.value="")}catch(p){if(l.silent===!0)return;pn.value=p instanceof Error?p.message:a("Failed to load accounts")}}async function hw(){if(!(Ao.value||po.value||nr.value||jn.value)){pn.value="",Cr.value="",rr.value="",Ao.value=!0;try{const l=await Am();Pn.value=l.accounts,to(),on(),W({includeSelectedThreadMessages:!0})}catch(l){pn.value=l instanceof Error?l.message:a("Failed to refresh accounts")}finally{Ao.value=!1}}}async function mw(l){if(!(po.value||Ao.value||nr.value||jn.value)){if(Vl.value){pn.value=a("Finish the current turn and pending requests before switching accounts.");return}pn.value="",Cr.value="",rr.value="",po.value=!0;try{const p=await I1(l);Pn.value=Pn.value.map(M=>M.storageId===l?p:{...M,isActive:!1}),to(),on(),W({includeSelectedThreadMessages:!0}),Jl({silent:!0})}catch(p){pn.value=p instanceof Error?p.message:a("Failed to switch account")}finally{po.value=!1}}}async function vw(){var l;if(!(Ao.value||po.value||nr.value||jn.value)){pn.value="",Lr.value="",nr.value=!0;try{const p=await P1();aa.value=p,ts.value=!0,window.open(p,"_blank","noopener,noreferrer"),await Ht(),(l=pi.value)==null||l.focus()}catch(p){pn.value=p instanceof Error?p.message:a("Failed to start Codex login")}finally{nr.value=!1}}}function Sd(){jn.value||(ts.value=!1,Lr.value="")}async function gw(){const l=Lr.value.trim();l&&await yw(l)}async function yw(l){if(!(jn.value||l.length===0)){pn.value="",jn.value=!0;try{const p=await E1(l);Pn.value=p.accounts,aa.value="",Lr.value="",ts.value=!1,to(),on(),W({includeSelectedThreadMessages:!0})}catch(p){pn.value=p instanceof Error?p.message:a("Failed to complete Codex login")}finally{jn.value=!1}}}async function ww(l){if(Ao.value||po.value||nr.value||jn.value||or.value.length>0)return;const p=Pn.value.find(N=>N.storageId===l)??null;if(!p)return;if(rr.value!==l){rr.value=l;return}if(p.isActive&&Vl.value){pn.value=a("Finish the current turn and pending requests before removing the active account.");return}const M=p.isActive;pn.value="",rr.value="",or.value=l;try{const N=await R1(l);Pn.value=N.accounts,to(),on(),M&&W({includeSelectedThreadMessages:!0}),Jl({silent:!0})}catch(N){pn.value=N instanceof Error?N.message:a("Failed to remove account")}finally{or.value=""}}function bw(l){ve(l)}function _w(l){W({includeSelectedThreadMessages:!1,forceThreadRefresh:!0})}async function kw(l){const p=await Me(l);p&&(Nn.value?await Kt.replace({name:"thread",params:{threadId:p}}):await Kt.push({name:"thread",params:{threadId:p}}),pt.value&&Io(!0))}function Mp(l){const p=l.trim().replace(/\\/gu,"/");return p?p.includes("/.codex/worktrees/")||p.includes("/.git/worktrees/"):!1}function al(l,p=""){var fe,Oe,rn;const M=z.value.find(lr=>lr.projectName===l);if(!M)return ol(l)||p.trim();const N=M.threads.find(lr=>!Mp(lr.cwd));return(((fe=N==null?void 0:N.cwd)==null?void 0:fe.trim())??((rn=(Oe=M.threads[0])==null?void 0:Oe.cwd)==null?void 0:rn.trim())??"")||ol(l)||p.trim()}function Cw(l){var N,U;const p=z.value.find(fe=>fe.projectName===l),M=al(l,((U=(N=p==null?void 0:p.threads[0])==null?void 0:N.cwd)==null?void 0:U.trim())??"");M&&(kt.value=M),pt.value&&Io(!0),!Nn.value&&Kt.push({name:"home"})}function Tw(l){var M;let p="";for(const N of z.value){const U=N.threads.find(fe=>fe.id===l);if((M=U==null?void 0:U.cwd)!=null&&M.trim()){p=U.cwd.trim();break}}!p||typeof window>"u"||window.open(`/codex-local-browse${encodeURI(p)}`,"_blank","noopener,noreferrer")}function nc(l){var M,N;const p=z.value.find(U=>U.projectName===l);return al(l,((N=(M=p==null?void 0:p.threads[0])==null?void 0:M.cwd)==null?void 0:N.trim())??"")}const $p=ee(()=>Object.fromEntries(z.value.map(l=>[l.projectName,nc(l.projectName).trim()]).filter(([,l])=>l.length>0)));function Sw(l){return(Z.value[l]??l).trim()||l}function xw(l){return Sw(l).replace(/[\\/]+/gu,"-").replace(/[\u0000-\u001f]+/gu,"").trim()||"worktree"}function Aw(l){const p=nc(l);!p||typeof window>"u"||window.open(`/codex-local-browse${encodeURI(p)}`,"_blank","noopener,noreferrer")}async function Pw(l){const p=nc(l);await Lp(p)}async function Ew(l){const p=Iw(l);await Lp(p)}function Iw(l){var p;for(const M of z.value){const N=M.threads.find(U=>U.id===l);if((p=N==null?void 0:N.cwd)!=null&&p.trim())return N.cwd.trim()}return""}function jp(l){if(!Number.isFinite(l)||l<=0)return"0 B";const p=["B","KB","MB","GB"];let M=l,N=0;for(;M>=1024&&N<p.length-1;)M/=1024,N+=1;return`${M>=10||N===0?M.toFixed(0):M.toFixed(1)} ${p[N]}`}function Rw(l,p){const M=URL.createObjectURL(l),N=document.createElement("a");N.href=M,N.download=p,document.body.appendChild(N),N.click(),document.body.removeChild(N),window.setTimeout(()=>URL.revokeObjectURL(M),3e4)}async function Mw(l,p){const N={files:[new File([l],p,{type:l.type||"application/zip"})],title:p};if(!(typeof navigator<"u"&&typeof navigator.share=="function"&&(typeof navigator.canShare!="function"||navigator.canShare(N))))throw new Error("File sharing is not supported in this browser.");await navigator.share(N)}function Np(){jt.value.phase!=="exporting"&&(jt.value={phase:"idle",loaded:0,total:null,blob:null,fileName:"",error:""})}function $w(){const{blob:l,fileName:p}=jt.value;!l||!p||(jt.value={...jt.value,error:""},Rw(l,p))}async function jw(){const{blob:l,fileName:p}=jt.value;if(!(!l||!p))try{jt.value={...jt.value,error:""},await Mw(l,p)}catch(M){if(M instanceof DOMException&&M.name==="AbortError")return;const N=M instanceof Error?M.message:"",U=M instanceof DOMException&&M.name==="NotAllowedError"||/permission denied|notallowed|not allowed|gesture/iu.test(N);jt.value={...jt.value,error:U?a("This browser blocked sharing the ZIP. Use Download instead."):N||a("Failed to share project. Use Download instead.")}}}async function Lp(l){if(!(!l||typeof document>"u")){jt.value={phase:"exporting",loaded:0,total:null,blob:null,fileName:"",error:""};try{const{blob:p,fileName:M}=await yS(l,({loaded:N,total:U})=>{jt.value={...jt.value,phase:"exporting",loaded:N,total:U}});jt.value={phase:"ready",loaded:p.size,total:p.size,blob:p,fileName:M,error:""}}catch(p){if(jt.value={phase:"idle",loaded:0,total:null,blob:null,fileName:"",error:""},p instanceof DOMException&&p.name==="AbortError")return;const M=p instanceof Error?p.message:"Failed to export project.";window.alert(M)}}}async function Nw(l){const p=nc(l);if(!p||typeof window>"u"||(await oc(p),io.value[p]!==!0))return;const M=`${xw(l)}-`,N=window.prompt("New worktree folder name",M);if(N===null)return;const U=N.trim();if(U){if(U.includes("/")||U.includes("\\")||U==="."||U===".."){window.alert("Worktree name must be a single folder name.");return}try{const fe=await rS(p,U),Oe=await vc(fe.cwd,{createIfMissing:!1,label:""});if(!Oe)return;kt.value=Oe,Un.value="local",mt(Ti(Oe)),await Hs(),await pa(),pt.value&&Io(!0),Nn.value||await Kt.push({name:"home"})}catch(fe){const Oe=fe instanceof Error?fe.message:"Failed to create worktree.";window.alert(Oe)}}}function Lw(){var M,N,U;const l=ce.value;if(!l)return"";const p=((M=l.projectName)==null?void 0:M.trim())??"";return p?al(p,((U=l.cwd)==null?void 0:U.trim())??""):((N=l.cwd)==null?void 0:N.trim())??""}function xd(){const l=Lw();l&&(kt.value=l),Un.value="local",pt.value&&Io(!0),!Nn.value&&Kt.push({name:"home"})}function Ow(){kt.value="",Un.value="local",pt.value&&Io(!0),!Nn.value&&Kt.push({name:"home"})}async function oc(l){const p=l.trim();if(!p||Object.prototype.hasOwnProperty.call(io.value,p))return;const M=cn.get(p);if(M){const fe=await M;Object.prototype.hasOwnProperty.call(io.value,p)||(io.value={...io.value,[p]:fe});return}const N=iS(p).then(fe=>fe.isGitRepo).catch(()=>!1).finally(()=>{cn.delete(p)});cn.set(p,N);const U=await N;Object.prototype.hasOwnProperty.call(io.value,p)||(io.value={...io.value,[p]:U})}function Dw(l){Qo(l.projectName,l.displayName)}function Fw(l){Ve(l.threadId,l.title)}async function Uw(l){await fr(l),await Hs(),pa()}function Bw(l){bn(l.projectName,l.toIndex)}function qw(l){var N,U;const p=z.value.find(fe=>fe.projectName===l),M=al(l,((U=(N=p==null?void 0:p.threads[0])==null?void 0:N.cwd)==null?void 0:U.trim())??"");oc(M)}function Op(l){zw(l)}async function zw(l){var N;const p=await eo(l),M=((N=l.followUpMessageText)==null?void 0:N.trim())??"";if(!(!p||!M||Nn.value))try{await wt(M,[],[],"steer",[])}catch{}}async function Hw(l){const p=await st(l.threadId,l.turnIndex);p&&(await Kt.push({name:"thread",params:{threadId:p}}),pe.value!==p&&await ie(p),pt.value&&Io(!0))}function Io(l){var p;if(Yt.value!==l){if(l){const M=(p=rl())==null?void 0:p.scrollTop;typeof M=="number"&&(M>0||Cn===0)&&(Cn=M)}Yt.value=l,t_(l),l||Zu()}}function Dp(l){if(l.defaultPrevented)return;if(l.key==="Escape"&&vn.value){vn.value=!1;return}if(!l.ctrlKey&&!l.metaKey||l.shiftKey||l.altKey)return;const p=l.key.toLowerCase();if(p==="b"){if(!(Xo()?l.metaKey&&!l.ctrlKey:l.ctrlKey&&!l.metaKey))return;l.preventDefault(),Io(!Yt.value);return}if(p==="j"&&At.name==="thread"&&pe.value){l.preventDefault(),Fp();return}p==="j"&&Nn.value&&yn.value&&(l.preventDefault(),Fp())}function Fp(){el.value&&(pt.value&&!Fn.value&&(Fn.value=!0),pt.value||(Qn.value=!1),Mt.value=Mt.value==="terminal"?"git":"terminal",Mt.value!=="terminal"&&xi())}function Si(l){Mt.value=l,Dn.value=!1,pt.value||(Qn.value=!1),pt.value&&(Fn.value=!0),l!=="terminal"&&xi()}function Ww(l){const p=Vn.value.find(M=>M.path===l.path);if(p)_o.value=p.key;else{const M={key:`preview-${Date.now()}`,path:l.path,label:l.label};Vn.value=[...Vn.value,M],_o.value=M.key}Si("preview")}function Vw(l){Vn.value.some(p=>p.key===l)&&(_o.value=l,Si("preview"))}function Gw(l){const p=Vn.value.findIndex(U=>U.key===l);if(p<0)return;const M=Vn.value.filter(U=>U.key!==l);if(Vn.value=M,_o.value!==l)return;if(M.length===0){_o.value="",Mt.value="files";return}const N=M[Math.min(p,M.length-1)];_o.value=N.key}function Up(){if(pt.value){Fn.value=!1;return}Qn.value=!0,Dn.value=!1,xi()}function Kw(){if(pt.value){Fn.value=!Fn.value;return}Qn.value=!Qn.value,Qn.value&&(Dn.value=!1,xi())}function Yw(){Mt.value="git",pt.value&&(Fn.value=!1),xi()}function Jw(l){if(No.value=l,!l){Lo.value=!1,rc();return}Lo.value=!0,rc(),Rr=setTimeout(()=>{Rr=null,tl.value||(Lo.value=!1)},1500)}function xi(){No.value=!1,Lo.value=!1,rc()}function rc(){Rr&&(clearTimeout(Rr),Rr=null)}async function Qw(){try{const l=await T1();Dt.value=l.available,!l.available&&Mt.value==="terminal"&&(Mt.value="git",xi())}catch{Dt.value=!1,Mt.value==="terminal"&&(Mt.value="git")}}function Bp(l){var M,N;const p=l.target;if(p instanceof Node){if(No.value){const U=p instanceof Element?p:p.parentElement;U!=null&&U.closest(".thread-terminal-panel")||xi()}vn.value&&((M=mr.value)!=null&&M.contains(p)||(N=er.value)!=null&&N.contains(p)||(gr=Date.now(),vn.value=!1))}}function Xw(l){var M,N;if(!vn.value)return;const p=l.target;p instanceof Node&&((M=mr.value)!=null&&M.contains(p)||(N=er.value)!=null&&N.contains(p)||(gr=Date.now(),vn.value=!1))}function Zw(){var l;(l=ln.value)==null||l.openRecycleBin()}function qp(){if(!(typeof document>"u")&&pt.value){if(document.visibilityState==="hidden"){yi.value=Date.now(),Os.value=!1;return}Ad()}}function zp(l){l.persisted&&Ad()}function Hp(){At.name==="home"&&(Hs(),pa()),Ad()}function Ad(){typeof window>"u"||typeof document>"u"||!pt.value||document.visibilityState!=="visible"||Os.value||yi.value===null||Date.now()-yi.value<I4||(Os.value=!0,yi.value=null,eb())}async function eb(){if(!Ki.value){Ki.value=!0;try{await W({includeSelectedThreadMessages:!0,awaitAncillaryRefreshes:!0}),await Dd()}finally{Ki.value=!1}}}function Wp(l){const p=l.text;ac();const M=Zr.value,N=l.mode==="queue"&&M&&M.threadId===pe.value?M.queueIndex:void 0;if(Zr.value=null,Nn.value){s_(p,l.imageUrls,l.skills,l.fileAttachments);return}wt(p,l.imageUrls,l.skills,l.mode,l.fileAttachments,N)}function tb(l){const p=K.value.findIndex(fe=>fe.id===l),M=p>=0?K.value[p]:void 0,N=oo.value;if(!M||!N||N.hasUnsavedDraft()&&!window.confirm("Replace the current draft with this queued message for editing?"))return;Zr.value=pe.value?{threadId:pe.value,queueIndex:p}:null;const U={text:M.text,imageUrls:[...M.imageUrls],fileAttachments:M.fileAttachments.map(fe=>({...fe})),skills:M.skills.map(fe=>({...fe}))};N.hydrateDraft(U),X(l)}function ac(){if(!pt.value||Nn.value)return;const l=()=>{var p;(p=Ea.value)==null||p.jumpToLatest()};l(),Ht(()=>{l(),!(typeof window>"u")&&window.requestAnimationFrame(()=>{l(),window.requestAnimationFrame(l)})})}function nb(l){kt.value=l.trim(),Tn.value=""}function ob(l){Oo.value=l.trim()}function zs(l){const p=yn.value.trim();return!l||p!==l?!1:At.name==="thread"||At.name==="home"&&us.value}function Vp(){Fo+=1,mn+=1,Nt+=1,tr+=1,br.value=[],oa.value=null,Na.value=null,_r.value=null,La.value=null,Uo.value=!1,Za.value=!1,jr.value={addedLineCount:0,removedLineCount:0},xo.value=[],qe.value={},Ce.value="",Gn.value="",Oa.value={},kr.value="",Rs.value="",Nr.value="",fn.value=!1}function Gp(l){const p=l.trim();if(!p){jr.value={addedLineCount:0,removedLineCount:0};return}const M=++tr;fS(p,"unstaged").then(N=>{M!==tr||!zs(p)||(jr.value={addedLineCount:N.addedLineCount,removedLineCount:N.removedLineCount})}).catch(()=>{M!==tr||!zs(p)||(jr.value={addedLineCount:0,removedLineCount:0})})}async function Ql(l){var N,U,fe;const p=l.trim();if(!p){Vp();return}const M=++Fo;fn.value=!0,Nr.value="";try{const Oe=await sS(p);if(M!==Fo||!zs(p))return;br.value=Oe.options,oa.value=Oe.currentBranch,Na.value=Oe.headSha,_r.value=Oe.headSubject,La.value=Oe.headDate,Uo.value=Oe.detached,Za.value=Oe.dirty,xo.value=Oe.changedFiles,Gp(p);const rn=((N=Oe.currentBranch)==null?void 0:N.trim())||((fe=(U=Oe.options[0])==null?void 0:U.value)==null?void 0:fe.trim())||"";rn&&Kp({branch:rn,includeResetHistory:!0})}catch{if(M!==Fo||!zs(p))return;br.value=[],oa.value=null,Na.value=null,_r.value=null,La.value=null,Uo.value=!1,Za.value=!1,jr.value={addedLineCount:0,removedLineCount:0},xo.value=[]}finally{M===Fo&&(fn.value=!1)}}function rb(l){oa.value=l.currentBranch,Na.value=l.headSha,_r.value=l.headSubject,La.value=l.headDate,Uo.value=l.detached,Za.value=l.dirty,xo.value=l.changedFiles,Gp(yn.value)}function ab(l){if(ra.value)return;const p=l.trim();if(!p||p===(oa.value??""))return;const M=yn.value.trim();M&&(ra.value=!0,Nr.value="",lS(M,p).then(N=>(oa.value=N||p,Na.value=null,_r.value=null,La.value=null,Uo.value=!1,$n.value=!1,Ql(M))).catch(N=>{const U=N instanceof Error?N.message:"Failed to switch branch";Ql(M).finally(()=>{Nr.value=U})}).finally(()=>{ra.value=!1}))}function sb(l){if(ra.value)return;const p=l.branch.trim(),M=l.sha.trim(),N=yn.value.trim();!p||!M||!N||(ra.value=!0,Nr.value="",dS(N,p,M).then(U=>(rb(U),$n.value=!1,Ql(N))).catch(U=>{const fe=U instanceof Error?U.message:"Failed to reset branch to commit";Ql(N).finally(()=>{Nr.value=fe})}).finally(()=>{ra.value=!1}))}function Kp(l){const p=(typeof l=="string"?l:l.branch).trim(),M=typeof l=="string"?!0:l.includeResetHistory!==!1,N=yn.value.trim(),U=Ll(p,M);if(!p||!N||Ce.value===U||(Gn.value="",qe.value[U]))return;const fe=++mn;Ce.value=U,uS(N,p,{includeResetHistory:M}).then(Oe=>{fe!==mn||!zs(N)||(qe.value={...qe.value,[U]:Oe})}).catch(Oe=>{fe!==mn||!zs(N)||(Gn.value=Oe instanceof Error?Oe.message:"Failed to load branch commits")}).finally(()=>{fe===mn&&Ce.value===U&&(Ce.value="")})}function ib(l){const p=l.trim(),M=yn.value.trim();if(!p||!M||kr.value===p||(Rs.value="",Oa.value[p]))return;const N=++Nt;kr.value=p,cS(M,p).then(U=>{N!==Nt||!zs(M)||(Oa.value={...Oa.value,[p]:U})}).catch(U=>{N!==Nt||!zs(M)||(Rs.value=U instanceof Error?U.message:"Failed to load commit files")}).finally(()=>{N===Nt&&kr.value===p&&(kr.value="")})}function lb(l){const p=l.path.trim(),M=l.sha.trim();!p||!M||($r.value=p,na.value=M,$n.value=!0)}function ub(){$r.value="",na.value="",$n.value=!$n.value}function cb(){!$r.value&&!na.value||($r.value="",na.value="",$n.value=!1)}async function db(){const l=await ic();l&&(await pa(),js.value=l,mi.value=To.value.trim()||"New Project (1)",vi.value="",Ua.value="",qo.value="create",Fr.value=!0,Ht(()=>{var p;return(p=Dl.value)==null?void 0:p.focus()}))}function sc(){zo.value||(Fr.value=!1,Ua.value="")}let Pd=!1,Ed=!1;function fb(){Pd=!0}function pb(){Pd&&(Pd=!1,sl())}function hb(){Ed=!0}function mb(){Ed&&(Ed=!1,sc())}async function vb(){const l=js.value.trim(),p=mi.value.trim();if(!E.value)throw new Error("Enter a single project folder name.");const M=Xp(Qp(l,p));return M?vc(M,{createIfMissing:!0,label:""}):""}async function gb(){const l=js.value.trim(),p=vi.value.trim();return p?_S(p,l):""}async function Id(){if(!(!L.value||zo.value)){Ua.value="",zo.value=!0;try{const l=qo.value==="clone"?await gb():await vb();if(!l)return;kt.value=l,mt(Ti(l)),await Hs(),await pa(),Fr.value=!1}catch(l){Ua.value=l instanceof Error?l.message:"Failed to create or clone project."}finally{zo.value=!1}}}function yb(){wb(Du.value)}function wb(l){Ns.value||!l||(l.value="",l.click())}async function bb(l,p,M){Ns.value=!0;try{const N=await ic();if(!N)return;const U=await p(N);if(!U.path)return;kt.value=U.path,mt(Ti(U.path)),await Hs(),await W({includeSelectedThreadMessages:!1,forceThreadRefresh:!0}),await pa()}catch(N){const U=N instanceof Error?N.message:M;window.alert(U)}finally{Ns.value=!1,l&&(l.value="")}}async function _b(l){var N;const p=l.target instanceof HTMLInputElement?l.target:null,M=((N=p==null?void 0:p.files)==null?void 0:N[0])??null;!M||Ns.value||await bb(p,U=>wS(M,U),"Failed to import project.")}async function kb(){const l=kt.value.trim()||await ic();l&&(Qt.value=!1,Ba.value=!0,Br.value="",await Ws(l),Kn.value||Ht(()=>{var p;return(p=Fu.value)==null?void 0:p.focus()}))}function sl(){bi+=1,Ba.value=!1,Po.value=!1,Kn.value="",Br.value="",qa.value="",Xl()}async function Cb(l){!l||Po.value||(Br.value="",await Ws(l))}function Tb(){const l=Ur.value.trim();!Ba.value||!l||Ws(l)}function Sb(){const l=H.value;!Ba.value||!l||Po.value||Ws(l)}function xb(){if(!Ba.value||Po.value||Eo.value)return;const l=H.value,p=Ur.value.trim();!l||l===p||Ws(l)}function Ab(){const l=H.value,p=Ur.value.trim();if(l){if(l!==p){Ws(l);return}Rd(l)}}async function Rd(l=H.value){const p=at(l).trim();if(p){Kn.value="",Eo.value=!0;try{const M=await vc(p,{createIfMissing:!1,label:""});if(!M){Kn.value="Failed to open the selected folder.";return}kt.value=M,mt(Ti(M)),await Hs(),await W({includeSelectedThreadMessages:!1,forceThreadRefresh:!0}),await pa(),sl()}catch(M){Kn.value=M instanceof Error?M.message:"Failed to open the selected folder."}finally{Eo.value=!1}}}async function Pb(){if(Tn.value="",Qt.value){Xl();return}if(!Ba.value){const l=kt.value.trim()||await ic();if(!l||(Ba.value=!0,Br.value="",await Ws(l),Kn.value))return}Kn.value||(zn.value=To.value,Qt.value=!0,Ht(()=>{var l;return(l=es.value)==null?void 0:l.focus()}))}function Xl(){Tn.value="",zn.value="",Qt.value=!1}async function Yp(){const l=zn.value.trim();if(!l)return;if(Tn.value="",Kn.value){Tn.value="Reload the current folder before creating a new one.";return}ir.value=!0;const p=h.value.trim(),M=Xp(Qp(p,l));if(!M){Tn.value="Unable to determine where the new folder should be created.",ir.value=!1;return}if(!b.value){Tn.value="Enter a single folder name.",ir.value=!1;return}try{const N=await bS(M);if(!N){Tn.value="Failed to create the folder.";return}Tn.value="",Br.value="",await Ws(N),Xl()}catch(N){Tn.value=N instanceof Error?N.message:"Failed to create folder."}finally{ir.value=!1}}async function Eb(){var p;if(typeof window>"u")return!1;const l=((p=new URLSearchParams(window.location.search).get("openProjectPath"))==null?void 0:p.trim())??"";if(!l)return!1;try{const M=await vc(l,{createIfMissing:!1,label:""});if(!M)return!1;kt.value=M,mt(Ti(M)),await Kt.replace({name:"home"}),await Hs();const N=new URL(window.location.href);return N.searchParams.delete("openProjectPath"),window.history.replaceState({},"",N.toString()),!0}catch{return!1}}async function ic(){const l=Jp();if(l)return l;try{const p=await Lm();if(p)return Mr.value=p,p}catch{}return""}async function pa(){const l=Jp();if(!l){To.value="New Project (1)";return}try{const p=await CS(l);To.value=p.name||"New Project (1)"}catch{To.value="New Project (1)"}}function Jp(){var M,N;const l=kt.value.trim();if(l)return Tl(l);const p=((N=(M=Kl.value[0])==null?void 0:M.value)==null?void 0:N.trim())??"";return p?Tl(p):Mr.value.trim()}async function Ib(){try{Mr.value=await Lm()}catch{Mr.value=""}}async function Hs(){try{const l=await ml();Bn.value={order:[...l.order],labels:{...l.labels},projectOrder:[...l.projectOrder]}}catch{Bn.value={order:[],labels:{},projectOrder:[]}}}async function Ws(l){const p=++bi,M=at(l).trim();qa.value=M,Ur.value=M,Kn.value="",Po.value=!0;try{const N=await pS(l,{showHidden:gi.value});if(p!==bi)return;qa.value=N.path,Ur.value=N.path,ca.value=N.parentPath,Fl.value=N.entries}catch(N){if(p!==bi)return;Kn.value=N instanceof Error?N.message:"Failed to load local folders.",ca.value=Tl(Ur.value),Fl.value=[],Xl()}finally{p===bi&&(Po.value=!1)}}function Qp(l,p){const M=at(l).trim(),N=at(p).trim().replace(/^[\\/]+/u,"");if(!M||!N)return"";const U=M.includes("\\")&&!M.includes("/")?"\\":"/";if(/^[a-zA-Z]:[\\/]?$/u.test(M))return`${M.slice(0,2)}${U}${N}`;if(/^\/+$/u.test(M))return`/${N}`;const fe=M.replace(/[\\/]+$/u,"");return fe?`${fe}${U}${N}`:""}function Xp(l){const p=at(l).trim();if(!p)return"";const M=p.match(/^\\\\([^\\/]+)[\\/]+([^\\/]+)([\\/].*)?$/u);if(M){const[,U,fe,Oe=""]=M,rn=Md(Oe.split(/[\\/]+/u));return rn.length>0?`\\\\${U}\\${fe}\\${rn.join("\\")}`:`\\\\${U}\\${fe}`}const N=p.match(/^([a-zA-Z]:)([\\/].*)?$/u);if(N){const[,U,fe=""]=N,Oe=p.includes("\\")&&!p.includes("/")?"\\":"/",rn=Md(fe.split(/[\\/]+/u));return rn.length>0?`${U}${Oe}${rn.join(Oe)}`:`${U}${Oe}`}if(p.startsWith("/")){const U=Md(p.split("/"));return U.length>0?`/${U.join("/")}`:"/"}return p}function Md(l){const p=[];for(const M of l){const N=M.trim();if(!(!N||N===".")){if(N===".."){p.length>0&&p.pop();continue}p.push(N)}}return p}function Rb(l){de(l.draggedId,l.targetId)}function Zp(l){Wn(Sr.value,l)}function eh(l){Jo(l)}function th(l){yo(l)}function Mb(){Ze()}const Zl=S("");let $d=null;ot(Vt,l=>{var p;l&&(l.text&&((p=oo.value)==null||p.hydrateDraft({text:l.text,imageUrls:l.imageUrls,fileAttachments:l.fileAttachments,skills:l.skills})),Zl.value=l.text?a("Stopped: message not submitted, restored to input."):a("Stopped: message not submitted."),$d&&clearTimeout($d),$d=setTimeout(()=>{Zl.value=""},6e3),V(Sr.value))});function nh(l){var M,N;const p=pe.value.trim();switch(l){case"compact":p&&ue(p);break;case"review":if(!p)return;$r.value="",na.value="",$n.value=!0;break;case"rename":p&&((N=ln.value)==null||N.openRenameThreadDialog(p,((M=ce.value)==null?void 0:M.title)??""));break;case"archive":p&&ve(p);break;case"fork":p&&Me(p);break;case"new":xd();break;case"skills":Tr.value||Kt.push({name:"skills"});break}}function $b(l){const p=l.turnId.trim();if(p.length>0){const M=[...ki.value].reverse().find(N=>{var U;return N.role==="user"&&(((U=N.turnId)==null?void 0:U.trim())??"")===p&&N.text.trim().length>0});M!=null&&M.text&&oo.value&&oo.value.appendTextToDraft(M.text)}As(l.turnId)}function jb(){Nn.value||!pe.value||(Hl.value&&(Xi.value=Hl.value.id),Bt("default"),ac(),wt("Implement",[],[],"steer",[],void 0,"default"))}async function Nb(){if(Nn.value||Tr.value||ls.value||!ce.value||ki.value.length===0)return;const l=Lb();try{await Uy(l)}catch{}}function Lb(){var M,N,U;const l=[],p=((N=(M=ce.value)==null?void 0:M.title)==null?void 0:N.trim())||"Untitled thread";l.push(`# ${Ob(p)}`),l.push(""),l.push(`- Exported: ${new Date().toISOString()}`),l.push(`- Thread ID: ${((U=ce.value)==null?void 0:U.id)??""}`),l.push(""),l.push("---"),l.push("");for(const fe of ki.value){const Oe=fe.role?fe.role.toUpperCase():"MESSAGE";l.push(`## ${Oe}`),l.push("");const rn=fe.text.trim();if(rn&&(l.push(rn),l.push("")),fe.commandExecution&&(l.push("```text"),l.push(`command: ${fe.commandExecution.command}`),l.push(`status: ${fe.commandExecution.status}`),fe.commandExecution.cwd&&l.push(`cwd: ${fe.commandExecution.cwd}`),fe.commandExecution.exitCode!==null&&l.push(`exitCode: ${fe.commandExecution.exitCode}`),l.push(fe.commandExecution.aggregatedOutput||"(no output)"),l.push("```"),l.push("")),fe.fileAttachments&&fe.fileAttachments.length>0){l.push("Attachments:");for(const lr of fe.fileAttachments)l.push(`- ${lr.path}`);l.push("")}if(fe.images&&fe.images.length>0){l.push("Images:");for(const lr of fe.images)l.push(`- ${lr}`);l.push("")}}return`${l.join(`
|