codex-mobile-re 0.1.99 → 0.1.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import{d as ee,o as r,c as G,a as l,w as De,b as g,t as k,n as U,e as L,T as gs,_ as J,u as C,F as E,r as q,f as ue,g as Z,I as ps,h as Wo,i as Re,j as se,k as M,l as de,m as en,p as Ze,q as W,s as zt,v as vs,x as jo,y as be,z as qo,A as ks,B as No,C as ct,D as Ge,E as zo,G as Uo,H as Vo,J as Ko,K as Jn,L as Go,M as Zo}from"./index-CZP3HKY9.js";import{s as Dt}from"./sanitizeHtml-Bd3No2dT.js";function Jo(e){if(!e||/[\r\n]/u.test(e)||e.endsWith("/")||e.endsWith("\\")||/^[A-Za-z][A-Za-z0-9+.-]*:\/\//u.test(e))return!1;const n=e.startsWith("/"),s=/^[A-Za-z]:[\\/]/u.test(e),i=e.startsWith("./")||e.startsWith("../")||e.startsWith("~/");return n||s||i||/^[A-Za-z0-9._@() -]+\.[A-Za-z0-9]{1,12}$/u.test(e)?!0:/^[A-Za-z0-9._@() -]+(?:[\\/][A-Za-z0-9._@() -]+)+$/u.test(e)}function ft(e){return e.replace(/\\/gu,"/").split("/").filter(Boolean).pop()||e}function We(e){return e.replace(/\\/gu,"/")}function ys(e){if(!e.startsWith("file://"))return e;let n=e.replace(/^file:\/\//u,"");try{n=decodeURIComponent(n)}catch{}return/^\/[A-Za-z]:\//u.test(n)&&(n=n.slice(1)),n}function Xo(e){const n=We(e),s=n.match(/^\/Users\/([^/]+)/u);if(s)return`/Users/${s[1]}`;const i=n.match(/^\/home\/([^/]+)/u);return i?`/home/${i[1]}`:""}function Oe(e){const n=We(e);if(!n)return n;let s="",i=n;const a=i.match(/^([A-Za-z]:)(\/.*)?$/u);a?(s=`${a[1]}/`,i=(a[2]??"").replace(/^\/+/u,"")):i.startsWith("/")&&(s="/",i=i.slice(1));const d=i.split("/").filter(Boolean),c=[];for(const h of d)if(h!=="."){if(h===".."){c.length>0&&c.pop();continue}c.push(h)}const u=c.join("/");return s?`${s}${u}`.replace(/\/+$/u,"")||s:u||n}function bs(e,n){const s=We(ys(e.trim()));if(!s)return"";if(s.startsWith("/")||/^[A-Za-z]:\//u.test(s))return Oe(s);if(s.startsWith("~/")){const d=Xo(n);if(d)return Oe(`${d}/${s.slice(2)}`)}const a=We(n.trim());return Oe(a?`${a.replace(/\/+$/u,"")}/${s}`:s)}function ht(e){let n=e,s="",i="";const a={"(":")","[":"]","{":"}","<":">",'"':'"',"'":"'","`":"`","“":"”","‘":"’"};for(;n.length>0;){const d=n[0],c=Object.prototype.hasOwnProperty.call(a,d)?a[d]:"";if(!c||!n.endsWith(c))break;s+=d,i+=c,n=n.slice(1,-1)}return{core:n,leading:s,trailing:i}}function Je(e){if(!e)return null;let n=e.trim();n=ht(n).core.trim();let i=null;const a=n.match(/^(.*)#L(\d+)(?:C\d+)?$/u);if(a)n=a[1],i=Number(a[2]);else{const d=n.match(/^(.*):(\d+)(?::\d+)?$/u);d&&(n=d[1],i=Number(d[2]))}return n=ys(n),Jo(n)?{path:n,line:i}:null}function Xn(e,n,s){let i=0,a=n-1;for(;a>=s&&e[a]==="*";)i+=1,a-=1;return i}function Yo(e,n){let s=0,i=n;for(;i<e.length&&e[i]==="*";)s+=1,i+=1;return s}function ws(e,n,s,i,a){const d=Xn(e,n,i);return d<2?null:Yo(e,s)>=d?{segmentStart:n-d,segmentEnd:s+d,tokenEndTrim:0}:Xn(a,a.length,0)>=d?{segmentStart:n-d,segmentEnd:s,tokenEndTrim:d}:null}function Ut(e){const n=e.trim();if(!n.startsWith("[")||!n.endsWith(")"))return null;const s=n.indexOf("]");if(s<=1||n[s+1]!=="(")return null;const i=n.slice(1,s).trim(),a=n.slice(s+2,-1).trim();if(i.includes(`
1
+ import{d as ee,o as r,c as G,a as l,w as De,b as g,t as k,n as U,e as L,T as gs,_ as J,u as C,F as E,r as q,f as ue,g as Z,I as ps,h as Wo,i as Re,j as se,k as M,l as de,m as en,p as Ze,q as W,s as zt,v as vs,x as jo,y as be,z as qo,A as ks,B as No,C as ct,D as Ge,E as zo,G as Uo,H as Vo,J as Ko,K as Jn,L as Go,M as Zo}from"./index-DqT52OOe.js";import{s as Dt}from"./sanitizeHtml-Bd3No2dT.js";function Jo(e){if(!e||/[\r\n]/u.test(e)||e.endsWith("/")||e.endsWith("\\")||/^[A-Za-z][A-Za-z0-9+.-]*:\/\//u.test(e))return!1;const n=e.startsWith("/"),s=/^[A-Za-z]:[\\/]/u.test(e),i=e.startsWith("./")||e.startsWith("../")||e.startsWith("~/");return n||s||i||/^[A-Za-z0-9._@() -]+\.[A-Za-z0-9]{1,12}$/u.test(e)?!0:/^[A-Za-z0-9._@() -]+(?:[\\/][A-Za-z0-9._@() -]+)+$/u.test(e)}function ft(e){return e.replace(/\\/gu,"/").split("/").filter(Boolean).pop()||e}function We(e){return e.replace(/\\/gu,"/")}function ys(e){if(!e.startsWith("file://"))return e;let n=e.replace(/^file:\/\//u,"");try{n=decodeURIComponent(n)}catch{}return/^\/[A-Za-z]:\//u.test(n)&&(n=n.slice(1)),n}function Xo(e){const n=We(e),s=n.match(/^\/Users\/([^/]+)/u);if(s)return`/Users/${s[1]}`;const i=n.match(/^\/home\/([^/]+)/u);return i?`/home/${i[1]}`:""}function Oe(e){const n=We(e);if(!n)return n;let s="",i=n;const a=i.match(/^([A-Za-z]:)(\/.*)?$/u);a?(s=`${a[1]}/`,i=(a[2]??"").replace(/^\/+/u,"")):i.startsWith("/")&&(s="/",i=i.slice(1));const d=i.split("/").filter(Boolean),c=[];for(const h of d)if(h!=="."){if(h===".."){c.length>0&&c.pop();continue}c.push(h)}const u=c.join("/");return s?`${s}${u}`.replace(/\/+$/u,"")||s:u||n}function bs(e,n){const s=We(ys(e.trim()));if(!s)return"";if(s.startsWith("/")||/^[A-Za-z]:\//u.test(s))return Oe(s);if(s.startsWith("~/")){const d=Xo(n);if(d)return Oe(`${d}/${s.slice(2)}`)}const a=We(n.trim());return Oe(a?`${a.replace(/\/+$/u,"")}/${s}`:s)}function ht(e){let n=e,s="",i="";const a={"(":")","[":"]","{":"}","<":">",'"':'"',"'":"'","`":"`","“":"”","‘":"’"};for(;n.length>0;){const d=n[0],c=Object.prototype.hasOwnProperty.call(a,d)?a[d]:"";if(!c||!n.endsWith(c))break;s+=d,i+=c,n=n.slice(1,-1)}return{core:n,leading:s,trailing:i}}function Je(e){if(!e)return null;let n=e.trim();n=ht(n).core.trim();let i=null;const a=n.match(/^(.*)#L(\d+)(?:C\d+)?$/u);if(a)n=a[1],i=Number(a[2]);else{const d=n.match(/^(.*):(\d+)(?::\d+)?$/u);d&&(n=d[1],i=Number(d[2]))}return n=ys(n),Jo(n)?{path:n,line:i}:null}function Xn(e,n,s){let i=0,a=n-1;for(;a>=s&&e[a]==="*";)i+=1,a-=1;return i}function Yo(e,n){let s=0,i=n;for(;i<e.length&&e[i]==="*";)s+=1,i+=1;return s}function ws(e,n,s,i,a){const d=Xn(e,n,i);return d<2?null:Yo(e,s)>=d?{segmentStart:n-d,segmentEnd:s+d,tokenEndTrim:0}:Xn(a,a.length,0)>=d?{segmentStart:n-d,segmentEnd:s,tokenEndTrim:d}:null}function Ut(e){const n=e.trim();if(!n.startsWith("[")||!n.endsWith(")"))return null;const s=n.indexOf("]");if(s<=1||n[s+1]!=="(")return null;const i=n.slice(1,s).trim(),a=n.slice(s+2,-1).trim();if(i.includes(`
2
2
  `)||a.includes(`
3
3
  `))return null;const d=ht(i).core.trim()||i,c=ht(a).core.trim();return c?{label:d,target:c}:null}function mt(e){const n=e.trim().match(/^codex:\/\/threads\/([A-Za-z0-9-]+)$/u);if(!n)return null;if(typeof window>"u")return`/#/thread/${n[1]}`;const s=window.location.pathname.replace(/\/?$/u,"/");return`${window.location.origin}${s}#/thread/${n[1]}`}function Yn(e){const n=Math.min(6,Math.max(1,Math.trunc(e)));return`h${String(n)}`}function Qn(e){switch(Math.min(6,Math.max(1,Math.trunc(e)))){case 1:return"message-heading-h1";case 2:return"message-heading-h2";case 3:return"message-heading-h3";case 4:return"message-heading-h4";case 5:return"message-heading-h5";default:return"message-heading-h6"}}function Qo(e){const n=e.trim();if(!n)return"";if(n.startsWith("data:")||n.startsWith("blob:")||n.startsWith("http://")||n.startsWith("https://")||n.startsWith("/codex-local-image?"))return n;if(n.startsWith("file://"))return`/codex-local-image?path=${encodeURIComponent(n)}`;const s=n.startsWith("/"),i=/^[A-Za-z]:[\\/]/u.test(n);return s||i?`/codex-local-image?path=${encodeURIComponent(n)}`:n}function He(e,n={}){const s=[],i=/codex:\/\/threads\/[A-Za-z0-9-]+|https?:\/\/[^\s<>"'`,。;:!?、()[\]{}「」『』《》]+|file:\/\/[^\n<>"'`,。;:!?、[\]{}「」『』《》]+|["'](?:[A-Za-z]:[\\/]|~\/|\.{1,2}\/|\/)[^\n"']+["']|`(?:[A-Za-z]:[\\/]|~\/|\.{1,2}\/|\/)[^`\n]+`/gu;let a=0;for(const d of e.matchAll(i)){if(typeof d.index!="number")continue;const c=d.index,u=c+d[0].length;let h=d[0],m="";for(;/[.,;:!?,。;:!?、]$/u.test(h);)m=h.slice(-1)+m,h=h.slice(0,-1);const y=ws(e,c,u,a,h),I=(y==null?void 0:y.segmentStart)??c,F=(y==null?void 0:y.segmentEnd)??u;I>a&&s.push({kind:"text",value:e.slice(a,I)}),y!=null&&y.tokenEndTrim&&(h=h.slice(0,-y.tokenEndTrim));const T=ht(h);h=T.core;const P=T.leading,w=T.trailing+m;P&&s.push({kind:"text",value:P});const B=mt(h);if(B)s.push({kind:"url",value:B,href:B}),w&&s.push({kind:"text",value:w});else if(h.startsWith("**")&&h.endsWith("**")&&h.length>4)s.push({kind:"bold",value:h.slice(2,-2)}),w&&s.push({kind:"text",value:w});else if(/^https?:\/\//u.test(h))s.push({kind:"url",value:h,href:h}),w&&s.push({kind:"text",value:w});else{const O=Je(h);O?(s.push({kind:"file",value:h,path:O.path,displayPath:h,downloadName:ft(O.path)}),w&&s.push({kind:"text",value:w})):s.push({kind:"text",value:d[0]})}a=F}return a<e.length&&s.push({kind:"text",value:e.slice(a)}),n.applyMarkdownMarkers===!1?s:$s(s)}function Wt(e,n){const s=[];let i=!1,a="";const d=c=>{c&&s.push({kind:"text",value:c})};for(const c of e){if(c.kind!=="text"){i&&(d(`${n.marker}${a}`),i=!1,a=""),s.push(c);continue}let u=c.value;for(;u.length>0;){const h=u.indexOf(n.marker);if(h<0){i?a+=u:d(u);break}const m=u.slice(0,h);if(i?a+=m:d(m),u=u.slice(h+n.marker.length),i){const y=a;y.length>0&&(!n.isValidContent||n.isValidContent(y))?s.push({kind:n.kind,value:y}):d(`${n.marker}${y}${n.marker}`),a="",i=!1}else i=!0}}return i&&d(`${n.marker}${a}`),s}function $s(e){const n=i=>i.trim().length>0&&!/^\s/u.test(i)&&!/\s$/u.test(i);let s=Wt(e,{marker:"**",kind:"bold",isValidContent:n});return s=Wt(s,{marker:"~~",kind:"strikethrough",isValidContent:n}),s=Wt(s,{marker:"*",kind:"italic",isValidContent:n}),s}function ea(e,n={}){const s=[];let i=0,a=0;const d=(c,u)=>{let h=c.indexOf("[",u);for(;h>=0;){const m=c.indexOf("]",h+1);if(m<0)return null;if(c[m+1]!=="("){h=c.indexOf("[",h+1);continue}let y=1,I=m+2,F=!1;for(;I<c.length;){const T=c[I];if(T===`
4
4
  `){F=!0;break}if(T==="("&&(y+=1),T===")"&&(y-=1,y===0)){const P=c.slice(h,I+1);if(Ut(P))return{start:h,end:I+1,token:P};break}I+=1}if(F){h=c.indexOf("[",h+1);continue}h=c.indexOf("[",h+1)}return null};for(;a<e.length;){const c=d(e,a);if(!c)break;const{start:u,end:h,token:m}=c,y=ws(e,u,h,i,m),I=(y==null?void 0:y.segmentStart)??u,F=(y==null?void 0:y.segmentEnd)??h;I>i&&s.push(...He(e.slice(i,I),n));const T=Ut(m);if(!T){s.push(...He(e.slice(I,F),n)),i=F,a=F;continue}const P=T.label,w=T.target,B=mt(w);if(B)s.push({kind:"url",value:P||B,href:B});else if(/^https?:\/\//u.test(w))s.push({kind:"url",value:P||w,href:w});else{const O=Je(w);O?s.push({kind:"file",value:w,path:O.path,displayPath:P||w,downloadName:ft(O.path)}):s.push({kind:"text",value:m})}i=F,a=F}return i<e.length&&s.push(...He(e.slice(i),n)),s}function ta(e){const n=e.includes("`"),s=ea(e,{applyMarkdownMarkers:!n});if(!n)return s;if(!s.some(a=>a.kind==="text"&&a.value.includes("`")))return $s(s);const i=a=>{if(!a.includes("`"))return He(a);const d=[];let c=0,u=0;for(;c<a.length;){if(a[c]!=="`"){c+=1;continue}let h=1;for(;c+h<a.length&&a[c+h]==="`";)h+=1;const m="`".repeat(h);let y=c+h,I=-1;for(;y<a.length;){const T=a.indexOf(m,y);if(T<0)break;const P=T>0&&a[T-1]==="`",w=T+h<a.length&&a[T+h]==="`",B=a.slice(c+h,T).includes(`
@@ -22,7 +22,7 @@ ${i.join(`
22
22
  `):[];s.length>0&&s[s.length-1]===""&&s.pop();const i=[];let a=0,d=0;for(const[c,u]of s.entries()){const h=u.match(/^@@\s+-(\d+)(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s+@@/u);if(h){a=Number(h[1]),d=Number(h[2]),i.push({key:`${Q(e)}:hunk:${c}`,kind:"hunk",oldLine:null,newLine:null,text:u});continue}if(u.startsWith("+")&&!u.startsWith("+++")){i.push({key:`${Q(e)}:add:${c}`,kind:"add",oldLine:null,newLine:d,text:u.slice(1)}),d+=1;continue}if(u.startsWith("-")&&!u.startsWith("---")){i.push({key:`${Q(e)}:remove:${c}`,kind:"remove",oldLine:a,newLine:null,text:u.slice(1)}),a+=1;continue}if(u.startsWith(" ")){i.push({key:`${Q(e)}:context:${c}`,kind:"context",oldLine:a,newLine:d,text:u.slice(1)}),a+=1,d+=1;continue}i.push({key:`${Q(e)}:meta:${c}`,kind:"meta",oldLine:null,newLine:null,text:u})}return i}function wa(e){return!e||!e.diff.trim()?[]:ka(e)?ba(e):ya(e)}function $a(e){return!!(e!=null&&e.diff.trim())}function xa(e){return e.kind==="add"?"+":e.kind==="remove"?"-":e.kind==="hunk"?"@@":""}const _a=["aria-label"],Ca={class:"confirm-dialog-title"},Ta={class:"confirm-dialog-message"},La={class:"confirm-dialog-actions"},Ia=ee({__name:"ConfirmDialog",props:{visible:{type:Boolean},title:{},message:{},confirmLabel:{default:""},cancelLabel:{default:""},danger:{type:Boolean,default:!1}},emits:["confirm","cancel"],setup(e){return(n,s)=>(r(),G(gs,{to:"body"},[e.visible?(r(),l("div",{key:0,class:"confirm-dialog-overlay",onClick:s[2]||(s[2]=De(i=>n.$emit("cancel"),["self"]))},[g("div",{class:"confirm-dialog-panel",role:"alertdialog","aria-modal":"true","aria-label":e.title},[g("h3",Ca,k(e.title),1),g("p",Ta,k(e.message),1),g("div",La,[g("button",{class:"confirm-dialog-btn confirm-dialog-btn-cancel",type:"button",onClick:s[0]||(s[0]=i=>n.$emit("cancel"))},k(e.cancelLabel||"Cancel"),1),g("button",{class:U(["confirm-dialog-btn confirm-dialog-btn-confirm",{"is-danger":e.danger}]),type:"button",onClick:s[1]||(s[1]=i=>n.$emit("confirm"))},k(e.confirmLabel||"Confirm"),3)])],8,_a)])):L("",!0)]))}}),Ma=J(Ia,[["__scopeId","data-v-de94025d"]]),Sa={key:0,class:"diff-viewer-sidebar"},Pa={class:"diff-viewer-sidebar-header"},Aa={class:"diff-viewer-sidebar-title"},Ea={class:"diff-viewer-sidebar-count"},Fa={class:"diff-viewer-sidebar-list"},Ba=["data-active","onClick"],Ra=["data-operation"],Oa={class:"diff-viewer-file-label"},Ha={key:0,class:"diff-viewer-file-delta"},Da={class:"diff-viewer-main"},Wa={class:"diff-viewer-toolbar"},ja={class:"diff-viewer-title-wrap"},qa={class:"diff-viewer-title"},Na={class:"diff-viewer-subtitle"},za={key:0},Ua={class:"diff-viewer-toolbar-actions"},Va=["aria-label"],Ka={key:0,class:"diff-viewer-empty"},Ga={class:"diff-viewer-empty-title"},Za={class:"diff-viewer-empty-text"},Ja={key:1,class:"diff-viewer-panel"},Xa={class:"diff-viewer-meta"},Ya={class:"diff-viewer-language"},Qa={class:"diff-viewer-lines"},ei=["data-kind"],ti={class:"diff-viewer-line-number"},ni={class:"diff-viewer-line-number"},si={class:"diff-viewer-line-marker"},oi=["innerHTML"],ai={class:"diff-viewer-mobile-sheet-header"},ii={class:"diff-viewer-sidebar-title"},ri={class:"diff-viewer-sidebar-count"},li={class:"diff-viewer-mobile-sheet-list"},ci=["data-active","onClick"],ui=["data-operation"],di={class:"diff-viewer-file-label"},fi={key:0,class:"diff-viewer-file-delta"},hi=ee({__name:"DiffViewer",props:{change:{},changes:{},lines:{},isMobile:{type:Boolean},isFileListOpen:{type:Boolean},cwd:{}},emits:["close","select-change","toggle-file-list","close-file-list"],setup(e){const n=e,{t:s}=se();function i(u){return u.replace(/&/gu,"&amp;").replace(/</gu,"&lt;").replace(/>/gu,"&gt;").replace(/"/gu,"&quot;").replace(/'/gu,"&#39;")}const a=M(()=>u=>tn(u,s)),d=M(()=>u=>Ms(u,s)),c=M(()=>u=>je(u,n.cwd));return(u,h)=>(r(),G(gs,{to:"body"},[e.change?(r(),l("div",{key:0,class:"diff-viewer-backdrop",onClick:h[5]||(h[5]=m=>u.$emit("close"))},[g("div",{class:"diff-viewer-shell",onClick:h[4]||(h[4]=De(()=>{},["stop"]))},[e.isMobile?L("",!0):(r(),l("aside",Sa,[g("div",Pa,[g("p",Aa,k(C(s)("Changed files")),1),g("p",Ea,k(d.value(e.changes.length)),1)]),g("div",Fa,[(r(!0),l(E,null,q(e.changes,m=>(r(),l("button",{key:`diff-viewer:${C(Q)(m)}`,type:"button",class:"diff-viewer-file-button","data-active":C(Q)(m)===C(Q)(e.change),onClick:y=>u.$emit("select-change",m)},[g("span",{class:"file-change-badge","data-operation":C(Jt)(m)},k(a.value(m)),9,Ra),g("span",Oa,[ue(k(c.value(m.path))+" ",1),m.movedToPath?(r(),l(E,{key:0},[ue(" → "+k(c.value(m.movedToPath)),1)],64)):L("",!0)]),C(Le)(m)?(r(),l("span",Ha,k(C(Le)(m)),1)):L("",!0)],8,Ba))),128))])])),g("section",Da,[g("div",Wa,[g("div",ja,[g("p",qa,[ue(k(c.value(e.change.path))+" ",1),e.change.movedToPath?(r(),l(E,{key:0},[ue(" → "+k(c.value(e.change.movedToPath)),1)],64)):L("",!0)]),g("p",Na,[ue(k(a.value(e.change))+" ",1),C(Le)(e.change)?(r(),l("span",za," · "+k(C(Le)(e.change)),1)):L("",!0)])]),g("div",Ua,[e.isMobile?(r(),l("button",{key:0,type:"button",class:"diff-viewer-mobile-files-button",onClick:h[0]||(h[0]=m=>u.$emit("toggle-file-list"))},k(d.value(e.changes.length)),1)):L("",!0),g("button",{class:"image-modal-close diff-viewer-close",type:"button","aria-label":C(s)("Close diff viewer"),onClick:h[1]||(h[1]=m=>u.$emit("close"))},[Z(ps,{class:"icon-svg"})],8,Va)])]),C($a)(e.change)?(r(),l("div",Ja,[g("div",Xa,[g("span",Ya,k(C(va)(e.change)||"diff"),1)]),g("div",Qa,[(r(!0),l(E,null,q(e.lines,m=>(r(),l("div",{key:m.key,class:"diff-viewer-line","data-kind":m.kind},[g("span",ti,k(m.oldLine??""),1),g("span",ni,k(m.newLine??""),1),g("span",si,k(C(xa)(m)),1),g("code",{class:"diff-viewer-line-code",innerHTML:i(m.text)||" "},null,8,oi)],8,ei))),128))])])):(r(),l("div",Ka,[g("p",Ga,k(C(s)("No diff available")),1),g("p",Za,k(C(s)("This summary was restored from the final answer text, but the thread history does not include patch diff content for this file.")),1)]))]),Z(Wo,{name:"diff-viewer-sheet"},{default:Re(()=>[e.isMobile&&e.isFileListOpen?(r(),l("div",{key:0,class:"diff-viewer-mobile-sheet-backdrop",onClick:h[3]||(h[3]=m=>u.$emit("close-file-list"))},[g("div",{class:"diff-viewer-mobile-sheet",onClick:h[2]||(h[2]=De(()=>{},["stop"]))},[h[6]||(h[6]=g("div",{class:"diff-viewer-mobile-sheet-handle","aria-hidden":"true"},null,-1)),g("div",ai,[g("p",ii,k(C(s)("Changed files")),1),g("p",ri,k(d.value(e.changes.length)),1)]),g("div",li,[(r(!0),l(E,null,q(e.changes,m=>(r(),l("button",{key:`diff-viewer-sheet:${C(Q)(m)}`,type:"button",class:"diff-viewer-file-button","data-active":C(Q)(m)===C(Q)(e.change),onClick:y=>u.$emit("select-change",m)},[g("span",{class:"file-change-badge","data-operation":C(Jt)(m)},k(a.value(m)),9,ui),g("span",di,[ue(k(c.value(m.path))+" ",1),m.movedToPath?(r(),l(E,{key:0},[ue(" → "+k(c.value(m.movedToPath)),1)],64)):L("",!0)]),C(Le)(m)?(r(),l("span",fi,k(C(Le)(m)),1)):L("",!0)],8,ci))),128))])])])):L("",!0)]),_:1})])])):L("",!0)]))}}),mi=J(hi,[["__scopeId","data-v-7ec6502b"]]),gi={},pi={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function vi(e,n){return r(),l("svg",pi,[...n[0]||(n[0]=[g("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 14L4 9l5-5m-5 5h11a4 4 0 0 1 0 8H4"},null,-1)])])}const Xt=J(gi,[["render",vi]]),ki={class:"file-change-summary-label"},yi={class:"file-change-summary-status"},bi=["data-tone"],wi={class:"file-change-panel-inner"},$i={class:"file-change-list"},xi=["data-operation","title"],_i={class:"file-change-path-group"},Ci=["title","onClick"],Ti={key:0,class:"file-change-arrow"},Li=["title","onClick"],Ii={key:0,class:"file-change-delta"},Mi=["data-tone"],Si=["title","aria-label","onClick"],Pi={key:0,class:"file-change-actions"},Ai={key:0,class:"file-change-action-error"},Ei=["disabled","title","aria-label"],Fi=ee({__name:"FileChangeSummaryBlock",props:{summary:{},expanded:{type:Boolean},inline:{type:Boolean},cwd:{},actionable:{type:Boolean},actionStatus:{},actionErrorText:{},nextAction:{},actionLabel:{}},emits:["toggle","open-diff","request-action","request-file-action"],setup(e){const n=e,{t:s}=se(),i=M(()=>u=>tn(u,s)),a=M(()=>u=>ma(u,s)),d=M(()=>u=>je(u,n.cwd)),c=M(()=>u=>`${s("Undo")} ${je(u.path,n.cwd)}`);return(u,h)=>e.summary?(r(),l("section",{key:0,class:U(["file-change-summary-block",{"file-change-summary-block-inline":e.inline}])},[g("button",{type:"button",class:U(["file-change-summary-row",{"file-change-summary-row-expanded":e.expanded}]),onClick:h[0]||(h[0]=m=>u.$emit("toggle"))},[g("span",{class:U(["file-change-chevron",{"file-change-chevron-open":e.expanded}])},"▶",2),g("span",ki,k(a.value(e.summary)),1),g("span",yi,[(r(!0),l(E,null,q(C(ga)(e.summary),m=>(r(),l("span",{key:`summary-status:${e.summary.turnId}:${m.tone}:${m.label}`,class:"file-change-signed-count","data-tone":m.tone},k(m.label),9,bi))),128))])],2),g("div",{class:U(["file-change-panel",{"file-change-panel-visible":e.expanded}])},[g("div",wi,[g("ul",$i,[(r(!0),l(E,null,q(e.summary.changes,m=>(r(),l("li",{key:`file-change:${e.summary.turnId}:${m.path}:${m.movedToPath||""}`,class:"file-change-item"},[g("span",{class:"file-change-badge","data-operation":C(Jt)(m),title:i.value(m)},k(C(da)(m)),9,xi),g("span",_i,[g("button",{type:"button",class:"file-change-path-button",title:m.path,onClick:y=>u.$emit("open-diff",m)},k(d.value(m.path)),9,Ci),m.movedToPath?(r(),l("span",Ti,"→")):L("",!0),m.movedToPath?(r(),l("button",{key:1,type:"button",class:"file-change-path-button",title:m.movedToPath,onClick:y=>u.$emit("open-diff",m)},k(d.value(m.movedToPath)),9,Li)):L("",!0)]),m.addedLineCount>0||m.removedLineCount>0?(r(),l("span",Ii,[(r(!0),l(E,null,q(C(fa)(m),y=>(r(),l("span",{key:`change-delta:${e.summary.turnId}:${m.path}:${y.tone}:${y.label}`,class:"file-change-signed-count","data-tone":y.tone},k(y.label),9,Mi))),128))])):L("",!0),e.actionable?(r(),l("button",{key:1,type:"button",class:"file-change-file-undo-button",title:c.value(m),"aria-label":c.value(m),onClick:y=>u.$emit("request-file-action",m)},[Z(Xt,{class:"icon-svg file-change-action-icon"})],8,Si)):L("",!0)]))),128))]),e.actionable?(r(),l("div",Pi,[e.actionErrorText?(r(),l("p",Ai,k(e.actionErrorText),1)):L("",!0),g("button",{type:"button",class:"file-change-action-button",disabled:e.actionStatus==="undoing"||e.actionStatus==="redoing",title:e.nextAction==="redo"?"Redo file changes from this turn":"Undo file changes from this turn","aria-label":e.nextAction==="redo"?"Redo file changes from this turn":"Undo file changes from this turn",onClick:h[1]||(h[1]=m=>u.$emit("request-action",e.nextAction))},[Z(Xt,{class:U(["icon-svg file-change-action-icon",{"file-change-action-icon-redo":e.nextAction==="redo"}])},null,8,["class"]),ue(" "+k(e.actionLabel),1)],8,Ei)])):L("",!0)])],2)],2)):L("",!0)}}),is=J(Fi,[["__scopeId","data-v-851281a0"]]),Bi=ee({__name:"FileLinkContextMenu",props:{visible:{type:Boolean},x:{},y:{},browseUrl:{},editUrl:{}},emits:["close"],setup(e,{emit:n}){const s=e,i=n,a=W(null),d=M(()=>({left:`${String(s.x)}px`,top:`${String(s.y)}px`}));function c(){i("close")}function u(){const T=s.browseUrl;c(),!(!T||T==="#")&&window.open(T,"_blank","noopener,noreferrer")}function h(){const T=s.editUrl;c(),!(!T||T==="#")&&window.open(T,"_blank","noopener,noreferrer")}async function m(){const T=s.browseUrl;if(c(),!(!T||T==="#"))try{await zt(T)}catch{}}function y(T){if(!s.visible)return;const P=a.value;if(!P){c();return}const w=T.target;w instanceof Node&&P.contains(w)||c()}function I(){c()}function F(T){T.key==="Escape"&&c()}return de(()=>s.visible,T=>{T?(window.addEventListener("pointerdown",y,!0),window.addEventListener("blur",I),window.addEventListener("keydown",F,!0)):(window.removeEventListener("pointerdown",y,!0),window.removeEventListener("blur",I),window.removeEventListener("keydown",F,!0))}),en(()=>{window.removeEventListener("pointerdown",y,!0),window.removeEventListener("blur",I),window.removeEventListener("keydown",F,!0)}),(T,P)=>e.visible?(r(),l("div",{key:0,ref_key:"menuRef",ref:a,class:"file-link-context-menu",style:Ze(d.value),onClick:P[0]||(P[0]=De(()=>{},["stop"]))},[g("button",{type:"button",class:"file-link-context-menu-item",onClick:u}," Open link "),g("button",{type:"button",class:"file-link-context-menu-item",onClick:m}," Copy link "),e.editUrl?(r(),l("button",{key:0,type:"button",class:"file-link-context-menu-item",onClick:h}," Edit file ")):L("",!0)],4)):L("",!0)}}),Ri=J(Bi,[["__scopeId","data-v-9cda1d9d"]]),Oi=12e3,Hi=240;function Di(e,{streaming:n,truncateStreaming:s=!0,maxChars:i=Oi,maxLines:a=Hi}){if(!s)return e;let d=e,c=!1;if(i>0&&d.length>i&&(d=d.slice(-i),c=!0),a>0){const u=d.split(/\r?\n/);u.length>a&&(d=u.slice(-a).join(`
23
23
  `),c=!0)}return c?`...
24
24
  ${d}`:d}const Wi={class:"conversation-item conversation-item-overlay"},ji={class:"message-row"},qi={class:"message-stack"},Ni={class:"live-overlay-inline","aria-live":"polite"},zi={class:"live-overlay-title-row"},Ui={key:0,class:"live-overlay-spinner","aria-hidden":"true"},Vi=["aria-expanded"],Ki={class:"live-overlay-label"},Gi={class:"live-overlay-toggle","aria-hidden":"true"},Zi={key:2,class:"live-overlay-label"},Ji={key:0,class:"live-overlay-reasoning"},Xi={key:1,class:"live-overlay-error"},Yi=["href"],Qi=ee({__name:"LiveOverlayItem",props:{overlay:{},feedbackMailto:{}},setup(e){const n=e,{buildFeedbackMailto:s,recordVisibleFailure:i}=vs(),{t:a}=se(),d=W(!0);function c(){d.value=!d.value}const u=M(()=>{var m;return Di(((m=n.overlay)==null?void 0:m.reasoningText)??"",{streaming:!0})});function h(m,y){i(y);const I=m.currentTarget;I instanceof HTMLAnchorElement&&(I.href=s())}return(m,y)=>{var I,F,T,P,w,B;return r(),l("li",Wi,[g("div",ji,[g("div",qi,[g("article",Ni,[g("div",zi,[(I=e.overlay)!=null&&I.errorText?L("",!0):(r(),l("span",Ui)),(F=e.overlay)!=null&&F.reasoningText?(r(),l("button",{key:1,type:"button",class:"live-overlay-heading","aria-expanded":d.value,onClick:c},[g("span",Ki,k((T=e.overlay)==null?void 0:T.activityLabel),1),g("span",Gi,k(d.value?"▾":"▸"),1)],8,Vi)):(r(),l("p",Zi,k((P=e.overlay)==null?void 0:P.activityLabel),1))]),(w=e.overlay)!=null&&w.reasoningText&&d.value?(r(),l("p",Ji,k(u.value),1)):L("",!0),(B=e.overlay)!=null&&B.errorText?(r(),l("div",Xi,[g("span",null,k(e.overlay.errorText),1),g("a",{class:"live-overlay-feedback",href:e.feedbackMailto,onClick:y[0]||(y[0]=O=>h(O,e.overlay.errorText))},k(C(a)("Send feedback")),9,Yi)])):L("",!0)])])])])}}}),er=J(Qi,[["__scopeId","data-v-b69a0020"]]),tr={},nr={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function sr(e,n){return r(),l("svg",nr,[...n[0]||(n[0]=[g("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2zm-4 4a2 2 0 0 1-2-2V8m4 8h10"},null,-1)])])}const or=J(tr,[["render",sr]]),ar=["data-role"],ir=["aria-label","title"],rr={key:0,class:"message-rollback-label"},lr=["aria-label","title"],cr={class:"message-fork-label"},ur=["data-copied","aria-label","title"],dr={key:0,class:"message-copy-label"},fr=ee({__name:"MessageToolbar",props:{role:{},showEdit:{type:Boolean,default:!1},showFork:{type:Boolean,default:!1},showCopy:{type:Boolean,default:!1},copied:{type:Boolean,default:!1}},emits:["edit","fork","copy"],setup(e){const{t:n}=se();return(s,i)=>e.showEdit||e.showFork||e.showCopy?(r(),l("div",{key:0,class:"message-toolbar","data-role":e.role},[e.showEdit?(r(),l("button",{key:0,type:"button",class:"message-rollback-button","aria-label":C(n)("Rollback this message"),title:C(n)("Rollback this message"),onClick:i[0]||(i[0]=a=>s.$emit("edit"))},[Z(Xt,{class:"icon-svg message-rollback-icon"}),e.role!=="user"?(r(),l("span",rr,k(C(n)("Rollback")),1)):L("",!0)],8,ir)):L("",!0),e.showFork?(r(),l("button",{key:1,type:"button",class:"message-fork-button","aria-label":C(n)("Fork thread from this response"),title:C(n)("Fork thread from this response"),onClick:i[1]||(i[1]=a=>s.$emit("fork"))},[Z(jo,{class:"icon-svg message-fork-icon"}),g("span",cr,k(C(n)("Fork")),1)],8,lr)):L("",!0),e.showCopy?(r(),l("button",{key:2,type:"button",class:"message-copy-button","data-copied":e.copied,"aria-label":e.copied?C(n)("Response copied"):C(n)("Copy response"),title:e.copied?C(n)("Response copied"):C(n)("Copy response"),onClick:i[2]||(i[2]=a=>s.$emit("copy"))},[Z(or,{class:"icon-svg message-copy-icon"}),e.role!=="user"?(r(),l("span",dr,k(e.copied?"Copied":"Copy"),1)):L("",!0)],8,ur)):L("",!0)],8,ar)):L("",!0)}}),hr=J(fr,[["__scopeId","data-v-59a7a725"]]),mr="codex-web-local.process-fold.v1",rs="codex:web-local:process-fold";function qt(){return typeof localStorage>"u"?"auto":localStorage.getItem(mr)==="expanded"?"expanded":"auto"}function gr(e){const n=s=>e(s.detail);return window.addEventListener(rs,n),()=>window.removeEventListener(rs,n)}const pr=["aria-expanded"],vr={class:"process-fold-label"},kr={class:"process-fold-toggle","aria-hidden":"true"},yr={key:0,class:"process-fold-body"},br=ee({__name:"ProcessFold",props:{label:{},running:{type:Boolean},hasOutsideContent:{type:Boolean}},setup(e){const n=e,s=W(qt()==="expanded"||!n.hasOutsideContent),i=W(!1);let a=!1;const d=gr(()=>{i.value=!1,qt()==="expanded"?s.value=!0:!n.running&&n.hasOutsideContent&&(s.value=!1)});de(()=>n.running,u=>{const h=a;a=u,u?(h||(i.value=!1),i.value||(s.value=!0)):h&&!i.value&&n.hasOutsideContent&&qt()!=="expanded"&&(s.value=!1)},{immediate:!0}),en(()=>d());function c(){i.value=!0,s.value=!s.value}return(u,h)=>(r(),l("div",{class:U(["process-fold",{"process-fold--open":s.value,"process-fold--running":e.running}])},[g("button",{type:"button",class:"process-fold-header","aria-expanded":s.value,onClick:c},[g("span",vr,k(e.label),1),g("span",kr,k(s.value?"▾":"▸"),1)],8,pr),s.value?(r(),l("div",yr,[be(u.$slots,"default",{},void 0)])):L("",!0)],2))}}),wr=J(br,[["__scopeId","data-v-de9b3329"]]),$r=["aria-label"],xr=["data-turn","aria-label","onClick"],_r={class:"question-jump-preview-text"},Cr=2,Nt="#3b82f6",Tr=ee({__name:"QuestionJumpBar",props:{anchors:{},activeTurn:{}},emits:["jump"],setup(e,{emit:n}){const s=e,i=n,{t:a}=se(),d=W(null),c=W(-1),u=W("0px"),h=M(()=>{const w=c.value;return w<0?null:s.anchors[w]??null});function m(w){var ne;const B=s.activeTurn===((ne=s.anchors[w])==null?void 0:ne.turn),O={};if(c.value<0)return O.width=B?"18px":"12px",O.background=B?Nt:void 0,O;const Y=Math.abs(w-c.value);return O.width=Y===0?"32px":Y===1?"20px":Y===2?"14px":B?"18px":"12px",O.background=Y===0?Nt:Y===1?"rgba(59,130,246,0.6)":Y===2?"rgba(59,130,246,0.35)":B?Nt:void 0,O.transitionDelay=`${Y*20}ms`,O}function y(w){const B=d.value;if(!B)return-1;const O=Array.from(B.querySelectorAll(".question-jump-item"));let Y=-1,ne=Number.POSITIVE_INFINITY;for(let H=0;H<O.length;H+=1){const we=O[H].getBoundingClientRect(),Ie=we.top+we.height/2,te=Math.abs(w-Ie);te<ne&&(ne=te,Y=H)}return Y}function I(w){var Ie;const B=y(w.clientY);if(B<0)return;c.value=B;const O=d.value;if(!O)return;const ne=(Ie=Array.from(O.querySelectorAll(".question-jump-item"))[B])==null?void 0:Ie.getBoundingClientRect(),H=O.getBoundingClientRect();if(!ne)return;const we=ne.top+ne.height/2;u.value=`${we-H.top}px`}function F(){c.value=-1}function T(w){const B=y(w.clientY),O=B>=0?s.anchors[B]:null;O&&i("jump",O.turn)}function P(w){i("jump",w.turn)}return(w,B)=>e.anchors.length>=Cr?(r(),l("nav",{key:0,class:"question-jump-bar","aria-label":C(a)("Question navigation")},[g("div",{ref_key:"trackRef",ref:d,class:"question-jump-track",onMousemove:I,onMouseleave:F,onMousedown:T},[(r(!0),l(E,null,q(e.anchors,(O,Y)=>(r(),l("button",{key:O.turn,type:"button",class:"question-jump-item","data-turn":O.turn,"aria-label":C(a)("Jump to question {n}",{n:O.turn+1}),onMousedown:B[0]||(B[0]=De(()=>{},["prevent"])),onClick:ne=>P(O)},[g("span",{class:"question-jump-dot",style:Ze(m(Y))},null,4)],40,xr))),128))],544),h.value?(r(),l("div",{key:0,class:"question-jump-preview",role:"tooltip",style:Ze({top:u.value})},[g("span",_r,k(h.value.text),1)],4)):L("",!0)],8,$r)):L("",!0)}}),Lr=J(Tr,[["__scopeId","data-v-96d087d4"]]),Ir=["data-state"],Mr=["aria-expanded"],Sr={class:"reasoning-block-title"},Pr={class:"reasoning-block-toggle","aria-hidden":"true"},Ar={key:0,class:"reasoning-block-body"},Er={key:0,class:"reasoning-block-summary"},Fr=["innerHTML"],Br=ee({__name:"ReasoningBlock",props:{message:{},expanded:{type:Boolean},contentHtml:{}},emits:["toggle"],setup(e){const n=e,{t:s}=se(),i=M(()=>{var d;return(((d=n.message.reasoning)==null?void 0:d.summary)??[]).map(c=>c.trim()).filter(Boolean).join(`
25
- `).trim()});return(a,d)=>(r(),l("div",{class:"reasoning-block","data-state":e.expanded?"expanded":"collapsed"},[g("button",{type:"button",class:"reasoning-block-header","aria-expanded":e.expanded,onClick:d[0]||(d[0]=c=>a.$emit("toggle"))},[g("span",Sr,k(C(s)("Thinking process")),1),g("span",Pr,k(e.expanded?"▾":"▸"),1)],8,Mr),e.expanded?(r(),l("div",Ar,[i.value?(r(),l("p",Er,k(i.value),1)):L("",!0),g("div",{class:"reasoning-block-content message-card",innerHTML:e.contentHtml},null,8,Fr)])):L("",!0)],8,Ir))}}),ls=J(Br,[["__scopeId","data-v-5fa90230"]]),Rr=new Set(["read_file","ls","grep","glob","web_fetch","read_skill","code_index","connect_tool_source"]),Or=new Set(["write_file","edit_file","multi_edit","move_file","delete_range","delete_symbol","notebook_edit"]),Hr=new Set(["task","run_skill","explore","research","review","security_review"]);function Dr(e){var s;const n=((s=e.toolCall)==null?void 0:s.tool)??"";return Rr.has(n)?"readonly":Or.has(n)?"modify":Hr.has(n)?"delegate":null}const Wr=2;function jr(e){var d;const n=[];let s=[],i=null;const a=()=>{if(i!==null&&s.length>=Wr)n.push({type:"batch",kind:i,messages:s});else for(const c of s)n.push({type:"tool",message:c});s=[],i=null};for(const c of e){if(c.messageType!=="toolCall"||((d=c.toolCall)==null?void 0:d.status)==="inProgress"){a(),n.push({type:"tool",message:c});continue}const u=Dr(c);if(u===null){a(),n.push({type:"tool",message:c});continue}i!==null&&i!==u&&a(),i=u,s.push(c)}return a(),n}function qr(e,n,s){const{t:i}=s;if(e==="readonly"){const a=n.filter(h=>{var m,y;return((m=h.toolCall)==null?void 0:m.tool)==="read_file"||((y=h.toolCall)==null?void 0:y.tool)==="ls"}).length,d=n.filter(h=>{var y;const m=((y=h.toolCall)==null?void 0:y.tool)??"";return m==="grep"||m==="glob"||m==="web_fetch"||m==="code_index"}).length,c=n.length-a-d,u=[];return a>0&&u.push(i("Read {n} files",{n:a})),d>0&&u.push(i("Search {n} files",{n:d})),c>0&&u.push(i("{n} read calls",{n:c})),u.join(" · ")}return e==="modify"?i("Modified {n} files",{n:n.length}):e==="delegate"?i("Delegated {n} tasks",{n:n.length}):i("Explored {n} items",{n:n.length})}const Nr={class:"message-row","data-role":"system"},zr={class:"message-stack","data-role":"system"},Ur=["title"],Vr={key:0,class:"tool-call-server"},Kr={class:"tool-call-name"},Gr={class:"tool-call-status"},Zr={key:0,class:"work-block-spinner","aria-hidden":"true"},Jr={key:1,class:"tool-call-status-icon","aria-hidden":"true"},Xr={key:2,class:"tool-call-status-icon","aria-hidden":"true"},Yr=ee({__name:"ToolCallRow",props:{message:{}},setup(e){const n=e,{t:s}=se(),i=M(()=>{const c=n.message.toolCall;if(!c)return"";switch(c.status){case"inProgress":return s("Running");case"failed":return s("Failed");default:return s("Done")}}),a=M(()=>{var c;switch((c=n.message.toolCall)==null?void 0:c.status){case"inProgress":return"tool-call-running";case"failed":return"tool-call-error";default:return"tool-call-ok"}}),d=M(()=>{const c=n.message.toolCall;if(!c)return"";const u=[];return c.server&&u.push(c.server),u.push(c.tool),c.error&&u.push(c.error),typeof c.durationMs=="number"&&c.durationMs>=0&&u.push(`${c.durationMs}ms`),u.join(" · ")});return(c,u)=>{var h,m,y,I;return r(),l("div",Nr,[g("div",zr,[g("div",{class:U(["tool-call-block",a.value]),title:d.value},[u[0]||(u[0]=g("span",{class:"tool-call-icon","aria-hidden":"true"},"🛠",-1)),(h=e.message.toolCall)!=null&&h.server?(r(),l("span",Vr,k(e.message.toolCall.server),1)):L("",!0),g("code",Kr,k(((m=e.message.toolCall)==null?void 0:m.tool)||e.message.text||"(tool)"),1),g("span",Gr,[((y=e.message.toolCall)==null?void 0:y.status)==="inProgress"?(r(),l("span",Zr)):((I=e.message.toolCall)==null?void 0:I.status)==="completed"?(r(),l("span",Jr,"✓")):(r(),l("span",Xr,"✗")),ue(" "+k(i.value),1)])],10,Ur)])])}}}),Yt=J(Yr,[["__scopeId","data-v-e25278a7"]]),Qr=["aria-expanded","title"],el={class:"tool-batch-toggle","aria-hidden":"true"},tl={class:"tool-batch-label"},nl={class:"tool-batch-count"},sl={key:0,class:"tool-batch-body"},ol=ee({__name:"ToolBatchBlock",props:{kind:{},messages:{}},setup(e){const n=e,{t:s}=se(),i=W(!1),a=M(()=>qr(n.kind,n.messages,{t:s})),d=M(()=>n.messages.map(c=>{var u;return((u=c.toolCall)==null?void 0:u.tool)??""}).join(" · "));return(c,u)=>(r(),l("div",{class:U(["tool-batch-block",{"tool-batch-block--open":i.value}])},[g("button",{type:"button",class:"tool-batch-head","aria-expanded":i.value,title:d.value,onClick:u[0]||(u[0]=h=>i.value=!i.value)},[g("span",el,k(i.value?"▾":"▸"),1),u[1]||(u[1]=g("span",{class:"tool-batch-icon","aria-hidden":"true"},"🛠",-1)),g("span",tl,k(a.value),1),g("span",nl,k(e.messages.length),1)],8,Qr),i.value?(r(),l("div",sl,[(r(!0),l(E,null,q(e.messages,h=>(r(),G(Yt,{key:h.id,message:h},null,8,["message"]))),128))])):L("",!0)],2))}}),al=J(ol,[["__scopeId","data-v-908995a9"]]),il=["data-turn-key"],rl={key:0,class:"conversation-turn-request","aria-label":"User request"},ll={class:"conversation-turn-items"},cl={key:1,class:"conversation-turn-process","aria-label":"Turn process"},ul=["aria-expanded","aria-label"],dl={class:"conversation-turn-process-count"},fl={key:1,class:"conversation-turn-process-heading"},hl={key:2,class:"conversation-turn-items conversation-turn-process-items"},ml={key:2,class:"conversation-turn-final","aria-label":"Assistant final response"},gl={class:"conversation-turn-items"},pl=ee({__name:"ThreadTurn",props:{turnKey:{},request:{},processItems:{default:()=>[]},finalItem:{},fileChangeAnchorIds:{default:()=>[]},warm:{},warmItems:{default:()=>[]}},setup(e){const n=e,{t:s}=se(),i=W(!0),a=M(()=>n.processItems.length+n.fileChangeAnchorIds.length),d=M(()=>!!n.finalItem);return de(a,(c,u)=>{c>u&&(i.value=!0)}),(c,u)=>e.warm?(r(),l(E,{key:0},[be(c.$slots,"warm-card",{warm:e.warm},void 0),(r(!0),l(E,null,q(e.warmItems,h=>be(c.$slots,"default",{key:h.message.id,item:h,section:"warm"},void 0)),128))],64)):(r(),l("li",{key:1,class:"conversation-turn","data-turn-key":e.turnKey},[e.request?(r(),l("section",rl,[g("ol",ll,[be(c.$slots,"default",{item:e.request,section:"request"},void 0)])])):L("",!0),a.value>0?(r(),l("section",cl,[d.value?(r(),l("button",{key:0,class:"conversation-turn-process-heading conversation-turn-process-toggle",type:"button","aria-expanded":i.value,"aria-label":i.value?C(s)("Collapse turn process"):C(s)("Expand turn process"),onClick:u[0]||(u[0]=h=>i.value=!i.value)},[i.value?(r(),G(qo,{key:0,class:"conversation-turn-process-toggle-icon"})):(r(),G(ks,{key:1,class:"conversation-turn-process-toggle-icon"})),g("span",null,k(C(s)("Turn process")),1),g("span",dl,k(C(s)("{n} process items",{n:a.value})),1)],8,ul)):(r(),l("div",fl,k(C(s)("Turn process")),1)),i.value?(r(),l("ol",hl,[(r(!0),l(E,null,q(e.processItems,h=>be(c.$slots,"default",{key:h.message.id,item:h,section:"process"},void 0)),128)),(r(!0),l(E,null,q(e.fileChangeAnchorIds,h=>(r(),l("li",{key:`file-change-${h}`,class:"conversation-turn-row conversation-turn-file-change"},[be(c.$slots,"file-change",{anchorMessageId:h},void 0)]))),128))])):L("",!0)])):L("",!0),e.finalItem?(r(),l("section",ml,[g("ol",gl,[be(c.$slots,"default",{item:e.finalItem,section:"final"},void 0)])])):L("",!0)],8,il))}}),vl=J(pl,[["__scopeId","data-v-098ed81a"]]),kl=["aria-expanded"],yl={class:"warm-turn__preview"},bl={key:0,class:"warm-turn__meta"},wl={class:"warm-turn__content"},$l={key:1,class:"warm-turn__assistant"},xl=ee({__name:"WarmTurnCard",props:{userText:{},assistantPreview:{},toolCount:{},expanded:{type:Boolean}},emits:["toggle"],setup(e,{emit:n}){const s=n,{t:i}=se();function a(){s("toggle")}return(d,c)=>(r(),l("div",{class:U(["warm-turn",{"warm-turn--expanded":e.expanded}])},[g("button",{type:"button",class:"warm-turn__head","aria-expanded":e.expanded,onClick:a},[Z(ks,{class:U(["warm-turn__chevron",{"warm-turn__chevron--open":e.expanded}])},null,8,["class"]),g("span",yl,k(e.userText),1),e.toolCount>0?(r(),l("span",bl,k(C(i)("{n} tools",{n:e.toolCount})),1)):L("",!0)],8,kl),g("div",wl,[e.expanded?be(d.$slots,"default",{},void 0,!0,0):e.assistantPreview?(r(),l("div",$l,k(e.assistantPreview),1)):L("",!0)])],2))}}),_l=J(xl,[["__scopeId","data-v-7e3ebbc7"]]),Cl=["aria-expanded"],Tl=["title"],Ll={class:"work-block-command"},Il={class:"work-block-status"},Ml={key:0,class:"work-block-spinner","aria-hidden":"true"},Sl={key:1,class:"work-block-status-icon","aria-hidden":"true"},Pl={key:2,class:"work-block-status-icon","aria-hidden":"true"},Al={class:"work-block-output-inner"},El=["textContent"],Fl=["textContent"],Bl={key:0,class:"work-block-permission-hint",role:"note"},Rl=ee({__name:"WorkBlockItem",props:{command:{},stepIndex:{},expanded:{type:Boolean},compact:{type:Boolean},outputCondensed:{type:Boolean}},emits:["toggle"],setup(e){const n=e,{t:s}=se(),i=M(()=>{var h,m;const u=(h=n.command.commandExecution)==null?void 0:h.status;return u==="inProgress"?"cmd-status-running":u==="completed"&&((m=n.command.commandExecution)==null?void 0:m.exitCode)===0?"cmd-status-ok":"cmd-status-error"}),a=M(()=>{const u=n.command.commandExecution;if(!u)return"";switch(u.status){case"inProgress":return s("Running");case"completed":return u.exitCode===0?s("Done"):`${s("Exit")} ${u.exitCode??"?"}`;case"failed":return s("Failed");case"declined":return s("Declined");case"interrupted":return s("Stopped");default:return""}}),d=[/access to the path .* is denied/iu,/access is denied/iu,/permission denied/iu,/not permitted/iu,/EACCES|EPERM/iu,/denied access|deny access/iu,/拒绝访问/iu,/没有权限/iu,/权限不足/iu,/要求提权|需要提权|require_escalated/iu],c=M(()=>{const u=n.command.commandExecution;if(!u||!(u.status==="failed"||u.status==="declined"||typeof u.exitCode=="number"&&u.exitCode!==0))return"";const m=u.aggregatedOutput??"";return!m||!d.some(y=>y.test(m))?"":s("Command blocked by a permission or sandbox restriction; no approval prompt was shown. Check the approval policy or trusted directories if you expected one.")});return(u,h)=>{var m,y,I,F,T,P;return r(),l("div",{class:U(["work-block",[i.value,{"work-block-expanded":e.expanded,"work-block-compact":e.compact}]])},[g("button",{type:"button",class:"work-block-header","aria-expanded":e.expanded,onClick:h[0]||(h[0]=w=>u.$emit("toggle"))},[g("span",{class:"work-step-dot",title:`${C(s)("Step")} ${String(e.stepIndex+1)}`},k(e.stepIndex+1),9,Tl),g("code",Ll,k(C(s)("Command")),1),g("span",Il,[((m=e.command.commandExecution)==null?void 0:m.status)==="inProgress"?(r(),l("span",Ml)):((y=e.command.commandExecution)==null?void 0:y.status)==="completed"&&((I=e.command.commandExecution)==null?void 0:I.exitCode)===0?(r(),l("span",Sl,"✓")):((F=e.command.commandExecution)==null?void 0:F.status)==="failed"?(r(),l("span",Pl,"✗")):L("",!0),ue(" "+k(a.value),1)])],8,Cl),g("div",{class:U(["work-block-output-wrap",{"work-block-output-visible":e.expanded}])},[g("div",Al,[g("pre",{class:"work-block-output-command",textContent:k(((T=e.command.commandExecution)==null?void 0:T.command)||"(command)")},null,8,El),g("pre",{class:U(["work-block-output",{"cmd-output-condensed":e.outputCondensed}]),textContent:k(((P=e.command.commandExecution)==null?void 0:P.aggregatedOutput)||"(no output)")},null,10,Fl)])],2),c.value?(r(),l("p",Bl,k(c.value),1)):L("",!0)],2)}}}),cs=J(Rl,[["__scopeId","data-v-e9fdf684"]]),Ol=2;function us(e){const n=e.messageType;return n==="commandExecution"||n==="toolCall"}function Hl(e){var s,i;return(((s=e.commandExecution)==null?void 0:s.status)??"")==="inProgress"||(((i=e.toolCall)==null?void 0:i.status)??"")==="inProgress"?!0:(e.messageType??"").endsWith(".live")}function Dl(e){const n=[];let s=[],i="";const a=()=>{s.length>0&&(n.push(s),s=[])};for(const u of e){const h=u.turnId??"",m=us(u)&&h!=="";(!m||h!==i)&&(s.length>0&&a(),i=m?h:""),m&&s.push(u)}a();const d=new Map;for(const u of e)u.messageType==="worked"&&u.turnId&&typeof u.durationMs=="number"&&d.set(u.turnId,u.durationMs);const c=[];for(const u of n){if(u.length<Ol)continue;const h=u[0].turnId??"";let m=0,y=0,I=0,F=!1;for(const P of u)P.messageType==="toolCall"?m+=1:P.messageType==="reasoning"?y+=1:P.messageType==="commandExecution"&&(I+=1),Hl(P)&&(F=!0);const T=e.some(P=>P.turnId===h&&!us(P));c.push({turnId:h,messages:u,running:F,toolCount:m,thoughtCount:y,commandCount:I,durationMs:d.get(h)??0,hasOutsideContent:T})}return c}function Wl(e,n){const{t:s,formatDuration:i}=n,a=[];return e.running?a.push(s("Working…")):e.durationMs>0?a.push(i(e.durationMs)):a.push(s("Processed")),e.toolCount>0&&a.push(s("{n} tools",{n:e.toolCount})),e.thoughtCount>0&&a.push(s("{n} thoughts",{n:e.thoughtCount})),e.commandCount>0&&a.push(s("{n} commands",{n:e.commandCount})),a.join(" · ")}function jl(e){return e.role==="user"?"user":e.messageType==="reasoning"?"reasoning":e.messageType==="plan"||e.messageType==="plan.live"?"plan":e.messageType==="fileChange"?"file-change":e.messageType==="commandExecution"||e.messageType==="toolCall"||e.messageType==="worked"?"process":"assistant"}function ql(e){var n;return e.role==="assistant"&&e.messageType!=="reasoning"&&e.messageType!=="commandExecution"&&e.messageType!=="toolCall"&&e.messageType!=="worked"&&e.messageType!=="plan"&&e.messageType!=="plan.live"&&e.messageType!=="fileChange"&&!((n=e.messageType)!=null&&n.endsWith(".live"))&&e.text.trim().length>0}function Nl(e){const n=[];let s=null;for(const i of e)(i.role==="user"||!s)&&(s={key:`turn-${i.id}`,items:[]},n.push(s)),s.items.push({message:i,kind:jl(i)});for(const i of n){const a=[...i.items].reverse().find(d=>d.kind!=="file-change");a&&ql(a.message)&&(a.kind="final-assistant")}return n}function Ss(e){return e.replace(/\s+/g," ").trim()}function zl(e){const n=Ss(e);return n.length<=80?n:n.slice(0,80)}function Ps(e){const n=Ss(e);return n.length<=80?n:n.slice(0,77)+"..."}function Qt(e){return{sessionKey:e,expandedWarmTurns:new Set,coldPage:0}}function pt(e,n){return e.sessionKey===n?e:Qt(n)}function Ul(e,n){const s=pt(e,n);return{...s,coldPage:s.coldPage+1}}function Vl(e,n,s){const i=pt(e,n),a=Math.max(0,Math.floor(s));return i.coldPage>=a?i:{...i,coldPage:a}}function ds(e,n,s,i){const a=pt(e,n),d=new Set(a.expandedWarmTurns);return i?d.add(s):d.delete(s),{...a,expandedWarmTurns:d}}function Kl(e){return e.role==="user"}function Gl(e){var n;return((n=e.messageType)==null?void 0:n.endsWith(".live"))===!0}function Zl(e){var d;const n=[];let s=-1,i=0;const a=(c,u)=>{n.push({userItem:c,assistantPreview:"",toolCount:0,startIdx:u,endIdx:e.length})};for(let c=0;c<e.length;c+=1){const u=e[c];if(Kl(u)){if(s>=0)n[n.length-1].endIdx=c;else{n.push({userItem:u,assistantPreview:"",toolCount:0,startIdx:i,endIdx:e.length}),s=c,i=c;continue}s=c,a(u,c)}else if(s>=0&&n.length>0){const h=n[n.length-1],m=((d=u.text)==null?void 0:d.trim())||"";u.role==="assistant"&&!Gl(u)&&m&&(h.assistantPreview=Ps(m)),u.messageType==="toolCall"&&(h.toolCount+=1)}}return n}function Jl({turnCount:e,hotTurns:n,pageSize:s,coldPage:i}){const a=Math.max(0,e),d=Math.max(0,n),c=Math.max(0,a-Math.min(a,d));if(c===0)return{warmStartTurn:0,warmEndTurn:0,coldTurnCount:0};const u=Math.max(0,s),h=Math.max(0,Math.floor(i)),m=Math.min(c,u*(h+1));return{warmStartTurn:c-m,warmEndTurn:c,coldTurnCount:c-m}}function Xl({turn:e,turnCount:n,hotTurns:s,pageSize:i}){const a=Math.max(0,n),d=Math.max(0,s),c=Math.max(0,a-Math.min(a,d));if(c===0||e>=c)return 0;const u=Math.max(1,i),h=Math.max(0,Math.floor(e)),m=c-h;return Math.max(0,Math.ceil(m/u)-1)}function fs(e,n,s){if(n.length===0)return e.slice(0);if(s>=n.length)return[];const i=n[s].startIdx;return e.slice(i)}const Yl={key:0,class:"conversation-loading"},Ql={key:1,class:"conversation-empty"},ec={key:0,class:"conversation-load-more"},tc=["disabled"],nc={key:1,class:"conversation-load-more conversation-warm-collapse"},sc=["disabled"],oc=["id"],ac={class:"message-row","data-role":"system"},ic={class:"message-stack","data-role":"system"},rc={class:"message-row","data-role":"system","data-message-type":"fileChange"},lc={class:"message-stack","data-role":"system"},cc={key:0,class:"conversation-item conversation-item-fold","data-role":"system","data-message-type":"processFold"},uc={class:"message-row","data-role":"system"},dc={class:"message-stack","data-role":"system"},fc={key:0,class:"work-block-list"},hc=["id","data-role","data-message-type"],mc={key:0,class:"message-row thread-compaction-row","data-role":"system"},gc={class:"thread-compaction-inline thread-compaction-inline--pending",role:"status"},pc={key:1,class:"message-row thread-compaction-row","data-role":"system"},vc={class:"thread-compaction-inline thread-compaction-inline--done",role:"status"},kc={key:2,class:"message-row","data-role":"system"},yc={class:"message-stack","data-role":"system"},bc={class:"work-block-list"},wc=["data-role","data-message-type"],$c=["data-role"],xc=["data-role"],_c={key:5,class:"message-row","data-role":"system","data-message-type":"plan"},Cc={class:"message-stack","data-role":"system"},Tc={class:"thread-plan-record"},Lc={class:"thread-plan-record-header"},Ic={key:0,class:"thread-plan-record-explanation"},Mc={key:1,class:"thread-plan-record-steps"},Sc=["data-status"],Pc={class:"thread-plan-record-marker","aria-hidden":"true"},Ac=["data-role","data-message-type"],Ec=["data-role"],Fc=["data-role"],Bc=["data-role"],Rc=["onClick"],Oc=["src"],Hc=["src","alt"],Dc={key:1,class:"message-file-attachments"},Wc=["href","title"],jc={key:2,class:"message-skill-attachments"},qc=["href","title"],Nc={class:"message-skill-chip-prefix"},zc={class:"message-skill-chip-name"},Uc=["data-role"],Vc={key:0,class:"automation-message-label"},Kc={key:0},Gc={key:1,class:"work-summary-wrap","aria-live":"polite"},Zc={class:"work-summary-text"},Jc={key:0,class:"message-text"},Xc={key:0},Yc={key:1,class:"message-bold-text"},Qc={key:2,class:"message-italic-text"},eu={key:3,class:"message-strikethrough-text"},tu=["href","title"],nu=["href","title"],su={key:6,class:"message-inline-code"},ou={key:0},au={key:1,class:"message-bold-text"},iu={key:2,class:"message-italic-text"},ru={key:3,class:"message-strikethrough-text"},lu=["href","title"],cu=["href","title"],uu={key:6,class:"message-inline-code"},du={key:2,class:"message-blockquote"},fu={key:0},hu={key:1,class:"message-bold-text"},mu={key:2,class:"message-italic-text"},gu={key:3,class:"message-strikethrough-text"},pu=["href","title"],vu=["href","title"],ku={key:6,class:"message-inline-code"},yu={key:3,class:"message-list message-list-unordered"},bu=["innerHTML"],wu={key:4,class:"message-list message-task-list"},$u=["data-checked"],xu={class:"message-list-item-text"},_u={key:0},Cu={key:1,class:"message-bold-text"},Tu={key:2,class:"message-italic-text"},Lu={key:3,class:"message-strikethrough-text"},Iu=["href","title"],Mu=["href","title"],Su={key:6,class:"message-inline-code"},Pu=["start"],Au=["innerHTML"],Eu={key:6,class:"message-table-wrap"},Fu={class:"message-table"},Bu={key:0},Ru={key:1,class:"message-bold-text"},Ou={key:2,class:"message-italic-text"},Hu={key:3,class:"message-strikethrough-text"},Du=["href","title"],Wu=["href","title"],ju={key:6,class:"message-inline-code"},qu={key:0},Nu={key:0},zu={key:1,class:"message-bold-text"},Uu={key:2,class:"message-italic-text"},Vu={key:3,class:"message-strikethrough-text"},Ku=["href","title"],Gu=["href","title"],Zu={key:6,class:"message-inline-code"},Ju={key:7,class:"message-code-block"},Xu={key:0,class:"message-code-language"},Yu={class:"message-code-pre"},Qu=["innerHTML"],ed={key:8,class:"message-divider"},td={key:9,class:"message-text"},nd=["onClick"],sd=["src"],od=["src","alt","onError"],ad=["href","onClick"],id=["title","aria-label"],rd=["aria-label"],ld=["src"],cd=["src","alt"],ud=16,dd=300,fd=1200,hd=300,md=250,hs=30,ms=20,gd=200,pd=ee({__name:"ThreadConversation",props:{messages:{},pendingRequests:{},liveOverlay:{},liveTurnId:{},isLoading:{type:Boolean},activeThreadId:{},cwd:{},hasMorePersistedAbove:{type:Boolean},isLoadingPersistedAbove:{type:Boolean},loadEarlierMessages:{type:Function}},emits:["forkThread","rollback","respondServerRequest","fileChangesChanged"],setup(e,{expose:n,emit:s}){function i(t){return pa(t,_.cwd,H)}function a(t){return je(t,_.cwd)}const d=W(new Set),c=W(new Set),u=W(new Set),h=W(null),m=W(""),y=W(!1),I=W(!1),F=W(0),T=W(0),P=W(""),w=W(""),{isMobile:B}=No(),{buildFeedbackMailto:O,feedbackMailtoBase:Y,recordVisibleFailure:ne}=vs(),{t:H}=se(),we=Y();function Ie(t,o){ne(o);const f=t.currentTarget;f instanceof HTMLAnchorElement&&(f.href=O())}function te(t){return t.messageType==="commandExecution"&&!!t.commandExecution}function As(t){return t.messageType==="compaction.pending"}function Es(t){return t.messageType==="compaction.done"}function vt(t){return t.messageType==="plan"||t.messageType==="plan.live"}function kt(t){return t.messageType==="reasoning"&&!!t.reasoning}const yt=W(new Set);function nn(t){return yt.value.has(t.id)}function sn(t){const o=new Set(yt.value);o.has(t.id)?o.delete(t.id):o.add(t.id),yt.value=o}function on(t){return t.messageType==="toolCall"&&!!t.toolCall}function Fs(t){return t.messageType==="turnError"}function Qe(t){return t.messageType==="fileChange"&&t.fileChangeStatus==="completed"&&Array.isArray(t.fileChanges)&&t.fileChanges.length>0}function bt(t){return t.role==="assistant"&&!te(t)&&t.messageType!=="worked"&&!(t.messageType??"").endsWith(".live")}const wt=M(()=>{var t;for(let o=_.messages.length-1;o>=0;o-=1){const f=_.messages[o];if(f.messageType==="commandExecution"&&((t=f.commandExecution)==null?void 0:t.status)==="inProgress")return f.id}return""}),an=M(()=>_.messages.some(t=>t.role==="assistant"&&t.messageType==="agentMessage.live"&&t.text.trim().length>0)),rn=M(()=>!!_.liveOverlay||wt.value.length>0||an.value),ln=M(()=>{const t={};for(let o=0;o<_.messages.length;){const f=_.messages[o];if(!te(f)){o+=1;continue}const v=[];for(;o<_.messages.length&&te(_.messages[o]);)v.push(_.messages[o]),o+=1;if(v.length<=1)continue;const x=v[v.length-1];t[x.id]=v.slice(0,-1)}return t}),$t=M(()=>{const t=new Set;for(const o of Object.values(ln.value))for(const f of o)t.add(f.id);return t});function cn(t){return!an.value&&t.id===wt.value}function un(t){return te(t)?d.value.has(t.id)||!c.value.has(t.id)&&cn(t):!1}function dn(t){return te(t)&&rn.value}function fn(t){var o;return te(t)&&(rn.value||((o=t.commandExecution)==null?void 0:o.status)==="inProgress")}function hn(t){if(!te(t))return;const o=new Set(d.value),f=new Set(c.value),v=cn(t);o.has(t.id)?(o.delete(t.id),v&&f.add(t.id)):v&&!f.has(t.id)?f.add(t.id):(o.add(t.id),f.delete(t.id)),d.value=o,c.value=f}function Bs(t){return ln.value[t.id]??[]}function mn(t){return te(t)?[...Bs(t),t]:[]}function gn(t){const o=new Set(u.value);o.has(t.id)?o.delete(t.id):o.add(t.id),u.value=o}function Rs(t){return u.value.has(t.id)}function pn(t,o){t&&(h.value=t,m.value=Q(o),y.value=!1)}function Os(){h.value=null,m.value="",y.value=!1}function Hs(){y.value=!y.value}function Ds(){y.value=!1}function Ws(t){m.value=Q(t),B.value&&(y.value=!1)}function xt(t,o){if(t.size===0)return t;const f=new Set;for(const v of t)o.has(v)&&f.add(v);return f.size===t.size?t:f}const _=e,_t=s,pe=W(null),vn=W(null),Me=W(""),Ct=W(!1),$e=W(""),X=W({}),ie=W({}),re=W({}),fe=W(null),js=M(()=>{const t=fe.value;return t?t.kind==="edit-message"?H("Rollback this turn?"):t.action==="undo"?H("Undo file changes?"):H("Redo file changes?"):""}),qs=M(()=>{const t=fe.value;return t?t.kind==="edit-message"?H("This rolls the thread back to this turn so you can edit the message. Later replies will be removed."):t.filePathLabel?t.action==="undo"?H("Undo the changes to {file}? This modifies the working tree and Codex cannot revert it automatically.",{file:t.filePathLabel}):H("Redo the changes to {file}? This reapplies the edits to the working tree.",{file:t.filePathLabel}):t.action==="undo"?H("Undo the file changes from this turn? This modifies the working tree and Codex cannot revert it automatically."):H("Redo the file changes from this turn? This reapplies the edits to the working tree."):""}),ve=W(!0);let xe=0,le=0,et=0,oe=null,qe=null;const kn=new WeakSet,tt=W(null),Se=W(0),yn=W(0);let nt=null;const Ne=new Map,ze=new Map,Pe=new Map,Ae=new Map;function st(t,o,f,v){for(t.has(o)&&t.delete(o),t.set(o,f);t.size>v;){const x=t.keys().next().value;if(x===void 0)break;t.delete(x)}return f}const ke=W(Qt(_.activeThreadId)),bn=M(()=>pt(ke.value,_.activeThreadId)),ye=W(!1),Tt=M(()=>_.messages.filter(t=>!vt(t))),Ee=M(()=>Zl(Tt.value)),Lt=M(()=>Jl({turnCount:Ee.value.length,hotTurns:hs,pageSize:ms,coldPage:bn.value.coldPage})),It=M(()=>Lt.value.warmStartTurn),Fe=M(()=>Lt.value.warmEndTurn),wn=M(()=>Lt.value.coldTurnCount),$n=M(()=>wn.value>0),Mt=M(()=>bn.value.expandedWarmTurns),Ns=M(()=>{const t=Tt.value,o=Ee.value,f=[],v=Mt.value;for(let N=It.value;N<Fe.value;N+=1){const z=o[N];if(!z)continue;const b={turn:N,userText:Ps(z.userItem.text),assistantPreview:z.assistantPreview,toolCount:z.toolCount,expanded:v.has(N)},R=v.has(N)?t.slice(z.startIdx,z.endIdx).map($=>({message:$})):[];f.push({key:`warm-${N}`,warm:b,warmItems:R,processItems:[],fileChangeAnchorIds:[]})}const x=fs(t,o,Fe.value),p=x[0];if(!p)return f;const S=_.messages.findIndex(N=>N.id===p.id),A=S>=0?_.messages.slice(S):x;for(const N of Nl(A)){const z=N.items.find(j=>j.kind==="user"),b=N.items.find(j=>j.kind==="final-assistant"),R=N.items.filter(j=>j!==z&&j!==b).map(j=>({message:j.message,presentation:j.kind==="plan"?"plan":"process"})),$=N.items.map(j=>j.message.id).filter(j=>!!ae(j));f.push({key:N.key,warmItems:[],request:z?{message:z.message}:void 0,processItems:R,fileChangeAnchorIds:$,finalItem:b?{message:b.message,presentation:"final-assistant"}:void 0})}return f});function xn(){ke.value=Ul(ke.value,_.activeThreadId)}function zs(t){ke.value=ds(ke.value,_.activeThreadId,t,!Mt.value.has(t))}const _n=M(()=>Ee.value.map((t,o)=>({turn:o,text:zl(t.userItem.text)}))),Us=M(()=>Math.max(0,_n.value.length-1)),Vs=M(()=>{const t=new Map;return Ee.value.forEach((o,f)=>{t.set(o.userItem.id,f)}),t});function St(t){return`question-anchor-${t}`}function Ks(t){const o=Vs.value.get(t.id);if(o!==void 0&&!(o<Fe.value))return St(o)}function Gs(t){if(t<Fe.value){let o=ke.value;if(t<It.value){const f=Xl({turn:t,turnCount:Ee.value.length,hotTurns:hs,pageSize:ms});o=Vl(o,_.activeThreadId,f)}o=ds(o,_.activeThreadId,t,!0),ke.value=o}ve.value=!1,ct().then(()=>{const o=pe.value,f=document.getElementById(St(t));if(!o||!f)return;const v=f.getBoundingClientRect(),x=o.getBoundingClientRect(),p=o.scrollTop+v.top-x.top-12;o.scrollTo({top:Math.max(0,p),behavior:"smooth"})})}const Zs=M(()=>{const t=Tt.value,o=Ee.value,f=[];for(let S=It.value;S<Fe.value;S+=1){if(!Mt.value.has(S))continue;const A=o[S];A&&f.push(...t.slice(A.startIdx,A.endIdx))}const v=fs(t,o,Fe.value),x=v[0];if(!x)return f;const p=_.messages.findIndex(S=>S.id===x.id);return f.push(...p>=0?_.messages.slice(p):v),f}),Pt=M(()=>Dl(Zs.value)),Ue=M(()=>{var o;const t=new Map;for(const f of Pt.value){const v=((o=f.messages[0])==null?void 0:o.id)??"";v&&t.set(v,f)}return t}),Js=M(()=>{const t=new Set;for(const o of Pt.value)for(const f of o.messages)t.add(f.id);return t}),Xs=M(()=>{const t=new Set;for(const o of Pt.value)t.add(o.turnId);return t});function Ys(t){return Ue.value.has(t.id)}function Cn(t){return Js.value.has(t.id)}function Qs(t){var o;return((o=Ue.value.get(t.id))==null?void 0:o.messages)??[]}function eo(t){return jr(Qs(t))}function to(t){var o;return t.type==="batch"?`tool-batch-${t.kind}-${((o=t.messages[0])==null?void 0:o.id)??""}`:t.message.id}function no(t){const o=Ue.value.get(t.id);return o?Wl(o,{t:H,formatDuration:Zo}):""}function so(t){var o;return((o=Ue.value.get(t.id))==null?void 0:o.running)??!1}function oo(t){var o;return((o=Ue.value.get(t.id))==null?void 0:o.hasOutsideContent)??!0}function ao(t){return t.messageType==="worked"}const io=M(()=>_.hasMorePersistedAbove===!0),ro=M(()=>!ve.value&&(_.messages.length>0||_.pendingRequests.length>0||!!_.liveOverlay));function lo(){return tt.value?Promise.resolve():(nt||(nt=Ko(()=>import("./common-BeuopZEI.js"),[]).then(t=>{tt.value=t.default,Ae.clear(),Pe.clear(),Se.value+=1}).finally(()=>{nt=null})),nt)}function Tn(t){switch(t){case"completed":return"[x]";case"inProgress":return"[~]";default:return"[ ]"}}function co(t){var v;const o=Ge(t);if(!o)return"";const f=[];return(v=o.explanation)!=null&&v.trim()&&f.push(o.explanation.trim()),o.steps.length>0&&f.push(o.steps.map(x=>`- ${Tn(x.status)} ${x.step}`.trim()).join(`
25
+ `).trim()});return(a,d)=>(r(),l("div",{class:"reasoning-block","data-state":e.expanded?"expanded":"collapsed"},[g("button",{type:"button",class:"reasoning-block-header","aria-expanded":e.expanded,onClick:d[0]||(d[0]=c=>a.$emit("toggle"))},[g("span",Sr,k(C(s)("Thinking process")),1),g("span",Pr,k(e.expanded?"▾":"▸"),1)],8,Mr),e.expanded?(r(),l("div",Ar,[i.value?(r(),l("p",Er,k(i.value),1)):L("",!0),g("div",{class:"reasoning-block-content message-card",innerHTML:e.contentHtml},null,8,Fr)])):L("",!0)],8,Ir))}}),ls=J(Br,[["__scopeId","data-v-5fa90230"]]),Rr=new Set(["read_file","ls","grep","glob","web_fetch","read_skill","code_index","connect_tool_source"]),Or=new Set(["write_file","edit_file","multi_edit","move_file","delete_range","delete_symbol","notebook_edit"]),Hr=new Set(["task","run_skill","explore","research","review","security_review"]);function Dr(e){var s;const n=((s=e.toolCall)==null?void 0:s.tool)??"";return Rr.has(n)?"readonly":Or.has(n)?"modify":Hr.has(n)?"delegate":null}const Wr=2;function jr(e){var d;const n=[];let s=[],i=null;const a=()=>{if(i!==null&&s.length>=Wr)n.push({type:"batch",kind:i,messages:s});else for(const c of s)n.push({type:"tool",message:c});s=[],i=null};for(const c of e){if(c.messageType!=="toolCall"||((d=c.toolCall)==null?void 0:d.status)==="inProgress"){a(),n.push({type:"tool",message:c});continue}const u=Dr(c);if(u===null){a(),n.push({type:"tool",message:c});continue}i!==null&&i!==u&&a(),i=u,s.push(c)}return a(),n}function qr(e,n,s){const{t:i}=s;if(e==="readonly"){const a=n.filter(h=>{var m,y;return((m=h.toolCall)==null?void 0:m.tool)==="read_file"||((y=h.toolCall)==null?void 0:y.tool)==="ls"}).length,d=n.filter(h=>{var y;const m=((y=h.toolCall)==null?void 0:y.tool)??"";return m==="grep"||m==="glob"||m==="web_fetch"||m==="code_index"}).length,c=n.length-a-d,u=[];return a>0&&u.push(i("Read {n} files",{n:a})),d>0&&u.push(i("Search {n} files",{n:d})),c>0&&u.push(i("{n} read calls",{n:c})),u.join(" · ")}return e==="modify"?i("Modified {n} files",{n:n.length}):e==="delegate"?i("Delegated {n} tasks",{n:n.length}):i("Explored {n} items",{n:n.length})}const Nr={class:"message-row","data-role":"system"},zr={class:"message-stack","data-role":"system"},Ur=["title"],Vr={key:0,class:"tool-call-server"},Kr={class:"tool-call-name"},Gr={class:"tool-call-status"},Zr={key:0,class:"work-block-spinner","aria-hidden":"true"},Jr={key:1,class:"tool-call-status-icon","aria-hidden":"true"},Xr={key:2,class:"tool-call-status-icon","aria-hidden":"true"},Yr=ee({__name:"ToolCallRow",props:{message:{}},setup(e){const n=e,{t:s}=se(),i=M(()=>{const c=n.message.toolCall;if(!c)return"";switch(c.status){case"inProgress":return s("Running");case"failed":return s("Failed");default:return s("Done")}}),a=M(()=>{var c;switch((c=n.message.toolCall)==null?void 0:c.status){case"inProgress":return"tool-call-running";case"failed":return"tool-call-error";default:return"tool-call-ok"}}),d=M(()=>{const c=n.message.toolCall;if(!c)return"";const u=[];return c.server&&u.push(c.server),u.push(c.tool),c.error&&u.push(c.error),typeof c.durationMs=="number"&&c.durationMs>=0&&u.push(`${c.durationMs}ms`),u.join(" · ")});return(c,u)=>{var h,m,y,I;return r(),l("div",Nr,[g("div",zr,[g("div",{class:U(["tool-call-block",a.value]),title:d.value},[u[0]||(u[0]=g("span",{class:"tool-call-icon","aria-hidden":"true"},"🛠",-1)),(h=e.message.toolCall)!=null&&h.server?(r(),l("span",Vr,k(e.message.toolCall.server),1)):L("",!0),g("code",Kr,k(((m=e.message.toolCall)==null?void 0:m.tool)||e.message.text||"(tool)"),1),g("span",Gr,[((y=e.message.toolCall)==null?void 0:y.status)==="inProgress"?(r(),l("span",Zr)):((I=e.message.toolCall)==null?void 0:I.status)==="completed"?(r(),l("span",Jr,"✓")):(r(),l("span",Xr,"✗")),ue(" "+k(i.value),1)])],10,Ur)])])}}}),Yt=J(Yr,[["__scopeId","data-v-e25278a7"]]),Qr=["aria-expanded","title"],el={class:"tool-batch-toggle","aria-hidden":"true"},tl={class:"tool-batch-label"},nl={class:"tool-batch-count"},sl={key:0,class:"tool-batch-body"},ol=ee({__name:"ToolBatchBlock",props:{kind:{},messages:{}},setup(e){const n=e,{t:s}=se(),i=W(!1),a=M(()=>qr(n.kind,n.messages,{t:s})),d=M(()=>n.messages.map(c=>{var u;return((u=c.toolCall)==null?void 0:u.tool)??""}).join(" · "));return(c,u)=>(r(),l("div",{class:U(["tool-batch-block",{"tool-batch-block--open":i.value}])},[g("button",{type:"button",class:"tool-batch-head","aria-expanded":i.value,title:d.value,onClick:u[0]||(u[0]=h=>i.value=!i.value)},[g("span",el,k(i.value?"▾":"▸"),1),u[1]||(u[1]=g("span",{class:"tool-batch-icon","aria-hidden":"true"},"🛠",-1)),g("span",tl,k(a.value),1),g("span",nl,k(e.messages.length),1)],8,Qr),i.value?(r(),l("div",sl,[(r(!0),l(E,null,q(e.messages,h=>(r(),G(Yt,{key:h.id,message:h},null,8,["message"]))),128))])):L("",!0)],2))}}),al=J(ol,[["__scopeId","data-v-908995a9"]]),il=["data-turn-key"],rl={key:0,class:"conversation-turn-request","aria-label":"User request"},ll={class:"conversation-turn-items"},cl={key:1,class:"conversation-turn-process","aria-label":"Turn process"},ul=["aria-expanded","aria-label"],dl={class:"conversation-turn-process-count"},fl={key:1,class:"conversation-turn-process-heading"},hl={key:2,class:"conversation-turn-items conversation-turn-process-items"},ml={key:2,class:"conversation-turn-final","aria-label":"Assistant final response"},gl={class:"conversation-turn-items"},pl=ee({__name:"ThreadTurn",props:{turnKey:{},request:{},processItems:{default:()=>[]},finalItem:{},fileChangeAnchorIds:{default:()=>[]},warm:{},warmItems:{default:()=>[]}},setup(e){const n=e,{t:s}=se(),i=W(!0),a=M(()=>n.processItems.length+n.fileChangeAnchorIds.length),d=M(()=>!!n.finalItem);return de(a,(c,u)=>{c>u&&(i.value=!0)}),(c,u)=>e.warm?(r(),l(E,{key:0},[be(c.$slots,"warm-card",{warm:e.warm},void 0),(r(!0),l(E,null,q(e.warmItems,h=>be(c.$slots,"default",{key:h.message.id,item:h,section:"warm"},void 0)),128))],64)):(r(),l("li",{key:1,class:"conversation-turn","data-turn-key":e.turnKey},[e.request?(r(),l("section",rl,[g("ol",ll,[be(c.$slots,"default",{item:e.request,section:"request"},void 0)])])):L("",!0),a.value>0?(r(),l("section",cl,[d.value?(r(),l("button",{key:0,class:"conversation-turn-process-heading conversation-turn-process-toggle",type:"button","aria-expanded":i.value,"aria-label":i.value?C(s)("Collapse turn process"):C(s)("Expand turn process"),onClick:u[0]||(u[0]=h=>i.value=!i.value)},[i.value?(r(),G(qo,{key:0,class:"conversation-turn-process-toggle-icon"})):(r(),G(ks,{key:1,class:"conversation-turn-process-toggle-icon"})),g("span",null,k(C(s)("Turn process")),1),g("span",dl,k(C(s)("{n} process items",{n:a.value})),1)],8,ul)):(r(),l("div",fl,k(C(s)("Turn process")),1)),i.value?(r(),l("ol",hl,[(r(!0),l(E,null,q(e.processItems,h=>be(c.$slots,"default",{key:h.message.id,item:h,section:"process"},void 0)),128)),(r(!0),l(E,null,q(e.fileChangeAnchorIds,h=>(r(),l("li",{key:`file-change-${h}`,class:"conversation-turn-row conversation-turn-file-change"},[be(c.$slots,"file-change",{anchorMessageId:h},void 0)]))),128))])):L("",!0)])):L("",!0),e.finalItem?(r(),l("section",ml,[g("ol",gl,[be(c.$slots,"default",{item:e.finalItem,section:"final"},void 0)])])):L("",!0)],8,il))}}),vl=J(pl,[["__scopeId","data-v-7ed82fa7"]]),kl=["aria-expanded"],yl={class:"warm-turn__preview"},bl={key:0,class:"warm-turn__meta"},wl={class:"warm-turn__content"},$l={key:1,class:"warm-turn__assistant"},xl=ee({__name:"WarmTurnCard",props:{userText:{},assistantPreview:{},toolCount:{},expanded:{type:Boolean}},emits:["toggle"],setup(e,{emit:n}){const s=n,{t:i}=se();function a(){s("toggle")}return(d,c)=>(r(),l("div",{class:U(["warm-turn",{"warm-turn--expanded":e.expanded}])},[g("button",{type:"button",class:"warm-turn__head","aria-expanded":e.expanded,onClick:a},[Z(ks,{class:U(["warm-turn__chevron",{"warm-turn__chevron--open":e.expanded}])},null,8,["class"]),g("span",yl,k(e.userText),1),e.toolCount>0?(r(),l("span",bl,k(C(i)("{n} tools",{n:e.toolCount})),1)):L("",!0)],8,kl),g("div",wl,[e.expanded?be(d.$slots,"default",{},void 0,!0,0):e.assistantPreview?(r(),l("div",$l,k(e.assistantPreview),1)):L("",!0)])],2))}}),_l=J(xl,[["__scopeId","data-v-7e3ebbc7"]]),Cl=["aria-expanded"],Tl=["title"],Ll={class:"work-block-command"},Il={class:"work-block-status"},Ml={key:0,class:"work-block-spinner","aria-hidden":"true"},Sl={key:1,class:"work-block-status-icon","aria-hidden":"true"},Pl={key:2,class:"work-block-status-icon","aria-hidden":"true"},Al={class:"work-block-output-inner"},El=["textContent"],Fl=["textContent"],Bl={key:0,class:"work-block-permission-hint",role:"note"},Rl=ee({__name:"WorkBlockItem",props:{command:{},stepIndex:{},expanded:{type:Boolean},compact:{type:Boolean},outputCondensed:{type:Boolean}},emits:["toggle"],setup(e){const n=e,{t:s}=se(),i=M(()=>{var h,m;const u=(h=n.command.commandExecution)==null?void 0:h.status;return u==="inProgress"?"cmd-status-running":u==="completed"&&((m=n.command.commandExecution)==null?void 0:m.exitCode)===0?"cmd-status-ok":"cmd-status-error"}),a=M(()=>{const u=n.command.commandExecution;if(!u)return"";switch(u.status){case"inProgress":return s("Running");case"completed":return u.exitCode===0?s("Done"):`${s("Exit")} ${u.exitCode??"?"}`;case"failed":return s("Failed");case"declined":return s("Declined");case"interrupted":return s("Stopped");default:return""}}),d=[/access to the path .* is denied/iu,/access is denied/iu,/permission denied/iu,/not permitted/iu,/EACCES|EPERM/iu,/denied access|deny access/iu,/拒绝访问/iu,/没有权限/iu,/权限不足/iu,/要求提权|需要提权|require_escalated/iu],c=M(()=>{const u=n.command.commandExecution;if(!u||!(u.status==="failed"||u.status==="declined"||typeof u.exitCode=="number"&&u.exitCode!==0))return"";const m=u.aggregatedOutput??"";return!m||!d.some(y=>y.test(m))?"":s("Command blocked by a permission or sandbox restriction; no approval prompt was shown. Check the approval policy or trusted directories if you expected one.")});return(u,h)=>{var m,y,I,F,T,P;return r(),l("div",{class:U(["work-block",[i.value,{"work-block-expanded":e.expanded,"work-block-compact":e.compact}]])},[g("button",{type:"button",class:"work-block-header","aria-expanded":e.expanded,onClick:h[0]||(h[0]=w=>u.$emit("toggle"))},[g("span",{class:"work-step-dot",title:`${C(s)("Step")} ${String(e.stepIndex+1)}`},k(e.stepIndex+1),9,Tl),g("code",Ll,k(C(s)("Command")),1),g("span",Il,[((m=e.command.commandExecution)==null?void 0:m.status)==="inProgress"?(r(),l("span",Ml)):((y=e.command.commandExecution)==null?void 0:y.status)==="completed"&&((I=e.command.commandExecution)==null?void 0:I.exitCode)===0?(r(),l("span",Sl,"✓")):((F=e.command.commandExecution)==null?void 0:F.status)==="failed"?(r(),l("span",Pl,"✗")):L("",!0),ue(" "+k(a.value),1)])],8,Cl),g("div",{class:U(["work-block-output-wrap",{"work-block-output-visible":e.expanded}])},[g("div",Al,[g("pre",{class:"work-block-output-command",textContent:k(((T=e.command.commandExecution)==null?void 0:T.command)||"(command)")},null,8,El),g("pre",{class:U(["work-block-output",{"cmd-output-condensed":e.outputCondensed}]),textContent:k(((P=e.command.commandExecution)==null?void 0:P.aggregatedOutput)||"(no output)")},null,10,Fl)])],2),c.value?(r(),l("p",Bl,k(c.value),1)):L("",!0)],2)}}}),cs=J(Rl,[["__scopeId","data-v-e9fdf684"]]),Ol=2;function us(e){const n=e.messageType;return n==="commandExecution"||n==="toolCall"}function Hl(e){var s,i;return(((s=e.commandExecution)==null?void 0:s.status)??"")==="inProgress"||(((i=e.toolCall)==null?void 0:i.status)??"")==="inProgress"?!0:(e.messageType??"").endsWith(".live")}function Dl(e){const n=[];let s=[],i="";const a=()=>{s.length>0&&(n.push(s),s=[])};for(const u of e){const h=u.turnId??"",m=us(u)&&h!=="";(!m||h!==i)&&(s.length>0&&a(),i=m?h:""),m&&s.push(u)}a();const d=new Map;for(const u of e)u.messageType==="worked"&&u.turnId&&typeof u.durationMs=="number"&&d.set(u.turnId,u.durationMs);const c=[];for(const u of n){if(u.length<Ol)continue;const h=u[0].turnId??"";let m=0,y=0,I=0,F=!1;for(const P of u)P.messageType==="toolCall"?m+=1:P.messageType==="reasoning"?y+=1:P.messageType==="commandExecution"&&(I+=1),Hl(P)&&(F=!0);const T=e.some(P=>P.turnId===h&&!us(P));c.push({turnId:h,messages:u,running:F,toolCount:m,thoughtCount:y,commandCount:I,durationMs:d.get(h)??0,hasOutsideContent:T})}return c}function Wl(e,n){const{t:s,formatDuration:i}=n,a=[];return e.running?a.push(s("Working…")):e.durationMs>0?a.push(i(e.durationMs)):a.push(s("Processed")),e.toolCount>0&&a.push(s("{n} tools",{n:e.toolCount})),e.thoughtCount>0&&a.push(s("{n} thoughts",{n:e.thoughtCount})),e.commandCount>0&&a.push(s("{n} commands",{n:e.commandCount})),a.join(" · ")}function jl(e){return e.role==="user"?"user":e.messageType==="reasoning"?"reasoning":e.messageType==="plan"||e.messageType==="plan.live"?"plan":e.messageType==="fileChange"?"file-change":e.messageType==="commandExecution"||e.messageType==="toolCall"||e.messageType==="worked"?"process":"assistant"}function ql(e){var n;return e.role==="assistant"&&e.messageType!=="reasoning"&&e.messageType!=="commandExecution"&&e.messageType!=="toolCall"&&e.messageType!=="worked"&&e.messageType!=="plan"&&e.messageType!=="plan.live"&&e.messageType!=="fileChange"&&!((n=e.messageType)!=null&&n.endsWith(".live"))&&e.text.trim().length>0}function Nl(e){const n=[];let s=null;for(const i of e)(i.role==="user"||!s)&&(s={key:`turn-${i.id}`,items:[]},n.push(s)),s.items.push({message:i,kind:jl(i)});for(const i of n){const a=[...i.items].reverse().find(d=>d.kind!=="file-change");a&&ql(a.message)&&(a.kind="final-assistant")}return n}function Ss(e){return e.replace(/\s+/g," ").trim()}function zl(e){const n=Ss(e);return n.length<=80?n:n.slice(0,80)}function Ps(e){const n=Ss(e);return n.length<=80?n:n.slice(0,77)+"..."}function Qt(e){return{sessionKey:e,expandedWarmTurns:new Set,coldPage:0}}function pt(e,n){return e.sessionKey===n?e:Qt(n)}function Ul(e,n){const s=pt(e,n);return{...s,coldPage:s.coldPage+1}}function Vl(e,n,s){const i=pt(e,n),a=Math.max(0,Math.floor(s));return i.coldPage>=a?i:{...i,coldPage:a}}function ds(e,n,s,i){const a=pt(e,n),d=new Set(a.expandedWarmTurns);return i?d.add(s):d.delete(s),{...a,expandedWarmTurns:d}}function Kl(e){return e.role==="user"}function Gl(e){var n;return((n=e.messageType)==null?void 0:n.endsWith(".live"))===!0}function Zl(e){var d;const n=[];let s=-1,i=0;const a=(c,u)=>{n.push({userItem:c,assistantPreview:"",toolCount:0,startIdx:u,endIdx:e.length})};for(let c=0;c<e.length;c+=1){const u=e[c];if(Kl(u)){if(s>=0)n[n.length-1].endIdx=c;else{n.push({userItem:u,assistantPreview:"",toolCount:0,startIdx:i,endIdx:e.length}),s=c,i=c;continue}s=c,a(u,c)}else if(s>=0&&n.length>0){const h=n[n.length-1],m=((d=u.text)==null?void 0:d.trim())||"";u.role==="assistant"&&!Gl(u)&&m&&(h.assistantPreview=Ps(m)),u.messageType==="toolCall"&&(h.toolCount+=1)}}return n}function Jl({turnCount:e,hotTurns:n,pageSize:s,coldPage:i}){const a=Math.max(0,e),d=Math.max(0,n),c=Math.max(0,a-Math.min(a,d));if(c===0)return{warmStartTurn:0,warmEndTurn:0,coldTurnCount:0};const u=Math.max(0,s),h=Math.max(0,Math.floor(i)),m=Math.min(c,u*(h+1));return{warmStartTurn:c-m,warmEndTurn:c,coldTurnCount:c-m}}function Xl({turn:e,turnCount:n,hotTurns:s,pageSize:i}){const a=Math.max(0,n),d=Math.max(0,s),c=Math.max(0,a-Math.min(a,d));if(c===0||e>=c)return 0;const u=Math.max(1,i),h=Math.max(0,Math.floor(e)),m=c-h;return Math.max(0,Math.ceil(m/u)-1)}function fs(e,n,s){if(n.length===0)return e.slice(0);if(s>=n.length)return[];const i=n[s].startIdx;return e.slice(i)}const Yl={key:0,class:"conversation-loading"},Ql={key:1,class:"conversation-empty"},ec={key:0,class:"conversation-load-more"},tc=["disabled"],nc={key:1,class:"conversation-load-more conversation-warm-collapse"},sc=["disabled"],oc=["id"],ac={class:"message-row","data-role":"system"},ic={class:"message-stack","data-role":"system"},rc={class:"message-row","data-role":"system","data-message-type":"fileChange"},lc={class:"message-stack","data-role":"system"},cc={key:0,class:"conversation-item conversation-item-fold","data-role":"system","data-message-type":"processFold"},uc={class:"message-row","data-role":"system"},dc={class:"message-stack","data-role":"system"},fc={key:0,class:"work-block-list"},hc=["id","data-role","data-message-type"],mc={key:0,class:"message-row thread-compaction-row","data-role":"system"},gc={class:"thread-compaction-inline thread-compaction-inline--pending",role:"status"},pc={key:1,class:"message-row thread-compaction-row","data-role":"system"},vc={class:"thread-compaction-inline thread-compaction-inline--done",role:"status"},kc={key:2,class:"message-row","data-role":"system"},yc={class:"message-stack","data-role":"system"},bc={class:"work-block-list"},wc=["data-role","data-message-type"],$c=["data-role"],xc=["data-role"],_c={key:5,class:"message-row","data-role":"system","data-message-type":"plan"},Cc={class:"message-stack","data-role":"system"},Tc={class:"thread-plan-record"},Lc={class:"thread-plan-record-header"},Ic={key:0,class:"thread-plan-record-explanation"},Mc={key:1,class:"thread-plan-record-steps"},Sc=["data-status"],Pc={class:"thread-plan-record-marker","aria-hidden":"true"},Ac=["data-role","data-message-type"],Ec=["data-role"],Fc=["data-role"],Bc=["data-role"],Rc=["onClick"],Oc=["src"],Hc=["src","alt"],Dc={key:1,class:"message-file-attachments"},Wc=["href","title"],jc={key:2,class:"message-skill-attachments"},qc=["href","title"],Nc={class:"message-skill-chip-prefix"},zc={class:"message-skill-chip-name"},Uc=["data-role"],Vc={key:0,class:"automation-message-label"},Kc={key:0},Gc={key:1,class:"work-summary-wrap","aria-live":"polite"},Zc={class:"work-summary-text"},Jc={key:0,class:"message-text"},Xc={key:0},Yc={key:1,class:"message-bold-text"},Qc={key:2,class:"message-italic-text"},eu={key:3,class:"message-strikethrough-text"},tu=["href","title"],nu=["href","title"],su={key:6,class:"message-inline-code"},ou={key:0},au={key:1,class:"message-bold-text"},iu={key:2,class:"message-italic-text"},ru={key:3,class:"message-strikethrough-text"},lu=["href","title"],cu=["href","title"],uu={key:6,class:"message-inline-code"},du={key:2,class:"message-blockquote"},fu={key:0},hu={key:1,class:"message-bold-text"},mu={key:2,class:"message-italic-text"},gu={key:3,class:"message-strikethrough-text"},pu=["href","title"],vu=["href","title"],ku={key:6,class:"message-inline-code"},yu={key:3,class:"message-list message-list-unordered"},bu=["innerHTML"],wu={key:4,class:"message-list message-task-list"},$u=["data-checked"],xu={class:"message-list-item-text"},_u={key:0},Cu={key:1,class:"message-bold-text"},Tu={key:2,class:"message-italic-text"},Lu={key:3,class:"message-strikethrough-text"},Iu=["href","title"],Mu=["href","title"],Su={key:6,class:"message-inline-code"},Pu=["start"],Au=["innerHTML"],Eu={key:6,class:"message-table-wrap"},Fu={class:"message-table"},Bu={key:0},Ru={key:1,class:"message-bold-text"},Ou={key:2,class:"message-italic-text"},Hu={key:3,class:"message-strikethrough-text"},Du=["href","title"],Wu=["href","title"],ju={key:6,class:"message-inline-code"},qu={key:0},Nu={key:0},zu={key:1,class:"message-bold-text"},Uu={key:2,class:"message-italic-text"},Vu={key:3,class:"message-strikethrough-text"},Ku=["href","title"],Gu=["href","title"],Zu={key:6,class:"message-inline-code"},Ju={key:7,class:"message-code-block"},Xu={key:0,class:"message-code-language"},Yu={class:"message-code-pre"},Qu=["innerHTML"],ed={key:8,class:"message-divider"},td={key:9,class:"message-text"},nd=["onClick"],sd=["src"],od=["src","alt","onError"],ad=["href","onClick"],id=["title","aria-label"],rd=["aria-label"],ld=["src"],cd=["src","alt"],ud=16,dd=300,fd=1200,hd=300,md=250,hs=30,ms=20,gd=200,pd=ee({__name:"ThreadConversation",props:{messages:{},pendingRequests:{},liveOverlay:{},liveTurnId:{},isLoading:{type:Boolean},activeThreadId:{},cwd:{},hasMorePersistedAbove:{type:Boolean},isLoadingPersistedAbove:{type:Boolean},loadEarlierMessages:{type:Function}},emits:["forkThread","rollback","respondServerRequest","fileChangesChanged"],setup(e,{expose:n,emit:s}){function i(t){return pa(t,_.cwd,H)}function a(t){return je(t,_.cwd)}const d=W(new Set),c=W(new Set),u=W(new Set),h=W(null),m=W(""),y=W(!1),I=W(!1),F=W(0),T=W(0),P=W(""),w=W(""),{isMobile:B}=No(),{buildFeedbackMailto:O,feedbackMailtoBase:Y,recordVisibleFailure:ne}=vs(),{t:H}=se(),we=Y();function Ie(t,o){ne(o);const f=t.currentTarget;f instanceof HTMLAnchorElement&&(f.href=O())}function te(t){return t.messageType==="commandExecution"&&!!t.commandExecution}function As(t){return t.messageType==="compaction.pending"}function Es(t){return t.messageType==="compaction.done"}function vt(t){return t.messageType==="plan"||t.messageType==="plan.live"}function kt(t){return t.messageType==="reasoning"&&!!t.reasoning}const yt=W(new Set);function nn(t){return yt.value.has(t.id)}function sn(t){const o=new Set(yt.value);o.has(t.id)?o.delete(t.id):o.add(t.id),yt.value=o}function on(t){return t.messageType==="toolCall"&&!!t.toolCall}function Fs(t){return t.messageType==="turnError"}function Qe(t){return t.messageType==="fileChange"&&t.fileChangeStatus==="completed"&&Array.isArray(t.fileChanges)&&t.fileChanges.length>0}function bt(t){return t.role==="assistant"&&!te(t)&&t.messageType!=="worked"&&!(t.messageType??"").endsWith(".live")}const wt=M(()=>{var t;for(let o=_.messages.length-1;o>=0;o-=1){const f=_.messages[o];if(f.messageType==="commandExecution"&&((t=f.commandExecution)==null?void 0:t.status)==="inProgress")return f.id}return""}),an=M(()=>_.messages.some(t=>t.role==="assistant"&&t.messageType==="agentMessage.live"&&t.text.trim().length>0)),rn=M(()=>!!_.liveOverlay||wt.value.length>0||an.value),ln=M(()=>{const t={};for(let o=0;o<_.messages.length;){const f=_.messages[o];if(!te(f)){o+=1;continue}const v=[];for(;o<_.messages.length&&te(_.messages[o]);)v.push(_.messages[o]),o+=1;if(v.length<=1)continue;const x=v[v.length-1];t[x.id]=v.slice(0,-1)}return t}),$t=M(()=>{const t=new Set;for(const o of Object.values(ln.value))for(const f of o)t.add(f.id);return t});function cn(t){return!an.value&&t.id===wt.value}function un(t){return te(t)?d.value.has(t.id)||!c.value.has(t.id)&&cn(t):!1}function dn(t){return te(t)&&rn.value}function fn(t){var o;return te(t)&&(rn.value||((o=t.commandExecution)==null?void 0:o.status)==="inProgress")}function hn(t){if(!te(t))return;const o=new Set(d.value),f=new Set(c.value),v=cn(t);o.has(t.id)?(o.delete(t.id),v&&f.add(t.id)):v&&!f.has(t.id)?f.add(t.id):(o.add(t.id),f.delete(t.id)),d.value=o,c.value=f}function Bs(t){return ln.value[t.id]??[]}function mn(t){return te(t)?[...Bs(t),t]:[]}function gn(t){const o=new Set(u.value);o.has(t.id)?o.delete(t.id):o.add(t.id),u.value=o}function Rs(t){return u.value.has(t.id)}function pn(t,o){t&&(h.value=t,m.value=Q(o),y.value=!1)}function Os(){h.value=null,m.value="",y.value=!1}function Hs(){y.value=!y.value}function Ds(){y.value=!1}function Ws(t){m.value=Q(t),B.value&&(y.value=!1)}function xt(t,o){if(t.size===0)return t;const f=new Set;for(const v of t)o.has(v)&&f.add(v);return f.size===t.size?t:f}const _=e,_t=s,pe=W(null),vn=W(null),Me=W(""),Ct=W(!1),$e=W(""),X=W({}),ie=W({}),re=W({}),fe=W(null),js=M(()=>{const t=fe.value;return t?t.kind==="edit-message"?H("Rollback this turn?"):t.action==="undo"?H("Undo file changes?"):H("Redo file changes?"):""}),qs=M(()=>{const t=fe.value;return t?t.kind==="edit-message"?H("This rolls the thread back to this turn so you can edit the message. Later replies will be removed."):t.filePathLabel?t.action==="undo"?H("Undo the changes to {file}? This modifies the working tree and Codex cannot revert it automatically.",{file:t.filePathLabel}):H("Redo the changes to {file}? This reapplies the edits to the working tree.",{file:t.filePathLabel}):t.action==="undo"?H("Undo the file changes from this turn? This modifies the working tree and Codex cannot revert it automatically."):H("Redo the file changes from this turn? This reapplies the edits to the working tree."):""}),ve=W(!0);let xe=0,le=0,et=0,oe=null,qe=null;const kn=new WeakSet,tt=W(null),Se=W(0),yn=W(0);let nt=null;const Ne=new Map,ze=new Map,Pe=new Map,Ae=new Map;function st(t,o,f,v){for(t.has(o)&&t.delete(o),t.set(o,f);t.size>v;){const x=t.keys().next().value;if(x===void 0)break;t.delete(x)}return f}const ke=W(Qt(_.activeThreadId)),bn=M(()=>pt(ke.value,_.activeThreadId)),ye=W(!1),Tt=M(()=>_.messages.filter(t=>!vt(t))),Ee=M(()=>Zl(Tt.value)),Lt=M(()=>Jl({turnCount:Ee.value.length,hotTurns:hs,pageSize:ms,coldPage:bn.value.coldPage})),It=M(()=>Lt.value.warmStartTurn),Fe=M(()=>Lt.value.warmEndTurn),wn=M(()=>Lt.value.coldTurnCount),$n=M(()=>wn.value>0),Mt=M(()=>bn.value.expandedWarmTurns),Ns=M(()=>{const t=Tt.value,o=Ee.value,f=[],v=Mt.value;for(let N=It.value;N<Fe.value;N+=1){const z=o[N];if(!z)continue;const b={turn:N,userText:Ps(z.userItem.text),assistantPreview:z.assistantPreview,toolCount:z.toolCount,expanded:v.has(N)},R=v.has(N)?t.slice(z.startIdx,z.endIdx).map($=>({message:$})):[];f.push({key:`warm-${N}`,warm:b,warmItems:R,processItems:[],fileChangeAnchorIds:[]})}const x=fs(t,o,Fe.value),p=x[0];if(!p)return f;const S=_.messages.findIndex(N=>N.id===p.id),A=S>=0?_.messages.slice(S):x;for(const N of Nl(A)){const z=N.items.find(j=>j.kind==="user"),b=N.items.find(j=>j.kind==="final-assistant"),R=N.items.filter(j=>j!==z&&j!==b).map(j=>({message:j.message,presentation:j.kind==="plan"?"plan":"process"})),$=N.items.map(j=>j.message.id).filter(j=>!!ae(j));f.push({key:N.key,warmItems:[],request:z?{message:z.message}:void 0,processItems:R,fileChangeAnchorIds:$,finalItem:b?{message:b.message,presentation:"final-assistant"}:void 0})}return f});function xn(){ke.value=Ul(ke.value,_.activeThreadId)}function zs(t){ke.value=ds(ke.value,_.activeThreadId,t,!Mt.value.has(t))}const _n=M(()=>Ee.value.map((t,o)=>({turn:o,text:zl(t.userItem.text)}))),Us=M(()=>Math.max(0,_n.value.length-1)),Vs=M(()=>{const t=new Map;return Ee.value.forEach((o,f)=>{t.set(o.userItem.id,f)}),t});function St(t){return`question-anchor-${t}`}function Ks(t){const o=Vs.value.get(t.id);if(o!==void 0&&!(o<Fe.value))return St(o)}function Gs(t){if(t<Fe.value){let o=ke.value;if(t<It.value){const f=Xl({turn:t,turnCount:Ee.value.length,hotTurns:hs,pageSize:ms});o=Vl(o,_.activeThreadId,f)}o=ds(o,_.activeThreadId,t,!0),ke.value=o}ve.value=!1,ct().then(()=>{const o=pe.value,f=document.getElementById(St(t));if(!o||!f)return;const v=f.getBoundingClientRect(),x=o.getBoundingClientRect(),p=o.scrollTop+v.top-x.top-12;o.scrollTo({top:Math.max(0,p),behavior:"smooth"})})}const Zs=M(()=>{const t=Tt.value,o=Ee.value,f=[];for(let S=It.value;S<Fe.value;S+=1){if(!Mt.value.has(S))continue;const A=o[S];A&&f.push(...t.slice(A.startIdx,A.endIdx))}const v=fs(t,o,Fe.value),x=v[0];if(!x)return f;const p=_.messages.findIndex(S=>S.id===x.id);return f.push(...p>=0?_.messages.slice(p):v),f}),Pt=M(()=>Dl(Zs.value)),Ue=M(()=>{var o;const t=new Map;for(const f of Pt.value){const v=((o=f.messages[0])==null?void 0:o.id)??"";v&&t.set(v,f)}return t}),Js=M(()=>{const t=new Set;for(const o of Pt.value)for(const f of o.messages)t.add(f.id);return t}),Xs=M(()=>{const t=new Set;for(const o of Pt.value)t.add(o.turnId);return t});function Ys(t){return Ue.value.has(t.id)}function Cn(t){return Js.value.has(t.id)}function Qs(t){var o;return((o=Ue.value.get(t.id))==null?void 0:o.messages)??[]}function eo(t){return jr(Qs(t))}function to(t){var o;return t.type==="batch"?`tool-batch-${t.kind}-${((o=t.messages[0])==null?void 0:o.id)??""}`:t.message.id}function no(t){const o=Ue.value.get(t.id);return o?Wl(o,{t:H,formatDuration:Zo}):""}function so(t){var o;return((o=Ue.value.get(t.id))==null?void 0:o.running)??!1}function oo(t){var o;return((o=Ue.value.get(t.id))==null?void 0:o.hasOutsideContent)??!0}function ao(t){return t.messageType==="worked"}const io=M(()=>_.hasMorePersistedAbove===!0),ro=M(()=>!ve.value&&(_.messages.length>0||_.pendingRequests.length>0||!!_.liveOverlay));function lo(){return tt.value?Promise.resolve():(nt||(nt=Ko(()=>import("./common-BeuopZEI.js"),[]).then(t=>{tt.value=t.default,Ae.clear(),Pe.clear(),Se.value+=1}).finally(()=>{nt=null})),nt)}function Tn(t){switch(t){case"completed":return"[x]";case"inProgress":return"[~]";default:return"[ ]"}}function co(t){var v;const o=Ge(t);if(!o)return"";const f=[];return(v=o.explanation)!=null&&v.trim()&&f.push(o.explanation.trim()),o.steps.length>0&&f.push(o.steps.map(x=>`- ${Tn(x.status)} ${x.step}`.trim()).join(`
26
26
  `)),f.join(`
27
27
 
28
28
  `).trim()}function At(t){const o=[],f=t.text.trim()||co(t),v=vt(t)&&f?`Plan
@@ -1,4 +1,4 @@
1
- import{d as dn,q as ct,N as un,O as _n,m as fn,l as pn,P as vs,C as gn,Q as vn,R as mn,S as Sn,o as Ht,a as Wt,b as Ke,F as wn,r as bn,n as ms,t as zt,u as Ft,e as yn,j as Cn,U as kn,_ as xn}from"./index-CZP3HKY9.js";/**
1
+ import{d as dn,q as ct,N as un,O as _n,m as fn,l as pn,P as vs,C as gn,Q as vn,R as mn,S as Sn,o as Ht,a as Wt,b as Ke,F as wn,r as bn,n as ms,t as zt,u as Ft,e as yn,j as Cn,U as kn,_ as xn}from"./index-DqT52OOe.js";/**
2
2
  * Copyright (c) 2014-2024 The xterm.js authors. All rights reserved.
3
3
  * @license MIT
4
4
  *