codexui-android 0.1.100 → 0.1.102
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/DirectoryHub-CGxQHsSZ.js +2 -0
- package/dist/assets/{DirectoryHub-DkF7hkxl.css → DirectoryHub-DMVpAtTC.css} +1 -1
- package/dist/assets/{ReviewPane-W_UvYmui.js → ReviewPane-BwJrC8gt.js} +1 -1
- package/dist/assets/{ThreadConversation-CSH0aUWx.js → ThreadConversation-B_1XpSrh.js} +3 -3
- package/dist/assets/{ThreadConversation-DdzQ_R3z.css → ThreadConversation-Gd3yNs76.css} +1 -1
- package/dist/assets/{ThreadTerminalPanel-QkJZ7U3Y.js → ThreadTerminalPanel-CdyQTZa9.js} +1 -1
- package/dist/assets/index-CDFerptZ.css +1 -0
- package/dist/assets/index-Dpl251IF.js +63 -0
- package/dist/index.html +2 -2
- package/dist-cli/index.js +238 -6
- package/dist-cli/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/assets/DirectoryHub-47WzZs4I.js +0 -2
- package/dist/assets/index-B6Gx9sFJ.css +0 -1
- package/dist/assets/index-Cmr8liLe.js +0 -63
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as tt,u as at,r as _,w as O,b as st,C as nt,e as it,o as l,c as o,a,t as n,s as p,f as y,j as ge,m as lt,F as b,g as S,L as ot,M as rt,h as Ce,q as X,v as G,x as ut,p 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-Cmr8liLe.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,r as _,w as O,b as st,C as nt,e as it,o as l,c as o,a,t as n,s as p,f as y,j as ge,m as lt,F as b,g as S,L as ot,M as rt,h as Ce,q as X,v as G,x as ut,p 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-Dpl251IF.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,7 +1,7 @@
|
|
|
1
|
-
import{_ as En,o as r,c as l,a as d,d as qs,u as Ks,r as b,w as Y,n as Ct,b as Gs,e as Zs,t as f,f as k,F as g,g as w,h as C,i as Xs,j as Q,I as Js,k as Ys,l as Qs,m as Pn,p as Ze,q as $t,s as Lt,v as ee,x as An,T as ei,y as L,z as ti,A as ni,B as si}from"./index-
|
|
1
|
+
import{_ as En,o as r,c as l,a as d,d as qs,u as Ks,r as b,w as Y,n as Ct,b as Gs,e as Zs,t as f,f as k,F as g,g as w,h as C,i as Xs,j as Q,I as Js,k as Ys,l as Qs,m as Pn,p as Ze,q as $t,s as Lt,v as ee,x as An,T as ei,y as L,z as ti,A as ni,B as si}from"./index-Dpl251IF.js";const ii={},oi={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function ai(M,be){return r(),l("svg",oi,[...be[0]||(be[0]=[d("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 ri=En(ii,[["render",ai]]),li={key:0,class:"conversation-loading"},ci={key:1,class:"conversation-empty"},ui={key:0,class:"conversation-load-more"},di=["disabled"],hi=["data-role","data-message-type"],fi={key:0,class:"message-row","data-role":"system"},pi={class:"message-stack","data-role":"system"},mi=["onClick"],vi={class:"cmd-group-label"},ki={class:"cmd-status"},gi={class:"cmd-group-inner"},yi=["onClick"],_i={class:"cmd-label"},wi={class:"cmd-status"},bi={class:"cmd-output-inner"},xi=["textContent"],Ci=["onClick"],$i={class:"cmd-label"},Li={class:"cmd-status"},Ti={class:"cmd-output-inner"},Mi=["textContent"],Si=["data-role","data-message-type"],Ii=["data-role"],Pi=["data-role"],Ai={key:0,class:"file-change-summary-block"},Ei=["onClick"],Bi={class:"file-change-summary-label"},Fi={class:"file-change-summary-status"},Ri=["data-tone"],Hi={class:"file-change-panel-inner"},Wi={class:"file-change-list"},Oi=["data-operation"],zi=["title","onClick"],ji={key:0,class:"file-change-arrow"},Di=["title","onClick"],Vi={key:2,class:"file-change-delta"},Ni=["data-tone"],Ui=["data-role","data-message-type"],qi=["data-role"],Ki=["data-role"],Gi=["data-role"],Zi=["onClick"],Xi=["src","alt"],Ji={key:1,class:"message-file-attachments"},Yi=["href","title"],Qi=["data-role"],eo={key:0,class:"worked-separator-wrap","aria-live":"polite"},to=["onClick"],no={class:"worked-separator-text"},so={key:0,class:"worked-details"},io=["onClick"],oo={class:"cmd-label"},ao={class:"cmd-status"},ro={class:"cmd-output-inner"},lo=["textContent"],co=["data-streaming"],uo={class:"plan-card-header"},ho={key:0,class:"plan-card-badge"},fo=["innerHTML"],po={key:1,class:"plan-step-list"},mo=["data-status"],vo=["data-status"],ko=["innerHTML"],go=["innerHTML"],yo={key:3,class:"plan-card-actions"},_o=["onClick"],wo={key:0,class:"message-text"},bo={key:0},xo={key:1,class:"message-bold-text"},Co={key:2,class:"message-italic-text"},$o={key:3,class:"message-strikethrough-text"},Lo=["href","title"],To=["href","title"],Mo={key:6,class:"message-inline-code"},So={key:0},Io={key:1,class:"message-bold-text"},Po={key:2,class:"message-italic-text"},Ao={key:3,class:"message-strikethrough-text"},Eo=["href","title"],Bo=["href","title"],Fo={key:6,class:"message-inline-code"},Ro={key:2,class:"message-blockquote"},Ho={key:0},Wo={key:1,class:"message-bold-text"},Oo={key:2,class:"message-italic-text"},zo={key:3,class:"message-strikethrough-text"},jo=["href","title"],Do=["href","title"],Vo={key:6,class:"message-inline-code"},No={key:3,class:"message-list message-list-unordered"},Uo=["innerHTML"],qo={key:4,class:"message-list message-task-list"},Ko=["data-checked"],Go={class:"message-list-item-text"},Zo={key:0},Xo={key:1,class:"message-bold-text"},Jo={key:2,class:"message-italic-text"},Yo={key:3,class:"message-strikethrough-text"},Qo=["href","title"],ea=["href","title"],ta={key:6,class:"message-inline-code"},na=["start"],sa=["innerHTML"],ia={key:6,class:"message-table-wrap"},oa={class:"message-table"},aa={key:0},ra={key:1,class:"message-bold-text"},la={key:2,class:"message-italic-text"},ca={key:3,class:"message-strikethrough-text"},ua=["href","title"],da=["href","title"],ha={key:6,class:"message-inline-code"},fa={key:0},pa={key:0},ma={key:1,class:"message-bold-text"},va={key:2,class:"message-italic-text"},ka={key:3,class:"message-strikethrough-text"},ga=["href","title"],ya=["href","title"],_a={key:6,class:"message-inline-code"},wa={key:7,class:"message-code-block"},ba={key:0,class:"message-code-language"},xa={class:"message-code-pre"},Ca=["innerHTML"],$a={key:8,class:"message-divider"},La={key:9,class:"message-text"},Ta=["onClick"],Ma=["src","alt","onError"],Sa={key:3,class:"file-change-summary-block file-change-summary-block-inline"},Ia=["onClick"],Pa={class:"file-change-summary-label"},Aa={class:"file-change-summary-status"},Ea=["data-tone"],Ba={class:"file-change-panel-inner"},Fa={class:"file-change-list"},Ra=["data-operation"],Ha=["title","onClick"],Wa={key:0,class:"file-change-arrow"},Oa=["title","onClick"],za={key:2,class:"file-change-delta"},ja=["data-tone"],Da=["data-role"],Va=["onClick"],Na=["onClick"],Ua=["data-copied","aria-label","title","onClick"],qa={class:"message-copy-label"},Ka={key:1,class:"conversation-item conversation-item-overlay"},Ga={class:"message-row"},Za={class:"message-stack"},Xa={class:"live-overlay-inline","aria-live":"polite"},Ja={class:"live-overlay-label"},Ya={key:0,class:"live-overlay-reasoning"},Qa={key:1,class:"live-overlay-error"},er=["src"],tr={key:0,class:"diff-viewer-sidebar"},nr={class:"diff-viewer-sidebar-header"},sr={class:"diff-viewer-sidebar-count"},ir={class:"diff-viewer-sidebar-list"},or=["data-active","onClick"],ar=["data-operation"],rr={class:"diff-viewer-file-label"},lr={key:0,class:"diff-viewer-file-delta"},cr={class:"diff-viewer-main"},ur={class:"diff-viewer-toolbar"},dr={class:"diff-viewer-title-wrap"},hr={class:"diff-viewer-title"},fr={class:"diff-viewer-subtitle"},pr={key:0},mr={class:"diff-viewer-toolbar-actions"},vr={key:0,class:"diff-viewer-empty"},kr={key:1,class:"diff-viewer-panel"},gr={class:"diff-viewer-meta"},yr={class:"diff-viewer-language"},_r={class:"diff-viewer-lines"},wr=["data-kind"],br={class:"diff-viewer-line-number"},xr={class:"diff-viewer-line-number"},Cr={class:"diff-viewer-line-marker"},$r=["innerHTML"],Lr={class:"diff-viewer-mobile-sheet-header"},Tr={class:"diff-viewer-sidebar-count"},Mr={class:"diff-viewer-mobile-sheet-list"},Sr=["data-active","onClick"],Ir=["data-operation"],Pr={class:"diff-viewer-file-label"},Ar={key:0,class:"diff-viewer-file-delta"},Er=16,Br=300,Fr=1200,Rr=300,Hr=250,Tt=50,Wr=30,Or=200,zr=qs({__name:"ThreadConversation",props:{messages:{},pendingRequests:{},liveOverlay:{},isLoading:{type:Boolean},activeThreadId:{},cwd:{},scrollState:{}},emits:["updateScrollState","forkThread","rollback","implementPlan","respondServerRequest"],setup(M,{expose:be,emit:Bn}){var In;const de=b(new Set),W=b(new Set),he=b(new Set),Xe=b(new Set),fe=b(new Set),Je=b(null),xe=b(""),D=b(!1),Mt=b(null),pe=b(!1),St=b(0),It=b(0),Ye=b(""),Qe=b(""),{isMobile:Ce}=Ks();function Fn(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 u=a.trim();if(!u){t.length===0&&s.push("");continue}const o=u.match(/^[-*]\s+\[([ xX~>|-])\]\s+(.+)$/);if(o){const h=(o[1]??" ").toLowerCase();let c="pending";h==="x"&&(c="completed"),(h==="~"||h===">"||h==="-")&&(c="inProgress"),t.push({step:((i=o[2])==null?void 0:i.trim())??"",status:c});continue}s.push(u)}return t.length===0?null:{explanation:s.join(`
|
|
4
|
-
`).trim(),steps:t.filter(a=>a.step.length>0)}}function et(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}:Fn(e.text)}function E(e){return e.messageType==="commandExecution"&&!!e.commandExecution}function tt(e){return e.messageType==="plan"||e.messageType==="plan.live"}function Rn(e){return tt(e)&&e.messageType!=="plan.live"&&e.role==="assistant"&&!!e.turnId}function Hn(e){var t;const n=((t=e.turnId)==null?void 0:t.trim())??"";n&&Pe("implementPlan",{turnId:n})}function nt(e){return e.messageType==="fileChange"&&e.fileChangeStatus==="completed"&&Array.isArray(e.fileChanges)&&e.fileChanges.length>0}function $e(e){return e.role==="assistant"&&!E(e)&&e.messageType!=="worked"&&!(e.messageType??"").endsWith(".live")}const st=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""}),Pt=L(()=>v.messages.some(e=>e.role==="assistant"&&e.messageType==="agentMessage.live"&&e.text.trim().length>0)),At=L(()=>!!v.liveOverlay||st.value.length>0||Pt.value),it=L(()=>{const e={};for(let n=0;n<v.messages.length;){const t=v.messages[n];if(!E(t)){n+=1;continue}const s=[];for(;n<v.messages.length&&E(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}),Wn=L(()=>{const e=new Set;for(const n of Object.values(it.value))for(const t of n)e.add(t.id);return e});function Et(e){var n;return((n=et(e))==null?void 0:n.explanation)??""}function Bt(e){var n;return((n=et(e))==null?void 0:n.steps)??[]}function On(e){switch(e){case"completed":return"✓";case"inProgress":return"•";default:return"○"}}function Ft(e){return!Pt.value&&e.id===st.value}function B(e){return E(e)?de.value.has(e.id)||!W.value.has(e.id)&&Ft(e):!1}function ot(e){return E(e)&&At.value}function at(e){var n;return E(e)&&(At.value||((n=e.commandExecution)==null?void 0:n.status)==="inProgress")}function rt(e){if(!E(e))return;const n=new Set(de.value),t=new Set(W.value),s=Ft(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)),de.value=n,W.value=t}function Le(e){return it.value[e.id]??[]}function Rt(e){return E(e)?[...Le(e),e]:[]}function zn(e){if(Le(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 lt(e){return he.value.has(e.id)}function jn(e){var a,u;const t=Rt(e).length,s=((u=(a=e.commandExecution)==null?void 0:a.command)==null?void 0:u.trim())||"(command)";return`${t===1?"1 command":`${t} commands`} · latest: ${s}`}function Dn(e){return Me(e)}function Vn(e){const n=new Set(Xe.value);n.has(e.id)?n.delete(e.id):n.add(e.id),Xe.value=n}function Ht(e){return Xe.value.has(e.id)}function Wt(e){const n=new Set(fe.value);n.has(e.id)?n.delete(e.id):n.add(e.id),fe.value=n}function te(e){return fe.value.has(e.id)}function T(e){return`${e.path}\0${e.movedToPath??""}`}function Te(e,n){e&&(Je.value=e,xe.value=T(n),D.value=!1)}function Ot(){Je.value=null,xe.value="",D.value=!1}function Nn(){D.value=!D.value}function Un(){D.value=!1}function zt(e){xe.value=T(e),Ce.value&&(D.value=!1)}function Me(e){const n=e.commandExecution;if(!n)return"";const t=ot(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 Se(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 Ie(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 qn(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=M,Pe=Bn,V=b(null),jt=b(null),me=b(""),N=b(""),Kn=b(null),O=b(((In=v.scrollState)==null?void 0:In.isAtBottom)!==!1),Dt={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,A=0,Ae=0,q=null,ve=null;const Vt=new WeakSet,Ee=b(null),ne=b(0),Nt=b(0);let Be=null;const ke=new Map,ge=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 F=b(0),K=b(!1),Gn=L(()=>v.messages.slice(F.value)),ct=L(()=>F.value>0),Zn=L(()=>!O.value&&(v.messages.length>0||v.pendingRequests.length>0||!!v.liveOverlay));function Xn(){return Ee.value?Promise.resolve():(Be||(Be=ti(()=>import("./common-BeuopZEI.js"),[]).then(e=>{Ee.value=e.default,ie.clear(),se.clear(),ne.value+=1}).finally(()=>{Be=null})),Be)}function Jn(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?!0:/^[A-Za-z0-9._@() -]+(?:[\\/][A-Za-z0-9._@() -]+)+$/u.test(e)}function Re(e){return e.replace(/\\/gu,"/").split("/").filter(Boolean).pop()||e}function oe(e){return e.replace(/\\/gu,"/")}function Ut(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 Yn(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),u=[];for(const h of a)if(h!=="."){if(h===".."){u.length>0&&u.pop();continue}u.push(h)}const o=u.join("/");return t?`${t}${o}`.replace(/\/+$/u,"")||t:o||n}function qt(e,n){const t=oe(Ut(e.trim()));if(!t)return"";if(t.startsWith("/")||/^[A-Za-z]:\//u.test(t))return ae(t);if(t.startsWith("~/")){const a=Yn(n);if(a)return ae(`${a}/${t.slice(2)}`)}const i=oe(n.trim());return ae(i?`${i.replace(/\/+$/u,"")}/${t}`:t)}function ye(e){if(!e)return null;let n=e.trim();n=He(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=Ut(n),Jn(n)?{path:n,line:s}:null}function He(e){let n=e,t="",s="";const i={"(":")","[":"]","{":"}","<":">",'"':'"',"'":"'","`":"`","“":"”","‘":"’"};for(;n.length>0;){const a=n[0],u=Object.prototype.hasOwnProperty.call(i,a)?i[a]:"";if(!u||!n.endsWith(u))break;t+=a,s+=u,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(`
|
|
4
|
+
`).trim(),steps:t.filter(a=>a.step.length>0)}}function et(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}:Fn(e.text)}function E(e){return e.messageType==="commandExecution"&&!!e.commandExecution}function tt(e){return e.messageType==="plan"||e.messageType==="plan.live"}function Rn(e){return tt(e)&&e.messageType!=="plan.live"&&e.role==="assistant"&&!!e.turnId}function Hn(e){var t;const n=((t=e.turnId)==null?void 0:t.trim())??"";n&&Pe("implementPlan",{turnId:n})}function nt(e){return e.messageType==="fileChange"&&e.fileChangeStatus==="completed"&&Array.isArray(e.fileChanges)&&e.fileChanges.length>0}function $e(e){return e.role==="assistant"&&!E(e)&&e.messageType!=="worked"&&!(e.messageType??"").endsWith(".live")}const st=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""}),Pt=L(()=>v.messages.some(e=>e.role==="assistant"&&e.messageType==="agentMessage.live"&&e.text.trim().length>0)),At=L(()=>!!v.liveOverlay||st.value.length>0||Pt.value),it=L(()=>{const e={};for(let n=0;n<v.messages.length;){const t=v.messages[n];if(!E(t)){n+=1;continue}const s=[];for(;n<v.messages.length&&E(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}),Wn=L(()=>{const e=new Set;for(const n of Object.values(it.value))for(const t of n)e.add(t.id);return e});function Et(e){var n;return((n=et(e))==null?void 0:n.explanation)??""}function Bt(e){var n;return((n=et(e))==null?void 0:n.steps)??[]}function On(e){switch(e){case"completed":return"✓";case"inProgress":return"•";default:return"○"}}function Ft(e){return!Pt.value&&e.id===st.value}function B(e){return E(e)?de.value.has(e.id)||!W.value.has(e.id)&&Ft(e):!1}function ot(e){return E(e)&&At.value}function at(e){var n;return E(e)&&(At.value||((n=e.commandExecution)==null?void 0:n.status)==="inProgress")}function rt(e){if(!E(e))return;const n=new Set(de.value),t=new Set(W.value),s=Ft(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)),de.value=n,W.value=t}function Le(e){return it.value[e.id]??[]}function Rt(e){return E(e)?[...Le(e),e]:[]}function zn(e){if(Le(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 lt(e){return he.value.has(e.id)}function jn(e){var a,u;const t=Rt(e).length,s=((u=(a=e.commandExecution)==null?void 0:a.command)==null?void 0:u.trim())||"(command)";return`${t===1?"1 command":`${t} commands`} · latest: ${s}`}function Dn(e){return Me(e)}function Vn(e){const n=new Set(Xe.value);n.has(e.id)?n.delete(e.id):n.add(e.id),Xe.value=n}function Ht(e){return Xe.value.has(e.id)}function Wt(e){const n=new Set(fe.value);n.has(e.id)?n.delete(e.id):n.add(e.id),fe.value=n}function te(e){return fe.value.has(e.id)}function T(e){return`${e.path}\0${e.movedToPath??""}`}function Te(e,n){e&&(Je.value=e,xe.value=T(n),D.value=!1)}function Ot(){Je.value=null,xe.value="",D.value=!1}function Nn(){D.value=!D.value}function Un(){D.value=!1}function zt(e){xe.value=T(e),Ce.value&&(D.value=!1)}function Me(e){const n=e.commandExecution;if(!n)return"";const t=ot(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 Se(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 Ie(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 qn(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=M,Pe=Bn,V=b(null),jt=b(null),me=b(""),N=b(""),Kn=b(null),O=b(((In=v.scrollState)==null?void 0:In.isAtBottom)!==!1),Dt={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,A=0,Ae=0,q=null,ve=null;const Vt=new WeakSet,Ee=b(null),ne=b(0),Nt=b(0);let Be=null;const ke=new Map,ge=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 F=b(0),K=b(!1),Gn=L(()=>v.messages.slice(F.value)),ct=L(()=>F.value>0),Zn=L(()=>!O.value&&(v.messages.length>0||v.pendingRequests.length>0||!!v.liveOverlay));function Xn(){return Ee.value?Promise.resolve():(Be||(Be=ti(()=>import("./common-BeuopZEI.js"),[]).then(e=>{Ee.value=e.default,ie.clear(),se.clear(),ne.value+=1}).finally(()=>{Be=null})),Be)}function Jn(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 Re(e){return e.replace(/\\/gu,"/").split("/").filter(Boolean).pop()||e}function oe(e){return e.replace(/\\/gu,"/")}function Ut(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 Yn(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),u=[];for(const h of a)if(h!=="."){if(h===".."){u.length>0&&u.pop();continue}u.push(h)}const o=u.join("/");return t?`${t}${o}`.replace(/\/+$/u,"")||t:o||n}function qt(e,n){const t=oe(Ut(e.trim()));if(!t)return"";if(t.startsWith("/")||/^[A-Za-z]:\//u.test(t))return ae(t);if(t.startsWith("~/")){const a=Yn(n);if(a)return ae(`${a}/${t.slice(2)}`)}const i=oe(n.trim());return ae(i?`${i.replace(/\/+$/u,"")}/${t}`:t)}function ye(e){if(!e)return null;let n=e.trim();n=He(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=Ut(n),Jn(n)?{path:n,line:s}:null}function He(e){let n=e,t="",s="";const i={"(":")","[":"]","{":"}","<":">",'"':'"',"'":"'","`":"`","“":"”","‘":"’"};for(;n.length>0;){const a=n[0],u=Object.prototype.hasOwnProperty.call(i,a)?i[a]:"";if(!u||!n.endsWith(u))break;t+=a,s+=u,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(`
|
|
5
5
|
`)||i.includes(`
|
|
6
6
|
`))return null;const a=He(s).core.trim()||s,u=He(i).core.trim();return u?{label:a,target:u}:null}function Kt(e){const n=Math.min(6,Math.max(1,Math.trunc(e)));return`h${String(n)}`}function Gt(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 Qn(e){switch(e){case"completed":return"[x]";case"inProgress":return"[~]";default:return"[ ]"}}function es(e){var s;const n=et(e);if(!n)return"";const t=[];return(s=n.explanation)!=null&&s.trim()&&t.push(n.explanation.trim()),n.steps.length>0&&t.push(n.steps.map(i=>`- ${Qn(i.status)} ${i.step}`.trim()).join(`
|
|
7
7
|
`)),t.join(`
|
|
@@ -36,4 +36,4 @@ ${e.changes.map(t=>{const s=S(t.path),i=t.movedToPath?` -> ${S(t.movedToPath)}`:
|
|
|
36
36
|
`).trim();j&&s.push({kind:"paragraph",value:j})}return s}function Fs(e){if(!e.includes(")return Ne(e);const n=[],t=/!\[([^\]]*)\]\(([^)\n]+)\)/gu;let s=0;for(const i of e.matchAll(t)){const[a,u,o]=i;if(typeof i.index!="number")continue;const h=i.index,c=h+a.length,m=xs(o.trim());m&&(h>s&&n.push(...Ne(e.slice(s,h))),n.push({kind:"image",url:m,alt:u.trim(),markdown:a}),s=c)}return s<e.length&&n.push(...Ne(e.slice(s))),n}function kn(e){const t=ln(e).split(`
|
|
37
37
|
`),s=[];let i=0,a=0;const u=o=>{if(o<=a)return;const h=t.slice(a,o).join(`
|
|
38
38
|
`);s.push(...Fs(h))};for(;i<t.length;){const o=Ve(t[i]);if(!o){i+=1;continue}u(i),i+=1;const h=[];for(;i<t.length;){if(t[i].trim()===o.marker){i+=1;break}h.push(t[i]),i+=1}s.push({kind:"codeBlock",language:o.language,value:h.join(`
|
|
39
|
-
`)}),a=i}return u(t.length),s.length>0?s:[{kind:"paragraph",value:e}]}function Rs(e){const n=ke.get(e.id);if(n&&n.text===e.text&&n.cwd===v.cwd)return ke.delete(e.id),ke.set(e.id,n),n.blocks;const t=kn(e.text);return Fe(ke,e.id,{text:e.text,cwd:v.cwd,blocks:t},Br).blocks}function $(e){return e.replace(/&/gu,"&").replace(/</gu,"<").replace(/>/gu,">").replace(/"/gu,""").replace(/'/gu,"'")}function gn(e){var t;const n=((t=e.trim().split(/\s+/u)[0])==null?void 0:t.toLowerCase())??"";return n?Dt[n]??n:""}function Hs(e,n){const t=gn(e);if(!t)return $(n);const s=Ee.value;if(!s)return $(n);try{if(s.getLanguage(t))return s.highlight(n,{language:t,ignoreIllegals:!0}).value}catch{}return $(n)}function yn(e,n){const t=`${ne.value}\0${gn(e)}\0${e}\0${n}`,s=ie.get(t);return s!==void 0?(ie.delete(t),ie.set(t,s),s):Fe(ie,t,Hs(e,n),Hr)}function J(e){return Z(e).map(n=>n.kind==="text"?$(n.value):n.kind==="bold"?`<strong class="message-bold-text">${$(n.value)}</strong>`:n.kind==="italic"?`<em class="message-italic-text">${$(n.value)}</em>`:n.kind==="strikethrough"?`<s class="message-strikethrough-text">${$(n.value)}</s>`:n.kind==="file"?`<a class="message-file-link" href="${$(z(n.path))}" target="_blank" rel="noopener noreferrer" title="${$(n.path)}">${$(n.displayPath)}</a>`:n.kind==="url"?`<a class="message-file-link" href="${$(n.href)}" target="_blank" rel="noopener noreferrer" title="${$(n.href)}">${$(n.value)}</a>`:`<code class="message-inline-code">${$(n.value)}</code>`).join("")}function Ws(e){return e.paragraphs.map(n=>`<div class="message-list-item-text message-list-item-paragraph">${J(n)}</div>`).join("")}function Ue(e){var s;const n=Ws(e),t=((s=e.children)==null?void 0:s.map(i=>wn(i)).join(""))??"";return n+t}function _n(e){return e?` style="text-align:${e}"`:""}function wn(e){if(e.kind==="paragraph")return`<p class="message-text">${J(e.value)}</p>`;if(e.kind==="heading"){const n=Math.min(6,Math.max(1,Math.trunc(e.level))),t=Kt(n),s=`message-heading ${Gt(n)}`;return`<${t} class="${s}">${J(e.value)}</${t}>`}if(e.kind==="blockquote")return`<blockquote class="message-blockquote">${J(e.value)}</blockquote>`;if(e.kind==="unorderedList")return`<ul class="message-list message-list-unordered">${e.items.map(t=>`<li class="message-list-item"><div class="message-list-item-content">${Ue(t)}</div></li>`).join("")}</ul>`;if(e.kind==="taskList")return`<ul class="message-list message-task-list">${e.items.map(t=>`<li class="message-task-item"><span class="message-task-checkbox" data-checked="${t.checked?"true":"false"}">${t.checked?"☑":"☐"}</span><div class="message-list-item-text">${J(t.text)}</div></li>`).join("")}</ul>`;if(e.kind==="orderedList"){const n=e.items.map(t=>`<li class="message-list-item"><div class="message-list-item-content">${Ue(t)}</div></li>`).join("");return`<ol class="message-list message-list-ordered" start="${e.start}">${n}</ol>`}if(e.kind==="table"){const n=e.headers.map((i,a)=>`<th class="message-table-head-cell"${_n(e.alignments[a]??null)}>${J(i)}</th>`).join(""),t=e.rows.map(i=>'<tr class="message-table-body-row">'+i.map((a,u)=>`<td class="message-table-cell"${_n(e.alignments[u]??null)}>${J(a)}</td>`).join("")+"</tr>").join(""),s=t?`<tbody>${t}</tbody>`:"";return`<div class="message-table-wrap"><table class="message-table"><thead><tr>${n}</tr></thead>${s}</table></div>`}return e.kind==="codeBlock"?`<div class="message-code-block">${e.language?`<div class="message-code-language">${$(e.language)}</div>`:""}<pre class="message-code-pre"><code class="hljs">${yn(e.language,e.value)}</code></pre></div>`:e.kind==="thematicBreak"?'<hr class="message-divider">':`<img class="message-image-preview message-markdown-image" src="${$(e.url)}" alt="${$(e.alt||"Embedded message image")}" loading="lazy">`}function yt(e){const n=`${v.cwd}\0${ne.value}\0${e}`,t=se.get(n);if(t&&t.text===e&&t.cwd===v.cwd&&t.highlightVersion===ne.value)return se.delete(n),se.set(n,t),t.html;const s=kn(e).map(i=>wn(i)).join("");return Fe(se,n,{text:e,cwd:v.cwd,highlightVersion:ne.value,html:s},Rr).html}function Os(){const e=V.value,n=jt.value;!e||!n||(e.scrollTop=e.scrollHeight,n.scrollIntoView({block:"end"}))}function bn(e){return e.scrollHeight-(e.scrollTop+e.clientHeight)<=Er}function qe(e){if(!v.activeThreadId)return;const n=Math.max(e.scrollHeight-e.clientHeight,0),t=n>0?Math.min(Math.max(e.scrollTop/n,0),1):1;Pe("updateScrollState",{threadId:v.activeThreadId,state:{scrollTop:e.scrollTop,isAtBottom:bn(e),scrollRatio:t}})}function zs(){const e=V.value;if(!e)return;if(O.value){Ke();return}const n=v.scrollState;if(!n||n.isAtBottom){qe(e);return}const t=Math.max(e.scrollHeight-e.clientHeight,0),s=n.scrollTop;e.scrollTop=Math.min(Math.max(s,0),t),qe(e)}function Ke(){const e=V.value;e&&(Os(),qe(e))}function _t(){return O.value}function xn(){if(!_t()){Ae=0,A=0;return}if(Ke(),Ae-=1,Ae<=0){A=0;return}A=requestAnimationFrame(xn)}function Ge(e=6){_t()&&(A&&(cancelAnimationFrame(A),A=0),Ae=Math.max(e,1),A=requestAnimationFrame(xn))}function Cn(){Ge(3)}function $n(){O.value=!0,Ke(),Ge(4)}async function Ln(){const e=V.value;if(!e||!ct.value||K.value)return;K.value=!0;const n=v.activeThreadId,t=e.scrollHeight,s=e.scrollTop;F.value=Math.max(0,F.value-Wr),await Ct(),v.activeThreadId===n&&(e.scrollTop=s+(e.scrollHeight-t),K.value=!1)}be({jumpToLatest:$n});function js(){if(!_t())return;const e=V.value;if(!e)return;const n=e.querySelectorAll("img.message-image-preview");for(const t of n)t.complete||Vt.has(t)||(Vt.add(t),t.addEventListener("load",Cn,{once:!0}),t.addEventListener("error",Cn,{once:!0}))}async function wt(){return ve||(ve=Ct().then(()=>new Promise(e=>{U&&cancelAnimationFrame(U),U=requestAnimationFrame(()=>{U=0,ve=null,zs(),js(),Ge(),e()})})),ve)}function Ds(){ke.clear(),ge.clear(),se.clear(),ie.clear()}Y(()=>v.messages,async e=>{if(v.isLoading)return;const n=new Set(e.filter(t=>t.messageType==="commandExecution"&&t.commandExecution).map(t=>t.id));de.value=Ie(de.value,n),W.value=Ie(W.value,n),he.value=Ie(he.value,new Set(Object.keys(it.value))),fe.value=Ie(fe.value,new Set([...Object.keys(We.value),...Object.keys(ht.value)])),O.value?F.value=Math.max(0,e.length-Tt):F.value=Math.min(F.value,Math.max(0,e.length-1)),await wt()}),Y(()=>v.messages.some(e=>e.text.includes("```")),e=>{!e||Ee.value||Xn()},{immediate:!0}),Y(st,(e,n)=>{if(!n||n===e||!W.value.has(n))return;const t=new Set(W.value);t.delete(n),W.value=t}),Y(()=>v.pendingRequests,async()=>{v.isLoading||await wt()},{deep:!0}),Y(()=>v.liveOverlay,async e=>{e&&O.value&&(await Ct(),Ke(),Ge(8))},{deep:!0}),Y(()=>v.isLoading,async e=>{e||(F.value=Math.max(0,v.messages.length-Tt),await wt())}),Y(()=>v.activeThreadId,()=>{Kn.value=null,O.value=!0,me.value="",K.value=!1,F.value=Math.max(0,v.messages.length-Tt)},{flush:"post"});function Vs(){const e=V.value;!e||v.isLoading||(O.value=bn(e),qe(e),ct.value&&!K.value&&e.scrollTop<Or&&Ln())}const bt=b(new Set);function Tn(e,n){return`${e}:${n}`}function Ns(e,n){return bt.value.has(Tn(e,n))}function Us(e,n){const t=new Set(bt.value);t.add(Tn(e,n)),bt.value=t,Nt.value+=1}function Mn(e){me.value=e}function Sn(){me.value=""}return Gs(()=>{window.addEventListener("pointerdown",on),window.addEventListener("blur",an),window.addEventListener("keydown",rn)}),Zs(()=>{Ds(),U&&(cancelAnimationFrame(U),U=0),A&&(cancelAnimationFrame(A),A=0),q&&(clearTimeout(q),q=null),window.removeEventListener("pointerdown",on),window.removeEventListener("blur",an),window.removeEventListener("keydown",rn)}),(e,n)=>(r(),l("section",{class:"conversation-root",onContextmenuCapture:Ls},[M.isLoading?(r(),l("p",li,"Loading messages...")):M.messages.length===0&&M.pendingRequests.length===0&&!M.liveOverlay?(r(),l("p",ci," No messages in this thread yet. ")):(r(),l("ul",{key:2,ref_key:"conversationListRef",ref:V,class:"conversation-list",onScroll:Vs},[ct.value?(r(),l("li",ui,[d("button",{type:"button",class:"load-more-button",disabled:K.value,onClick:Ln},f(K.value?"Loading…":"Load earlier messages"),9,di)])):k("",!0),(r(!0),l(g,null,w(Gn.value,t=>{var s,i,a,u;return r(),l(g,{key:t.id},[!Wn.value.has(t.id)&&!as.value.has(t.id)?(r(),l("li",{key:0,class:"conversation-item","data-role":t.role,"data-message-type":t.messageType||""},[E(t)?(r(),l("div",fi,[d("div",pi,[Le(t).length>0?(r(),l("button",{key:0,type:"button",class:C(["cmd-row cmd-row-group cmd-compact",[Se(t),{"cmd-expanded":lt(t)}]]),onClick:o=>zn(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":lt(t)}])},"▶",2),d("span",vi,f(jn(t)),1),d("span",ki,f(Dn(t)),1)],10,mi)):k("",!0),Le(t).length>0?(r(),l("div",{key:1,class:C(["cmd-group-wrap",{"cmd-group-visible":lt(t)}])},[d("div",gi,[(r(!0),l(g,null,w(Rt(t),o=>{var h,c;return r(),l("div",{key:`grouped-cmd-${o.id}`,class:"worked-cmd-item"},[d("button",{type:"button",class:C(["cmd-row",[Se(o),{"cmd-expanded":B(o),"cmd-compact":!0}]]),onClick:m=>rt(o)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":B(o)}])},"▶",2),d("code",_i,f(((h=o.commandExecution)==null?void 0:h.command)||"(command)"),1),d("span",wi,f(Me(o)),1)],10,yi),d("div",{class:C(["cmd-output-wrap",{"cmd-output-visible":B(o)}])},[d("div",bi,[d("pre",{class:C(["cmd-output",{"cmd-output-condensed":at(o)}]),textContent:f(((c=o.commandExecution)==null?void 0:c.aggregatedOutput)||"(no output)")},null,10,xi)])],2)])}),128))])],2)):(r(),l(g,{key:2},[d("button",{type:"button",class:C(["cmd-row",[Se(t),{"cmd-expanded":B(t),"cmd-compact":ot(t)}]]),onClick:o=>rt(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":B(t)}])},"▶",2),d("code",$i,f(((s=t.commandExecution)==null?void 0:s.command)||"(command)"),1),d("span",Li,f(Me(t)),1)],10,Ci),d("div",{class:C(["cmd-output-wrap",{"cmd-output-visible":B(t)}])},[d("div",Ti,[d("pre",{class:C(["cmd-output",{"cmd-output-condensed":at(t)}]),textContent:f(((i=t.commandExecution)==null?void 0:i.aggregatedOutput)||"(no output)")},null,10,Mi)])],2)],64))])])):nt(t)?(r(),l("div",{key:1,class:"message-row","data-role":t.role,"data-message-type":t.messageType||""},[d("div",{class:"message-stack","data-role":t.role},[d("article",{class:"message-body","data-role":t.role},[le(t)?(r(),l("section",Ai,[d("button",{type:"button",class:C(["cmd-row cmd-row-group cmd-compact file-change-summary-row",{"cmd-expanded":te(t)}]),onClick:o=>Wt(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":te(t)}])},"▶",2),d("span",Bi,f(en(le(t))),1),d("span",Fi,[(r(!0),l(g,null,w(tn(le(t)),o=>(r(),l("span",{key:`summary-status:${t.id}:${o.tone}:${o.label}`,class:"file-change-signed-count","data-tone":o.tone},f(o.label),9,Ri))),128))])],10,Ei),d("div",{class:C(["cmd-group-wrap",{"cmd-group-visible":te(t)}])},[d("div",Hi,[d("ul",Wi,[(r(!0),l(g,null,w(((a=le(t))==null?void 0:a.changes)??[],o=>(r(),l("li",{key:`file-change:${t.id}:${o.path}:${o.movedToPath||""}`,class:"file-change-item"},[d("span",{class:"file-change-badge","data-operation":Oe(o)},f(ce(o)),9,Oi),d("button",{type:"button",class:"file-change-path-button",title:o.path,onClick:h=>Te(le(t),o)},f(S(o.path)),9,zi),o.movedToPath?(r(),l("span",ji,"→")):k("",!0),o.movedToPath?(r(),l("button",{key:1,type:"button",class:"file-change-path-button",title:o.movedToPath,onClick:h=>Te(le(t),o)},f(S(o.movedToPath)),9,Di)):k("",!0),o.addedLineCount>0||o.removedLineCount>0?(r(),l("span",Vi,[(r(!0),l(g,null,w(Qt(o),h=>(r(),l("span",{key:`change-delta:${t.id}:${o.path}:${h.tone}:${h.label}`,class:"file-change-signed-count","data-tone":h.tone},f(h.label),9,Ni))),128))])):k("",!0)]))),128))])])],2)])):k("",!0)],8,Pi)],8,Ii)],8,Si)):(r(),l("div",{key:2,class:"message-row","data-role":t.role,"data-message-type":t.messageType||""},[d("div",{class:"message-stack","data-role":t.role},[d("article",{class:"message-body","data-role":t.role},[t.images&&t.images.length>0?(r(),l("ul",{key:0,class:C(["message-image-list",{"message-generated-image-list":t.messageType==="imageView"}]),"data-role":t.role},[(r(!0),l(g,null,w(t.images,o=>(r(),l("li",{key:o,class:"message-image-item"},[d("button",{class:"message-image-button",type:"button",onClick:h=>Mn(o)},[d("img",{class:C(["message-image-preview",{"message-generated-image-preview":t.messageType==="imageView"}]),src:o,alt:t.messageType==="imageView"?"Generated image":"Message image preview",loading:"lazy"},null,10,Xi)],8,Zi)]))),128))],10,Gi)):k("",!0),t.fileAttachments&&t.fileAttachments.length>0?(r(),l("div",Ji,[(r(!0),l(g,null,w(t.fileAttachments,o=>(r(),l("span",{key:`${t.id}:${o.path}`,class:"message-file-chip"},[n[5]||(n[5]=d("span",{class:"message-file-chip-icon"},"📄",-1)),d("a",{class:"message-file-link message-file-chip-name",href:z(o.path),target:"_blank",rel:"noopener noreferrer",title:o.path},f(o.label),9,Yi)]))),128))])):k("",!0),t.text.length>0?(r(),l("article",{key:2,class:"message-card","data-role":t.role},[t.messageType==="worked"?(r(),l("div",eo,[d("button",{type:"button",class:"worked-separator",onClick:o=>Vn(t)},[n[6]||(n[6]=d("span",{class:"worked-separator-line","aria-hidden":"true"},null,-1)),d("span",{class:C(["worked-chevron",{"worked-chevron-open":Ht(t)}])},"▶",2),d("p",no,f(t.text),1),n[7]||(n[7]=d("span",{class:"worked-separator-line","aria-hidden":"true"},null,-1))],8,to),Ht(t)?(r(),l("div",so,[(r(!0),l(g,null,w(qn(M.messages,M.messages.indexOf(t)),o=>{var h,c;return r(),l("div",{key:`worked-cmd-${o.id}`,class:"worked-cmd-item"},[d("button",{type:"button",class:C(["cmd-row",[Se(o),{"cmd-expanded":B(o),"cmd-compact":ot(o)}]]),onClick:m=>rt(o)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":B(o)}])},"▶",2),d("code",oo,f(((h=o.commandExecution)==null?void 0:h.command)||"(command)"),1),d("span",ao,f(Me(o)),1)],10,io),d("div",{class:C(["cmd-output-wrap",{"cmd-output-visible":B(o)}])},[d("div",ro,[d("pre",{class:C(["cmd-output",{"cmd-output-condensed":at(o)}]),textContent:f(((c=o.commandExecution)==null?void 0:c.aggregatedOutput)||"(no output)")},null,10,lo)])],2)])}),128))])):k("",!0)])):tt(t)?(r(),l("div",{key:1,class:"plan-card","data-streaming":t.messageType==="plan.live"},[d("div",uo,[n[8]||(n[8]=d("p",{class:"plan-card-title"},"Plan",-1)),t.messageType==="plan.live"?(r(),l("span",ho,"Updating")):k("",!0)]),Et(t)?(r(),l("div",{key:0,class:"plan-card-explanation plan-card-markdown",innerHTML:yt(Et(t))},null,8,fo)):k("",!0),Bt(t).length>0?(r(),l("ol",po,[(r(!0),l(g,null,w(Bt(t),(o,h)=>(r(),l("li",{key:`${t.id}:plan-step:${h}`,class:"plan-step-item","data-status":o.status},[d("span",{class:"plan-step-status","data-status":o.status},f(On(o.status)),9,vo),d("div",{class:"plan-step-text plan-card-markdown",innerHTML:yt(o.step)},null,8,ko)],8,mo))),128))])):(r(),l("div",{key:2,class:"plan-card-markdown",innerHTML:yt(t.text)},null,8,go)),Rn(t)?(r(),l("div",yo,[d("button",{type:"button",class:"plan-card-implement-button",onClick:o=>Hn(t)}," Implement plan ",8,_o)])):k("",!0)],8,co)):Xs([t.id,t.text,v.cwd,ne.value,Nt.value],()=>(r(),l("div",{key:2,class:"message-text-flow"},[(r(!0),l(g,null,w(Rs(t),(o,h)=>(r(),l(g,{key:`block-${h}`},[o.kind==="paragraph"?(r(),l("p",wo,[(r(!0),l(g,null,w(Z(o.value),(c,m)=>(r(),l(g,{key:`seg-${h}-${m}`},[c.kind==="text"?(r(),l("span",bo,f(c.value),1)):c.kind==="bold"?(r(),l("strong",xo,f(c.value),1)):c.kind==="italic"?(r(),l("em",Co,f(c.value),1)):c.kind==="strikethrough"?(r(),l("s",$o,f(c.value),1)):c.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(c.path),target:"_blank",rel:"noopener noreferrer",title:c.path},f(c.displayPath),9,Lo)):c.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:c.href,target:"_blank",rel:"noopener noreferrer",title:c.href},f(c.value),9,To)):(r(),l("code",Mo,f(c.value),1))],64))),128))])):o.kind==="heading"?(r(),ni(si(Kt(o.level)),{key:1,class:C(["message-heading",Gt(o.level)])},{default:An(()=>[(r(!0),l(g,null,w(Z(o.value),(c,m)=>(r(),l(g,{key:`heading-seg-${h}-${m}`},[c.kind==="text"?(r(),l("span",So,f(c.value),1)):c.kind==="bold"?(r(),l("strong",Io,f(c.value),1)):c.kind==="italic"?(r(),l("em",Po,f(c.value),1)):c.kind==="strikethrough"?(r(),l("s",Ao,f(c.value),1)):c.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(c.path),target:"_blank",rel:"noopener noreferrer",title:c.path},f(c.displayPath),9,Eo)):c.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:c.href,target:"_blank",rel:"noopener noreferrer",title:c.href},f(c.value),9,Bo)):(r(),l("code",Fo,f(c.value),1))],64))),128))]),_:2},1032,["class"])):o.kind==="blockquote"?(r(),l("blockquote",Ro,[(r(!0),l(g,null,w(Z(o.value),(c,m)=>(r(),l(g,{key:`quote-seg-${h}-${m}`},[c.kind==="text"?(r(),l("span",Ho,f(c.value),1)):c.kind==="bold"?(r(),l("strong",Wo,f(c.value),1)):c.kind==="italic"?(r(),l("em",Oo,f(c.value),1)):c.kind==="strikethrough"?(r(),l("s",zo,f(c.value),1)):c.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(c.path),target:"_blank",rel:"noopener noreferrer",title:c.path},f(c.displayPath),9,jo)):c.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:c.href,target:"_blank",rel:"noopener noreferrer",title:c.href},f(c.value),9,Do)):(r(),l("code",Vo,f(c.value),1))],64))),128))])):o.kind==="unorderedList"?(r(),l("ul",No,[(r(!0),l(g,null,w(o.items,(c,m)=>(r(),l("li",{key:`ul-${h}-${m}`,class:"message-list-item"},[d("div",{class:"message-list-item-content",innerHTML:Ue(c)},null,8,Uo)]))),128))])):o.kind==="taskList"?(r(),l("ul",qo,[(r(!0),l(g,null,w(o.items,(c,m)=>(r(),l("li",{key:`task-${h}-${m}`,class:"message-task-item"},[d("span",{class:"message-task-checkbox","data-checked":c.checked},f(c.checked?"☑":"☐"),9,Ko),d("div",Go,[(r(!0),l(g,null,w(Z(c.text),(p,y)=>(r(),l(g,{key:`task-seg-${h}-${m}-${y}`},[p.kind==="text"?(r(),l("span",Zo,f(p.value),1)):p.kind==="bold"?(r(),l("strong",Xo,f(p.value),1)):p.kind==="italic"?(r(),l("em",Jo,f(p.value),1)):p.kind==="strikethrough"?(r(),l("s",Yo,f(p.value),1)):p.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(p.path),target:"_blank",rel:"noopener noreferrer",title:p.path},f(p.displayPath),9,Qo)):p.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:p.href,target:"_blank",rel:"noopener noreferrer",title:p.href},f(p.value),9,ea)):(r(),l("code",ta,f(p.value),1))],64))),128))])]))),128))])):o.kind==="orderedList"?(r(),l("ol",{key:5,class:"message-list message-list-ordered",start:o.start},[(r(!0),l(g,null,w(o.items,(c,m)=>(r(),l("li",{key:`ol-${h}-${m}`,class:"message-list-item"},[d("div",{class:"message-list-item-content",innerHTML:Ue(c)},null,8,sa)]))),128))],8,na)):o.kind==="table"?(r(),l("div",ia,[d("table",oa,[d("thead",null,[d("tr",null,[(r(!0),l(g,null,w(o.headers,(c,m)=>(r(),l("th",{key:`th-${h}-${m}`,class:"message-table-head-cell",style:$t({textAlign:o.alignments[m]??"left"})},[(r(!0),l(g,null,w(Z(c),(p,y)=>(r(),l(g,{key:`th-seg-${h}-${m}-${y}`},[p.kind==="text"?(r(),l("span",aa,f(p.value),1)):p.kind==="bold"?(r(),l("strong",ra,f(p.value),1)):p.kind==="italic"?(r(),l("em",la,f(p.value),1)):p.kind==="strikethrough"?(r(),l("s",ca,f(p.value),1)):p.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(p.path),target:"_blank",rel:"noopener noreferrer",title:p.path},f(p.displayPath),9,ua)):p.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:p.href,target:"_blank",rel:"noopener noreferrer",title:p.href},f(p.value),9,da)):(r(),l("code",ha,f(p.value),1))],64))),128))],4))),128))])]),o.rows.length>0?(r(),l("tbody",fa,[(r(!0),l(g,null,w(o.rows,(c,m)=>(r(),l("tr",{key:`tr-${h}-${m}`,class:"message-table-body-row"},[(r(!0),l(g,null,w(c,(p,y)=>(r(),l("td",{key:`td-${h}-${m}-${y}`,class:"message-table-cell",style:$t({textAlign:o.alignments[y]??"left"})},[(r(!0),l(g,null,w(Z(p),(x,j)=>(r(),l(g,{key:`td-seg-${h}-${m}-${y}-${j}`},[x.kind==="text"?(r(),l("span",pa,f(x.value),1)):x.kind==="bold"?(r(),l("strong",ma,f(x.value),1)):x.kind==="italic"?(r(),l("em",va,f(x.value),1)):x.kind==="strikethrough"?(r(),l("s",ka,f(x.value),1)):x.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(x.path),target:"_blank",rel:"noopener noreferrer",title:x.path},f(x.displayPath),9,ga)):x.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:x.href,target:"_blank",rel:"noopener noreferrer",title:x.href},f(x.value),9,ya)):(r(),l("code",_a,f(x.value),1))],64))),128))],4))),128))]))),128))])):k("",!0)])])):o.kind==="codeBlock"?(r(),l("div",wa,[o.language?(r(),l("div",ba,f(o.language),1)):k("",!0),d("pre",xa,[d("code",{class:"hljs",innerHTML:yn(o.language,o.value)},null,8,Ca)])])):o.kind==="thematicBreak"?(r(),l("hr",$a)):Ns(t.id,h)?(r(),l("p",La,f(o.markdown),1)):(r(),l("button",{key:10,class:"message-image-button",type:"button",onClick:c=>Mn(o.url)},[d("img",{class:"message-image-preview message-markdown-image",src:o.url,alt:o.alt||"Embedded message image",loading:"lazy",onError:c=>Us(t.id,h)},null,40,Ma)],8,Ta))],64))),128))])),n,0)],8,Qi)):k("",!0),re(t)?(r(),l("section",Sa,[d("button",{type:"button",class:C(["cmd-row cmd-row-group cmd-compact file-change-summary-row",{"cmd-expanded":te(t)}]),onClick:o=>Wt(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":te(t)}])},"▶",2),d("span",Pa,f(en(re(t))),1),d("span",Aa,[(r(!0),l(g,null,w(tn(re(t)),o=>(r(),l("span",{key:`summary-status:${t.id}:${o.tone}:${o.label}`,class:"file-change-signed-count","data-tone":o.tone},f(o.label),9,Ea))),128))])],10,Ia),d("div",{class:C(["cmd-group-wrap",{"cmd-group-visible":te(t)}])},[d("div",Ba,[d("ul",Fa,[(r(!0),l(g,null,w(((u=re(t))==null?void 0:u.changes)??[],o=>(r(),l("li",{key:`file-change:inline:${t.id}:${o.path}:${o.movedToPath||""}`,class:"file-change-item"},[d("span",{class:"file-change-badge","data-operation":Oe(o)},f(ce(o)),9,Ra),d("button",{type:"button",class:"file-change-path-button",title:o.path,onClick:h=>Te(re(t),o)},f(S(o.path)),9,Ha),o.movedToPath?(r(),l("span",Wa,"→")):k("",!0),o.movedToPath?(r(),l("button",{key:1,type:"button",class:"file-change-path-button",title:o.movedToPath,onClick:h=>Te(re(t),o)},f(S(o.movedToPath)),9,Oa)):k("",!0),o.addedLineCount>0||o.removedLineCount>0?(r(),l("span",za,[(r(!0),l(g,null,w(Qt(o),h=>(r(),l("span",{key:`change-delta:inline:${t.id}:${o.path}:${h.tone}:${h.label}`,class:"file-change-signed-count","data-tone":h.tone},f(h.label),9,ja))),128))])):k("",!0)]))),128))])])],2)])):k("",!0),Jt(t)||sn(t)?(r(),l("div",{key:4,class:"message-toolbar","data-role":t.role},[sn(t)?(r(),l("button",{key:0,type:"button",class:"message-edit-button","aria-label":"Edit this message",title:"Edit this message",onClick:o=>_s(t.id)},[Q(Js,{class:"icon-svg message-edit-icon"}),n[9]||(n[9]=d("span",{class:"message-edit-label"},"Edit message",-1))],8,Va)):k("",!0),ns(t)?(r(),l("button",{key:1,type:"button",class:"message-fork-button","aria-label":"Fork thread from this response",title:"Fork thread from this response",onClick:o=>ys(t.id)},[Q(Ys,{class:"icon-svg message-fork-icon"}),n[10]||(n[10]=d("span",{class:"message-fork-label"},"Fork",-1))],8,Na)):k("",!0),Jt(t)?(r(),l("button",{key:2,type:"button",class:"message-copy-button","data-copied":N.value===t.id,"aria-label":N.value===t.id?"Response copied":"Copy response",title:N.value===t.id?"Response copied":"Copy response",onClick:o=>gs(t.id)},[Q(ri,{class:"icon-svg message-copy-icon"}),d("span",qa,f(N.value===t.id?"Copied":"Copy"),1)],8,Ua)):k("",!0)],8,Da)):k("",!0)],8,Ki)],8,qi)],8,Ui))],8,hi)):k("",!0)],64)}),128)),M.liveOverlay?(r(),l("li",Ka,[d("div",Ga,[d("div",Za,[d("article",Xa,[d("p",Ja,f(M.liveOverlay.activityLabel),1),M.liveOverlay.reasoningText?(r(),l("p",Ya,f(M.liveOverlay.reasoningText),1)):k("",!0),M.liveOverlay.errorText?(r(),l("p",Qa,f(M.liveOverlay.errorText),1)):k("",!0)])])])])):k("",!0),d("li",{ref_key:"bottomAnchorRef",ref:jt,class:"conversation-bottom-anchor"},null,512)],544)),Zn.value?(r(),l("button",{key:3,type:"button",class:"jump-to-latest-button",title:"Jump to latest","aria-label":"Jump to latest output",onClick:$n},[Q(Qs,{class:"icon-svg jump-to-latest-icon"})])):k("",!0),me.value.length>0?(r(),l("div",{key:4,class:"image-modal-backdrop",onClick:Sn},[d("div",{class:"image-modal-content",onClick:n[1]||(n[1]=Ze(()=>{},["stop"]))},[d("button",{class:"image-modal-close",type:"button","aria-label":"Close image preview",onClick:Sn},[Q(Pn,{class:"icon-svg"})]),d("img",{class:"image-modal-image",src:me.value,alt:"Expanded message image"},null,8,er)])])):k("",!0),pe.value?(r(),l("div",{key:5,ref_key:"fileLinkContextMenuRef",ref:Mt,class:"file-link-context-menu",style:$t(Cs.value),onClick:n[2]||(n[2]=Ze(()=>{},["stop"]))},[d("button",{type:"button",class:"file-link-context-menu-item",onClick:Ts}," Open link "),d("button",{type:"button",class:"file-link-context-menu-item",onClick:Ss}," Copy link "),Qe.value?(r(),l("button",{key:0,type:"button",class:"file-link-context-menu-item",onClick:Ms}," Edit file ")):k("",!0)],4)):k("",!0),I.value?(r(),l("div",{key:6,class:"diff-viewer-backdrop",onClick:Ot},[d("div",{class:"diff-viewer-shell",onClick:n[4]||(n[4]=Ze(()=>{},["stop"]))},[Lt(Ce)?k("",!0):(r(),l("aside",tr,[d("div",nr,[n[11]||(n[11]=d("p",{class:"diff-viewer-sidebar-title"},"Changed files",-1)),d("p",sr,f(ze(ue.value.length)),1)]),d("div",ir,[(r(!0),l(g,null,w(ue.value,t=>(r(),l("button",{key:`diff-viewer:${T(t)}`,type:"button",class:"diff-viewer-file-button","data-active":T(t)===T(I.value),onClick:s=>zt(t)},[d("span",{class:"file-change-badge","data-operation":Oe(t)},f(ce(t)),9,ar),d("span",rr,[ee(f(S(t.path))+" ",1),t.movedToPath?(r(),l(g,{key:0},[ee(" → "+f(S(t.movedToPath)),1)],64)):k("",!0)]),G(t)?(r(),l("span",lr,f(G(t)),1)):k("",!0)],8,or))),128))])])),d("section",cr,[d("div",ur,[d("div",dr,[d("p",hr,[ee(f(S(I.value.path))+" ",1),I.value.movedToPath?(r(),l(g,{key:0},[ee(" → "+f(S(I.value.movedToPath)),1)],64)):k("",!0)]),d("p",fr,[ee(f(ce(I.value))+" ",1),G(I.value)?(r(),l("span",pr," · "+f(G(I.value)),1)):k("",!0)])]),d("div",mr,[Lt(Ce)?(r(),l("button",{key:0,type:"button",class:"diff-viewer-mobile-files-button",onClick:Nn},f(ze(ue.value.length)),1)):k("",!0),d("button",{class:"image-modal-close diff-viewer-close",type:"button","aria-label":"Close diff viewer",onClick:Ot},[Q(Pn,{class:"icon-svg"})])])]),ms(I.value)?(r(),l("div",kr,[d("div",gr,[d("span",yr,f(cs(I.value)||"diff"),1)]),d("div",_r,[(r(!0),l(g,null,w(ps.value,t=>(r(),l("div",{key:t.key,class:"diff-viewer-line","data-kind":t.kind},[d("span",br,f(t.oldLine??""),1),d("span",xr,f(t.newLine??""),1),d("span",Cr,f(vs(t)),1),d("code",{class:"diff-viewer-line-code",innerHTML:$(t.text)||" "},null,8,$r)],8,wr))),128))])])):(r(),l("div",vr,[...n[12]||(n[12]=[d("p",{class:"diff-viewer-empty-title"},"No diff available",-1),d("p",{class:"diff-viewer-empty-text"},"This summary was restored from the final answer text, but the thread history does not include patch diff content for this file.",-1)])]))]),Q(ei,{name:"diff-viewer-sheet"},{default:An(()=>[Lt(Ce)&&D.value?(r(),l("div",{key:0,class:"diff-viewer-mobile-sheet-backdrop",onClick:Un},[d("div",{class:"diff-viewer-mobile-sheet",onClick:n[3]||(n[3]=Ze(()=>{},["stop"]))},[n[14]||(n[14]=d("div",{class:"diff-viewer-mobile-sheet-handle","aria-hidden":"true"},null,-1)),d("div",Lr,[n[13]||(n[13]=d("p",{class:"diff-viewer-sidebar-title"},"Changed files",-1)),d("p",Tr,f(ze(ue.value.length)),1)]),d("div",Mr,[(r(!0),l(g,null,w(ue.value,t=>(r(),l("button",{key:`diff-viewer-sheet:${T(t)}`,type:"button",class:"diff-viewer-file-button","data-active":T(t)===T(I.value),onClick:s=>zt(t)},[d("span",{class:"file-change-badge","data-operation":Oe(t)},f(ce(t)),9,Ir),d("span",Pr,[ee(f(S(t.path))+" ",1),t.movedToPath?(r(),l(g,{key:0},[ee(" → "+f(S(t.movedToPath)),1)],64)):k("",!0)]),G(t)?(r(),l("span",Ar,f(G(t)),1)):k("",!0)],8,Sr))),128))])])])):k("",!0)]),_:1})])])):k("",!0)],32))}}),Dr=En(zr,[["__scopeId","data-v-dd33b8d4"]]);export{Dr as default};
|
|
39
|
+
`)}),a=i}return u(t.length),s.length>0?s:[{kind:"paragraph",value:e}]}function Rs(e){const n=ke.get(e.id);if(n&&n.text===e.text&&n.cwd===v.cwd)return ke.delete(e.id),ke.set(e.id,n),n.blocks;const t=kn(e.text);return Fe(ke,e.id,{text:e.text,cwd:v.cwd,blocks:t},Br).blocks}function $(e){return e.replace(/&/gu,"&").replace(/</gu,"<").replace(/>/gu,">").replace(/"/gu,""").replace(/'/gu,"'")}function gn(e){var t;const n=((t=e.trim().split(/\s+/u)[0])==null?void 0:t.toLowerCase())??"";return n?Dt[n]??n:""}function Hs(e,n){const t=gn(e);if(!t)return $(n);const s=Ee.value;if(!s)return $(n);try{if(s.getLanguage(t))return s.highlight(n,{language:t,ignoreIllegals:!0}).value}catch{}return $(n)}function yn(e,n){const t=`${ne.value}\0${gn(e)}\0${e}\0${n}`,s=ie.get(t);return s!==void 0?(ie.delete(t),ie.set(t,s),s):Fe(ie,t,Hs(e,n),Hr)}function J(e){return Z(e).map(n=>n.kind==="text"?$(n.value):n.kind==="bold"?`<strong class="message-bold-text">${$(n.value)}</strong>`:n.kind==="italic"?`<em class="message-italic-text">${$(n.value)}</em>`:n.kind==="strikethrough"?`<s class="message-strikethrough-text">${$(n.value)}</s>`:n.kind==="file"?`<a class="message-file-link" href="${$(z(n.path))}" target="_blank" rel="noopener noreferrer" title="${$(n.path)}">${$(n.displayPath)}</a>`:n.kind==="url"?`<a class="message-file-link" href="${$(n.href)}" target="_blank" rel="noopener noreferrer" title="${$(n.href)}">${$(n.value)}</a>`:`<code class="message-inline-code">${$(n.value)}</code>`).join("")}function Ws(e){return e.paragraphs.map(n=>`<div class="message-list-item-text message-list-item-paragraph">${J(n)}</div>`).join("")}function Ue(e){var s;const n=Ws(e),t=((s=e.children)==null?void 0:s.map(i=>wn(i)).join(""))??"";return n+t}function _n(e){return e?` style="text-align:${e}"`:""}function wn(e){if(e.kind==="paragraph")return`<p class="message-text">${J(e.value)}</p>`;if(e.kind==="heading"){const n=Math.min(6,Math.max(1,Math.trunc(e.level))),t=Kt(n),s=`message-heading ${Gt(n)}`;return`<${t} class="${s}">${J(e.value)}</${t}>`}if(e.kind==="blockquote")return`<blockquote class="message-blockquote">${J(e.value)}</blockquote>`;if(e.kind==="unorderedList")return`<ul class="message-list message-list-unordered">${e.items.map(t=>`<li class="message-list-item"><div class="message-list-item-content">${Ue(t)}</div></li>`).join("")}</ul>`;if(e.kind==="taskList")return`<ul class="message-list message-task-list">${e.items.map(t=>`<li class="message-task-item"><span class="message-task-checkbox" data-checked="${t.checked?"true":"false"}">${t.checked?"☑":"☐"}</span><div class="message-list-item-text">${J(t.text)}</div></li>`).join("")}</ul>`;if(e.kind==="orderedList"){const n=e.items.map(t=>`<li class="message-list-item"><div class="message-list-item-content">${Ue(t)}</div></li>`).join("");return`<ol class="message-list message-list-ordered" start="${e.start}">${n}</ol>`}if(e.kind==="table"){const n=e.headers.map((i,a)=>`<th class="message-table-head-cell"${_n(e.alignments[a]??null)}>${J(i)}</th>`).join(""),t=e.rows.map(i=>'<tr class="message-table-body-row">'+i.map((a,u)=>`<td class="message-table-cell"${_n(e.alignments[u]??null)}>${J(a)}</td>`).join("")+"</tr>").join(""),s=t?`<tbody>${t}</tbody>`:"";return`<div class="message-table-wrap"><table class="message-table"><thead><tr>${n}</tr></thead>${s}</table></div>`}return e.kind==="codeBlock"?`<div class="message-code-block">${e.language?`<div class="message-code-language">${$(e.language)}</div>`:""}<pre class="message-code-pre"><code class="hljs">${yn(e.language,e.value)}</code></pre></div>`:e.kind==="thematicBreak"?'<hr class="message-divider">':`<img class="message-image-preview message-markdown-image" src="${$(e.url)}" alt="${$(e.alt||"Embedded message image")}" loading="lazy">`}function yt(e){const n=`${v.cwd}\0${ne.value}\0${e}`,t=se.get(n);if(t&&t.text===e&&t.cwd===v.cwd&&t.highlightVersion===ne.value)return se.delete(n),se.set(n,t),t.html;const s=kn(e).map(i=>wn(i)).join("");return Fe(se,n,{text:e,cwd:v.cwd,highlightVersion:ne.value,html:s},Rr).html}function Os(){const e=V.value,n=jt.value;!e||!n||(e.scrollTop=e.scrollHeight,n.scrollIntoView({block:"end"}))}function bn(e){return e.scrollHeight-(e.scrollTop+e.clientHeight)<=Er}function qe(e){if(!v.activeThreadId)return;const n=Math.max(e.scrollHeight-e.clientHeight,0),t=n>0?Math.min(Math.max(e.scrollTop/n,0),1):1;Pe("updateScrollState",{threadId:v.activeThreadId,state:{scrollTop:e.scrollTop,isAtBottom:bn(e),scrollRatio:t}})}function zs(){const e=V.value;if(!e)return;if(O.value){Ke();return}const n=v.scrollState;if(!n||n.isAtBottom){qe(e);return}const t=Math.max(e.scrollHeight-e.clientHeight,0),s=n.scrollTop;e.scrollTop=Math.min(Math.max(s,0),t),qe(e)}function Ke(){const e=V.value;e&&(Os(),qe(e))}function _t(){return O.value}function xn(){if(!_t()){Ae=0,A=0;return}if(Ke(),Ae-=1,Ae<=0){A=0;return}A=requestAnimationFrame(xn)}function Ge(e=6){_t()&&(A&&(cancelAnimationFrame(A),A=0),Ae=Math.max(e,1),A=requestAnimationFrame(xn))}function Cn(){Ge(3)}function $n(){O.value=!0,Ke(),Ge(4)}async function Ln(){const e=V.value;if(!e||!ct.value||K.value)return;K.value=!0;const n=v.activeThreadId,t=e.scrollHeight,s=e.scrollTop;F.value=Math.max(0,F.value-Wr),await Ct(),v.activeThreadId===n&&(e.scrollTop=s+(e.scrollHeight-t),K.value=!1)}be({jumpToLatest:$n});function js(){if(!_t())return;const e=V.value;if(!e)return;const n=e.querySelectorAll("img.message-image-preview");for(const t of n)t.complete||Vt.has(t)||(Vt.add(t),t.addEventListener("load",Cn,{once:!0}),t.addEventListener("error",Cn,{once:!0}))}async function wt(){return ve||(ve=Ct().then(()=>new Promise(e=>{U&&cancelAnimationFrame(U),U=requestAnimationFrame(()=>{U=0,ve=null,zs(),js(),Ge(),e()})})),ve)}function Ds(){ke.clear(),ge.clear(),se.clear(),ie.clear()}Y(()=>v.messages,async e=>{if(v.isLoading)return;const n=new Set(e.filter(t=>t.messageType==="commandExecution"&&t.commandExecution).map(t=>t.id));de.value=Ie(de.value,n),W.value=Ie(W.value,n),he.value=Ie(he.value,new Set(Object.keys(it.value))),fe.value=Ie(fe.value,new Set([...Object.keys(We.value),...Object.keys(ht.value)])),O.value?F.value=Math.max(0,e.length-Tt):F.value=Math.min(F.value,Math.max(0,e.length-1)),await wt()}),Y(()=>v.messages.some(e=>e.text.includes("```")),e=>{!e||Ee.value||Xn()},{immediate:!0}),Y(st,(e,n)=>{if(!n||n===e||!W.value.has(n))return;const t=new Set(W.value);t.delete(n),W.value=t}),Y(()=>v.pendingRequests,async()=>{v.isLoading||await wt()},{deep:!0}),Y(()=>v.liveOverlay,async e=>{e&&O.value&&(await Ct(),Ke(),Ge(8))},{deep:!0}),Y(()=>v.isLoading,async e=>{e||(F.value=Math.max(0,v.messages.length-Tt),await wt())}),Y(()=>v.activeThreadId,()=>{Kn.value=null,O.value=!0,me.value="",K.value=!1,F.value=Math.max(0,v.messages.length-Tt)},{flush:"post"});function Vs(){const e=V.value;!e||v.isLoading||(O.value=bn(e),qe(e),ct.value&&!K.value&&e.scrollTop<Or&&Ln())}const bt=b(new Set);function Tn(e,n){return`${e}:${n}`}function Ns(e,n){return bt.value.has(Tn(e,n))}function Us(e,n){const t=new Set(bt.value);t.add(Tn(e,n)),bt.value=t,Nt.value+=1}function Mn(e){me.value=e}function Sn(){me.value=""}return Gs(()=>{window.addEventListener("pointerdown",on),window.addEventListener("blur",an),window.addEventListener("keydown",rn)}),Zs(()=>{Ds(),U&&(cancelAnimationFrame(U),U=0),A&&(cancelAnimationFrame(A),A=0),q&&(clearTimeout(q),q=null),window.removeEventListener("pointerdown",on),window.removeEventListener("blur",an),window.removeEventListener("keydown",rn)}),(e,n)=>(r(),l("section",{class:"conversation-root",onContextmenuCapture:Ls},[M.isLoading?(r(),l("p",li,"Loading messages...")):M.messages.length===0&&M.pendingRequests.length===0&&!M.liveOverlay?(r(),l("p",ci," No messages in this thread yet. ")):(r(),l("ul",{key:2,ref_key:"conversationListRef",ref:V,class:"conversation-list",onScroll:Vs},[ct.value?(r(),l("li",ui,[d("button",{type:"button",class:"load-more-button",disabled:K.value,onClick:Ln},f(K.value?"Loading…":"Load earlier messages"),9,di)])):k("",!0),(r(!0),l(g,null,w(Gn.value,t=>{var s,i,a,u;return r(),l(g,{key:t.id},[!Wn.value.has(t.id)&&!as.value.has(t.id)?(r(),l("li",{key:0,class:"conversation-item","data-role":t.role,"data-message-type":t.messageType||""},[E(t)?(r(),l("div",fi,[d("div",pi,[Le(t).length>0?(r(),l("button",{key:0,type:"button",class:C(["cmd-row cmd-row-group cmd-compact",[Se(t),{"cmd-expanded":lt(t)}]]),onClick:o=>zn(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":lt(t)}])},"▶",2),d("span",vi,f(jn(t)),1),d("span",ki,f(Dn(t)),1)],10,mi)):k("",!0),Le(t).length>0?(r(),l("div",{key:1,class:C(["cmd-group-wrap",{"cmd-group-visible":lt(t)}])},[d("div",gi,[(r(!0),l(g,null,w(Rt(t),o=>{var h,c;return r(),l("div",{key:`grouped-cmd-${o.id}`,class:"worked-cmd-item"},[d("button",{type:"button",class:C(["cmd-row",[Se(o),{"cmd-expanded":B(o),"cmd-compact":!0}]]),onClick:m=>rt(o)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":B(o)}])},"▶",2),d("code",_i,f(((h=o.commandExecution)==null?void 0:h.command)||"(command)"),1),d("span",wi,f(Me(o)),1)],10,yi),d("div",{class:C(["cmd-output-wrap",{"cmd-output-visible":B(o)}])},[d("div",bi,[d("pre",{class:C(["cmd-output",{"cmd-output-condensed":at(o)}]),textContent:f(((c=o.commandExecution)==null?void 0:c.aggregatedOutput)||"(no output)")},null,10,xi)])],2)])}),128))])],2)):(r(),l(g,{key:2},[d("button",{type:"button",class:C(["cmd-row",[Se(t),{"cmd-expanded":B(t),"cmd-compact":ot(t)}]]),onClick:o=>rt(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":B(t)}])},"▶",2),d("code",$i,f(((s=t.commandExecution)==null?void 0:s.command)||"(command)"),1),d("span",Li,f(Me(t)),1)],10,Ci),d("div",{class:C(["cmd-output-wrap",{"cmd-output-visible":B(t)}])},[d("div",Ti,[d("pre",{class:C(["cmd-output",{"cmd-output-condensed":at(t)}]),textContent:f(((i=t.commandExecution)==null?void 0:i.aggregatedOutput)||"(no output)")},null,10,Mi)])],2)],64))])])):nt(t)?(r(),l("div",{key:1,class:"message-row","data-role":t.role,"data-message-type":t.messageType||""},[d("div",{class:"message-stack","data-role":t.role},[d("article",{class:"message-body","data-role":t.role},[le(t)?(r(),l("section",Ai,[d("button",{type:"button",class:C(["cmd-row cmd-row-group cmd-compact file-change-summary-row",{"cmd-expanded":te(t)}]),onClick:o=>Wt(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":te(t)}])},"▶",2),d("span",Bi,f(en(le(t))),1),d("span",Fi,[(r(!0),l(g,null,w(tn(le(t)),o=>(r(),l("span",{key:`summary-status:${t.id}:${o.tone}:${o.label}`,class:"file-change-signed-count","data-tone":o.tone},f(o.label),9,Ri))),128))])],10,Ei),d("div",{class:C(["cmd-group-wrap",{"cmd-group-visible":te(t)}])},[d("div",Hi,[d("ul",Wi,[(r(!0),l(g,null,w(((a=le(t))==null?void 0:a.changes)??[],o=>(r(),l("li",{key:`file-change:${t.id}:${o.path}:${o.movedToPath||""}`,class:"file-change-item"},[d("span",{class:"file-change-badge","data-operation":Oe(o)},f(ce(o)),9,Oi),d("button",{type:"button",class:"file-change-path-button",title:o.path,onClick:h=>Te(le(t),o)},f(S(o.path)),9,zi),o.movedToPath?(r(),l("span",ji,"→")):k("",!0),o.movedToPath?(r(),l("button",{key:1,type:"button",class:"file-change-path-button",title:o.movedToPath,onClick:h=>Te(le(t),o)},f(S(o.movedToPath)),9,Di)):k("",!0),o.addedLineCount>0||o.removedLineCount>0?(r(),l("span",Vi,[(r(!0),l(g,null,w(Qt(o),h=>(r(),l("span",{key:`change-delta:${t.id}:${o.path}:${h.tone}:${h.label}`,class:"file-change-signed-count","data-tone":h.tone},f(h.label),9,Ni))),128))])):k("",!0)]))),128))])])],2)])):k("",!0)],8,Pi)],8,Ii)],8,Si)):(r(),l("div",{key:2,class:"message-row","data-role":t.role,"data-message-type":t.messageType||""},[d("div",{class:"message-stack","data-role":t.role},[d("article",{class:"message-body","data-role":t.role},[t.images&&t.images.length>0?(r(),l("ul",{key:0,class:C(["message-image-list",{"message-generated-image-list":t.messageType==="imageView"}]),"data-role":t.role},[(r(!0),l(g,null,w(t.images,o=>(r(),l("li",{key:o,class:"message-image-item"},[d("button",{class:"message-image-button",type:"button",onClick:h=>Mn(o)},[d("img",{class:C(["message-image-preview",{"message-generated-image-preview":t.messageType==="imageView"}]),src:o,alt:t.messageType==="imageView"?"Generated image":"Message image preview",loading:"lazy"},null,10,Xi)],8,Zi)]))),128))],10,Gi)):k("",!0),t.fileAttachments&&t.fileAttachments.length>0?(r(),l("div",Ji,[(r(!0),l(g,null,w(t.fileAttachments,o=>(r(),l("span",{key:`${t.id}:${o.path}`,class:"message-file-chip"},[n[5]||(n[5]=d("span",{class:"message-file-chip-icon"},"📄",-1)),d("a",{class:"message-file-link message-file-chip-name",href:z(o.path),target:"_blank",rel:"noopener noreferrer",title:o.path},f(o.label),9,Yi)]))),128))])):k("",!0),t.text.length>0?(r(),l("article",{key:2,class:"message-card","data-role":t.role},[t.messageType==="worked"?(r(),l("div",eo,[d("button",{type:"button",class:"worked-separator",onClick:o=>Vn(t)},[n[6]||(n[6]=d("span",{class:"worked-separator-line","aria-hidden":"true"},null,-1)),d("span",{class:C(["worked-chevron",{"worked-chevron-open":Ht(t)}])},"▶",2),d("p",no,f(t.text),1),n[7]||(n[7]=d("span",{class:"worked-separator-line","aria-hidden":"true"},null,-1))],8,to),Ht(t)?(r(),l("div",so,[(r(!0),l(g,null,w(qn(M.messages,M.messages.indexOf(t)),o=>{var h,c;return r(),l("div",{key:`worked-cmd-${o.id}`,class:"worked-cmd-item"},[d("button",{type:"button",class:C(["cmd-row",[Se(o),{"cmd-expanded":B(o),"cmd-compact":ot(o)}]]),onClick:m=>rt(o)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":B(o)}])},"▶",2),d("code",oo,f(((h=o.commandExecution)==null?void 0:h.command)||"(command)"),1),d("span",ao,f(Me(o)),1)],10,io),d("div",{class:C(["cmd-output-wrap",{"cmd-output-visible":B(o)}])},[d("div",ro,[d("pre",{class:C(["cmd-output",{"cmd-output-condensed":at(o)}]),textContent:f(((c=o.commandExecution)==null?void 0:c.aggregatedOutput)||"(no output)")},null,10,lo)])],2)])}),128))])):k("",!0)])):tt(t)?(r(),l("div",{key:1,class:"plan-card","data-streaming":t.messageType==="plan.live"},[d("div",uo,[n[8]||(n[8]=d("p",{class:"plan-card-title"},"Plan",-1)),t.messageType==="plan.live"?(r(),l("span",ho,"Updating")):k("",!0)]),Et(t)?(r(),l("div",{key:0,class:"plan-card-explanation plan-card-markdown",innerHTML:yt(Et(t))},null,8,fo)):k("",!0),Bt(t).length>0?(r(),l("ol",po,[(r(!0),l(g,null,w(Bt(t),(o,h)=>(r(),l("li",{key:`${t.id}:plan-step:${h}`,class:"plan-step-item","data-status":o.status},[d("span",{class:"plan-step-status","data-status":o.status},f(On(o.status)),9,vo),d("div",{class:"plan-step-text plan-card-markdown",innerHTML:yt(o.step)},null,8,ko)],8,mo))),128))])):(r(),l("div",{key:2,class:"plan-card-markdown",innerHTML:yt(t.text)},null,8,go)),Rn(t)?(r(),l("div",yo,[d("button",{type:"button",class:"plan-card-implement-button",onClick:o=>Hn(t)}," Implement plan ",8,_o)])):k("",!0)],8,co)):Xs([t.id,t.text,v.cwd,ne.value,Nt.value],()=>(r(),l("div",{key:2,class:"message-text-flow"},[(r(!0),l(g,null,w(Rs(t),(o,h)=>(r(),l(g,{key:`block-${h}`},[o.kind==="paragraph"?(r(),l("p",wo,[(r(!0),l(g,null,w(Z(o.value),(c,m)=>(r(),l(g,{key:`seg-${h}-${m}`},[c.kind==="text"?(r(),l("span",bo,f(c.value),1)):c.kind==="bold"?(r(),l("strong",xo,f(c.value),1)):c.kind==="italic"?(r(),l("em",Co,f(c.value),1)):c.kind==="strikethrough"?(r(),l("s",$o,f(c.value),1)):c.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(c.path),target:"_blank",rel:"noopener noreferrer",title:c.path},f(c.displayPath),9,Lo)):c.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:c.href,target:"_blank",rel:"noopener noreferrer",title:c.href},f(c.value),9,To)):(r(),l("code",Mo,f(c.value),1))],64))),128))])):o.kind==="heading"?(r(),ni(si(Kt(o.level)),{key:1,class:C(["message-heading",Gt(o.level)])},{default:An(()=>[(r(!0),l(g,null,w(Z(o.value),(c,m)=>(r(),l(g,{key:`heading-seg-${h}-${m}`},[c.kind==="text"?(r(),l("span",So,f(c.value),1)):c.kind==="bold"?(r(),l("strong",Io,f(c.value),1)):c.kind==="italic"?(r(),l("em",Po,f(c.value),1)):c.kind==="strikethrough"?(r(),l("s",Ao,f(c.value),1)):c.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(c.path),target:"_blank",rel:"noopener noreferrer",title:c.path},f(c.displayPath),9,Eo)):c.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:c.href,target:"_blank",rel:"noopener noreferrer",title:c.href},f(c.value),9,Bo)):(r(),l("code",Fo,f(c.value),1))],64))),128))]),_:2},1032,["class"])):o.kind==="blockquote"?(r(),l("blockquote",Ro,[(r(!0),l(g,null,w(Z(o.value),(c,m)=>(r(),l(g,{key:`quote-seg-${h}-${m}`},[c.kind==="text"?(r(),l("span",Ho,f(c.value),1)):c.kind==="bold"?(r(),l("strong",Wo,f(c.value),1)):c.kind==="italic"?(r(),l("em",Oo,f(c.value),1)):c.kind==="strikethrough"?(r(),l("s",zo,f(c.value),1)):c.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(c.path),target:"_blank",rel:"noopener noreferrer",title:c.path},f(c.displayPath),9,jo)):c.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:c.href,target:"_blank",rel:"noopener noreferrer",title:c.href},f(c.value),9,Do)):(r(),l("code",Vo,f(c.value),1))],64))),128))])):o.kind==="unorderedList"?(r(),l("ul",No,[(r(!0),l(g,null,w(o.items,(c,m)=>(r(),l("li",{key:`ul-${h}-${m}`,class:"message-list-item"},[d("div",{class:"message-list-item-content",innerHTML:Ue(c)},null,8,Uo)]))),128))])):o.kind==="taskList"?(r(),l("ul",qo,[(r(!0),l(g,null,w(o.items,(c,m)=>(r(),l("li",{key:`task-${h}-${m}`,class:"message-task-item"},[d("span",{class:"message-task-checkbox","data-checked":c.checked},f(c.checked?"☑":"☐"),9,Ko),d("div",Go,[(r(!0),l(g,null,w(Z(c.text),(p,y)=>(r(),l(g,{key:`task-seg-${h}-${m}-${y}`},[p.kind==="text"?(r(),l("span",Zo,f(p.value),1)):p.kind==="bold"?(r(),l("strong",Xo,f(p.value),1)):p.kind==="italic"?(r(),l("em",Jo,f(p.value),1)):p.kind==="strikethrough"?(r(),l("s",Yo,f(p.value),1)):p.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(p.path),target:"_blank",rel:"noopener noreferrer",title:p.path},f(p.displayPath),9,Qo)):p.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:p.href,target:"_blank",rel:"noopener noreferrer",title:p.href},f(p.value),9,ea)):(r(),l("code",ta,f(p.value),1))],64))),128))])]))),128))])):o.kind==="orderedList"?(r(),l("ol",{key:5,class:"message-list message-list-ordered",start:o.start},[(r(!0),l(g,null,w(o.items,(c,m)=>(r(),l("li",{key:`ol-${h}-${m}`,class:"message-list-item"},[d("div",{class:"message-list-item-content",innerHTML:Ue(c)},null,8,sa)]))),128))],8,na)):o.kind==="table"?(r(),l("div",ia,[d("table",oa,[d("thead",null,[d("tr",null,[(r(!0),l(g,null,w(o.headers,(c,m)=>(r(),l("th",{key:`th-${h}-${m}`,class:"message-table-head-cell",style:$t({textAlign:o.alignments[m]??"left"})},[(r(!0),l(g,null,w(Z(c),(p,y)=>(r(),l(g,{key:`th-seg-${h}-${m}-${y}`},[p.kind==="text"?(r(),l("span",aa,f(p.value),1)):p.kind==="bold"?(r(),l("strong",ra,f(p.value),1)):p.kind==="italic"?(r(),l("em",la,f(p.value),1)):p.kind==="strikethrough"?(r(),l("s",ca,f(p.value),1)):p.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(p.path),target:"_blank",rel:"noopener noreferrer",title:p.path},f(p.displayPath),9,ua)):p.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:p.href,target:"_blank",rel:"noopener noreferrer",title:p.href},f(p.value),9,da)):(r(),l("code",ha,f(p.value),1))],64))),128))],4))),128))])]),o.rows.length>0?(r(),l("tbody",fa,[(r(!0),l(g,null,w(o.rows,(c,m)=>(r(),l("tr",{key:`tr-${h}-${m}`,class:"message-table-body-row"},[(r(!0),l(g,null,w(c,(p,y)=>(r(),l("td",{key:`td-${h}-${m}-${y}`,class:"message-table-cell",style:$t({textAlign:o.alignments[y]??"left"})},[(r(!0),l(g,null,w(Z(p),(x,j)=>(r(),l(g,{key:`td-seg-${h}-${m}-${y}-${j}`},[x.kind==="text"?(r(),l("span",pa,f(x.value),1)):x.kind==="bold"?(r(),l("strong",ma,f(x.value),1)):x.kind==="italic"?(r(),l("em",va,f(x.value),1)):x.kind==="strikethrough"?(r(),l("s",ka,f(x.value),1)):x.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(x.path),target:"_blank",rel:"noopener noreferrer",title:x.path},f(x.displayPath),9,ga)):x.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:x.href,target:"_blank",rel:"noopener noreferrer",title:x.href},f(x.value),9,ya)):(r(),l("code",_a,f(x.value),1))],64))),128))],4))),128))]))),128))])):k("",!0)])])):o.kind==="codeBlock"?(r(),l("div",wa,[o.language?(r(),l("div",ba,f(o.language),1)):k("",!0),d("pre",xa,[d("code",{class:"hljs",innerHTML:yn(o.language,o.value)},null,8,Ca)])])):o.kind==="thematicBreak"?(r(),l("hr",$a)):Ns(t.id,h)?(r(),l("p",La,f(o.markdown),1)):(r(),l("button",{key:10,class:"message-image-button",type:"button",onClick:c=>Mn(o.url)},[d("img",{class:"message-image-preview message-markdown-image",src:o.url,alt:o.alt||"Embedded message image",loading:"lazy",onError:c=>Us(t.id,h)},null,40,Ma)],8,Ta))],64))),128))])),n,0)],8,Qi)):k("",!0),re(t)?(r(),l("section",Sa,[d("button",{type:"button",class:C(["cmd-row cmd-row-group cmd-compact file-change-summary-row",{"cmd-expanded":te(t)}]),onClick:o=>Wt(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":te(t)}])},"▶",2),d("span",Pa,f(en(re(t))),1),d("span",Aa,[(r(!0),l(g,null,w(tn(re(t)),o=>(r(),l("span",{key:`summary-status:${t.id}:${o.tone}:${o.label}`,class:"file-change-signed-count","data-tone":o.tone},f(o.label),9,Ea))),128))])],10,Ia),d("div",{class:C(["cmd-group-wrap",{"cmd-group-visible":te(t)}])},[d("div",Ba,[d("ul",Fa,[(r(!0),l(g,null,w(((u=re(t))==null?void 0:u.changes)??[],o=>(r(),l("li",{key:`file-change:inline:${t.id}:${o.path}:${o.movedToPath||""}`,class:"file-change-item"},[d("span",{class:"file-change-badge","data-operation":Oe(o)},f(ce(o)),9,Ra),d("button",{type:"button",class:"file-change-path-button",title:o.path,onClick:h=>Te(re(t),o)},f(S(o.path)),9,Ha),o.movedToPath?(r(),l("span",Wa,"→")):k("",!0),o.movedToPath?(r(),l("button",{key:1,type:"button",class:"file-change-path-button",title:o.movedToPath,onClick:h=>Te(re(t),o)},f(S(o.movedToPath)),9,Oa)):k("",!0),o.addedLineCount>0||o.removedLineCount>0?(r(),l("span",za,[(r(!0),l(g,null,w(Qt(o),h=>(r(),l("span",{key:`change-delta:inline:${t.id}:${o.path}:${h.tone}:${h.label}`,class:"file-change-signed-count","data-tone":h.tone},f(h.label),9,ja))),128))])):k("",!0)]))),128))])])],2)])):k("",!0),Jt(t)||sn(t)?(r(),l("div",{key:4,class:"message-toolbar","data-role":t.role},[sn(t)?(r(),l("button",{key:0,type:"button",class:"message-edit-button","aria-label":"Edit this message",title:"Edit this message",onClick:o=>_s(t.id)},[Q(Js,{class:"icon-svg message-edit-icon"}),n[9]||(n[9]=d("span",{class:"message-edit-label"},"Edit message",-1))],8,Va)):k("",!0),ns(t)?(r(),l("button",{key:1,type:"button",class:"message-fork-button","aria-label":"Fork thread from this response",title:"Fork thread from this response",onClick:o=>ys(t.id)},[Q(Ys,{class:"icon-svg message-fork-icon"}),n[10]||(n[10]=d("span",{class:"message-fork-label"},"Fork",-1))],8,Na)):k("",!0),Jt(t)?(r(),l("button",{key:2,type:"button",class:"message-copy-button","data-copied":N.value===t.id,"aria-label":N.value===t.id?"Response copied":"Copy response",title:N.value===t.id?"Response copied":"Copy response",onClick:o=>gs(t.id)},[Q(ri,{class:"icon-svg message-copy-icon"}),d("span",qa,f(N.value===t.id?"Copied":"Copy"),1)],8,Ua)):k("",!0)],8,Da)):k("",!0)],8,Ki)],8,qi)],8,Ui))],8,hi)):k("",!0)],64)}),128)),M.liveOverlay?(r(),l("li",Ka,[d("div",Ga,[d("div",Za,[d("article",Xa,[d("p",Ja,f(M.liveOverlay.activityLabel),1),M.liveOverlay.reasoningText?(r(),l("p",Ya,f(M.liveOverlay.reasoningText),1)):k("",!0),M.liveOverlay.errorText?(r(),l("p",Qa,f(M.liveOverlay.errorText),1)):k("",!0)])])])])):k("",!0),d("li",{ref_key:"bottomAnchorRef",ref:jt,class:"conversation-bottom-anchor"},null,512)],544)),Zn.value?(r(),l("button",{key:3,type:"button",class:"jump-to-latest-button",title:"Jump to latest","aria-label":"Jump to latest output",onClick:$n},[Q(Qs,{class:"icon-svg jump-to-latest-icon"})])):k("",!0),me.value.length>0?(r(),l("div",{key:4,class:"image-modal-backdrop",onClick:Sn},[d("div",{class:"image-modal-content",onClick:n[1]||(n[1]=Ze(()=>{},["stop"]))},[d("button",{class:"image-modal-close",type:"button","aria-label":"Close image preview",onClick:Sn},[Q(Pn,{class:"icon-svg"})]),d("img",{class:"image-modal-image",src:me.value,alt:"Expanded message image"},null,8,er)])])):k("",!0),pe.value?(r(),l("div",{key:5,ref_key:"fileLinkContextMenuRef",ref:Mt,class:"file-link-context-menu",style:$t(Cs.value),onClick:n[2]||(n[2]=Ze(()=>{},["stop"]))},[d("button",{type:"button",class:"file-link-context-menu-item",onClick:Ts}," Open link "),d("button",{type:"button",class:"file-link-context-menu-item",onClick:Ss}," Copy link "),Qe.value?(r(),l("button",{key:0,type:"button",class:"file-link-context-menu-item",onClick:Ms}," Edit file ")):k("",!0)],4)):k("",!0),I.value?(r(),l("div",{key:6,class:"diff-viewer-backdrop",onClick:Ot},[d("div",{class:"diff-viewer-shell",onClick:n[4]||(n[4]=Ze(()=>{},["stop"]))},[Lt(Ce)?k("",!0):(r(),l("aside",tr,[d("div",nr,[n[11]||(n[11]=d("p",{class:"diff-viewer-sidebar-title"},"Changed files",-1)),d("p",sr,f(ze(ue.value.length)),1)]),d("div",ir,[(r(!0),l(g,null,w(ue.value,t=>(r(),l("button",{key:`diff-viewer:${T(t)}`,type:"button",class:"diff-viewer-file-button","data-active":T(t)===T(I.value),onClick:s=>zt(t)},[d("span",{class:"file-change-badge","data-operation":Oe(t)},f(ce(t)),9,ar),d("span",rr,[ee(f(S(t.path))+" ",1),t.movedToPath?(r(),l(g,{key:0},[ee(" → "+f(S(t.movedToPath)),1)],64)):k("",!0)]),G(t)?(r(),l("span",lr,f(G(t)),1)):k("",!0)],8,or))),128))])])),d("section",cr,[d("div",ur,[d("div",dr,[d("p",hr,[ee(f(S(I.value.path))+" ",1),I.value.movedToPath?(r(),l(g,{key:0},[ee(" → "+f(S(I.value.movedToPath)),1)],64)):k("",!0)]),d("p",fr,[ee(f(ce(I.value))+" ",1),G(I.value)?(r(),l("span",pr," · "+f(G(I.value)),1)):k("",!0)])]),d("div",mr,[Lt(Ce)?(r(),l("button",{key:0,type:"button",class:"diff-viewer-mobile-files-button",onClick:Nn},f(ze(ue.value.length)),1)):k("",!0),d("button",{class:"image-modal-close diff-viewer-close",type:"button","aria-label":"Close diff viewer",onClick:Ot},[Q(Pn,{class:"icon-svg"})])])]),ms(I.value)?(r(),l("div",kr,[d("div",gr,[d("span",yr,f(cs(I.value)||"diff"),1)]),d("div",_r,[(r(!0),l(g,null,w(ps.value,t=>(r(),l("div",{key:t.key,class:"diff-viewer-line","data-kind":t.kind},[d("span",br,f(t.oldLine??""),1),d("span",xr,f(t.newLine??""),1),d("span",Cr,f(vs(t)),1),d("code",{class:"diff-viewer-line-code",innerHTML:$(t.text)||" "},null,8,$r)],8,wr))),128))])])):(r(),l("div",vr,[...n[12]||(n[12]=[d("p",{class:"diff-viewer-empty-title"},"No diff available",-1),d("p",{class:"diff-viewer-empty-text"},"This summary was restored from the final answer text, but the thread history does not include patch diff content for this file.",-1)])]))]),Q(ei,{name:"diff-viewer-sheet"},{default:An(()=>[Lt(Ce)&&D.value?(r(),l("div",{key:0,class:"diff-viewer-mobile-sheet-backdrop",onClick:Un},[d("div",{class:"diff-viewer-mobile-sheet",onClick:n[3]||(n[3]=Ze(()=>{},["stop"]))},[n[14]||(n[14]=d("div",{class:"diff-viewer-mobile-sheet-handle","aria-hidden":"true"},null,-1)),d("div",Lr,[n[13]||(n[13]=d("p",{class:"diff-viewer-sidebar-title"},"Changed files",-1)),d("p",Tr,f(ze(ue.value.length)),1)]),d("div",Mr,[(r(!0),l(g,null,w(ue.value,t=>(r(),l("button",{key:`diff-viewer-sheet:${T(t)}`,type:"button",class:"diff-viewer-file-button","data-active":T(t)===T(I.value),onClick:s=>zt(t)},[d("span",{class:"file-change-badge","data-operation":Oe(t)},f(ce(t)),9,Ir),d("span",Pr,[ee(f(S(t.path))+" ",1),t.movedToPath?(r(),l(g,{key:0},[ee(" → "+f(S(t.movedToPath)),1)],64)):k("",!0)]),G(t)?(r(),l("span",Ar,f(G(t)),1)):k("",!0)],8,Sr))),128))])])])):k("",!0)]),_:1})])])):k("",!0)],32))}}),Dr=En(zr,[["__scopeId","data-v-94e77282"]]);export{Dr as default};
|