codexui-android 0.1.109 → 0.1.110

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 +1 @@
1
- import{d as tt,u as at,x as _,w as O,b as st,C as nt,e as it,o as l,c as o,a,t as n,q as p,f as y,i as ge,l as lt,F as b,r as S,L as ot,M as rt,g as Ce,p as X,s as G,v as ut,m as Be,T as vt,J as ct,y as k,N as dt,O as pt,P as ht,n as ft,Q as Le,R as wt,_ as _t}from"./index-ZXDbBStq.js";const yt={class:"review-pane-header"},mt={class:"review-pane-heading"},bt={class:"review-pane-eyebrow"},kt={class:"review-pane-title"},gt={class:"review-pane-header-actions"},Ct=["aria-label"],Bt={class:"review-pane-toolbar"},Lt={class:"review-pane-toolbar-tabs"},Ft={class:"review-pane-segmented review-pane-segmented-primary"},It=["data-active","onClick"],Rt={class:"review-pane-toolbar-controls"},xt={class:"review-pane-control-cluster"},St={class:"review-pane-control-label"},$t={class:"review-pane-segmented"},Tt=["data-active"],At=["data-active","disabled"],Et={key:0,class:"review-pane-control-cluster"},Mt={class:"review-pane-control-label"},Nt={class:"review-pane-branch-select-wrap"},Pt=["value"],Dt={key:1,class:"review-pane-control-cluster"},Wt={class:"review-pane-control-label"},Gt={class:"review-pane-segmented"},zt=["data-active"],Vt=["data-active"],Kt={class:"review-pane-toolbar-actions"},Ut=["disabled"],Ht=["disabled"],Ot={key:1,class:"review-pane-meta"},Xt={class:"review-pane-summary-pill review-pane-summary-pill-add"},jt={class:"review-pane-summary-pill review-pane-summary-pill-remove"},Yt={key:0},qt={key:1},Jt={key:2,class:"review-pane-content"},Qt={key:0,class:"review-pane-empty"},Zt={class:"review-pane-empty-title"},ea={key:1,class:"review-pane-empty"},ta={class:"review-pane-empty-title"},aa={class:"review-pane-empty-text"},sa=["disabled"],na={key:2,class:"review-pane-empty"},ia={class:"review-pane-empty-title"},la={class:"review-pane-empty-text"},oa={key:0,class:"review-pane-bulk-actions"},ra=["disabled","onClick"],ua={key:1,class:"review-pane-empty"},va={class:"review-pane-empty-title"},ca={class:"review-pane-empty-text"},da={key:0,class:"review-pane-file-list"},pa=["data-expanded","onClick"],ha=["data-expanded"],fa={class:"review-pane-tree-folder-name"},wa={class:"review-pane-tree-folder-count"},_a=["data-active","title","onClick"],ya={class:"review-pane-file-meta-row"},ma={class:"review-pane-file-main"},ba=["data-operation"],ka={class:"review-pane-file-path"},ga={class:"review-pane-file-delta"},Ca={class:"review-pane-delta-add"},Ba={class:"review-pane-delta-remove"},La={class:"review-pane-diff"},Fa={class:"review-pane-file-header"},Ia={class:"review-pane-file-header-main"},Ra={class:"review-pane-file-title"},xa={class:"review-pane-file-subtitle"},Sa={key:0,class:"review-pane-row-actions"},$a=["disabled","onClick"],Ta={key:0,class:"review-pane-raw-diff"},Aa={key:1,class:"review-pane-hunks"},Ea=["data-active","onClick"],Ma={class:"review-pane-hunk-header"},Na={class:"review-pane-hunk-title"},Pa={class:"review-pane-hunk-meta"},Da={key:0,class:"review-pane-row-actions"},Wa=["disabled","onClick"],Ga={class:"review-pane-lines"},za=["data-kind"],Va={class:"review-pane-line-number"},Ka={class:"review-pane-line-number"},Ua={class:"review-pane-line-marker"},Ha={class:"review-pane-line-code"},Oa={key:3,class:"review-pane-findings"},Xa={key:0,class:"review-pane-summary-card"},ja={class:"review-pane-summary-text"},Ya={key:1,class:"review-pane-findings-list"},qa=["onClick"],Ja={class:"review-pane-finding-title"},Qa={key:0,class:"review-pane-finding-location"},Za={key:1,class:"review-pane-finding-body"},es={key:2,class:"review-pane-empty"},ts={class:"review-pane-empty-text"},as={class:"review-pane-sheet-header"},ss={class:"review-pane-sheet-count"},ns={class:"review-pane-sheet-list"},is=["data-expanded","onClick"],ls=["data-expanded"],os={class:"review-pane-tree-folder-name"},rs={class:"review-pane-tree-folder-count"},us=["data-active","title","onClick"],vs={class:"review-pane-file-meta-row"},cs={class:"review-pane-file-main"},ds=["data-operation"],ps={class:"review-pane-file-path"},hs={class:"review-pane-file-delta"},fs={class:"review-pane-delta-add"},ws={class:"review-pane-delta-remove"},Fe="codex-web-local.review-pane-file-list-width.v1",_s=220,ys=420,Ie=288,ms=tt({__name:"ReviewPane",props:{threadId:{},cwd:{},isThreadInProgress:{type:Boolean}},emits:["close"],setup(Re){const g=Re,{isMobile:R}=at(),{t:u}=ct(),M=_("changes"),f=_("workspace"),L=_("unstaged"),v=_(null),$=_(""),j=_(!1),T=_(""),F=_(""),Y=_(!1),se=_(!1),N=_(!1),E=_(!1),q=_(!1),z=_(""),I=_(""),P=_(""),D=_({}),J=_(""),ne=new Map;let Q=null,A=null;const xe=[{value:"changes",label:u("Changes")},{value:"findings",label:u("Findings")}],Z=k(()=>`${f.value}:${L.value}`),V=k(()=>D.value[Z.value]??null),C=k(()=>{var e,t;return((e=v.value)==null?void 0:e.files.find(i=>i.id===T.value))??((t=v.value)==null?void 0:t.files[0])??null}),W=_({}),Se=k(()=>{var e,t;return(e=v.value)!=null&&e.isGitRepo?f.value==="workspace"?L.value==="staged"?u("Staged changes"):u("Workspace changes"):(t=v.value)!=null&&t.baseBranch?`${u("Against")} ${v.value.baseBranch}`:u("Base branch"):u("Repository review")}),ue=k(()=>{var e,t;return g.threadId.trim().length>0&&g.cwd.trim().length>0&&((e=v.value)==null?void 0:e.isGitRepo)===!0&&!g.isThreadInProgress&&!(f.value==="baseBranch"&&!((t=v.value)!=null&&t.baseBranch))}),ve=k(()=>{var e;return f.value==="workspace"&&((e=v.value)==null?void 0:e.isGitRepo)===!0&&v.value.files.length>0}),ce=k(()=>ve.value&&!N.value),$e=k(()=>L.value==="staged"?[{value:"unstage",label:u("Unstage all")}]:[{value:"stage",label:u("Stage all")},{value:"revert",label:u("Revert all")}]),Te=k(()=>L.value==="staged"?[{value:"unstage",label:u("Unstage file")}]:[{value:"stage",label:u("Stage file")},{value:"revert",label:u("Revert file")}]),Ae=k(()=>L.value==="staged"?[{value:"unstage",label:u("Unstage hunk")}]:[{value:"stage",label:u("Stage hunk")},{value:"revert",label:u("Revert hunk")}]),de=k(()=>I.value||z.value||P.value),Ee=k(()=>!!(I.value||z.value)),ee=_(Pe()),Me=k(()=>{const e={};return R.value||(e["--review-file-list-width"]=`${ee.value}px`),e}),pe=k(()=>{var e;return ze(((e=v.value)==null?void 0:e.files)??[],W.value)}),he=k(()=>pe.value.nodes),Ne=k(()=>pe.value.folderIdsByFileId);function ie(e){return Number.isFinite(e)?Math.min(ys,Math.max(_s,Math.round(e))):Ie}function Pe(){if(typeof window>"u")return Ie;const e=window.localStorage.getItem(Fe),t=e?Number(e):Number.NaN;return ie(t)}function De(e){typeof window>"u"||window.localStorage.setItem(Fe,String(ie(e)))}function We(e){if(R.value)return;e.preventDefault(),A==null||A();const t=e.clientX,i=ee.value,c=w=>{ee.value=ie(i+(w.clientX-t))},d=()=>{window.removeEventListener("pointermove",c),window.removeEventListener("pointerup",m),A=null},m=()=>{d(),De(ee.value)};window.addEventListener("pointermove",c),window.addEventListener("pointerup",m),A=d}function Ge(e){return e==="add"?"+":e==="remove"?"-":e==="hunk"?"@@":" "}function fe(e){const t=e.split("/").filter(Boolean);return t[t.length-1]??e}function we(e,t){return e.localeCompare(t,void 0,{numeric:!0,sensitivity:"base"})}function ze(e,t){const i={folders:new Map,files:[]},c={};for(const B of e){const s=B.path.split("/").filter(Boolean),r=s.pop()??B.path;let h=i,x="";const ke=[];for(const[et,U]of s.entries()){x=x?`${x}/${U}`:U;let H=h.folders.get(U);H||(H={id:x,name:U,depth:et,folders:new Map,files:[]},h.folders.set(U,H)),h=H,ke.push(H.id)}h.files.push({file:B,name:r,depth:s.length}),c[B.id]=ke}const d=[],m=B=>B.files.length+Array.from(B.folders.values()).reduce((s,r)=>s+m(r),0),w=B=>{const s=Array.from(B.folders.values()).sort((h,x)=>we(h.name,x.name)),r=[...B.files].sort((h,x)=>we(h.name,x.name));for(const h of s)d.push({kind:"folder",treeKey:`folder:${h.id}`,id:h.id,name:h.name,depth:h.depth,fileCount:m(h)}),t[h.id]!==!1&&w(h);for(const h of r)d.push({kind:"file",treeKey:`file:${h.file.id}`,id:h.file.id,name:h.name,depth:h.depth,file:h.file})};return w(i),{nodes:d,folderIdsByFileId:c}}function K(e){return W.value[e]!==!1}function _e(e){W.value={...W.value,[e]:!K(e)}}function le(e){const t=Ne.value[e]??[];if(t.length===0)return;const i={...W.value};let c=!1;for(const d of t)i[d]===!1&&(i[d]=!0,c=!0);c&&(W.value=i)}function te(e){const t=R.value?8:10,i=R.value?12:14;return{paddingLeft:`${t+e*i}px`}}function oe(e){return e==="add"?"Added":e==="delete"?"Deleted":e==="rename"?"Renamed":"Modified"}function Ve(e,t){if(!(t instanceof HTMLElement)){ne.delete(e);return}ne.set(e,t)}function Ke(e){const t=e.params!==null&&typeof e.params=="object"&&!Array.isArray(e.params)?e.params:null;return typeof(t==null?void 0:t.threadId)=="string"?t.threadId:""}async function ae(){var e,t,i;if(g.cwd.trim()){se.value=!0,z.value="";try{const c=f.value==="baseBranch"?$.value.trim():"",d=await dt(g.cwd,f.value,L.value,c||null);if(d.baseBranchOptions.length>0){const w=d.baseBranch??d.baseBranchOptions[0]??"";$.value!==w&&(j.value=!0,$.value=w)}else $.value!==""&&(j.value=!0,$.value="");v.value=d,d.files.some(w=>w.id===T.value)||(T.value=((e=d.files[0])==null?void 0:e.id)??"",F.value=((i=(t=d.files[0])==null?void 0:t.hunks[0])==null?void 0:i.id)??"")}catch(c){z.value=c instanceof Error?c.message:"Failed to load review snapshot"}finally{se.value=!1}}}async function Ue(){if(g.threadId.trim())try{const e=await Le(g.threadId);e.result&&(D.value={...D.value,[Z.value]:e.result})}catch{}}async function ye(){await Promise.all([ae(),Ue()])}function me(e){var i,c;le(e),T.value=e;const t=((i=v.value)==null?void 0:i.files.find(d=>d.id===e))??null;F.value=((c=t==null?void 0:t.hunks[0])==null?void 0:c.id)??"",R.value&&(Y.value=!1)}async function re(e,t,i=""){var c,d,m;if(v.value){N.value=!0,I.value="";try{const w=await wt({cwd:g.cwd,scope:f.value,workspaceView:L.value,action:e,level:t,patch:i});v.value=w,w.files.some(s=>s.id===T.value)||(T.value=((c=w.files[0])==null?void 0:c.id)??"",F.value=((m=(d=w.files[0])==null?void 0:d.hunks[0])==null?void 0:m.id)??"")}catch(w){I.value=w instanceof Error?w.message:"Failed to apply review action"}finally{N.value=!1}}}async function He(e){await re(e,"all")}async function Oe(e,t){await re(e,"file",t.diff)}async function Xe(e,t){F.value=t.id,await re(e,"hunk",t.patch)}async function je(){if(g.cwd.trim()){q.value=!0,I.value="";try{await pt(g.cwd),await ae()}catch(e){I.value=e instanceof Error?e.message:"Failed to initialize Git"}finally{q.value=!1}}}async function Ye(){var e,t;if(!(!ue.value||E.value)){I.value="",P.value=f.value==="workspace"?"Reviewing current changes":`Reviewing against ${((e=v.value)==null?void 0:e.baseBranch)??"base branch"}`,E.value=!0,J.value=Z.value;try{await ht(g.threadId,f.value,L.value,$.value||(((t=v.value)==null?void 0:t.baseBranch)??null))}catch(i){E.value=!1,P.value="",I.value=i instanceof Error?i.message:"Failed to start review"}}}function qe(e){if(!e.absolutePath)return"";const t=e.startLine?`:${e.startLine}${e.endLine&&e.endLine!==e.startLine?`-${e.endLine}`:""}`:"";return`${e.absolutePath}${t}`}function Je(e,t){if(!t.startLine)return e.hunks[0]??null;for(const i of e.hunks){if(i.newStart!==null){const c=i.newStart+Math.max(i.newLineCount,1)-1;if(t.startLine>=i.newStart&&t.startLine<=c)return i}if(i.oldStart!==null){const c=i.oldStart+Math.max(i.oldLineCount,1)-1;if(t.startLine>=i.oldStart&&t.startLine<=c)return i}}return e.hunks[0]??null}async function be(e){await ft();const t=ne.get(e);t==null||t.scrollIntoView({block:"center",behavior:"smooth"})}async function Qe(e){var c;M.value="changes";const t=((c=v.value)==null?void 0:c.files.find(d=>d.absolutePath===e.absolutePath||d.previousAbsolutePath===e.absolutePath))??null;if(!t)return;le(t.id),T.value=t.id;const i=Je(t,e);F.value=(i==null?void 0:i.id)??"",i!=null&&i.id&&await be(i.id)}function Ze(e){if(Ke(e)!==g.threadId)return;const t=e.params!==null&&typeof e.params=="object"&&!Array.isArray(e.params)?e.params:null,i=(t==null?void 0:t.item)!==null&&typeof(t==null?void 0:t.item)=="object"&&!Array.isArray(t.item)?t.item:null,c=typeof(i==null?void 0:i.type)=="string"?i.type:"";if(e.method==="item/started"&&c==="enteredReviewMode"){E.value=!0,P.value=typeof(i==null?void 0:i.review)=="string"?i.review:"Review in progress";return}if(e.method==="item/completed"&&c==="exitedReviewMode"){const d=J.value||Z.value;E.value=!1,P.value="",Le(g.threadId).then(m=>{m.result&&(D.value={...D.value,[d]:m.result},M.value="findings")}).catch(m=>{I.value=m instanceof Error?m.message:"Failed to load review result"}).finally(()=>{J.value=""})}}return O(()=>[g.threadId,g.cwd],()=>{T.value="",F.value="",D.value={},J.value="",I.value="",P.value="",ye()},{immediate:!0}),O(()=>[f.value,L.value],()=>{T.value="",F.value="",I.value="",z.value="",ae()}),O($,(e,t)=>{if(j.value){j.value=!1;return}f.value==="baseBranch"&&(!e||e===t||ae())}),O(C,e=>{var t;e&&(le(e.id),e.hunks.some(i=>i.id===F.value)||(F.value=((t=e.hunks[0])==null?void 0:t.id)??""))}),O(F,e=>{e&&be(e)}),st(()=>{Q=nt(Ze)}),it(()=>{Q&&(Q(),Q=null),A==null||A()}),(e,t)=>{var i,c,d,m,w,B;return l(),o("section",{class:Ce(["review-pane",{"is-mobile":p(R)}]),onClick:t[9]||(t[9]=Be(()=>{},["stop"]))},[a("header",yt,[a("div",mt,[a("p",bt,n(p(u)("Review")),1),a("p",kt,n(Se.value),1)]),a("div",gt,[p(R)&&M.value==="changes"&&((i=v.value)!=null&&i.files.length)?(l(),o("button",{key:0,type:"button",class:"review-pane-mobile-files-button",onClick:t[0]||(t[0]=s=>Y.value=!0)},n(p(u)("Files")),1)):y("",!0),a("button",{type:"button",class:"review-pane-close","aria-label":p(u)("Close review pane"),onClick:t[1]||(t[1]=s=>e.$emit("close"))},[ge(lt,{class:"icon-svg"})],8,Ct)])]),a("div",Bt,[a("div",Lt,[a("div",Ft,[(l(),o(b,null,S(xe,s=>a("button",{key:s.value,type:"button",class:"review-pane-segmented-button review-pane-tab","data-active":M.value===s.value,onClick:r=>M.value=s.value},n(s.label),9,It)),64))])]),a("div",Rt,[a("div",xt,[a("span",St,n(p(u)("Compare")),1),a("div",$t,[a("button",{type:"button",class:"review-pane-segmented-button review-pane-scope","data-active":f.value==="workspace",onClick:t[2]||(t[2]=s=>f.value="workspace")},n(p(u)("Workspace")),9,Tt),a("button",{type:"button",class:"review-pane-segmented-button review-pane-scope","data-active":f.value==="baseBranch",disabled:!((c=v.value)!=null&&c.baseBranch),onClick:t[3]||(t[3]=s=>f.value="baseBranch")},n(p(u)("Base branch")),9,At)])]),f.value==="baseBranch"&&((d=v.value)!=null&&d.baseBranchOptions.length)?(l(),o("div",Et,[a("span",Mt,n(p(u)("Branch")),1),a("label",Nt,[ot(a("select",{"onUpdate:modelValue":t[4]||(t[4]=s=>$.value=s),class:"review-pane-branch-select"},[(l(!0),o(b,null,S(v.value.baseBranchOptions,s=>(l(),o("option",{key:s,value:s},n(s),9,Pt))),128))],512),[[rt,$.value]])])])):y("",!0),f.value==="workspace"?(l(),o("div",Dt,[a("span",Wt,n(p(u)("Changes")),1),a("div",Gt,[a("button",{type:"button",class:"review-pane-segmented-button review-pane-view","data-active":L.value==="unstaged",onClick:t[5]||(t[5]=s=>L.value="unstaged")},n(p(u)("Unstaged")),9,zt),a("button",{type:"button",class:"review-pane-segmented-button review-pane-view","data-active":L.value==="staged",onClick:t[6]||(t[6]=s=>L.value="staged")},n(p(u)("Staged")),9,Vt)])])):y("",!0)]),a("div",Kt,[a("button",{type:"button",class:"review-pane-run",disabled:!ue.value||E.value,onClick:Ye},n(E.value?p(u)("Reviewing…"):p(u)("Run review")),9,Ut),a("button",{type:"button",class:"review-pane-refresh",disabled:se.value,onClick:ye},n(p(u)("Refresh")),9,Ht)])]),de.value?(l(),o("div",{key:0,class:Ce(["review-pane-banner",{"is-error":Ee.value}])},n(de.value),3)):y("",!0),v.value?(l(),o("div",Ot,[a("span",null,n(v.value.summary.fileCount)+" "+n(p(u)("files")),1),a("span",Xt,"+"+n(v.value.summary.addedLineCount),1),a("span",jt,"-"+n(v.value.summary.removedLineCount),1),v.value.headBranch?(l(),o("span",Yt,n(v.value.headBranch),1)):y("",!0),f.value==="baseBranch"&&v.value.baseBranch?(l(),o("span",qt,"vs "+n(v.value.baseBranch),1)):y("",!0)])):y("",!0),M.value==="changes"?(l(),o("div",Jt,[v.value?v.value.isGitRepo?f.value==="baseBranch"&&!v.value.baseBranch?(l(),o("div",na,[a("p",ia,n(p(u)("Base branch unavailable")),1),a("p",la,n(p(u)("Could not resolve `origin/HEAD`, `main`, or `master` for this repository.")),1)])):(l(),o(b,{key:3},[ve.value?(l(),o("div",oa,[(l(!0),o(b,null,S($e.value,s=>(l(),o("button",{key:s.value,type:"button",class:"review-pane-bulk-button",disabled:N.value,onClick:r=>He(s.value)},n(s.label),9,ra))),128))])):y("",!0),v.value.files.length?(l(),o("div",{key:2,class:"review-pane-main",style:X(Me.value)},[p(R)?y("",!0):(l(),o("aside",da,[(l(!0),o(b,null,S(he.value,s=>{var r;return l(),o(b,{key:s.treeKey},[s.kind==="folder"?(l(),o("button",{key:0,type:"button",class:"review-pane-tree-folder",style:X(te(s.depth)),"data-expanded":K(s.id),onClick:h=>_e(s.id)},[a("span",{class:"review-pane-tree-caret","data-expanded":K(s.id)},null,8,ha),a("span",fa,n(s.name),1),a("span",wa,n(s.fileCount),1)],12,pa)):(l(),o("button",{key:1,type:"button",class:"review-pane-file review-pane-tree-file",style:X(te(s.depth)),"data-active":((r=C.value)==null?void 0:r.id)===s.file.id,title:s.file.path,onClick:h=>me(s.file.id)},[a("span",ya,[a("span",ma,[a("span",{class:"review-pane-file-op","data-operation":s.file.operation},n(oe(s.file.operation)),9,ba),a("span",ka,[G(n(s.name)+" ",1),s.file.previousPath?(l(),o(b,{key:0},[G(" ← "+n(fe(s.file.previousPath)),1)],64)):y("",!0)])]),a("span",ga,[a("span",Ca,"+"+n(s.file.addedLineCount),1),t[10]||(t[10]=a("span",{class:"review-pane-delta-separator"},"/",-1)),a("span",Ba,"-"+n(s.file.removedLineCount),1)])])],12,_a))],64)}),128))])),p(R)?y("",!0):(l(),o("div",{key:1,class:"review-pane-resizer",role:"separator","aria-orientation":"vertical","aria-label":"Resize file list",onPointerdown:We},null,32)),a("section",La,[C.value?(l(),o(b,{key:0},[a("div",Fa,[a("div",Ia,[a("p",Ra,[G(n(C.value.path)+" ",1),C.value.previousPath?(l(),o(b,{key:0},[G(" ← "+n(C.value.previousPath),1)],64)):y("",!0)]),a("p",xa,n(oe(C.value.operation))+" · +"+n(C.value.addedLineCount)+" / -"+n(C.value.removedLineCount),1)]),ce.value?(l(),o("div",Sa,[(l(!0),o(b,null,S(Te.value,s=>(l(),o("button",{key:`${C.value.id}:${s.value}`,type:"button",class:"review-pane-row-button",disabled:N.value,onClick:r=>Oe(s.value,C.value)},n(s.label),9,$a))),128))])):y("",!0)]),C.value.hunks.length===0?(l(),o("div",Ta,[a("pre",null,n(C.value.diff||"No unified diff available."),1)])):(l(),o("div",Aa,[(l(!0),o(b,null,S(C.value.hunks,s=>(l(),o("article",{key:s.id,ref_for:!0,ref:r=>Ve(s.id,r),class:"review-pane-hunk","data-active":F.value===s.id,onClick:r=>F.value=s.id},[a("div",Ma,[a("div",null,[a("p",Na,n(s.header),1),a("p",Pa,"+"+n(s.addedLineCount)+" / -"+n(s.removedLineCount),1)]),ce.value?(l(),o("div",Da,[(l(!0),o(b,null,S(Ae.value,r=>(l(),o("button",{key:`${s.id}:${r.value}`,type:"button",class:"review-pane-row-button",disabled:N.value,onClick:h=>Xe(r.value,s)},n(r.label),9,Wa))),128))])):y("",!0)]),a("div",Ga,[(l(!0),o(b,null,S(s.lines,r=>(l(),o("div",{key:r.key,class:"review-pane-line","data-kind":r.kind},[a("span",Va,n(r.oldLine??""),1),a("span",Ka,n(r.newLine??""),1),a("span",Ua,n(Ge(r.kind)),1),a("code",Ha,n(r.text||" "),1)],8,za))),128))])],8,Ea))),128))]))],64)):y("",!0)])],4)):(l(),o("div",ua,[a("p",va,n(p(u)("No changes in this scope")),1),a("p",ca,n(f.value==="workspace"?p(u)("Your current workspace is clean."):p(u)("No merge diff found against the base branch.")),1)]))],64)):(l(),o("div",ea,[a("p",ta,n(p(u)("This folder is not a Git repository")),1),a("p",aa,n(p(u)("Initialize Git to review local changes and run Codex review.")),1),a("button",{type:"button",class:"review-pane-primary-cta",disabled:q.value,onClick:je},n(q.value?p(u)("Initializing…"):p(u)("Initialize Git")),9,sa)])):(l(),o("div",Qt,[a("p",Zt,n(p(u)("Loading review state")),1)]))])):(l(),o("div",Oa,[(m=V.value)!=null&&m.summary?(l(),o("div",Xa,[t[11]||(t[11]=a("p",{class:"review-pane-summary-title"},"Summary",-1)),a("pre",ja,n(V.value.summary),1)])):y("",!0),(w=V.value)!=null&&w.findings.length?(l(),o("div",Ya,[(l(!0),o(b,null,S(V.value.findings,s=>(l(),o("button",{key:s.id,type:"button",class:"review-pane-finding",onClick:r=>Qe(s)},[a("span",Ja,n(s.title),1),s.absolutePath?(l(),o("span",Qa,n(qe(s)),1)):y("",!0),s.body?(l(),o("span",Za,n(s.body),1)):y("",!0)],8,qa))),128))])):(l(),o("div",es,[t[12]||(t[12]=a("p",{class:"review-pane-empty-title"},"No structured findings yet",-1)),a("p",ts,n((B=V.value)!=null&&B.summary?"The latest review only returned summary text.":"Run review to populate this pane."),1)]))])),ge(vt,{name:"review-pane-sheet"},{default:ut(()=>{var s;return[p(R)&&Y.value&&((s=v.value)!=null&&s.files.length)?(l(),o("div",{key:0,class:"review-pane-sheet-backdrop",onClick:t[8]||(t[8]=r=>Y.value=!1)},[a("div",{class:"review-pane-sheet",onClick:t[7]||(t[7]=Be(()=>{},["stop"]))},[t[15]||(t[15]=a("div",{class:"review-pane-sheet-handle","aria-hidden":"true"},null,-1)),a("div",as,[t[13]||(t[13]=a("p",{class:"review-pane-sheet-title"},"Changed files",-1)),a("p",ss,n(v.value.files.length),1)]),a("div",ns,[(l(!0),o(b,null,S(he.value,r=>{var h;return l(),o(b,{key:`sheet:${r.treeKey}`},[r.kind==="folder"?(l(),o("button",{key:0,type:"button",class:"review-pane-tree-folder review-pane-tree-folder-sheet",style:X(te(r.depth)),"data-expanded":K(r.id),onClick:x=>_e(r.id)},[a("span",{class:"review-pane-tree-caret","data-expanded":K(r.id)},null,8,ls),a("span",os,n(r.name),1),a("span",rs,n(r.fileCount),1)],12,is)):(l(),o("button",{key:1,type:"button",class:"review-pane-file review-pane-tree-file",style:X(te(r.depth)),"data-active":((h=C.value)==null?void 0:h.id)===r.file.id,title:r.file.path,onClick:x=>me(r.file.id)},[a("span",vs,[a("span",cs,[a("span",{class:"review-pane-file-op","data-operation":r.file.operation},n(oe(r.file.operation)),9,ds),a("span",ps,[G(n(r.name)+" ",1),r.file.previousPath?(l(),o(b,{key:0},[G(" ← "+n(fe(r.file.previousPath)),1)],64)):y("",!0)])]),a("span",hs,[a("span",fs,"+"+n(r.file.addedLineCount),1),t[14]||(t[14]=a("span",{class:"review-pane-delta-separator"},"/",-1)),a("span",ws,"-"+n(r.file.removedLineCount),1)])])],12,us))],64)}),128))])])])):y("",!0)]}),_:1})],2)}}}),ks=_t(ms,[["__scopeId","data-v-24eaecc6"]]);export{ks as default};
1
+ import{d as tt,u as at,x as _,w as O,b as st,C as nt,e as it,o as l,c as o,a,t as n,q as p,f as y,i as ge,l as lt,F as b,r as S,L as ot,M as rt,g as Ce,p as X,s as G,v as ut,m as Be,T as vt,J as ct,y as k,N as dt,O as pt,P as ht,n as ft,Q as Le,R as wt,_ as _t}from"./index-xzqof2OU.js";const yt={class:"review-pane-header"},mt={class:"review-pane-heading"},bt={class:"review-pane-eyebrow"},kt={class:"review-pane-title"},gt={class:"review-pane-header-actions"},Ct=["aria-label"],Bt={class:"review-pane-toolbar"},Lt={class:"review-pane-toolbar-tabs"},Ft={class:"review-pane-segmented review-pane-segmented-primary"},It=["data-active","onClick"],Rt={class:"review-pane-toolbar-controls"},xt={class:"review-pane-control-cluster"},St={class:"review-pane-control-label"},$t={class:"review-pane-segmented"},Tt=["data-active"],At=["data-active","disabled"],Et={key:0,class:"review-pane-control-cluster"},Mt={class:"review-pane-control-label"},Nt={class:"review-pane-branch-select-wrap"},Pt=["value"],Dt={key:1,class:"review-pane-control-cluster"},Wt={class:"review-pane-control-label"},Gt={class:"review-pane-segmented"},zt=["data-active"],Vt=["data-active"],Kt={class:"review-pane-toolbar-actions"},Ut=["disabled"],Ht=["disabled"],Ot={key:1,class:"review-pane-meta"},Xt={class:"review-pane-summary-pill review-pane-summary-pill-add"},jt={class:"review-pane-summary-pill review-pane-summary-pill-remove"},Yt={key:0},qt={key:1},Jt={key:2,class:"review-pane-content"},Qt={key:0,class:"review-pane-empty"},Zt={class:"review-pane-empty-title"},ea={key:1,class:"review-pane-empty"},ta={class:"review-pane-empty-title"},aa={class:"review-pane-empty-text"},sa=["disabled"],na={key:2,class:"review-pane-empty"},ia={class:"review-pane-empty-title"},la={class:"review-pane-empty-text"},oa={key:0,class:"review-pane-bulk-actions"},ra=["disabled","onClick"],ua={key:1,class:"review-pane-empty"},va={class:"review-pane-empty-title"},ca={class:"review-pane-empty-text"},da={key:0,class:"review-pane-file-list"},pa=["data-expanded","onClick"],ha=["data-expanded"],fa={class:"review-pane-tree-folder-name"},wa={class:"review-pane-tree-folder-count"},_a=["data-active","title","onClick"],ya={class:"review-pane-file-meta-row"},ma={class:"review-pane-file-main"},ba=["data-operation"],ka={class:"review-pane-file-path"},ga={class:"review-pane-file-delta"},Ca={class:"review-pane-delta-add"},Ba={class:"review-pane-delta-remove"},La={class:"review-pane-diff"},Fa={class:"review-pane-file-header"},Ia={class:"review-pane-file-header-main"},Ra={class:"review-pane-file-title"},xa={class:"review-pane-file-subtitle"},Sa={key:0,class:"review-pane-row-actions"},$a=["disabled","onClick"],Ta={key:0,class:"review-pane-raw-diff"},Aa={key:1,class:"review-pane-hunks"},Ea=["data-active","onClick"],Ma={class:"review-pane-hunk-header"},Na={class:"review-pane-hunk-title"},Pa={class:"review-pane-hunk-meta"},Da={key:0,class:"review-pane-row-actions"},Wa=["disabled","onClick"],Ga={class:"review-pane-lines"},za=["data-kind"],Va={class:"review-pane-line-number"},Ka={class:"review-pane-line-number"},Ua={class:"review-pane-line-marker"},Ha={class:"review-pane-line-code"},Oa={key:3,class:"review-pane-findings"},Xa={key:0,class:"review-pane-summary-card"},ja={class:"review-pane-summary-text"},Ya={key:1,class:"review-pane-findings-list"},qa=["onClick"],Ja={class:"review-pane-finding-title"},Qa={key:0,class:"review-pane-finding-location"},Za={key:1,class:"review-pane-finding-body"},es={key:2,class:"review-pane-empty"},ts={class:"review-pane-empty-text"},as={class:"review-pane-sheet-header"},ss={class:"review-pane-sheet-count"},ns={class:"review-pane-sheet-list"},is=["data-expanded","onClick"],ls=["data-expanded"],os={class:"review-pane-tree-folder-name"},rs={class:"review-pane-tree-folder-count"},us=["data-active","title","onClick"],vs={class:"review-pane-file-meta-row"},cs={class:"review-pane-file-main"},ds=["data-operation"],ps={class:"review-pane-file-path"},hs={class:"review-pane-file-delta"},fs={class:"review-pane-delta-add"},ws={class:"review-pane-delta-remove"},Fe="codex-web-local.review-pane-file-list-width.v1",_s=220,ys=420,Ie=288,ms=tt({__name:"ReviewPane",props:{threadId:{},cwd:{},isThreadInProgress:{type:Boolean}},emits:["close"],setup(Re){const g=Re,{isMobile:R}=at(),{t:u}=ct(),M=_("changes"),f=_("workspace"),L=_("unstaged"),v=_(null),$=_(""),j=_(!1),T=_(""),F=_(""),Y=_(!1),se=_(!1),N=_(!1),E=_(!1),q=_(!1),z=_(""),I=_(""),P=_(""),D=_({}),J=_(""),ne=new Map;let Q=null,A=null;const xe=[{value:"changes",label:u("Changes")},{value:"findings",label:u("Findings")}],Z=k(()=>`${f.value}:${L.value}`),V=k(()=>D.value[Z.value]??null),C=k(()=>{var e,t;return((e=v.value)==null?void 0:e.files.find(i=>i.id===T.value))??((t=v.value)==null?void 0:t.files[0])??null}),W=_({}),Se=k(()=>{var e,t;return(e=v.value)!=null&&e.isGitRepo?f.value==="workspace"?L.value==="staged"?u("Staged changes"):u("Workspace changes"):(t=v.value)!=null&&t.baseBranch?`${u("Against")} ${v.value.baseBranch}`:u("Base branch"):u("Repository review")}),ue=k(()=>{var e,t;return g.threadId.trim().length>0&&g.cwd.trim().length>0&&((e=v.value)==null?void 0:e.isGitRepo)===!0&&!g.isThreadInProgress&&!(f.value==="baseBranch"&&!((t=v.value)!=null&&t.baseBranch))}),ve=k(()=>{var e;return f.value==="workspace"&&((e=v.value)==null?void 0:e.isGitRepo)===!0&&v.value.files.length>0}),ce=k(()=>ve.value&&!N.value),$e=k(()=>L.value==="staged"?[{value:"unstage",label:u("Unstage all")}]:[{value:"stage",label:u("Stage all")},{value:"revert",label:u("Revert all")}]),Te=k(()=>L.value==="staged"?[{value:"unstage",label:u("Unstage file")}]:[{value:"stage",label:u("Stage file")},{value:"revert",label:u("Revert file")}]),Ae=k(()=>L.value==="staged"?[{value:"unstage",label:u("Unstage hunk")}]:[{value:"stage",label:u("Stage hunk")},{value:"revert",label:u("Revert hunk")}]),de=k(()=>I.value||z.value||P.value),Ee=k(()=>!!(I.value||z.value)),ee=_(Pe()),Me=k(()=>{const e={};return R.value||(e["--review-file-list-width"]=`${ee.value}px`),e}),pe=k(()=>{var e;return ze(((e=v.value)==null?void 0:e.files)??[],W.value)}),he=k(()=>pe.value.nodes),Ne=k(()=>pe.value.folderIdsByFileId);function ie(e){return Number.isFinite(e)?Math.min(ys,Math.max(_s,Math.round(e))):Ie}function Pe(){if(typeof window>"u")return Ie;const e=window.localStorage.getItem(Fe),t=e?Number(e):Number.NaN;return ie(t)}function De(e){typeof window>"u"||window.localStorage.setItem(Fe,String(ie(e)))}function We(e){if(R.value)return;e.preventDefault(),A==null||A();const t=e.clientX,i=ee.value,c=w=>{ee.value=ie(i+(w.clientX-t))},d=()=>{window.removeEventListener("pointermove",c),window.removeEventListener("pointerup",m),A=null},m=()=>{d(),De(ee.value)};window.addEventListener("pointermove",c),window.addEventListener("pointerup",m),A=d}function Ge(e){return e==="add"?"+":e==="remove"?"-":e==="hunk"?"@@":" "}function fe(e){const t=e.split("/").filter(Boolean);return t[t.length-1]??e}function we(e,t){return e.localeCompare(t,void 0,{numeric:!0,sensitivity:"base"})}function ze(e,t){const i={folders:new Map,files:[]},c={};for(const B of e){const s=B.path.split("/").filter(Boolean),r=s.pop()??B.path;let h=i,x="";const ke=[];for(const[et,U]of s.entries()){x=x?`${x}/${U}`:U;let H=h.folders.get(U);H||(H={id:x,name:U,depth:et,folders:new Map,files:[]},h.folders.set(U,H)),h=H,ke.push(H.id)}h.files.push({file:B,name:r,depth:s.length}),c[B.id]=ke}const d=[],m=B=>B.files.length+Array.from(B.folders.values()).reduce((s,r)=>s+m(r),0),w=B=>{const s=Array.from(B.folders.values()).sort((h,x)=>we(h.name,x.name)),r=[...B.files].sort((h,x)=>we(h.name,x.name));for(const h of s)d.push({kind:"folder",treeKey:`folder:${h.id}`,id:h.id,name:h.name,depth:h.depth,fileCount:m(h)}),t[h.id]!==!1&&w(h);for(const h of r)d.push({kind:"file",treeKey:`file:${h.file.id}`,id:h.file.id,name:h.name,depth:h.depth,file:h.file})};return w(i),{nodes:d,folderIdsByFileId:c}}function K(e){return W.value[e]!==!1}function _e(e){W.value={...W.value,[e]:!K(e)}}function le(e){const t=Ne.value[e]??[];if(t.length===0)return;const i={...W.value};let c=!1;for(const d of t)i[d]===!1&&(i[d]=!0,c=!0);c&&(W.value=i)}function te(e){const t=R.value?8:10,i=R.value?12:14;return{paddingLeft:`${t+e*i}px`}}function oe(e){return e==="add"?"Added":e==="delete"?"Deleted":e==="rename"?"Renamed":"Modified"}function Ve(e,t){if(!(t instanceof HTMLElement)){ne.delete(e);return}ne.set(e,t)}function Ke(e){const t=e.params!==null&&typeof e.params=="object"&&!Array.isArray(e.params)?e.params:null;return typeof(t==null?void 0:t.threadId)=="string"?t.threadId:""}async function ae(){var e,t,i;if(g.cwd.trim()){se.value=!0,z.value="";try{const c=f.value==="baseBranch"?$.value.trim():"",d=await dt(g.cwd,f.value,L.value,c||null);if(d.baseBranchOptions.length>0){const w=d.baseBranch??d.baseBranchOptions[0]??"";$.value!==w&&(j.value=!0,$.value=w)}else $.value!==""&&(j.value=!0,$.value="");v.value=d,d.files.some(w=>w.id===T.value)||(T.value=((e=d.files[0])==null?void 0:e.id)??"",F.value=((i=(t=d.files[0])==null?void 0:t.hunks[0])==null?void 0:i.id)??"")}catch(c){z.value=c instanceof Error?c.message:"Failed to load review snapshot"}finally{se.value=!1}}}async function Ue(){if(g.threadId.trim())try{const e=await Le(g.threadId);e.result&&(D.value={...D.value,[Z.value]:e.result})}catch{}}async function ye(){await Promise.all([ae(),Ue()])}function me(e){var i,c;le(e),T.value=e;const t=((i=v.value)==null?void 0:i.files.find(d=>d.id===e))??null;F.value=((c=t==null?void 0:t.hunks[0])==null?void 0:c.id)??"",R.value&&(Y.value=!1)}async function re(e,t,i=""){var c,d,m;if(v.value){N.value=!0,I.value="";try{const w=await wt({cwd:g.cwd,scope:f.value,workspaceView:L.value,action:e,level:t,patch:i});v.value=w,w.files.some(s=>s.id===T.value)||(T.value=((c=w.files[0])==null?void 0:c.id)??"",F.value=((m=(d=w.files[0])==null?void 0:d.hunks[0])==null?void 0:m.id)??"")}catch(w){I.value=w instanceof Error?w.message:"Failed to apply review action"}finally{N.value=!1}}}async function He(e){await re(e,"all")}async function Oe(e,t){await re(e,"file",t.diff)}async function Xe(e,t){F.value=t.id,await re(e,"hunk",t.patch)}async function je(){if(g.cwd.trim()){q.value=!0,I.value="";try{await pt(g.cwd),await ae()}catch(e){I.value=e instanceof Error?e.message:"Failed to initialize Git"}finally{q.value=!1}}}async function Ye(){var e,t;if(!(!ue.value||E.value)){I.value="",P.value=f.value==="workspace"?"Reviewing current changes":`Reviewing against ${((e=v.value)==null?void 0:e.baseBranch)??"base branch"}`,E.value=!0,J.value=Z.value;try{await ht(g.threadId,f.value,L.value,$.value||(((t=v.value)==null?void 0:t.baseBranch)??null))}catch(i){E.value=!1,P.value="",I.value=i instanceof Error?i.message:"Failed to start review"}}}function qe(e){if(!e.absolutePath)return"";const t=e.startLine?`:${e.startLine}${e.endLine&&e.endLine!==e.startLine?`-${e.endLine}`:""}`:"";return`${e.absolutePath}${t}`}function Je(e,t){if(!t.startLine)return e.hunks[0]??null;for(const i of e.hunks){if(i.newStart!==null){const c=i.newStart+Math.max(i.newLineCount,1)-1;if(t.startLine>=i.newStart&&t.startLine<=c)return i}if(i.oldStart!==null){const c=i.oldStart+Math.max(i.oldLineCount,1)-1;if(t.startLine>=i.oldStart&&t.startLine<=c)return i}}return e.hunks[0]??null}async function be(e){await ft();const t=ne.get(e);t==null||t.scrollIntoView({block:"center",behavior:"smooth"})}async function Qe(e){var c;M.value="changes";const t=((c=v.value)==null?void 0:c.files.find(d=>d.absolutePath===e.absolutePath||d.previousAbsolutePath===e.absolutePath))??null;if(!t)return;le(t.id),T.value=t.id;const i=Je(t,e);F.value=(i==null?void 0:i.id)??"",i!=null&&i.id&&await be(i.id)}function Ze(e){if(Ke(e)!==g.threadId)return;const t=e.params!==null&&typeof e.params=="object"&&!Array.isArray(e.params)?e.params:null,i=(t==null?void 0:t.item)!==null&&typeof(t==null?void 0:t.item)=="object"&&!Array.isArray(t.item)?t.item:null,c=typeof(i==null?void 0:i.type)=="string"?i.type:"";if(e.method==="item/started"&&c==="enteredReviewMode"){E.value=!0,P.value=typeof(i==null?void 0:i.review)=="string"?i.review:"Review in progress";return}if(e.method==="item/completed"&&c==="exitedReviewMode"){const d=J.value||Z.value;E.value=!1,P.value="",Le(g.threadId).then(m=>{m.result&&(D.value={...D.value,[d]:m.result},M.value="findings")}).catch(m=>{I.value=m instanceof Error?m.message:"Failed to load review result"}).finally(()=>{J.value=""})}}return O(()=>[g.threadId,g.cwd],()=>{T.value="",F.value="",D.value={},J.value="",I.value="",P.value="",ye()},{immediate:!0}),O(()=>[f.value,L.value],()=>{T.value="",F.value="",I.value="",z.value="",ae()}),O($,(e,t)=>{if(j.value){j.value=!1;return}f.value==="baseBranch"&&(!e||e===t||ae())}),O(C,e=>{var t;e&&(le(e.id),e.hunks.some(i=>i.id===F.value)||(F.value=((t=e.hunks[0])==null?void 0:t.id)??""))}),O(F,e=>{e&&be(e)}),st(()=>{Q=nt(Ze)}),it(()=>{Q&&(Q(),Q=null),A==null||A()}),(e,t)=>{var i,c,d,m,w,B;return l(),o("section",{class:Ce(["review-pane",{"is-mobile":p(R)}]),onClick:t[9]||(t[9]=Be(()=>{},["stop"]))},[a("header",yt,[a("div",mt,[a("p",bt,n(p(u)("Review")),1),a("p",kt,n(Se.value),1)]),a("div",gt,[p(R)&&M.value==="changes"&&((i=v.value)!=null&&i.files.length)?(l(),o("button",{key:0,type:"button",class:"review-pane-mobile-files-button",onClick:t[0]||(t[0]=s=>Y.value=!0)},n(p(u)("Files")),1)):y("",!0),a("button",{type:"button",class:"review-pane-close","aria-label":p(u)("Close review pane"),onClick:t[1]||(t[1]=s=>e.$emit("close"))},[ge(lt,{class:"icon-svg"})],8,Ct)])]),a("div",Bt,[a("div",Lt,[a("div",Ft,[(l(),o(b,null,S(xe,s=>a("button",{key:s.value,type:"button",class:"review-pane-segmented-button review-pane-tab","data-active":M.value===s.value,onClick:r=>M.value=s.value},n(s.label),9,It)),64))])]),a("div",Rt,[a("div",xt,[a("span",St,n(p(u)("Compare")),1),a("div",$t,[a("button",{type:"button",class:"review-pane-segmented-button review-pane-scope","data-active":f.value==="workspace",onClick:t[2]||(t[2]=s=>f.value="workspace")},n(p(u)("Workspace")),9,Tt),a("button",{type:"button",class:"review-pane-segmented-button review-pane-scope","data-active":f.value==="baseBranch",disabled:!((c=v.value)!=null&&c.baseBranch),onClick:t[3]||(t[3]=s=>f.value="baseBranch")},n(p(u)("Base branch")),9,At)])]),f.value==="baseBranch"&&((d=v.value)!=null&&d.baseBranchOptions.length)?(l(),o("div",Et,[a("span",Mt,n(p(u)("Branch")),1),a("label",Nt,[ot(a("select",{"onUpdate:modelValue":t[4]||(t[4]=s=>$.value=s),class:"review-pane-branch-select"},[(l(!0),o(b,null,S(v.value.baseBranchOptions,s=>(l(),o("option",{key:s,value:s},n(s),9,Pt))),128))],512),[[rt,$.value]])])])):y("",!0),f.value==="workspace"?(l(),o("div",Dt,[a("span",Wt,n(p(u)("Changes")),1),a("div",Gt,[a("button",{type:"button",class:"review-pane-segmented-button review-pane-view","data-active":L.value==="unstaged",onClick:t[5]||(t[5]=s=>L.value="unstaged")},n(p(u)("Unstaged")),9,zt),a("button",{type:"button",class:"review-pane-segmented-button review-pane-view","data-active":L.value==="staged",onClick:t[6]||(t[6]=s=>L.value="staged")},n(p(u)("Staged")),9,Vt)])])):y("",!0)]),a("div",Kt,[a("button",{type:"button",class:"review-pane-run",disabled:!ue.value||E.value,onClick:Ye},n(E.value?p(u)("Reviewing…"):p(u)("Run review")),9,Ut),a("button",{type:"button",class:"review-pane-refresh",disabled:se.value,onClick:ye},n(p(u)("Refresh")),9,Ht)])]),de.value?(l(),o("div",{key:0,class:Ce(["review-pane-banner",{"is-error":Ee.value}])},n(de.value),3)):y("",!0),v.value?(l(),o("div",Ot,[a("span",null,n(v.value.summary.fileCount)+" "+n(p(u)("files")),1),a("span",Xt,"+"+n(v.value.summary.addedLineCount),1),a("span",jt,"-"+n(v.value.summary.removedLineCount),1),v.value.headBranch?(l(),o("span",Yt,n(v.value.headBranch),1)):y("",!0),f.value==="baseBranch"&&v.value.baseBranch?(l(),o("span",qt,"vs "+n(v.value.baseBranch),1)):y("",!0)])):y("",!0),M.value==="changes"?(l(),o("div",Jt,[v.value?v.value.isGitRepo?f.value==="baseBranch"&&!v.value.baseBranch?(l(),o("div",na,[a("p",ia,n(p(u)("Base branch unavailable")),1),a("p",la,n(p(u)("Could not resolve `origin/HEAD`, `main`, or `master` for this repository.")),1)])):(l(),o(b,{key:3},[ve.value?(l(),o("div",oa,[(l(!0),o(b,null,S($e.value,s=>(l(),o("button",{key:s.value,type:"button",class:"review-pane-bulk-button",disabled:N.value,onClick:r=>He(s.value)},n(s.label),9,ra))),128))])):y("",!0),v.value.files.length?(l(),o("div",{key:2,class:"review-pane-main",style:X(Me.value)},[p(R)?y("",!0):(l(),o("aside",da,[(l(!0),o(b,null,S(he.value,s=>{var r;return l(),o(b,{key:s.treeKey},[s.kind==="folder"?(l(),o("button",{key:0,type:"button",class:"review-pane-tree-folder",style:X(te(s.depth)),"data-expanded":K(s.id),onClick:h=>_e(s.id)},[a("span",{class:"review-pane-tree-caret","data-expanded":K(s.id)},null,8,ha),a("span",fa,n(s.name),1),a("span",wa,n(s.fileCount),1)],12,pa)):(l(),o("button",{key:1,type:"button",class:"review-pane-file review-pane-tree-file",style:X(te(s.depth)),"data-active":((r=C.value)==null?void 0:r.id)===s.file.id,title:s.file.path,onClick:h=>me(s.file.id)},[a("span",ya,[a("span",ma,[a("span",{class:"review-pane-file-op","data-operation":s.file.operation},n(oe(s.file.operation)),9,ba),a("span",ka,[G(n(s.name)+" ",1),s.file.previousPath?(l(),o(b,{key:0},[G(" ← "+n(fe(s.file.previousPath)),1)],64)):y("",!0)])]),a("span",ga,[a("span",Ca,"+"+n(s.file.addedLineCount),1),t[10]||(t[10]=a("span",{class:"review-pane-delta-separator"},"/",-1)),a("span",Ba,"-"+n(s.file.removedLineCount),1)])])],12,_a))],64)}),128))])),p(R)?y("",!0):(l(),o("div",{key:1,class:"review-pane-resizer",role:"separator","aria-orientation":"vertical","aria-label":"Resize file list",onPointerdown:We},null,32)),a("section",La,[C.value?(l(),o(b,{key:0},[a("div",Fa,[a("div",Ia,[a("p",Ra,[G(n(C.value.path)+" ",1),C.value.previousPath?(l(),o(b,{key:0},[G(" ← "+n(C.value.previousPath),1)],64)):y("",!0)]),a("p",xa,n(oe(C.value.operation))+" · +"+n(C.value.addedLineCount)+" / -"+n(C.value.removedLineCount),1)]),ce.value?(l(),o("div",Sa,[(l(!0),o(b,null,S(Te.value,s=>(l(),o("button",{key:`${C.value.id}:${s.value}`,type:"button",class:"review-pane-row-button",disabled:N.value,onClick:r=>Oe(s.value,C.value)},n(s.label),9,$a))),128))])):y("",!0)]),C.value.hunks.length===0?(l(),o("div",Ta,[a("pre",null,n(C.value.diff||"No unified diff available."),1)])):(l(),o("div",Aa,[(l(!0),o(b,null,S(C.value.hunks,s=>(l(),o("article",{key:s.id,ref_for:!0,ref:r=>Ve(s.id,r),class:"review-pane-hunk","data-active":F.value===s.id,onClick:r=>F.value=s.id},[a("div",Ma,[a("div",null,[a("p",Na,n(s.header),1),a("p",Pa,"+"+n(s.addedLineCount)+" / -"+n(s.removedLineCount),1)]),ce.value?(l(),o("div",Da,[(l(!0),o(b,null,S(Ae.value,r=>(l(),o("button",{key:`${s.id}:${r.value}`,type:"button",class:"review-pane-row-button",disabled:N.value,onClick:h=>Xe(r.value,s)},n(r.label),9,Wa))),128))])):y("",!0)]),a("div",Ga,[(l(!0),o(b,null,S(s.lines,r=>(l(),o("div",{key:r.key,class:"review-pane-line","data-kind":r.kind},[a("span",Va,n(r.oldLine??""),1),a("span",Ka,n(r.newLine??""),1),a("span",Ua,n(Ge(r.kind)),1),a("code",Ha,n(r.text||" "),1)],8,za))),128))])],8,Ea))),128))]))],64)):y("",!0)])],4)):(l(),o("div",ua,[a("p",va,n(p(u)("No changes in this scope")),1),a("p",ca,n(f.value==="workspace"?p(u)("Your current workspace is clean."):p(u)("No merge diff found against the base branch.")),1)]))],64)):(l(),o("div",ea,[a("p",ta,n(p(u)("This folder is not a Git repository")),1),a("p",aa,n(p(u)("Initialize Git to review local changes and run Codex review.")),1),a("button",{type:"button",class:"review-pane-primary-cta",disabled:q.value,onClick:je},n(q.value?p(u)("Initializing…"):p(u)("Initialize Git")),9,sa)])):(l(),o("div",Qt,[a("p",Zt,n(p(u)("Loading review state")),1)]))])):(l(),o("div",Oa,[(m=V.value)!=null&&m.summary?(l(),o("div",Xa,[t[11]||(t[11]=a("p",{class:"review-pane-summary-title"},"Summary",-1)),a("pre",ja,n(V.value.summary),1)])):y("",!0),(w=V.value)!=null&&w.findings.length?(l(),o("div",Ya,[(l(!0),o(b,null,S(V.value.findings,s=>(l(),o("button",{key:s.id,type:"button",class:"review-pane-finding",onClick:r=>Qe(s)},[a("span",Ja,n(s.title),1),s.absolutePath?(l(),o("span",Qa,n(qe(s)),1)):y("",!0),s.body?(l(),o("span",Za,n(s.body),1)):y("",!0)],8,qa))),128))])):(l(),o("div",es,[t[12]||(t[12]=a("p",{class:"review-pane-empty-title"},"No structured findings yet",-1)),a("p",ts,n((B=V.value)!=null&&B.summary?"The latest review only returned summary text.":"Run review to populate this pane."),1)]))])),ge(vt,{name:"review-pane-sheet"},{default:ut(()=>{var s;return[p(R)&&Y.value&&((s=v.value)!=null&&s.files.length)?(l(),o("div",{key:0,class:"review-pane-sheet-backdrop",onClick:t[8]||(t[8]=r=>Y.value=!1)},[a("div",{class:"review-pane-sheet",onClick:t[7]||(t[7]=Be(()=>{},["stop"]))},[t[15]||(t[15]=a("div",{class:"review-pane-sheet-handle","aria-hidden":"true"},null,-1)),a("div",as,[t[13]||(t[13]=a("p",{class:"review-pane-sheet-title"},"Changed files",-1)),a("p",ss,n(v.value.files.length),1)]),a("div",ns,[(l(!0),o(b,null,S(he.value,r=>{var h;return l(),o(b,{key:`sheet:${r.treeKey}`},[r.kind==="folder"?(l(),o("button",{key:0,type:"button",class:"review-pane-tree-folder review-pane-tree-folder-sheet",style:X(te(r.depth)),"data-expanded":K(r.id),onClick:x=>_e(r.id)},[a("span",{class:"review-pane-tree-caret","data-expanded":K(r.id)},null,8,ls),a("span",os,n(r.name),1),a("span",rs,n(r.fileCount),1)],12,is)):(l(),o("button",{key:1,type:"button",class:"review-pane-file review-pane-tree-file",style:X(te(r.depth)),"data-active":((h=C.value)==null?void 0:h.id)===r.file.id,title:r.file.path,onClick:x=>me(r.file.id)},[a("span",vs,[a("span",cs,[a("span",{class:"review-pane-file-op","data-operation":r.file.operation},n(oe(r.file.operation)),9,ds),a("span",ps,[G(n(r.name)+" ",1),r.file.previousPath?(l(),o(b,{key:0},[G(" ← "+n(fe(r.file.previousPath)),1)],64)):y("",!0)])]),a("span",hs,[a("span",fs,"+"+n(r.file.addedLineCount),1),t[14]||(t[14]=a("span",{class:"review-pane-delta-separator"},"/",-1)),a("span",ws,"-"+n(r.file.removedLineCount),1)])])],12,us))],64)}),128))])])])):y("",!0)]}),_:1})],2)}}}),ks=_t(ms,[["__scopeId","data-v-24eaecc6"]]);export{ks as default};
@@ -1,4 +1,4 @@
1
- import{_ as In,o as r,c as l,a as u,d as Ns,u as Vs,w as Y,n as bt,b as Us,e as qs,t as h,f as g,F as y,r as b,g as x,h as Ks,i as Q,I as Gs,j as Zs,k as Xs,l as Tn,m as Ge,p as xt,q as Ct,s as ee,v as Mn,T as Js,x as C,y as L,z as Ys,A as Qs,B as ei}from"./index-ZXDbBStq.js";const ti={},ni={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function si(T,xe){return r(),l("svg",ni,[...xe[0]||(xe[0]=[u("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 ii=In(ti,[["render",si]]),oi={key:0,class:"conversation-loading"},ai={key:1,class:"conversation-empty"},ri={key:0,class:"conversation-load-more"},li=["disabled"],ci=["data-role","data-message-type"],ui={key:0,class:"message-row","data-role":"system"},di={class:"message-stack","data-role":"system"},fi=["onClick"],hi={class:"cmd-group-label"},pi={class:"cmd-status"},mi={class:"cmd-group-inner"},vi=["onClick"],ki={class:"cmd-label"},gi={class:"cmd-status"},yi={class:"cmd-output-inner"},_i=["textContent"],wi=["onClick"],bi={class:"cmd-label"},xi={class:"cmd-status"},Ci={class:"cmd-output-inner"},$i=["textContent"],Li=["data-role","data-message-type"],Ti=["data-role"],Mi=["data-role"],Ii={key:0,class:"file-change-summary-block"},Pi=["onClick"],Si={class:"file-change-summary-label"},Ai={class:"file-change-summary-status"},Ei=["data-tone"],Bi={class:"file-change-panel-inner"},Fi={class:"file-change-list"},Wi=["data-operation"],Ri=["title","onClick"],Hi={key:0,class:"file-change-arrow"},Oi=["title","onClick"],zi={key:2,class:"file-change-delta"},ji=["data-tone"],Di=["data-role","data-message-type"],Ni=["data-role"],Vi=["data-role"],Ui=["data-role"],qi=["onClick"],Ki=["src","alt"],Gi={key:1,class:"message-file-attachments"},Zi=["href","title"],Xi={key:2,class:"message-skill-attachments"},Ji=["href","title"],Yi={class:"message-skill-chip-name"},Qi=["data-role"],eo={key:0,class:"automation-message-label"},to={key:0},no={key:1,class:"worked-separator-wrap","aria-live":"polite"},so=["onClick"],io={class:"worked-separator-text"},oo={key:0,class:"worked-details"},ao=["onClick"],ro={class:"cmd-label"},lo={class:"cmd-status"},co={class:"cmd-output-inner"},uo=["textContent"],fo=["data-streaming"],ho={class:"plan-card-header"},po={key:0,class:"plan-card-badge"},mo=["innerHTML"],vo={key:1,class:"plan-step-list"},ko=["data-status"],go=["data-status"],yo=["innerHTML"],_o=["innerHTML"],wo={key:3,class:"plan-card-actions"},bo=["onClick"],xo={key:0,class:"message-text"},Co={key:0},$o={key:1,class:"message-bold-text"},Lo={key:2,class:"message-italic-text"},To={key:3,class:"message-strikethrough-text"},Mo=["href","title"],Io=["href","title"],Po={key:6,class:"message-inline-code"},So={key:0},Ao={key:1,class:"message-bold-text"},Eo={key:2,class:"message-italic-text"},Bo={key:3,class:"message-strikethrough-text"},Fo=["href","title"],Wo=["href","title"],Ro={key:6,class:"message-inline-code"},Ho={key:2,class:"message-blockquote"},Oo={key:0},zo={key:1,class:"message-bold-text"},jo={key:2,class:"message-italic-text"},Do={key:3,class:"message-strikethrough-text"},No=["href","title"],Vo=["href","title"],Uo={key:6,class:"message-inline-code"},qo={key:3,class:"message-list message-list-unordered"},Ko=["innerHTML"],Go={key:4,class:"message-list message-task-list"},Zo=["data-checked"],Xo={class:"message-list-item-text"},Jo={key:0},Yo={key:1,class:"message-bold-text"},Qo={key:2,class:"message-italic-text"},ea={key:3,class:"message-strikethrough-text"},ta=["href","title"],na=["href","title"],sa={key:6,class:"message-inline-code"},ia=["start"],oa=["innerHTML"],aa={key:6,class:"message-table-wrap"},ra={class:"message-table"},la={key:0},ca={key:1,class:"message-bold-text"},ua={key:2,class:"message-italic-text"},da={key:3,class:"message-strikethrough-text"},fa=["href","title"],ha=["href","title"],pa={key:6,class:"message-inline-code"},ma={key:0},va={key:0},ka={key:1,class:"message-bold-text"},ga={key:2,class:"message-italic-text"},ya={key:3,class:"message-strikethrough-text"},_a=["href","title"],wa=["href","title"],ba={key:6,class:"message-inline-code"},xa={key:7,class:"message-code-block"},Ca={key:0,class:"message-code-language"},$a={class:"message-code-pre"},La=["innerHTML"],Ta={key:8,class:"message-divider"},Ma={key:9,class:"message-text"},Ia=["onClick"],Pa=["src","alt","onError"],Sa={key:4,class:"file-change-summary-block file-change-summary-block-inline"},Aa=["onClick"],Ea={class:"file-change-summary-label"},Ba={class:"file-change-summary-status"},Fa=["data-tone"],Wa={class:"file-change-panel-inner"},Ra={class:"file-change-list"},Ha=["data-operation"],Oa=["title","onClick"],za={key:0,class:"file-change-arrow"},ja=["title","onClick"],Da={key:2,class:"file-change-delta"},Na=["data-tone"],Va=["data-role"],Ua=["onClick"],qa=["onClick"],Ka=["data-copied","aria-label","title","onClick"],Ga={class:"message-copy-label"},Za={key:1,class:"conversation-item conversation-item-overlay"},Xa={class:"message-row"},Ja={class:"message-stack"},Ya={class:"live-overlay-inline","aria-live":"polite"},Qa={class:"live-overlay-label"},er={key:0,class:"live-overlay-reasoning"},tr={key:1,class:"live-overlay-error"},nr=["src"],sr={key:0,class:"diff-viewer-sidebar"},ir={class:"diff-viewer-sidebar-header"},or={class:"diff-viewer-sidebar-count"},ar={class:"diff-viewer-sidebar-list"},rr=["data-active","onClick"],lr=["data-operation"],cr={class:"diff-viewer-file-label"},ur={key:0,class:"diff-viewer-file-delta"},dr={class:"diff-viewer-main"},fr={class:"diff-viewer-toolbar"},hr={class:"diff-viewer-title-wrap"},pr={class:"diff-viewer-title"},mr={class:"diff-viewer-subtitle"},vr={key:0},kr={class:"diff-viewer-toolbar-actions"},gr={key:0,class:"diff-viewer-empty"},yr={key:1,class:"diff-viewer-panel"},_r={class:"diff-viewer-meta"},wr={class:"diff-viewer-language"},br={class:"diff-viewer-lines"},xr=["data-kind"],Cr={class:"diff-viewer-line-number"},$r={class:"diff-viewer-line-number"},Lr={class:"diff-viewer-line-marker"},Tr=["innerHTML"],Mr={class:"diff-viewer-mobile-sheet-header"},Ir={class:"diff-viewer-sidebar-count"},Pr={class:"diff-viewer-mobile-sheet-list"},Sr=["data-active","onClick"],Ar=["data-operation"],Er={class:"diff-viewer-file-label"},Br={key:0,class:"diff-viewer-file-delta"},Fr=16,Wr=300,Rr=1200,Hr=300,Or=250,$t=50,zr=30,jr=200,Dr=Ns({__name:"ThreadConversation",props:{messages:{},pendingRequests:{},liveOverlay:{},isLoading:{type:Boolean},activeThreadId:{},cwd:{},hasMorePersistedAbove:{type:Boolean},isLoadingPersistedAbove:{type:Boolean},loadEarlierMessages:{type:Function}},emits:["forkThread","rollback","implementPlan","respondServerRequest"],setup(T,{expose:xe,emit:Pn}){const fe=C(new Set),z=C(new Set),he=C(new Set),Ze=C(new Set),pe=C(new Set),Xe=C(null),Ce=C(""),D=C(!1),Lt=C(null),me=C(!1),Tt=C(0),Mt=C(0),Je=C(""),Ye=C(""),{isMobile:$e}=Vs();function Sn(e){var i;const n=e.replace(/\r\n/g,`
1
+ import{_ as In,o as r,c as l,a as u,d as Ns,u as Vs,w as Y,n as bt,b as Us,e as qs,t as h,f as g,F as y,r as b,g as x,h as Ks,i as Q,I as Gs,j as Zs,k as Xs,l as Tn,m as Ge,p as xt,q as Ct,s as ee,v as Mn,T as Js,x as C,y as L,z as Ys,A as Qs,B as ei}from"./index-xzqof2OU.js";const ti={},ni={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function si(T,xe){return r(),l("svg",ni,[...xe[0]||(xe[0]=[u("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 ii=In(ti,[["render",si]]),oi={key:0,class:"conversation-loading"},ai={key:1,class:"conversation-empty"},ri={key:0,class:"conversation-load-more"},li=["disabled"],ci=["data-role","data-message-type"],ui={key:0,class:"message-row","data-role":"system"},di={class:"message-stack","data-role":"system"},fi=["onClick"],hi={class:"cmd-group-label"},pi={class:"cmd-status"},mi={class:"cmd-group-inner"},vi=["onClick"],ki={class:"cmd-label"},gi={class:"cmd-status"},yi={class:"cmd-output-inner"},_i=["textContent"],wi=["onClick"],bi={class:"cmd-label"},xi={class:"cmd-status"},Ci={class:"cmd-output-inner"},$i=["textContent"],Li=["data-role","data-message-type"],Ti=["data-role"],Mi=["data-role"],Ii={key:0,class:"file-change-summary-block"},Pi=["onClick"],Si={class:"file-change-summary-label"},Ai={class:"file-change-summary-status"},Ei=["data-tone"],Bi={class:"file-change-panel-inner"},Fi={class:"file-change-list"},Wi=["data-operation"],Ri=["title","onClick"],Hi={key:0,class:"file-change-arrow"},Oi=["title","onClick"],zi={key:2,class:"file-change-delta"},ji=["data-tone"],Di=["data-role","data-message-type"],Ni=["data-role"],Vi=["data-role"],Ui=["data-role"],qi=["onClick"],Ki=["src","alt"],Gi={key:1,class:"message-file-attachments"},Zi=["href","title"],Xi={key:2,class:"message-skill-attachments"},Ji=["href","title"],Yi={class:"message-skill-chip-name"},Qi=["data-role"],eo={key:0,class:"automation-message-label"},to={key:0},no={key:1,class:"worked-separator-wrap","aria-live":"polite"},so=["onClick"],io={class:"worked-separator-text"},oo={key:0,class:"worked-details"},ao=["onClick"],ro={class:"cmd-label"},lo={class:"cmd-status"},co={class:"cmd-output-inner"},uo=["textContent"],fo=["data-streaming"],ho={class:"plan-card-header"},po={key:0,class:"plan-card-badge"},mo=["innerHTML"],vo={key:1,class:"plan-step-list"},ko=["data-status"],go=["data-status"],yo=["innerHTML"],_o=["innerHTML"],wo={key:3,class:"plan-card-actions"},bo=["onClick"],xo={key:0,class:"message-text"},Co={key:0},$o={key:1,class:"message-bold-text"},Lo={key:2,class:"message-italic-text"},To={key:3,class:"message-strikethrough-text"},Mo=["href","title"],Io=["href","title"],Po={key:6,class:"message-inline-code"},So={key:0},Ao={key:1,class:"message-bold-text"},Eo={key:2,class:"message-italic-text"},Bo={key:3,class:"message-strikethrough-text"},Fo=["href","title"],Wo=["href","title"],Ro={key:6,class:"message-inline-code"},Ho={key:2,class:"message-blockquote"},Oo={key:0},zo={key:1,class:"message-bold-text"},jo={key:2,class:"message-italic-text"},Do={key:3,class:"message-strikethrough-text"},No=["href","title"],Vo=["href","title"],Uo={key:6,class:"message-inline-code"},qo={key:3,class:"message-list message-list-unordered"},Ko=["innerHTML"],Go={key:4,class:"message-list message-task-list"},Zo=["data-checked"],Xo={class:"message-list-item-text"},Jo={key:0},Yo={key:1,class:"message-bold-text"},Qo={key:2,class:"message-italic-text"},ea={key:3,class:"message-strikethrough-text"},ta=["href","title"],na=["href","title"],sa={key:6,class:"message-inline-code"},ia=["start"],oa=["innerHTML"],aa={key:6,class:"message-table-wrap"},ra={class:"message-table"},la={key:0},ca={key:1,class:"message-bold-text"},ua={key:2,class:"message-italic-text"},da={key:3,class:"message-strikethrough-text"},fa=["href","title"],ha=["href","title"],pa={key:6,class:"message-inline-code"},ma={key:0},va={key:0},ka={key:1,class:"message-bold-text"},ga={key:2,class:"message-italic-text"},ya={key:3,class:"message-strikethrough-text"},_a=["href","title"],wa=["href","title"],ba={key:6,class:"message-inline-code"},xa={key:7,class:"message-code-block"},Ca={key:0,class:"message-code-language"},$a={class:"message-code-pre"},La=["innerHTML"],Ta={key:8,class:"message-divider"},Ma={key:9,class:"message-text"},Ia=["onClick"],Pa=["src","alt","onError"],Sa={key:4,class:"file-change-summary-block file-change-summary-block-inline"},Aa=["onClick"],Ea={class:"file-change-summary-label"},Ba={class:"file-change-summary-status"},Fa=["data-tone"],Wa={class:"file-change-panel-inner"},Ra={class:"file-change-list"},Ha=["data-operation"],Oa=["title","onClick"],za={key:0,class:"file-change-arrow"},ja=["title","onClick"],Da={key:2,class:"file-change-delta"},Na=["data-tone"],Va=["data-role"],Ua=["onClick"],qa=["onClick"],Ka=["data-copied","aria-label","title","onClick"],Ga={class:"message-copy-label"},Za={key:1,class:"conversation-item conversation-item-overlay"},Xa={class:"message-row"},Ja={class:"message-stack"},Ya={class:"live-overlay-inline","aria-live":"polite"},Qa={class:"live-overlay-label"},er={key:0,class:"live-overlay-reasoning"},tr={key:1,class:"live-overlay-error"},nr=["src"],sr={key:0,class:"diff-viewer-sidebar"},ir={class:"diff-viewer-sidebar-header"},or={class:"diff-viewer-sidebar-count"},ar={class:"diff-viewer-sidebar-list"},rr=["data-active","onClick"],lr=["data-operation"],cr={class:"diff-viewer-file-label"},ur={key:0,class:"diff-viewer-file-delta"},dr={class:"diff-viewer-main"},fr={class:"diff-viewer-toolbar"},hr={class:"diff-viewer-title-wrap"},pr={class:"diff-viewer-title"},mr={class:"diff-viewer-subtitle"},vr={key:0},kr={class:"diff-viewer-toolbar-actions"},gr={key:0,class:"diff-viewer-empty"},yr={key:1,class:"diff-viewer-panel"},_r={class:"diff-viewer-meta"},wr={class:"diff-viewer-language"},br={class:"diff-viewer-lines"},xr=["data-kind"],Cr={class:"diff-viewer-line-number"},$r={class:"diff-viewer-line-number"},Lr={class:"diff-viewer-line-marker"},Tr=["innerHTML"],Mr={class:"diff-viewer-mobile-sheet-header"},Ir={class:"diff-viewer-sidebar-count"},Pr={class:"diff-viewer-mobile-sheet-list"},Sr=["data-active","onClick"],Ar=["data-operation"],Er={class:"diff-viewer-file-label"},Br={key:0,class:"diff-viewer-file-delta"},Fr=16,Wr=300,Rr=1200,Hr=300,Or=250,$t=50,zr=30,jr=200,Dr=Ns({__name:"ThreadConversation",props:{messages:{},pendingRequests:{},liveOverlay:{},isLoading:{type:Boolean},activeThreadId:{},cwd:{},hasMorePersistedAbove:{type:Boolean},isLoadingPersistedAbove:{type:Boolean},loadEarlierMessages:{type:Function}},emits:["forkThread","rollback","implementPlan","respondServerRequest"],setup(T,{expose:xe,emit:Pn}){const fe=C(new Set),z=C(new Set),he=C(new Set),Ze=C(new Set),pe=C(new Set),Xe=C(null),Ce=C(""),D=C(!1),Lt=C(null),me=C(!1),Tt=C(0),Mt=C(0),Je=C(""),Ye=C(""),{isMobile:$e}=Vs();function Sn(e){var i;const n=e.replace(/\r\n/g,`
2
2
  `).trim();if(!n)return null;const t=[],s=[];for(const a of n.split(`
3
3
  `)){const c=a.trim();if(!c){t.length===0&&s.push("");continue}const o=c.match(/^[-*]\s+\[([ xX~>|-])\]\s+(.+)$/);if(o){const f=(o[1]??" ").toLowerCase();let d="pending";f==="x"&&(d="completed"),(f==="~"||f===">"||f==="-")&&(d="inProgress"),t.push({step:((i=o[2])==null?void 0:i.trim())??"",status:d});continue}s.push(c)}return t.length===0?null:{explanation:s.join(`
4
4
  `).trim(),steps:t.filter(a=>a.step.length>0)}}function Qe(e){var n;return e.plan&&e.plan.steps.length>0?{explanation:((n=e.plan.explanation)==null?void 0:n.trim())??"",steps:e.plan.steps}:Sn(e.text)}function F(e){return e.messageType==="commandExecution"&&!!e.commandExecution}function et(e){return e.messageType==="plan"||e.messageType==="plan.live"}function An(e){return et(e)&&e.messageType!=="plan.live"&&e.role==="assistant"&&!!e.turnId}function En(e){var t;const n=((t=e.turnId)==null?void 0:t.trim())??"";n&&lt("implementPlan",{turnId:n})}function tt(e){return e.messageType==="fileChange"&&e.fileChangeStatus==="completed"&&Array.isArray(e.fileChanges)&&e.fileChanges.length>0}function Le(e){return e.role==="assistant"&&!F(e)&&e.messageType!=="worked"&&!(e.messageType??"").endsWith(".live")}const nt=L(()=>{var e;for(let n=v.messages.length-1;n>=0;n-=1){const t=v.messages[n];if(t.messageType==="commandExecution"&&((e=t.commandExecution)==null?void 0:e.status)==="inProgress")return t.id}return""}),It=L(()=>v.messages.some(e=>e.role==="assistant"&&e.messageType==="agentMessage.live"&&e.text.trim().length>0)),Pt=L(()=>!!v.liveOverlay||nt.value.length>0||It.value),st=L(()=>{const e={};for(let n=0;n<v.messages.length;){const t=v.messages[n];if(!F(t)){n+=1;continue}const s=[];for(;n<v.messages.length&&F(v.messages[n]);)s.push(v.messages[n]),n+=1;if(s.length<=1)continue;const i=s[s.length-1];e[i.id]=s.slice(0,-1)}return e}),Bn=L(()=>{const e=new Set;for(const n of Object.values(st.value))for(const t of n)e.add(t.id);return e});function St(e){var n;return((n=Qe(e))==null?void 0:n.explanation)??""}function At(e){var n;return((n=Qe(e))==null?void 0:n.steps)??[]}function Fn(e){switch(e){case"completed":return"✓";case"inProgress":return"•";default:return"○"}}function Et(e){return!It.value&&e.id===nt.value}function W(e){return F(e)?fe.value.has(e.id)||!z.value.has(e.id)&&Et(e):!1}function it(e){return F(e)&&Pt.value}function ot(e){var n;return F(e)&&(Pt.value||((n=e.commandExecution)==null?void 0:n.status)==="inProgress")}function at(e){if(!F(e))return;const n=new Set(fe.value),t=new Set(z.value),s=Et(e);n.has(e.id)?(n.delete(e.id),s&&t.add(e.id)):s&&!t.has(e.id)?t.add(e.id):(n.add(e.id),t.delete(e.id)),fe.value=n,z.value=t}function Te(e){return st.value[e.id]??[]}function Bt(e){return F(e)?[...Te(e),e]:[]}function Wn(e){if(Te(e).length===0)return;const t=new Set(he.value);t.has(e.id)?t.delete(e.id):t.add(e.id),he.value=t}function rt(e){return he.value.has(e.id)}function Rn(e){var a,c;const t=Bt(e).length,s=((c=(a=e.commandExecution)==null?void 0:a.command)==null?void 0:c.trim())||"(command)";return`${t===1?"1 command":`${t} commands`} · latest: ${s}`}function Hn(e){return Ie(e)}function On(e){const n=new Set(Ze.value);n.has(e.id)?n.delete(e.id):n.add(e.id),Ze.value=n}function Ft(e){return Ze.value.has(e.id)}function Wt(e){const n=new Set(pe.value);n.has(e.id)?n.delete(e.id):n.add(e.id),pe.value=n}function te(e){return pe.value.has(e.id)}function M(e){return`${e.path}\0${e.movedToPath??""}`}function Me(e,n){e&&(Xe.value=e,Ce.value=M(n),D.value=!1)}function Rt(){Xe.value=null,Ce.value="",D.value=!1}function zn(){D.value=!D.value}function jn(){D.value=!1}function Ht(e){Ce.value=M(e),$e.value&&(D.value=!1)}function Ie(e){const n=e.commandExecution;if(!n)return"";const t=it(e);switch(n.status){case"inProgress":return t?"Running":"⟳ Running";case"completed":return n.exitCode===0?t?"Done":"✓ Completed":`Exit ${n.exitCode??"?"}`;case"failed":return t?"Failed":"✗ Failed";case"declined":return t?"Declined":"⊘ Declined";case"interrupted":return t?"Stopped":"⊘ Interrupted";default:return""}}function Pe(e){var t,s;const n=(t=e.commandExecution)==null?void 0:t.status;return n==="inProgress"?"cmd-status-running":n==="completed"&&((s=e.commandExecution)==null?void 0:s.exitCode)===0?"cmd-status-ok":"cmd-status-error"}function Se(e,n){if(e.size===0)return e;const t=new Set;for(const s of e)n.has(s)&&t.add(s);return t.size===e.size?e:t}function Dn(e,n){const t=[];for(let s=n-1;s>=0;s--){const i=e[s];if(i.messageType==="commandExecution")t.unshift(i);else if(i.role==="user"||i.messageType==="worked")break}return t}const v=T,lt=Pn,N=C(null),Ot=C(null),ve=C(""),V=C(""),j=C(!0),zt={js:"javascript",jsx:"jsx",ts:"typescript",tsx:"tsx",py:"python",rb:"ruby",sh:"bash",shell:"bash",zsh:"bash",yml:"yaml",md:"markdown","c++":"cpp","c#":"csharp",ps1:"powershell"};let U=0,E=0,Ae=0,q=null,ke=null;const jt=new WeakSet,Ee=C(null),ne=C(0),Dt=C(0);let Be=null;const ge=new Map,ye=new Map,se=new Map,ie=new Map;function Fe(e,n,t,s){for(e.has(n)&&e.delete(n),e.set(n,t);e.size>s;){const i=e.keys().next().value;if(i===void 0)break;e.delete(i)}return t}const B=C(0),K=C(!1),Nn=L(()=>v.messages.slice(B.value)),ct=L(()=>B.value>0||v.hasMorePersistedAbove===!0),Vn=L(()=>!j.value&&(v.messages.length>0||v.pendingRequests.length>0||!!v.liveOverlay));function Un(){return Ee.value?Promise.resolve():(Be||(Be=Ys(()=>import("./common-BeuopZEI.js"),[]).then(e=>{Ee.value=e.default,ie.clear(),se.clear(),ne.value+=1}).finally(()=>{Be=null})),Be)}function qn(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("/"),t=/^[A-Za-z]:[\\/]/u.test(e),s=e.startsWith("./")||e.startsWith("../")||e.startsWith("~/");return n||t||s||/^[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 We(e){return e.replace(/\\/gu,"/").split("/").filter(Boolean).pop()||e}function oe(e){return e.replace(/\\/gu,"/")}function Nt(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 Kn(e){const n=oe(e),t=n.match(/^\/Users\/([^/]+)/u);if(t)return`/Users/${t[1]}`;const s=n.match(/^\/home\/([^/]+)/u);return s?`/home/${s[1]}`:""}function ae(e){const n=oe(e);if(!n)return n;let t="",s=n;const i=s.match(/^([A-Za-z]:)(\/.*)?$/u);i?(t=`${i[1]}/`,s=(i[2]??"").replace(/^\/+/u,"")):s.startsWith("/")&&(t="/",s=s.slice(1));const a=s.split("/").filter(Boolean),c=[];for(const f of a)if(f!=="."){if(f===".."){c.length>0&&c.pop();continue}c.push(f)}const o=c.join("/");return t?`${t}${o}`.replace(/\/+$/u,"")||t:o||n}function Vt(e,n){const t=oe(Nt(e.trim()));if(!t)return"";if(t.startsWith("/")||/^[A-Za-z]:\//u.test(t))return ae(t);if(t.startsWith("~/")){const a=Kn(n);if(a)return ae(`${a}/${t.slice(2)}`)}const i=oe(n.trim());return ae(i?`${i.replace(/\/+$/u,"")}/${t}`:t)}function _e(e){if(!e)return null;let n=e.trim();n=Re(n).core.trim();let s=null;const i=n.match(/^(.*)#L(\d+)(?:C\d+)?$/u);if(i)n=i[1],s=Number(i[2]);else{const a=n.match(/^(.*):(\d+)(?::\d+)?$/u);a&&(n=a[1],s=Number(a[2]))}return n=Nt(n),qn(n)?{path:n,line:s}:null}function Re(e){let n=e,t="",s="";const i={"(":")","[":"]","{":"}","<":">",'"':'"',"'":"'","`":"`","“":"”","‘":"’"};for(;n.length>0;){const a=n[0],c=Object.prototype.hasOwnProperty.call(i,a)?i[a]:"";if(!c||!n.endsWith(c))break;t+=a,s+=c,n=n.slice(1,-1)}return{core:n,leading:t,trailing:s}}function ut(e){const n=e.trim();if(!n.startsWith("[")||!n.endsWith(")"))return null;const t=n.indexOf("]");if(t<=1||n[t+1]!=="(")return null;const s=n.slice(1,t).trim(),i=n.slice(t+2,-1).trim();if(s.includes(`