codex-phone 1.0.0
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/LICENSE +11 -0
- package/README.md +278 -0
- package/dist/assets/AutomationsPanel-CVRRdwJX.css +1 -0
- package/dist/assets/AutomationsPanel-uscQHN1e.js +1 -0
- package/dist/assets/DirectoryHub-C8N1e8Jl.css +1 -0
- package/dist/assets/DirectoryHub-DPAFmuRH.js +2 -0
- package/dist/assets/ReviewPane-BZOe7axm.js +1 -0
- package/dist/assets/ReviewPane-CoYYQ3xu.css +1 -0
- package/dist/assets/ThreadConversation-BTpe8eca.js +39 -0
- package/dist/assets/ThreadConversation-DruQC3Ap.css +1 -0
- package/dist/assets/ThreadTerminalPanel-BTLjAaIQ.js +38 -0
- package/dist/assets/ThreadTerminalPanel-V1YtpglL.css +32 -0
- package/dist/assets/common-BeuopZEI.js +5 -0
- package/dist/assets/index-BzkJYDSJ.css +1 -0
- package/dist/assets/index-Dp2k2aGg.js +73 -0
- package/dist/assets/index.esm-CXKcZNKa.js +376 -0
- package/dist/assets/index.esm-ChJ56zLV.js +1651 -0
- package/dist/assets/index.esm-rglDf0Dn.js +16 -0
- package/dist/icons/apple-touch-icon.png +0 -0
- package/dist/icons/codexui-icon.svg +52 -0
- package/dist/icons/maskable-512x512.png +0 -0
- package/dist/icons/pwa-192x192.png +0 -0
- package/dist/icons/pwa-512x512.png +0 -0
- package/dist/icons/pwa-icon.svg +38 -0
- package/dist/icons/pwa-maskable.svg +36 -0
- package/dist/index.html +21 -0
- package/dist/manifest.webmanifest +36 -0
- package/dist/sw.js +92 -0
- package/dist-cli/index.js +15263 -0
- package/dist-cli/index.js.map +1 -0
- package/package.json +93 -0
- package/scripts/dev-random-home.cjs +21 -0
- package/scripts/dev.cjs +62 -0
- package/scripts/fix-pty-native-build.cjs +70 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.esm-rglDf0Dn.js","assets/index.esm-CXKcZNKa.js","assets/index.esm-ChJ56zLV.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{d as tt,o as a,c as o,g as G,a as s,t as i,F as O,k as n,f as c,q as je,h as Fe,U as xs,r as V,N as ut,y as _,_ as st,w as Ie,E as ze,p as Rs,V as dt,x as p,z as jt,b as Qt,i as et,W as Xe,X as Ze,Y as zt,Z as Gs,D as Bs,$ as Hs,a0 as js,s as zs,a1 as Ks,v as Vs,a2 as qs,a3 as Ws,a4 as Qs,a5 as Ys,a6 as Js,a7 as Xs,a8 as Zs,a9 as ea,aa as ta,ab as sa,ac as aa,ad as oa,ae as la,af as ia,ag as na,ah as Kt,ai as ra}from"./index-Dp2k2aGg.js";const ca=[[/(gmail|google calendar|google docs|google sheets|google drive|github|slack|notion|linear|outlook|supabase)/i,140],[/(email|calendar|document|sheet|drive|repo|issue|message|project|database|crm|deploy)/i,50]];function Yt(d){return d.trim().toLowerCase()}function da(d,N){return N.reduce((m,[I,w])=>m+(I.test(d)?w:0),0)}function Vt(d){return d.activeCount*1e3+(d.isNoAuth?300:0)+d.toolsCount*3+d.triggersCount*4+da(`${d.name} ${d.slug} ${d.description}`,ca)}function ua(d,N){const m=Yt(N);if(!m)return 0;const I=d.name.toLowerCase(),w=d.slug.toLowerCase();return I===m||w===m?1e6:I.replace(/\s+/gu,"")===m.replace(/\s+/gu,"")?9e5:I.startsWith(m)||w.startsWith(m)?8e5:I.includes(m)||w.includes(m)?7e5:0}function Ne(d){return d.activeCount>0?0:d.totalConnections>0?1:d.isNoAuth?2:3}function pa(d,N,m=""){const I=Yt(m),w=L=>ua(L,I);return N==="name"?[...d].sort((L,S)=>w(S)-w(L)||Ne(L)-Ne(S)||L.name.localeCompare(S.name)):N==="date"?[...d].sort((L,S)=>w(S)-w(L)||Ne(L)-Ne(S)||L.name.localeCompare(S.name)):[...d].sort((L,S)=>w(S)-w(L)||Ne(L)-Ne(S)||Vt(S)-Vt(L)||L.name.localeCompare(S.name))}const ya={class:"skill-card-top"},va=["src","alt"],ha={key:1,class:"skill-card-avatar-fallback"},ma={class:"skill-card-info"},ga={class:"skill-card-header"},fa={class:"skill-card-name"},ka={key:0,class:"skill-card-badge-disabled"},ba={key:1,class:"skill-card-badge"},_a={key:0,class:"skill-card-owner"},wa=["title"],Ca={key:0,class:"skill-card-desc"},Sa={key:1,class:"skill-card-meta-row"},$a=tt({__name:"SkillCard",props:{skill:{},showStatusBadge:{type:Boolean,default:!0},showBrowseAction:{type:Boolean,default:!0},showOwner:{type:Boolean,default:!0}},emits:["select"],setup(d){const N=d,{t:m}=ut(),I=_(()=>N.showStatusBadge!==!1),w=_(()=>N.showBrowseAction!==!1),L=_(()=>N.showOwner!==!1),S=_(()=>{const P=N.skill.path;return P?P.endsWith("/SKILL.md")?P.slice(0,-9):P:""});function B(){const P=S.value;P&&window.open(`/codex-local-browse${encodeURI(P)}`,"_blank","noopener,noreferrer")}const T=_(()=>{const P=N.skill.publishedAt;if(!P)return"";const H=new Date(P),b=Date.now()-P;return b<36e5?`${Math.floor(b/6e4)}m ago`:b<864e5?`${Math.floor(b/36e5)}h ago`:b<2592e6?`${Math.floor(b/864e5)}d ago`:H.toLocaleDateString("en-US",{month:"short",day:"numeric"})}),q=_(()=>{const P=[];return N.skill.installCountLabel&&P.push(N.skill.installCountLabel),T.value&&P.push(T.value),P});function x(P){const H=P.target;H.style.display="none"}return(P,H)=>(a(),o("button",{class:G(["skill-card",{"is-disabled":d.skill.installed&&d.skill.enabled===!1}]),type:"button",onClick:H[0]||(H[0]=W=>P.$emit("select",d.skill))},[s("div",ya,[d.skill.avatarUrl?(a(),o("img",{key:0,class:"skill-card-avatar",src:d.skill.avatarUrl,alt:d.skill.owner,loading:"lazy",onError:x},null,40,va)):(a(),o("div",ha,i(d.skill.owner.charAt(0)),1)),s("div",ma,[s("div",ga,[s("span",fa,i(d.skill.displayName||d.skill.name),1),I.value?(a(),o(O,{key:0},[d.skill.installed&&d.skill.enabled===!1?(a(),o("span",ka,i(n(m)("Disabled")),1)):d.skill.installed?(a(),o("span",ba,i(n(m)("Installed")),1)):c("",!0)],64)):c("",!0)]),L.value?(a(),o("span",_a,i(d.skill.owner),1)):c("",!0)]),w.value&&d.skill.installed&&S.value?(a(),o("button",{key:2,class:"skill-card-browse",type:"button",title:n(m)("Browse files"),onClick:je(B,["stop"])},[Fe(xs,{class:"skill-card-browse-icon"})],8,wa)):c("",!0)]),d.skill.description?(a(),o("p",Ca,i(d.skill.description),1)):c("",!0),q.value.length>0?(a(),o("div",Sa,[(a(!0),o(O,null,V(q.value,W=>(a(),o("span",{key:W,class:"skill-card-meta"},i(W),1))),128))])):c("",!0)],2))}}),qt=st($a,[["__scopeId","data-v-3e6ac02c"]]),Aa={class:"sdm-panel"},Ia={class:"sdm-header"},Pa={class:"sdm-title-area"},La=["src","alt"],Ea={class:"sdm-title-col"},Ta={class:"sdm-title-row"},Ua={class:"sdm-title"},Da={key:0,class:"sdm-badge-disabled"},Na={class:"sdm-owner"},Fa=["aria-label"],Ma={class:"sdm-body"},Oa={key:0,class:"sdm-desc"},xa={key:1,class:"sdm-readme-loading"},Ra=["innerHTML"],Ga=["href"],Ba={class:"sdm-footer"},Ha={class:"sdm-footer-actions"},ja=["disabled"],za=["disabled"],Ka=["disabled"],Va=["disabled"],qa=tt({__name:"SkillDetailModal",props:{skill:{},visible:{type:Boolean},isInstalling:{type:Boolean},isUninstalling:{type:Boolean},isTrying:{type:Boolean}},emits:["close","install","uninstall","toggle-enabled","try"],setup(d,{emit:N}){const m=d,I=N,w=p(null),L=p(""),S=p(""),B=p(!1),{t:T}=ut(),q=_(()=>w.value??m.skill.enabled??!0),x=_(()=>m.isInstalling===!0||m.isUninstalling===!0),P=_(()=>L.value||m.skill.description),H=_(()=>{const A=m.skill.path;return A?A.endsWith("/SKILL.md")?A.slice(0,-9):A:""}),W=_(()=>{const A=S.value;if(!A)return"";const D=A.replace(/^---[\s\S]*?---\s*/,"");return b(D)});function b(A){return A.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/^### (.+)$/gm,"<h4>$1</h4>").replace(/^## (.+)$/gm,"<h3>$1</h3>").replace(/^# (.+)$/gm,"<h2>$1</h2>").replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>").replace(/`([^`]+)`/g,"<code>$1</code>").replace(/^- (.+)$/gm,"<li>$1</li>").replace(/(<li>.*<\/li>\n?)+/g,"<ul>$&</ul>").replace(/\n{2,}/g,"<br/><br/>").replace(/\n/g,"<br/>")}async function J(){if(!(!m.skill.owner||!m.skill.name)){B.value=!0,L.value="",S.value="";try{const A=new URLSearchParams({owner:m.skill.owner,name:m.skill.name});m.skill.installed&&A.set("installed","true"),m.skill.path&&A.set("path",m.skill.path);const D=await fetch(`/codex-api/skills-hub/readme?${A}`);if(!D.ok)return;const j=await D.json();S.value=j.content??"",L.value=j.description??""}catch{}finally{B.value=!1}}}Ie(()=>m.visible,A=>{A&&(w.value=null,L.value="",S.value="",J())});function te(){I("install",m.skill)}function f(){I("uninstall",m.skill)}function k(){const A=!q.value;w.value=A,I("toggle-enabled",m.skill,A)}function h(){m.isTrying||I("try",m.skill)}function X(){const A=H.value;A&&window.open(`/codex-local-browse${encodeURI(A)}`,"_blank","noopener,noreferrer")}return(A,D)=>(a(),ze(dt,{to:"body"},[d.visible?(a(),o("div",{key:0,class:"sdm-overlay",onClick:D[1]||(D[1]=je(j=>A.$emit("close"),["self"]))},[s("div",Aa,[s("div",Ia,[s("div",Pa,[d.skill.avatarUrl?(a(),o("img",{key:0,class:"sdm-avatar",src:d.skill.avatarUrl,alt:d.skill.owner,loading:"lazy"},null,8,La)):c("",!0),s("div",Ea,[s("div",Ta,[s("h3",Ua,i(d.skill.displayName||d.skill.name),1),d.skill.installed&&!q.value?(a(),o("span",Da,i(n(T)("Disabled")),1)):c("",!0)]),s("span",Na,i(d.skill.owner),1)])]),s("button",{class:"sdm-close",type:"button","aria-label":n(T)("Close"),onClick:D[0]||(D[0]=j=>A.$emit("close"))},[Fe(Rs,{class:"sdm-close-icon"})],8,Fa)]),s("div",Ma,[P.value?(a(),o("p",Oa,i(P.value),1)):c("",!0),B.value?(a(),o("div",xa,i(n(T)("Loading skill contents...")),1)):S.value?(a(),o("div",{key:2,class:"sdm-readme",innerHTML:W.value},null,8,Ra)):c("",!0),d.skill.url?(a(),o("a",{key:3,class:"sdm-link",href:d.skill.url,target:"_blank",rel:"noopener noreferrer"},i(n(T)("View on GitHub")),9,Ga)):c("",!0)]),s("div",Ba,[s("div",Ha,[d.skill.installed?(a(),o("button",{key:0,class:"sdm-btn sdm-btn-danger",type:"button",disabled:x.value,onClick:f},i(m.isUninstalling?n(T)("Uninstalling..."):n(T)("Uninstall")),9,ja)):(a(),o("button",{key:1,class:"sdm-btn sdm-btn-primary",type:"button",disabled:x.value,onClick:te},i(m.isInstalling?n(T)("Installing..."):n(T)("Install")),9,za)),d.skill.installed?(a(),o("button",{key:2,class:"sdm-btn sdm-btn-secondary",type:"button",disabled:x.value,onClick:k},i(q.value?n(T)("Disable"):n(T)("Enable")),9,Ka)):c("",!0),d.skill.installed&&q.value?(a(),o("button",{key:3,class:"sdm-btn sdm-btn-primary",type:"button",disabled:x.value||m.isTrying,onClick:h},i(m.isTrying?"Starting...":"Try it!"),9,Va)):c("",!0),d.skill.installed&&H.value?(a(),o("button",{key:4,class:"sdm-btn sdm-btn-secondary",type:"button",onClick:X},i(n(T)("Browse files")),1)):c("",!0)])])])])):c("",!0)]))}}),Wa=st(qa,[["__scopeId","data-v-67cccea2"]]),Qa={apiKey:"AIzaSyAf0CIHBZ-wEQJ8CCUUWo1Wl9P7typ_ZPI",authDomain:"gptcall-416910.firebaseapp.com",projectId:"gptcall-416910",storageBucket:"gptcall-416910.appspot.com",messagingSenderId:"99275526699",appId:"1:99275526699:web:3b623e1e2996108b52106e"};let ct=null;function Ya(){return ct||(ct=Promise.all([jt(()=>import("./index.esm-rglDf0Dn.js"),__vite__mapDeps([0,1])),jt(()=>import("./index.esm-ChJ56zLV.js"),__vite__mapDeps([2,1]))])),ct}function Ja(d){const N=p(null),m=p(""),I=p(""),w=p(""),L=p({loggedIn:!1,githubUsername:"",repoOwner:"",repoName:"",configured:!1,startup:{inProgress:!1,mode:"idle",branch:"main",lastAction:"not-started",lastRunAtIso:"",lastSuccessAtIso:"",lastError:""}}),S=_(()=>w.value==="pull"),B=_(()=>w.value==="push"),T=_(()=>w.value==="startup-sync"),q=_(()=>w.value!=="");async function x(){try{const f=await fetch("/codex-api/skills-sync/status");if(!f.ok)return;const k=await f.json();k.data&&(L.value=k.data)}catch{}}async function P(){try{const f=await fetch("/codex-api/skills-sync/github/start-login",{method:"POST"}),k=await f.json();if(!f.ok||!k.data)throw new Error("Failed to start GitHub login");N.value=k.data;const h=30,X=Math.max((k.data.interval??5)*1e3,3e3);let A=!1;for(let D=0;D<h;D++){await new Promise(Y=>setTimeout(Y,X));const j=await fetch("/codex-api/skills-sync/github/complete-login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceCode:k.data.device_code})}),Q=await j.json();if(!j.ok)throw new Error(Q.error||"Failed to complete GitHub login");if(Q.ok){A=!0;break}if(!Q.pending)throw new Error(Q.error||"Failed to complete GitHub login")}if(!A)throw new Error("GitHub login timed out. Please retry.");N.value=null,await x(),d.showToast("GitHub login successful")}catch(f){d.showToast(f instanceof Error?f.message:"Failed GitHub login","error")}}async function H(){try{const[f,k]=await Ya(),{getApp:h,getApps:X,initializeApp:A}=f,{getAuth:D,GithubAuthProvider:j,signInWithPopup:Q}=k,Y=X().length>0?h():A(Qa),se=D(Y),oe=new j;oe.addScope("repo");const ye=await Q(se,oe),ee=j.credentialFromResult(ye),ne=(ee==null?void 0:ee.accessToken)??"";if(!ne)throw new Error("GitHub access token missing from Firebase login");const le=await fetch("/codex-api/skills-sync/github/token-login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:ne})}),z=await le.json();if(!le.ok||!z.ok)throw new Error(z.error||"Failed to login with GitHub token");await x(),d.showToast("GitHub login successful")}catch(f){const k=f instanceof Error?f.message:"Failed Firebase GitHub login";d.showToast(k,"error")}}async function W(){I.value="",m.value="pull-started",w.value="pull";try{const f=await fetch("/codex-api/skills-sync/pull",{method:"POST"}),k=await f.json();if(!f.ok||!k.ok)throw new Error(k.error||"Failed to pull synced skills");await d.onPulled(),m.value="pull-success",d.showToast(L.value.loggedIn?"Pulled skills from private sync repo":"Pulled skills from upstream repo")}catch(f){const k=f instanceof Error?f.message:"Failed to pull sync";I.value=k,m.value="pull-failed",d.showToast(k,"error")}finally{w.value=""}}async function b(){I.value="",m.value="push-started",w.value="push";try{const f=await fetch("/codex-api/skills-sync/push",{method:"POST"}),k=await f.json();if(!f.ok||!k.ok)throw new Error(k.error||"Failed to push synced skills");m.value="push-success",d.showToast("Pushed skills to private sync repo")}catch(f){const k=f instanceof Error?f.message:"Failed to push sync";I.value=k,m.value="push-failed",d.showToast(k,"error")}finally{w.value=""}}async function J(){I.value="",m.value="startup-sync-started",w.value="startup-sync";try{const f=await fetch("/codex-api/skills-sync/startup-sync",{method:"POST"}),k=await f.json();if(!f.ok||!k.ok)throw new Error(k.error||"Failed to run startup sync");await d.onPulled(),await x(),m.value="startup-sync-success",d.showToast("Startup sync completed")}catch(f){const k=f instanceof Error?f.message:"Failed startup sync";I.value=k,m.value="startup-sync-failed",d.showToast(k,"error")}finally{w.value=""}}async function te(){try{const f=await fetch("/codex-api/skills-sync/github/logout",{method:"POST"}),k=await f.json();if(!f.ok||!k.ok)throw new Error(k.error||"Failed to logout GitHub");await x(),d.showToast("Logged out from GitHub")}catch(f){d.showToast(f instanceof Error?f.message:"Failed to logout GitHub","error")}}return{deviceLogin:N,isPullInFlight:S,isPushInFlight:B,isStartupSyncInFlight:T,isSyncActionInFlight:q,loadSyncStatus:x,logoutGithub:te,pullSkillsSync:W,pushSkillsSync:b,startupSkillsSync:J,startGithubFirebaseLogin:H,startGithubLogin:P,syncActionError:I,syncActionStatus:m,syncStatus:L}}const Xa={class:"skills-hub"},Za={class:"skills-hub-header"},eo={class:"skills-hub-title"},to={class:"skills-hub-subtitle"},so={class:"skills-sync-panel"},ao={class:"skills-sync-header"},oo=["href"],lo={key:1,class:"skills-sync-badge"},io={key:2,class:"skills-sync-badge"},no={class:"skills-sync-meta"},ro={key:0,class:"skills-sync-error"},co=["href"],uo={key:1,class:"skills-sync-meta"},po={key:2,class:"skills-sync-error"},yo=["href"],vo={key:3,class:"skills-sync-device"},ho=["href"],mo={class:"skills-sync-actions"},go=["disabled"],fo=["disabled"],ko=["disabled"],bo=["disabled"],_o={class:"skills-search-panel"},wo={class:"skills-search-header"},Co={class:"skills-search-copy"},So={class:"skills-directory-link",href:"https://skills.anyclaw.store/",target:"_blank",rel:"noopener noreferrer"},$o=["placeholder"],Ao=["disabled"],Io={key:0,class:"skills-hub-error"},Po=["href"],Lo={key:1,class:"skills-hub-section"},Eo={class:"skills-hub-section-title"},To={key:0,class:"skills-hub-grid"},Uo={key:2,class:"skills-hub-section"},Do={class:"skills-hub-section-title"},No={key:0,class:"skills-hub-grid"},Fo={class:"skills-hub-section"},Mo={key:0,class:"skills-hub-loading"},Oo={key:1,class:"skills-hub-error"},xo=["href"],Ro={key:2,class:"skills-hub-empty"},Go=tt({__name:"SkillsHub",props:{tryInFlightKey:{}},emits:["skills-changed","try-item"],setup(d,{emit:N}){const m={name:"",owner:"",description:"",url:"",installed:!1},I=p([]),w=p([]),L=p(!1),S=p(!1),B=p(""),T=p(""),q=p(""),x=p(!0),P=p(!0),H=p(!1),W=p(m),b=p(null),J=p(""),te=p(!1),f=p(!1);let k=null;const{t:h}=ut(),{buildFeedbackMailto:X,feedbackMailtoBase:A,recordVisibleFailure:D}=Bs(),j=A(),Q=d,Y=N,se=_(()=>{var u;return((u=b.value)==null?void 0:u.type)==="error"?"skills-hub-toast-error":"skills-hub-toast-success"}),oe=_(()=>`${W.value.owner}/${W.value.name}`),ye=_(()=>te.value&&J.value===oe.value),ee=_(()=>f.value&&J.value===oe.value),ne=_(()=>{if(!F.value.configured)return"";const u=F.value.repoOwner.trim(),y=F.value.repoName.trim();return!u||!y?"":`https://github.com/${encodeURIComponent(u)}/${encodeURIComponent(y)}`}),le=_(()=>I.value);function z(u,y="success"){b.value={text:u,type:y},k&&clearTimeout(k),k=setTimeout(()=>{b.value=null},3e3)}function ve(u,y){D(y);const v=u.currentTarget;v instanceof HTMLAnchorElement&&(v.href=X())}function Ke(u){if(I.value=u.installed??[],w.value.length>0){const y=new Map(I.value.map(v=>[v.name,v]));w.value=w.value.map(v=>{const M=y.get(v.name);return M?fe(v,M):v})}}function fe(u,y){return{...u,installed:!0,path:y.path,enabled:y.enabled}}function ke(u,y){return{...u,installed:!0,source:y.source,publishedAt:y.publishedAt}}async function re(){L.value=!0,B.value="";try{const u=await fetch("/codex-api/skills-hub");if(!u.ok)throw new Error(`HTTP ${u.status}`);const y=await u.json();Ke(y)}catch(u){B.value=u instanceof Error?u.message:"Failed to load skills"}finally{L.value=!1}}function be(u){const y=u.installed?I.value.find(v=>v.name===u.name):void 0;W.value=y?ke(y,u):u,H.value=!0}async function Pe(){const u=T.value.trim();if(!(u.length<2)){S.value=!0,q.value="";try{const y=new URLSearchParams({q:u}),v=await fetch(`/codex-api/skills-hub/search?${y}`),M=await v.json();if(!v.ok)throw new Error(M.error||`HTTP ${v.status}`);const ie=new Map(I.value.map(pe=>[pe.name,pe]));w.value=(M.results??[]).map(pe=>{const Ge=ie.get(pe.name);return Ge?fe(pe,Ge):pe}),P.value=!0,w.value.length===0&&z(h("No matching skills found."),"error")}catch(y){q.value=y instanceof Error?y.message:"Failed to search skills"}finally{S.value=!1}}}async function Le(u){J.value=`${u.owner}/${u.name}`,te.value=!0;try{const v=await(await fetch("/codex-api/skills-hub/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({owner:u.owner,name:u.name,source:u.source})})).json();if(!v.ok)throw new Error(v.error||"Install failed");if(!v.path)throw new Error("Install completed but no local skill path was returned");await re();const M=I.value.find(ie=>ie.name===u.name);if(!(M!=null&&M.path))throw new Error("Install completed but the local skill was not found after refresh");W.value=ke(M,u),z(`${u.displayName||u.name} skill installed`),H.value=!1,Y("skills-changed")}catch(y){z(y instanceof Error?y.message:"Failed to install skill","error")}finally{te.value=!1}}async function C(u){J.value=`${u.owner}/${u.name}`,f.value=!0;try{const v=await(await fetch("/codex-api/skills-hub/uninstall",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:u.name,path:u.path})})).json();if(!v.ok)throw new Error(v.error||"Uninstall failed");I.value=I.value.filter(M=>M.name!==u.name),z(`${u.displayName||u.name} skill uninstalled`),H.value=!1,Y("skills-changed")}catch(y){z(y instanceof Error?y.message:"Failed to uninstall skill","error")}finally{f.value=!1}}async function U(u,y){try{if(!(await fetch("/codex-api/rpc",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({method:"skills/config/write",params:{path:u.path,enabled:y}})})).ok)throw new Error("Failed to update skill");await fetch("/codex-api/skills-sync/push",{method:"POST"}),z(`${u.displayName||u.name} skill ${y?"enabled":"disabled"}`),await re()}catch(v){z(v instanceof Error?v.message:"Failed to update skill","error")}}function Me(u){!u.installed||u.enabled===!1||Q.tryInFlightKey||(Y("try-item",{kind:"skill",name:u.name,displayName:u.displayName||u.name,skillPath:u.path}),H.value=!1)}function Oe(u){return`skill:${u.name}:${u.path??""}`}const{deviceLogin:he,isPullInFlight:$,isPushInFlight:Ee,isStartupSyncInFlight:xe,isSyncActionInFlight:ce,loadSyncStatus:Te,logoutGithub:_e,pullSkillsSync:Z,pushSkillsSync:Ue,startupSkillsSync:de,startGithubFirebaseLogin:we,startGithubLogin:Ce,syncActionError:ue,syncActionStatus:me,syncStatus:F}=Ja({showToast:z,onPulled:async()=>{await re(),Y("skills-changed")}}),Re=[_(()=>F.value.startup.lastError),ue,q,B];return Qt(()=>{re(),Te()}),Ie(Re,(u,y)=>{u.forEach((v,M)=>{if(v===y[M])return;const ie=v.trim();ie&&D(ie)})}),(u,y)=>(a(),o("div",Xa,[s("div",Za,[s("h2",eo,i(n(h)("Skills Hub")),1),s("p",to,i(n(h)("Manage installed skills on this machine")),1)]),s("div",so,[s("div",ao,[s("strong",null,i(n(h)("Skills Sync (GitHub)")),1),n(F).configured&&ne.value?(a(),o("a",{key:0,class:"skills-sync-badge skills-sync-badge-link",href:ne.value,target:"_blank",rel:"noopener noreferrer"},i(n(h)("Connected"))+": "+i(n(F).repoOwner)+"/"+i(n(F).repoName),9,oo)):n(F).loggedIn?(a(),o("span",lo,i(n(h)("Logged in as"))+" "+i(n(F).githubUsername),1)):(a(),o("span",io,i(n(h)("Not connected")),1))]),s("div",no,[s("span",null,i(n(h)("Startup"))+": "+i(n(F).startup.mode),1),s("span",null,i(n(h)("Branch"))+": "+i(n(F).startup.branch),1),s("span",null,i(n(h)("Action"))+": "+i(n(F).startup.lastAction),1)]),n(F).startup.lastError?(a(),o("div",ro,[s("span",null,i(n(F).startup.lastError),1),s("a",{class:"skills-error-feedback",href:n(j),onClick:y[0]||(y[0]=v=>ve(v,n(F).startup.lastError))},i(n(h)("Send feedback")),9,co)])):c("",!0),n(me)?(a(),o("div",uo,[s("span",null,i(n(h)("Manual sync"))+": "+i(n(me)),1)])):c("",!0),n(ue)?(a(),o("div",po,[s("span",null,i(n(ue)),1),s("a",{class:"skills-error-feedback",href:n(j),onClick:y[1]||(y[1]=v=>ve(v,n(ue)))},i(n(h)("Send feedback")),9,yo)])):c("",!0),n(he)?(a(),o("div",vo,[s("span",null,[et(i(n(h)("Open"))+" ",1),s("a",{href:n(he).verification_uri,target:"_blank",rel:"noreferrer"},i(n(h)("GitHub device login")),9,ho),et(" "+i(n(h)("and enter code:")),1)]),s("code",null,i(n(he).user_code),1)])):c("",!0),s("div",mo,[n(F).loggedIn?c("",!0):(a(),o("button",{key:0,class:"skills-hub-sort",type:"button",onClick:y[2]||(y[2]=(...v)=>n(we)&&n(we)(...v))},i(n(h)("Login with GitHub")),1)),n(F).loggedIn?c("",!0):(a(),o("button",{key:1,class:"skills-hub-sort",type:"button",onClick:y[3]||(y[3]=(...v)=>n(Ce)&&n(Ce)(...v))},i(n(h)("Device Login")),1)),n(F).loggedIn?(a(),o("button",{key:2,class:"skills-hub-sort",type:"button",onClick:y[4]||(y[4]=(...v)=>n(_e)&&n(_e)(...v)),disabled:n(ce)},i(n(h)("Logout GitHub")),9,go)):c("",!0),s("button",{class:"skills-hub-sort",type:"button",onClick:y[5]||(y[5]=(...v)=>n(de)&&n(de)(...v)),disabled:n(ce)},i(n(xe)?n(h)("Syncing..."):n(h)("Startup Sync")),9,fo),s("button",{class:"skills-hub-sort",type:"button",onClick:y[6]||(y[6]=(...v)=>n(Z)&&n(Z)(...v)),disabled:n(ce)},i(n($)?n(h)("Pulling..."):n(h)("Pull")),9,ko),n(F).loggedIn?(a(),o("button",{key:3,class:"skills-hub-sort",type:"button",onClick:y[7]||(y[7]=(...v)=>n(Ue)&&n(Ue)(...v)),disabled:!n(F).configured||n(ce)},i(n(Ee)?n(h)("Pushing..."):n(h)("Push")),9,bo)):c("",!0)])]),b.value?(a(),o("div",{key:0,class:G(["skills-hub-toast",se.value])},i(b.value.text),3)):c("",!0),s("div",_o,[s("div",wo,[s("div",Co,[s("strong",null,i(n(h)("Find skills")),1),s("span",null,i(n(h)("Search the Skills registry with npx skills find.")),1)]),s("a",So,i(n(h)("Skills directory")),1)]),s("form",{class:"skills-search-form",onSubmit:je(Pe,["prevent"])},[Xe(s("input",{"onUpdate:modelValue":y[8]||(y[8]=v=>T.value=v),class:"skills-search-input",type:"search",placeholder:n(h)("Search skills..."),"aria-label":"Search skills"},null,8,$o),[[Ze,T.value]]),s("button",{class:"skills-hub-sort",type:"submit",disabled:S.value||T.value.trim().length<2},i(S.value?n(h)("Searching..."):n(h)("Search")),9,Ao)],32),q.value?(a(),o("div",Io,[s("span",null,i(q.value),1),s("a",{class:"skills-error-feedback",href:n(j),onClick:y[9]||(y[9]=v=>ve(v,q.value))},i(n(h)("Send feedback")),9,Po)])):c("",!0)]),w.value.length>0?(a(),o("div",Lo,[s("button",{class:"skills-hub-section-toggle",type:"button",onClick:y[10]||(y[10]=v=>P.value=!P.value)},[s("span",Eo,i(n(h)("Search results ({count})",{count:w.value.length})),1),Fe(zt,{class:G(["skills-hub-section-chevron",{"is-open":P.value}])},null,8,["class"])]),P.value?(a(),o("div",To,[(a(!0),o(O,null,V(w.value,v=>(a(),ze(qt,{key:v.source||`${v.owner}/${v.name}`,skill:v,"show-browse-action":!1,onSelect:M=>be(M)},null,8,["skill","onSelect"]))),128))])):c("",!0)])):c("",!0),Gs(u.$slots,"before-installed",{},void 0),le.value.length>0?(a(),o("div",Uo,[s("button",{class:"skills-hub-section-toggle",type:"button",onClick:y[11]||(y[11]=v=>x.value=!x.value)},[s("span",Do,i(n(h)("Installed skills ({count})",{count:le.value.length})),1),Fe(zt,{class:G(["skills-hub-section-chevron",{"is-open":x.value}])},null,8,["class"])]),x.value?(a(),o("div",No,[(a(!0),o(O,null,V(le.value,v=>(a(),ze(qt,{key:v.name,skill:v,"show-status-badge":!1,"show-owner":!1,onSelect:M=>be(M)},null,8,["skill","onSelect"]))),128))])):c("",!0)])):c("",!0),s("div",Fo,[L.value?(a(),o("div",Mo,i(n(h)("Loading skills...")),1)):B.value?(a(),o("div",Oo,[s("span",null,i(B.value),1),s("a",{class:"skills-error-feedback",href:n(j),onClick:y[12]||(y[12]=v=>ve(v,B.value))},i(n(h)("Send feedback")),9,xo)])):I.value.length===0?(a(),o("div",Ro,i(n(h)("No installed skills found.")),1)):c("",!0)]),Fe(Wa,{skill:W.value,visible:H.value,"is-installing":ye.value,"is-uninstalling":ee.value,"is-trying":Q.tryInFlightKey===Oe(W.value),onClose:y[13]||(y[13]=v=>H.value=!1),onInstall:Le,onUninstall:C,onToggleEnabled:U,onTry:Me},null,8,["skill","visible","is-installing","is-uninstalling","is-trying"])]))}}),Bo=st(Go,[["__scopeId","data-v-7453de4b"]]),Ho={class:"directory-hub"},jo={class:"directory-header"},zo={class:"directory-subtitle"},Ko={class:"directory-header-actions"},Vo=["disabled"],qo={class:"directory-tabs",role:"tablist","aria-label":"Directory sections"},Wo=["aria-selected","onClick"],Qo={key:1,class:"directory-section"},Yo={class:"directory-toolbar"},Jo={class:"directory-sort-group",role:"group","aria-label":"Sort plugins"},Xo={key:0,class:"directory-empty"},Zo={key:1,class:"directory-error"},el={key:2,class:"directory-loading"},tl={key:3,class:"directory-empty"},sl={key:4,class:"directory-grid"},al=["onClick"],ol={class:"directory-card-top"},ll=["src","alt"],il={class:"directory-card-main"},nl={class:"directory-card-title-row"},rl={class:"directory-card-title"},cl={key:0,class:"directory-badge is-muted"},dl={key:1,class:"directory-badge"},ul={class:"directory-card-meta"},pl={key:0,class:"directory-card-description"},yl={class:"directory-chip-row"},vl={key:0,class:"directory-chip"},hl={key:2,class:"directory-section"},ml={class:"directory-toolbar"},gl={class:"directory-sort-group",role:"group","aria-label":"Sort apps"},fl={key:0,class:"directory-empty"},kl={key:1,class:"directory-error"},bl={key:2,class:"directory-loading"},_l={key:3,class:"directory-empty"},wl={key:4,class:"directory-grid"},Cl={class:"directory-card-top"},Sl=["src","alt"],$l={key:1,class:"directory-card-fallback"},Al={class:"directory-card-main"},Il={class:"directory-card-title-row"},Pl={class:"directory-card-title"},Ll={key:0,class:"directory-badge is-muted"},El={key:1,class:"directory-badge"},Tl={class:"directory-card-meta"},Ul={key:0,class:"directory-card-description"},Dl={class:"directory-chip-row"},Nl={key:0,class:"directory-chip"},Fl={class:"directory-card-actions"},Ml=["disabled","onClick"],Ol=["onClick"],xl=["disabled","onClick"],Rl={key:3,class:"directory-section"},Gl={class:"directory-toolbar"},Bl={class:"directory-sort-group",role:"group","aria-label":"Sort Composio connectors"},Hl={key:0,class:"directory-error"},jl={key:1,class:"directory-loading"},zl={key:2,class:"directory-empty"},Kl={class:"directory-empty-copy"},Vl={class:"directory-card-actions"},ql=["disabled"],Wl={key:3,class:"composio-preview"},Ql={class:"composio-preview-hero"},Yl={class:"composio-preview-actions"},Jl=["disabled"],Xl={class:"composio-preview-grid"},Zl={class:"directory-card-top"},ei={class:"directory-card-fallback composio-fallback"},ti={class:"directory-card-main"},si={class:"directory-card-title-row"},ai={class:"directory-card-title"},oi={class:"directory-card-meta"},li={class:"directory-card-description"},ii={class:"directory-chip-row"},ni={key:4,class:"directory-section composio-section"},ri={class:"directory-card directory-card-wide composio-status-card"},ci={class:"directory-card-top"},di={class:"directory-card-main"},ui={class:"directory-card-meta"},pi={class:"directory-card-description"},yi={class:"directory-chip-row"},vi={key:0,class:"directory-chip"},hi={key:1,class:"directory-chip"},mi={key:2,class:"directory-chip"},gi={class:"directory-card-actions"},fi={key:0,class:"directory-empty"},ki={key:1,class:"directory-grid"},bi={class:"directory-card-top"},_i=["src","alt"],wi={key:1,class:"directory-card-fallback composio-fallback"},Ci={class:"directory-card-main"},Si={class:"directory-card-title-row"},$i={class:"directory-card-title"},Ai={key:0,class:"directory-badge"},Ii={key:1,class:"directory-badge"},Pi={class:"directory-card-meta"},Li={key:0,class:"directory-card-description"},Ei={class:"directory-chip-row"},Ti={class:"directory-chip"},Ui={key:0,class:"directory-chip"},Di={key:1,class:"directory-chip"},Ni={class:"directory-card-actions"},Fi=["onClick"],Mi=["disabled","onClick"],Oi=["disabled","onClick"],xi={key:2,class:"directory-section-actions"},Ri=["disabled"],Gi={key:4,class:"directory-section"},Bi={class:"skills-embedded-section"},Hi={class:"skills-embedded-title"},ji={key:0,class:"skills-embedded-body"},zi={key:0,class:"directory-empty"},Ki={key:1,class:"directory-error"},Vi={key:2,class:"directory-loading"},qi={key:3,class:"directory-empty"},Wi={key:4,class:"mcp-skill-grid"},Qi=["onClick"],Yi={class:"mcp-skill-card-top"},Ji={class:"mcp-skill-avatar-fallback"},Xi={class:"mcp-skill-info"},Zi={class:"mcp-skill-header"},en={class:"mcp-skill-name"},tn={class:"mcp-skill-meta"},sn={key:0,class:"directory-mcp-detail"},an={key:0},on={class:"directory-mini-list"},ln={key:1},nn={class:"directory-mini-list"},rn={class:"directory-modal"},cn={class:"directory-modal-header"},dn={class:"directory-card-top"},un=["src","alt"],pn={key:1,class:"directory-card-fallback"},yn={class:"directory-card-main"},vn={class:"directory-modal-title"},hn={class:"directory-card-meta"},mn={class:"directory-modal-body"},gn={key:0,class:"directory-error"},fn={key:1,class:"directory-loading"},kn={key:0,class:"directory-detail-description"},bn={key:1,class:"directory-detail-block"},_n={class:"directory-chip-row"},wn={class:"directory-detail-grid"},Cn={key:0,class:"directory-detail-block"},Sn={key:0,class:"directory-auth-status is-warning"},$n=["onClick"],An={key:1,class:"directory-detail-block"},In={class:"directory-mini-list"},Pn={key:2,class:"directory-detail-block"},Ln=["disabled","onClick"],En={key:2,class:"directory-screenshots"},Tn=["src"],Un={key:3,class:"directory-auth-panel"},Dn=["onClick"],Nn={class:"directory-modal-footer"},Fn=["disabled"],Mn=["disabled"],On={key:2,class:"directory-action",type:"button",disabled:""},xn=["disabled"],Rn=["disabled"],Gn={class:"directory-modal"},Bn={class:"directory-modal-header"},Hn={class:"directory-card-top"},jn=["src","alt"],zn={key:1,class:"directory-card-fallback composio-fallback"},Kn={class:"directory-card-main"},Vn={class:"directory-modal-title"},qn={class:"directory-card-meta"},Wn={class:"directory-modal-body"},Qn={key:0,class:"directory-error"},Yn={key:1,class:"directory-loading"},Jn={key:0,class:"directory-detail-description"},Xn={class:"directory-detail-grid"},Zn={class:"directory-detail-block"},er={class:"directory-chip-row"},tr={class:"directory-chip"},sr={key:0,class:"directory-chip"},ar={key:1,class:"directory-chip"},or={key:2,class:"directory-chip"},lr={class:"directory-detail-block"},ir={key:0,class:"directory-mini-list"},nr={key:1},rr={class:"directory-card-meta"},cr={key:1,class:"directory-detail-block"},dr={class:"directory-card-meta"},ur={class:"directory-modal-footer"},pr=["disabled"],yr=["disabled"],vr="/Users/igor/.codex/skills/shared_skills/composio-cli/SKILL.md",hr=50,Wt=100,mr=tt({__name:"DirectoryHub",props:{cwd:{},threadId:{},tryInFlightKey:{}},emits:["skills-changed","try-item"],setup(d,{emit:N}){const m=[[/^gmail$/i,3e4],[/^google calendar$/i,29500],[/^outlook( email| calendar)?$/i,29e3],[/^google drive$/i,28500],[/^google docs$/i,28e3],[/^google sheets$/i,27500],[/^dropbox$/i,27e3],[/^box$/i,26500],[/^slack$/i,26e3],[/^notion$/i,25500],[/^canva$/i,25e3],[/^figma$/i,24500],[/^github$/i,24e3],[/^trello$/i,23500],[/^asana$/i,23e3],[/^basecamp$/i,22500],[/^clickup$/i,22e3],[/^linear$/i,21500],[/^gitlab( issues)?$/i,21e3],[/^jira$/i,20500],[/^zapier$/i,2e4],[/^hubspot$/i,19500],[/^salesforce$/i,19e3],[/^netlify$/i,18500],[/^vercel$/i,18e3],[/^(spotify|youtube|netflix|hulu|disney|booking|expedia|uber|airbnb)$/i,17500]],I=[[/(email|mail|inbox|calendar|event|availability|contact|message|chat)/i,450],[/(drive|document|docs|sheet|slide|file|storage|pdf|note|page)/i,380],[/(image|design|presentation|diagram|video|audio|photo|media|music)/i,320],[/(travel|flight|hotel|restaurant|recipe|food|shopping|delivery|map|weather)/i,260],[/(learn|education|study|language|health|fitness|finance|budget)/i,220],[/(task|project|issue|repository|deploy|database|crm|sales|support)/i,120]],w=[[/(computer use|github|gitlab|linear|slack|notion|browser|web|filesystem|terminal)/i,120],[/(calendar|email|drive|docs|design|deploy|project|issue|search|database)/i,55]],L=[[/(github|gitlab|linear|slack|notion|filesystem|browser|computer|web|postgres|sqlite|database)/i,120],[/(search|drive|docs|calendar|terminal|shell|deploy|cloud|memory)/i,55]],S=d,B=N,T=Hs(),q=js(),x=[{id:"plugins",label:"Plugins",subtitle:"Plugins make Codex work your way."},{id:"apps",label:"Apps",subtitle:"Connect Codex to external apps and services."},{id:"composio",label:"Composio",subtitle:"Browse Composio connectors, auth state, and ready-to-try integrations."},{id:"skills",label:"Skills",subtitle:"MCPs first, then installed skills and GitHub sync state."}],P=[{name:"Gmail",slug:"gmail",initial:"G",meta:"Inbox, drafts, attachments",description:"Find emails, summarize threads, draft replies, and pull attachment context into a chat.",chips:["Email","Search","Drafts"]},{name:"Google Calendar",slug:"google-calendar",initial:"C",meta:"Events and availability",description:"Check what is next, find open time, and turn follow-ups into calendar blocks.",chips:["Events","Availability","Reminders"]},{name:"Reddit",slug:"reddit",initial:"R",meta:"Posts, comments, communities",description:"Search communities, inspect posts, and prepare natural replies before posting.",chips:["Search","Comments","Posts"]},{name:"YouTube",slug:"youtube",initial:"Y",meta:"Videos, channels, comments",description:"Look up channel details, inspect video metadata, and help manage comment workflows.",chips:["Videos","Channels","Comments"]},{name:"Google Drive",slug:"google-drive",initial:"D",meta:"Files, docs, folders",description:"Find files, read shared docs, and bring Drive context into a Codex thread.",chips:["Files","Docs","Search"]},{name:"X",slug:"x",initial:"X",meta:"Posts, replies, profiles",description:"Research public posts, draft replies, and keep social workflows reviewable.",chips:["Posts","Replies","Profiles"]}];function H(e){return e==="plugins"||e==="apps"||e==="composio"||e==="skills"}function W(){return H(T.query.tab)?T.query.tab:"skills"}const b=p(W()),J=p(new Set),te=p(!1),f=p([]),k=p([]),h=p(null),X=p([]),A=p(null),D=p(0),j=p([]),Q=p("popular"),Y=p("popular"),se=p("popular"),oe=p(""),ye=p(""),ee=p(""),ne=p(!1),le=p(!1),z=p(!1),ve=p(!1),Ke=p(!1),fe=p(!1),ke=p(!0),re=p(""),be=p(""),Pe=p(""),Le=p(""),C=p(null),U=p(null),Me=p(!1),Oe=p(!1),he=p(""),$=p(null),Ee=p(!1),xe=p(!1),ce=p(""),Te=p(!1),_e=p(!1),Z=p(!1),Ue=p(""),de=p(""),we=p([]),Ce=p(""),ue=p(new Set),me=p(null);let F=null,Re=null,u=!1;const y=_(()=>x.find(e=>e.id===b.value)??x[0]),v=_(()=>!te.value||["plugin/list","plugin/read","plugin/install","plugin/uninstall"].every(e=>J.value.has(e))),M=_(()=>!te.value||J.value.has("app/list")),ie=_(()=>!te.value||J.value.has("mcpServerStatus/list")),pe=_(()=>J.value.has("config/mcpServer/reload")),Ge=_(()=>J.value.has("mcpServer/oauth/login")),Se=_(()=>(S.tryInFlightKey??"").length>0),pt=_(()=>{var e,t,r;return((e=U.value)==null?void 0:e.description)||((t=U.value)==null?void 0:t.summary.longDescription)||((r=U.value)==null?void 0:r.summary.description)||""}),yt=_(()=>{var t;const e=(t=U.value)==null?void 0:t.summary;return e?[...e.screenshotUrls,...e.screenshots.map(We)].filter(Boolean):[]}),at=_(()=>{var r;const e=((r=U.value)==null?void 0:r.apps)??[];if(e.length===0)return!1;const t=new Set;for(const g of k.value)t.add(g.id.trim().toLowerCase()),t.add(bt(g.name));return e.some(g=>{const R=g.id.trim().toLowerCase(),ge=bt(g.name),Ae=R.length>0&&t.has(R),Je=ge.length>0&&t.has(ge);return!Ae&&!Je})}),Jt=_(()=>{var e,t;return((e=C.value)==null?void 0:e.installPolicy)==="NOT_AVAILABLE"||(((t=U.value)==null?void 0:t.apps.some(r=>kt(r)))??!1)}),vt=_(()=>rs(ys(ds(f.value,oe.value),Q.value),Q.value,oe.value)),ht=_(()=>cs(vs(us(k.value,ye.value),Y.value),Y.value,ye.value)),mt=_(()=>pa(ps(X.value,ee.value),se.value,ee.value)),Xt=_(()=>{const e=Be(ee.value);return e?P.filter(t=>Ve([t.name,t.slug,t.meta,t.description,...t.chips],e)):P}),ot=_(()=>hs(j.value)),gt=_(()=>A.value!==null),Zt=_(()=>new Map(j.value.map(e=>[e.name,e]))),es=_(()=>{const e=h.value;return e&&[e.email||e.defaultOrgName,e.defaultOrgId?`org ${e.defaultOrgId}`:"",e.baseUrl||""].filter(Boolean).join(" · ")||"Composio CLI shares the login and connections from this machine."});function Be(e){return e.trim().toLowerCase()}function ts(e){return Be(e).replace(/\s+\((synced|legacy)\)\s*$/iu,"").replace(/\s+\(.*?\)\s*$/u,"").replace(/[-_]+/gu," ").replace(/\s+plugin$/iu,"").replace(/\s+/gu," ").trim()}function ft(...e){const t=new Set;for(const r of e){const g=ts(r);g&&(t.add(g),t.add(g.replace(/\s+/gu,"")))}return Array.from(t)}function ss(e){return!e.isAccessible&&e.installUrl.trim().length===0}function as(e){const t=e.id.trim();if(t){const g=k.value.find(R=>R.id===t);if(g)return g}const r=ft(e.name);return k.value.find(g=>ft(g.name).some(R=>r.includes(R)))??null}function kt(e){const t=as(e);return t?ss(t):e.needsAuth&&e.installUrl.trim().length===0}function Ve(e,t){const r=Be(t);return r?e.some(g=>g==null?void 0:g.toLowerCase().includes(r)):!0}function qe(e,t){return t.reduce((r,[g,R])=>r+(g.test(e)?R:0),0)}function lt(e){return e.replace(/\s+\((synced|legacy)\)\s*$/iu,"").replace(/\s+\(.*?\)\s*$/u,"").trim()}function bt(e){return lt(e).toLowerCase()}function os(e){return e==="DEFAULT_OAI_CATALOG"?"OpenAI catalog":e==="ECOSYSTEM_DIRECTORY"?"Ecosystem directory":e?e.replace(/_/gu," ").toLowerCase().replace(/\b\w/gu,t=>t.toUpperCase()):""}function ls(e){return e.developer||os(e.distributionChannel)||"App"}function it(e){var t;return((t=Zt.value.get(e))==null?void 0:t.authStatus)??"unknown"}function _t(e){const t=it(e);return t==="oAuth"?"Logged in":t==="bearerToken"?"Bearer token":t==="notLoggedIn"?"Login required":t==="unsupported"?"Auth unsupported":"Status unknown"}function is(e){const t=it(e);return t==="oAuth"||t==="bearerToken"?"is-ok":t==="notLoggedIn"?"is-warning":"is-muted"}function ns(e){return e==="oAuth"||e==="bearerToken"?"mcp-skill-badge-ok":e==="notLoggedIn"?"mcp-skill-badge-warning":"mcp-skill-badge-muted"}function wt(e){return Ge.value&&it(e)==="notLoggedIn"}function rs(e,t,r){return t==="popular"&&Be(r).length===0?e.slice(0,Wt):e}function cs(e,t,r){if(t!=="popular"||Be(r).length>0)return e;const g=new Set,R=[];for(const ge of e){const Ae=lt(ge.name).toLowerCase();if(!g.has(Ae)&&(g.add(Ae),R.push(ge),R.length>=Wt))break}return R}function ds(e,t){return e.filter(r=>Ve([r.displayName,r.name,r.description,r.developerName,r.category,r.marketplaceDisplayName,...r.capabilities],t))}function us(e,t){return e.filter(r=>Ve([r.name,r.description,r.developer,r.category,r.distributionChannel,...r.pluginDisplayNames],t))}function ps(e,t){return e.filter(r=>Ve([r.name,r.slug,r.description,...r.authModes,...r.connectionStatuses],t))}function Ct(e){return(e.installed?500:0)+(e.enabled?40:0)+(e.developerName.toLowerCase().includes("openai")?140:0)+(e.sourceType==="local"?80:0)+e.capabilities.length*12+qe(`${e.displayName} ${e.name} ${e.description} ${e.category}`,w)}function St(e){const t=lt(e.name);return(e.isAccessible?1e4:0)+qe(t,m)+(e.pluginDisplayNames.length>0?260:0)+(e.distributionChannel==="DEFAULT_OAI_CATALOG"?120:0)+(e.isEnabled?40:0)+(e.installUrl?20:0)+qe(`${e.name} ${e.description} ${e.category} ${e.pluginDisplayNames.join(" ")}`,I)-e.catalogRank*.001}function $t(e){return(e.authStatus==="oAuth"?180:0)+(e.authStatus==="bearerToken"?140:0)+Math.min(e.tools.length,50)*6+Math.min(e.resources.length+e.resourceTemplates.length,30)*3+qe(e.name,L)}function ys(e,t){return t==="name"?[...e].sort((r,g)=>r.displayName.localeCompare(g.displayName)):t==="date"?[...e]:[...e].sort((r,g)=>Ct(g)-Ct(r)||r.displayName.localeCompare(g.displayName))}function vs(e,t){return t==="name"?[...e].sort((r,g)=>r.name.localeCompare(g.name)):t==="date"?[...e].sort((r,g)=>r.catalogRank-g.catalogRank):[...e].sort((r,g)=>St(g)-St(r)||r.name.localeCompare(g.name))}function hs(e,t){return[...e].sort((r,g)=>$t(g)-$t(r)||r.name.localeCompare(g.name))}function K(e,t="success"){me.value={text:e,type:t},F&&clearTimeout(F),F=setTimeout(()=>{me.value=null},3e3)}function We(e){return e?e.startsWith("connectors://")?`/codex-api/connector-logo?src=${encodeURIComponent(e)}`:/^https?:\/\//i.test(e)||e.startsWith("data:")?e:e.startsWith("/")?`/codex-local-image?path=${encodeURIComponent(e)}`:"":""}function Qe(e){return e?e.logoUrl||We(e.logoPath)||e.composerIconUrl||We(e.composerIconPath):""}function At(e){return We(e.logoUrlDark||e.logoUrl)}function It(e){return e.activeCount>0?`${e.activeCount} connected ${e.activeCount===1?"account":"accounts"}`:e.isNoAuth?"No auth required":e.connectionStatuses.length>0?e.connectionStatuses.join(", "):e.authModes.join(", ")||"Connection required"}function ms(e){return e.isNoAuth||e.activeCount>0}function Ye(e){return e.isNoAuth?"":e.activeCount>0?"Manage":e.totalConnections>0?"Reconnect":"Connect"}function gs(e){const t=e.trim().toUpperCase();return t==="ACTIVE"?"Active":t==="EXPIRED"?"Expired":t==="FAILED"?"Failed":t==="INITIATED"?"Pending":t||"Unknown"}function fs(e){const t=e.trim().toUpperCase();return t==="ACTIVE"?"is-ok":t==="INITIATED"?"is-warning":t==="EXPIRED"||t==="FAILED"?"is-error":"is-muted"}function ks(e){return`app:${e.id}:`}function bs(e){Se.value||B("try-item",{kind:"app",name:e.id,displayName:e.name})}function _s(e){return`plugin:${e.name}:`}function Pt(e){return`composio:${e}:`}function ws(e){Se.value||B("try-item",{kind:"plugin",name:e.name,displayName:e.displayName})}function Lt(e){return ms(e)}function Cs(e,t=[]){const r=t.find(R=>R.status==="ACTIVE"&&!R.isDisabled),g=r!=null&&r.wordId?` If there are multiple accounts, prefer \`${r.wordId}\`.`:"";return`Use the Composio CLI skill with the ${e.name} connector (${e.slug}). Start by listing what it can do here, mention the current connection status, and suggest one safe command I can run now.${g}`}function Et(e,t=[]){Se.value||B("try-item",{kind:"composio",name:e.slug,displayName:e.name,prompt:Cs(e,t),attachedSkills:[{name:"composio-cli",path:vr}]})}function ae(e){const t=e.trim();/^https?:\/\//i.test(t)&&window.location.assign(t)}function Ss(e){const t=e.find(r=>r.needsAuth&&r.installUrl.trim().length>0);return t?(ae(t.installUrl),!0):!1}function $s(e){return e.brandColor?{backgroundColor:e.brandColor,color:"#fff"}:{}}async function As(){try{J.value=new Set(await qs())}catch{J.value=new Set}finally{te.value=!0}}async function De(){var e;if(v.value){ne.value=!0,re.value="";try{const t=(e=S.cwd)==null?void 0:e.trim(),[r]=await Promise.all([Ws(t?[t]:void 0),M.value?He():Promise.resolve()]);f.value=r}catch(t){re.value=t instanceof Error?t.message:"Failed to load plugins"}finally{ne.value=!1}}}async function He(){var e;if(M.value){le.value=!0,be.value="";try{k.value=await Qs(((e=S.threadId)==null?void 0:e.trim())||void 0)}catch(t){be.value=t instanceof Error?t.message:"Failed to load apps"}finally{le.value=!1}}}async function $e(e=!1){if(z.value){u=!0;return}z.value=!0,Pe.value="";try{const t=await Ys();if(h.value=t,!t.available||!t.authenticated){X.value=[],A.value=null,D.value=0;return}const r=e?A.value:null,g=await Js(ee.value,r,hr);X.value=e?[...X.value,...g.data]:g.data,A.value=g.nextCursor,D.value=g.total}catch(t){Pe.value=t instanceof Error?t.message:"Failed to load Composio connectors",X.value=[],A.value=null,D.value=0}finally{z.value=!1,u&&(u=!1,$e())}}async function Is(){!gt.value||z.value||await $e(!0)}async function nt(){if(ie.value){ve.value=!0,Le.value="";try{j.value=await Kt()}catch(e){Le.value=e instanceof Error?e.message:"Failed to load MCP servers"}finally{ve.value=!1}}}async function Tt(){var e;if(!(!ie.value||!((e=U.value)!=null&&e.mcpServers.length)))try{j.value=await Kt()}catch{}}function Ut(e=!1){b.value==="plugins"&&De(),b.value==="apps"&&He(),b.value==="composio"&&$e(),b.value==="skills"&&(e&&pe.value?xt():nt())}async function Ps(){fe.value=!0;try{b.value==="plugins"?await De():b.value==="apps"?await He():b.value==="composio"?await $e():b.value==="skills"&&pe.value?await xt():b.value==="skills"&&await nt()}finally{fe.value=!1}}async function Dt(e){C.value=e,U.value=null,he.value="",we.value=[],Me.value=!0,Oe.value=!0;try{U.value=await Xs(e),C.value=U.value.summary,M.value&&k.value.length===0&&await He(),await Tt()}catch(t){he.value=t instanceof Error?t.message:"Failed to load plugin"}finally{Oe.value=!1}}async function Nt(e){if(!Ge.value)return!1;Ce.value=e;try{const t=await Zs(e);return t.authorizationUrl?(ae(t.authorizationUrl),!0):(K(`No login URL returned for ${e}`,"error"),!1)}catch(t){return K(t instanceof Error?t.message:`Failed to start login for ${e}`,"error"),!1}finally{Ce.value=""}}async function Ls(e){await Tt();const t=e.mcpServers.find(r=>wt(r));t&&await Nt(t)}function rt(){Me.value=!1}async function Ft(e){Ee.value=!0,xe.value=!0,ce.value="",$.value=null;try{$.value=await ea(e)}catch(t){ce.value=t instanceof Error?t.message:"Failed to load Composio connector"}finally{xe.value=!1}}function Mt(){Ee.value=!1}async function Es(e){var t;de.value=e.slug;try{const r=await ra(e.slug);if(!r.redirectUrl){K(`No login URL returned for ${e.name}`,"error");return}ae(r.redirectUrl),K(`Opened ${e.name} authorization`),await $e(),Ee.value&&((t=$.value)==null?void 0:t.connector.slug)===e.slug&&await Ft(e.slug)}catch(r){K(r instanceof Error?r.message:`Failed to connect ${e.name}`,"error")}finally{de.value=""}}async function Ot(e){var t;if(e.activeCount>0&&((t=h.value)!=null&&t.webUrl)){ae(h.value.webUrl);return}await Es(e)}async function Ts(){_e.value=!0;const e=window.open("about:blank","_blank");e&&(e.opener=null);try{const t=await ta();t.loginUrl&&e?e.location.href=t.loginUrl:t.loginUrl?ae(t.loginUrl):e==null||e.close(),K("Composio CLI login started")}catch(t){e==null||e.close(),K(t instanceof Error?t.message:"Failed to start Composio login","error")}finally{_e.value=!1}}async function Us(){Te.value=!0;try{await sa(),K("Composio CLI installed"),await $e()}catch(e){K(e instanceof Error?e.message:"Failed to install Composio CLI","error")}finally{Te.value=!1}}async function Ds(){if(C.value&&!at.value){Z.value=!0;try{const e=await aa(C.value);we.value=e.appsNeedingAuth,K(`${C.value.displayName} plugin installed`);const t=Ss(e.appsNeedingAuth);await De();const r=f.value.find(g=>{var R;return g.id===((R=C.value)==null?void 0:R.id)});r&&(await Dt(r),!t&&U.value&&await Ls(U.value))}catch(e){K(e instanceof Error?e.message:"Failed to install plugin","error")}finally{Z.value=!1}}}async function Ns(){if(C.value){Z.value=!0;try{const e=C.value.displayName;await oa(C.value.id),K(`${e} plugin uninstalled`),rt(),await De()}catch(e){K(e instanceof Error?e.message:"Failed to uninstall plugin","error")}finally{Z.value=!1}}}async function Fs(){if(C.value){Z.value=!0;try{const e=!C.value.enabled;await la(C.value.id,e),C.value={...C.value,enabled:e},U.value&&(U.value={...U.value,summary:{...U.value.summary,enabled:e}}),K(`${C.value.displayName} plugin ${e?"enabled":"disabled"}`),await De()}catch(e){K(e instanceof Error?e.message:"Failed to update plugin","error")}finally{Z.value=!1}}}async function Ms(e){Ue.value=e.id;try{const t=!e.isEnabled;await ia(e.id,t),k.value=k.value.map(r=>r.id===e.id?{...r,isEnabled:t}:r),K(`${e.name} app ${t?"enabled":"disabled"}`)}catch(t){K(t instanceof Error?t.message:"Failed to update app","error")}finally{Ue.value=""}}async function xt(){Ke.value=!0;try{await na(),await nt(),K("MCP servers reloaded")}catch(e){K(e instanceof Error?e.message:"Failed to reload MCP servers","error")}finally{Ke.value=!1}}function Os(e){const t=new Set(ue.value);t.has(e)?t.delete(e):t.add(e),ue.value=t}return Ie(b,e=>{T.name==="skills"&&T.query.tab!==e&&q.replace({name:"skills",query:{...T.query,tab:e}}),Ut()}),Ie(()=>T.query.tab,()=>{if(T.name!=="skills")return;const e=W();b.value!==e&&(b.value=e)}),Ie(ee,()=>{b.value==="composio"&&(X.value=[],A.value=null,D.value=0,Re&&clearTimeout(Re),Re=setTimeout(()=>{$e()},250))}),Ie(()=>S.cwd,()=>{b.value==="plugins"&&De()}),Ie(()=>S.threadId,()=>{(b.value==="apps"||b.value==="plugins")&&He()}),Qt(async()=>{await As(),Ut()}),(e,t)=>{var r,g,R,ge,Ae,Je,Rt,Gt,Bt,Ht;return a(),o("div",Ho,[s("div",jo,[s("div",null,[t[21]||(t[21]=s("h2",{class:"directory-title"},"Skills & Apps",-1)),s("p",zo,i(y.value.subtitle),1)]),s("div",Ko,[s("button",{class:"directory-refresh",type:"button",disabled:fe.value,onClick:Ps},i(fe.value?"Refreshing...":"Refresh"),9,Vo)])]),s("div",qo,[(a(),o(O,null,V(x,l=>s("button",{key:l.id,class:G(["directory-tab",{"is-active":b.value===l.id}]),type:"button",role:"tab","aria-selected":b.value===l.id,onClick:E=>b.value=l.id},i(l.label),11,Wo)),64))]),me.value?(a(),o("div",{key:0,class:G(["directory-toast",{"is-error":me.value.type==="error"}])},i(me.value.text),3)):c("",!0),b.value==="plugins"?(a(),o("section",Qo,[s("div",Yo,[Xe(s("input",{"onUpdate:modelValue":t[0]||(t[0]=l=>oe.value=l),class:"directory-search",type:"search",placeholder:"Search plugins...","aria-label":"Search plugins"},null,512),[[Ze,oe.value]]),s("div",Jo,[s("button",{class:G(["directory-sort-button",{"is-active":Q.value==="popular"}]),type:"button",onClick:t[1]||(t[1]=l=>Q.value="popular")}," Popular ",2),s("button",{class:G(["directory-sort-button",{"is-active":Q.value==="name"}]),type:"button",onClick:t[2]||(t[2]=l=>Q.value="name")}," A-Z ",2),s("button",{class:G(["directory-sort-button",{"is-active":Q.value==="date"}]),type:"button",onClick:t[3]||(t[3]=l=>Q.value="date")}," Date ",2)])]),v.value?re.value?(a(),o("div",Zo,i(re.value),1)):ne.value?(a(),o("div",el,"Loading plugins...")):vt.value.length===0?(a(),o("div",tl,"No plugins found.")):(a(),o("div",sl,[(a(!0),o(O,null,V(vt.value,l=>(a(),o("button",{key:l.id,class:G(["directory-card",{"is-disabled":l.installed&&!l.enabled}]),type:"button",onClick:E=>Dt(l)},[s("div",ol,[Qe(l)?(a(),o("img",{key:0,class:"directory-card-icon",src:Qe(l),alt:l.displayName,loading:"lazy"},null,8,ll)):(a(),o("div",{key:1,class:"directory-card-fallback",style:zs($s(l))},i(l.displayName.charAt(0)),5)),s("div",il,[s("div",nl,[s("span",rl,i(l.displayName),1),l.installed&&!l.enabled?(a(),o("span",cl,"Disabled")):l.installed?(a(),o("span",dl,"Installed")):c("",!0)]),s("span",ul,i(l.developerName||l.marketplaceDisplayName||l.marketplaceName||"Plugin"),1)])]),l.description?(a(),o("p",pl,i(l.description),1)):c("",!0),s("div",yl,[l.category?(a(),o("span",vl,i(l.category),1)):c("",!0),(a(!0),o(O,null,V(l.capabilities.slice(0,2),E=>(a(),o("span",{key:E,class:"directory-chip"},i(E),1))),128))])],10,al))),128))])):(a(),o("div",Xo," Plugin APIs unavailable in this Codex CLI. Update Codex CLI to use plugin catalog features. "))])):b.value==="apps"?(a(),o("section",hl,[s("div",ml,[Xe(s("input",{"onUpdate:modelValue":t[4]||(t[4]=l=>ye.value=l),class:"directory-search",type:"search",placeholder:"Search apps...","aria-label":"Search apps"},null,512),[[Ze,ye.value]]),s("div",gl,[s("button",{class:G(["directory-sort-button",{"is-active":Y.value==="popular"}]),type:"button",onClick:t[5]||(t[5]=l=>Y.value="popular")}," Popular ",2),s("button",{class:G(["directory-sort-button",{"is-active":Y.value==="name"}]),type:"button",onClick:t[6]||(t[6]=l=>Y.value="name")}," A-Z ",2),s("button",{class:G(["directory-sort-button",{"is-active":Y.value==="date"}]),type:"button",onClick:t[7]||(t[7]=l=>Y.value="date")}," Date ",2)])]),M.value?be.value?(a(),o("div",kl,i(be.value),1)):le.value?(a(),o("div",bl,"Loading apps...")):ht.value.length===0?(a(),o("div",_l,"No apps found.")):(a(),o("div",wl,[(a(!0),o(O,null,V(ht.value,l=>(a(),o("article",{key:l.id,class:"directory-card"},[s("div",Cl,[At(l)?(a(),o("img",{key:0,class:"directory-card-icon",src:At(l),alt:l.name,loading:"lazy"},null,8,Sl)):(a(),o("div",$l,i(l.name.charAt(0)),1)),s("div",Al,[s("div",Il,[s("span",Pl,i(l.name),1),l.isEnabled?l.isAccessible?(a(),o("span",El,"Connected")):c("",!0):(a(),o("span",Ll,"Disabled"))]),s("span",Tl,i(ls(l)),1)])]),l.description?(a(),o("p",Ul,i(l.description),1)):c("",!0),s("div",Dl,[l.category?(a(),o("span",Nl,i(l.category),1)):c("",!0),(a(!0),o(O,null,V(l.pluginDisplayNames.slice(0,2),E=>(a(),o("span",{key:E,class:"directory-chip"},i(E),1))),128))]),s("div",Fl,[s("button",{class:"directory-action",type:"button",disabled:Ue.value===l.id,onClick:E=>Ms(l)},i(l.isEnabled?"Disable":"Enable"),9,Ml),l.installUrl?(a(),o("button",{key:0,class:"directory-action-link",type:"button",onClick:E=>ae(l.installUrl)},i(l.isAccessible?"Manage":"Login"),9,Ol)):c("",!0),l.isAccessible&&l.isEnabled?(a(),o("button",{key:1,class:"directory-action",type:"button",disabled:Se.value,onClick:E=>bs(l)},i(S.tryInFlightKey===ks(l)?"Starting...":"Try it!"),9,xl)):c("",!0)])]))),128))])):(a(),o("div",fl," Apps APIs unavailable in this Codex CLI. Update Codex CLI to manage apps. "))])):b.value==="composio"?(a(),o("section",Rl,[s("div",Gl,[Xe(s("input",{"onUpdate:modelValue":t[8]||(t[8]=l=>ee.value=l),class:"directory-search",type:"search",placeholder:"Search Composio connectors...","aria-label":"Search Composio connectors"},null,512),[[Ze,ee.value]]),s("div",Bl,[s("button",{class:G(["directory-sort-button",{"is-active":se.value==="popular"}]),type:"button",onClick:t[9]||(t[9]=l=>se.value="popular")}," Popular ",2),s("button",{class:G(["directory-sort-button",{"is-active":se.value==="name"}]),type:"button",onClick:t[10]||(t[10]=l=>se.value="name")}," A-Z ",2),s("button",{class:G(["directory-sort-button",{"is-active":se.value==="date"}]),type:"button",onClick:t[11]||(t[11]=l=>se.value="date")}," Date ",2)])]),Pe.value?(a(),o("div",Hl,i(Pe.value),1)):z.value?(a(),o("div",jl,"Loading Composio connectors...")):(r=h.value)!=null&&r.available?h.value.authenticated?(a(),o("div",ni,[s("article",ri,[s("div",ci,[t[26]||(t[26]=s("div",{class:"directory-card-fallback composio-fallback"},"C",-1)),s("div",di,[t[25]||(t[25]=s("div",{class:"directory-card-title-row"},[s("span",{class:"directory-card-title"},"Composio workspace"),s("span",{class:"directory-badge"},"Connected")],-1)),s("span",ui,i(h.value.email||h.value.defaultOrgName||"Authenticated"),1)])]),s("p",pi,i(es.value),1),s("div",yi,[h.value.defaultOrgName?(a(),o("span",vi,i(h.value.defaultOrgName),1)):c("",!0),h.value.cliVersion?(a(),o("span",hi,"CLI "+i(h.value.cliVersion),1)):c("",!0),X.value.length?(a(),o("span",mi," Showing "+i(X.value.length)+i(D.value?` / ${D.value}`:"")+" connectors ",1)):c("",!0)]),s("div",gi,[s("button",{class:"directory-action-link",type:"button",onClick:t[13]||(t[13]=l=>ae(h.value.webUrl))}," Open dashboard ")])]),mt.value.length===0?(a(),o("div",fi,"No Composio connectors found.")):(a(),o("div",ki,[(a(!0),o(O,null,V(mt.value,l=>(a(),o("article",{key:l.slug,class:"directory-card"},[s("div",bi,[l.logoUrl?(a(),o("img",{key:0,class:"directory-card-icon",src:l.logoUrl,alt:l.name,loading:"lazy"},null,8,_i)):(a(),o("div",wi,i(l.name.charAt(0)),1)),s("div",Ci,[s("div",Si,[s("span",$i,i(l.name),1),l.activeCount>0?(a(),o("span",Ai,"Connected")):l.isNoAuth?(a(),o("span",Ii,"No auth")):c("",!0)]),s("span",Pi,i(It(l)),1)])]),l.description?(a(),o("p",Li,i(l.description),1)):c("",!0),s("div",Ei,[s("span",Ti,i(l.toolsCount)+" tools",1),l.triggersCount>0?(a(),o("span",Ui,i(l.triggersCount)+" triggers",1)):c("",!0),l.authModes.length>0?(a(),o("span",Di,i(l.authModes.join(", ")),1)):c("",!0)]),s("div",Ni,[s("button",{class:"directory-action",type:"button",onClick:E=>Ft(l.slug)}," Details ",8,Fi),Ye(l)?(a(),o("button",{key:0,class:"directory-action-link",type:"button",disabled:de.value===l.slug,onClick:E=>Ot(l)},i(de.value===l.slug?"Opening...":Ye(l)),9,Mi)):c("",!0),Lt(l)?(a(),o("button",{key:1,class:"directory-action primary",type:"button",disabled:Se.value,onClick:E=>Et(l)},i(S.tryInFlightKey===Pt(l.slug)?"Starting...":"Try it!"),9,Oi)):c("",!0)])]))),128))])),gt.value?(a(),o("div",xi,[s("button",{class:"directory-action",type:"button",disabled:z.value,onClick:Is},i(z.value?"Loading...":"Load more"),9,Ri)])):c("",!0)])):(a(),o("div",Wl,[s("article",Ql,[t[23]||(t[23]=Ks('<div class="composio-preview-copy" data-v-8c3d8127><div class="directory-card-fallback composio-fallback" data-v-8c3d8127>C</div><div data-v-8c3d8127><p class="composio-preview-kicker" data-v-8c3d8127>Connector catalog preview</p><h3 class="composio-preview-title" data-v-8c3d8127>Connect everyday apps like Gmail, Calendar, Reddit, YouTube, and Drive.</h3><p class="composio-preview-text" data-v-8c3d8127> Composio is installed locally. Login to browse the live catalog, connect your accounts, and try simple actions from this machine. </p></div></div>',1)),s("div",Yl,[s("button",{class:"directory-action primary",type:"button",disabled:_e.value,onClick:Ts},i(_e.value?"Opening...":"Login to Composio"),9,Jl),s("button",{class:"directory-action-link",type:"button",onClick:t[12]||(t[12]=l=>ae(h.value.webUrl||"https://dashboard.composio.dev/"))}," Open dashboard ")])]),s("div",Xl,[(a(!0),o(O,null,V(Xt.value,l=>(a(),o("article",{key:l.slug,class:"directory-card composio-preview-card"},[s("div",Zl,[s("div",ei,i(l.initial),1),s("div",ti,[s("div",si,[s("span",ai,i(l.name),1),t[24]||(t[24]=s("span",{class:"directory-badge is-muted"},"Preview",-1))]),s("span",oi,i(l.meta),1)])]),s("p",li,i(l.description),1),s("div",ii,[(a(!0),o(O,null,V(l.chips,E=>(a(),o("span",{key:E,class:"directory-chip"},i(E),1))),128))])]))),128))])])):(a(),o("div",zl,[s("div",Kl,[t[22]||(t[22]=s("p",{class:"directory-empty-text"},"Composio CLI is not installed in this environment.",-1)),s("div",Vl,[s("button",{class:"directory-action primary",type:"button",disabled:Te.value,onClick:Us},i(Te.value?"Installing...":"Install Composio"),9,ql)])])]))])):b.value==="skills"?(a(),o("section",Gi,[Fe(Bo,{"try-in-flight-key":S.tryInFlightKey,onSkillsChanged:t[15]||(t[15]=l=>B("skills-changed")),onTryItem:t[16]||(t[16]=l=>B("try-item",l))},{"before-installed":Vs(()=>[s("div",Bi,[s("button",{class:"skills-embedded-toggle",type:"button",onClick:t[14]||(t[14]=l=>ke.value=!ke.value)},[s("span",Hi,"MCPs("+i(ot.value.length)+")",1),s("span",{class:G(["skills-embedded-chevron",{"is-open":ke.value}])},"›",2)]),ke.value?(a(),o("div",ji,[ie.value?Le.value?(a(),o("div",Ki,i(Le.value),1)):ve.value?(a(),o("div",Vi,"Loading MCP servers...")):ot.value.length===0?(a(),o("div",qi,"No MCP servers configured.")):(a(),o("div",Wi,[(a(!0),o(O,null,V(ot.value,l=>(a(),o("article",{key:l.name},[s("button",{class:"mcp-skill-card skill-card",type:"button",onClick:E=>Os(l.name)},[s("div",Yi,[s("div",Ji,i(l.name.charAt(0)),1),s("div",Xi,[s("div",Zi,[s("span",en,i(l.name),1),s("span",{class:G(["mcp-skill-badge",ns(l.authStatus)])},i(_t(l.name)),3)]),t[27]||(t[27]=s("span",{class:"mcp-skill-owner"},"mcp",-1))]),s("span",{class:G(["mcp-skill-chevron",{"is-open":ue.value.has(l.name)}])},"›",2)]),s("p",tn,i(l.tools.length)+" tools · "+i(l.resources.length+l.resourceTemplates.length)+" resources",1),ue.value.has(l.name)?(a(),o("div",sn,[l.tools.length>0?(a(),o("div",an,[t[28]||(t[28]=s("h3",{class:"directory-mini-heading"},"Tools",-1)),s("p",on,i(l.tools.map(E=>E.title||E.name).join(", ")),1)])):c("",!0),l.resources.length>0||l.resourceTemplates.length>0?(a(),o("div",ln,[t[29]||(t[29]=s("h3",{class:"directory-mini-heading"},"Resources",-1)),s("p",nn,i([...l.resources.map(E=>E.title||E.name||E.uri),...l.resourceTemplates.map(E=>E.title||E.name||E.uriTemplate)].join(", ")),1)])):c("",!0)])):c("",!0)],8,Qi)]))),128))])):(a(),o("div",zi," MCP status APIs unavailable in this Codex CLI. Update Codex CLI to inspect MCP servers. "))])):c("",!0)])]),_:1},8,["try-in-flight-key"])])):c("",!0),(a(),ze(dt,{to:"body"},[Me.value?(a(),o("div",{key:0,class:"directory-modal-overlay",onClick:je(rt,["self"])},[s("article",rn,[s("div",cn,[s("div",dn,[C.value&&Qe(C.value)?(a(),o("img",{key:0,class:"directory-card-icon",src:Qe(C.value),alt:C.value.displayName,loading:"lazy"},null,8,un)):(a(),o("div",pn,i((g=C.value)==null?void 0:g.displayName.charAt(0)),1)),s("div",yn,[s("h3",vn,i(((R=C.value)==null?void 0:R.displayName)||"Plugin"),1),s("span",hn,i(((ge=C.value)==null?void 0:ge.developerName)||((Ae=C.value)==null?void 0:Ae.marketplaceDisplayName)||((Je=C.value)==null?void 0:Je.marketplaceName)),1)])]),s("button",{class:"directory-modal-close",type:"button","aria-label":"Close plugin detail",onClick:rt},"Close")]),s("div",mn,[he.value?(a(),o("div",gn,i(he.value),1)):Oe.value?(a(),o("div",fn,"Loading plugin...")):U.value?(a(),o(O,{key:2},[pt.value?(a(),o("p",kn,i(pt.value),1)):c("",!0),U.value.summary.capabilities.length>0?(a(),o("div",bn,[t[30]||(t[30]=s("h4",{class:"directory-detail-heading"},"Capabilities",-1)),s("div",_n,[(a(!0),o(O,null,V(U.value.summary.capabilities,l=>(a(),o("span",{key:l,class:"directory-chip"},i(l),1))),128))])])):c("",!0),s("div",wn,[U.value.apps.length>0?(a(),o("div",Cn,[t[31]||(t[31]=s("h4",{class:"directory-detail-heading"},"Apps",-1)),(a(!0),o(O,null,V(U.value.apps,l=>(a(),o("div",{key:l.id,class:"directory-include-row"},[s("span",null,i(l.name),1),kt(l)?(a(),o("span",Sn,"GPT Plus account required")):l.installUrl?(a(),o("button",{key:1,type:"button",onClick:E=>ae(l.installUrl)},i(l.needsAuth?"Login":"Manage"),9,$n)):c("",!0)]))),128))])):c("",!0),U.value.skills.length>0?(a(),o("div",An,[t[32]||(t[32]=s("h4",{class:"directory-detail-heading"},"Skills",-1)),s("p",In,i(U.value.skills.map(l=>l.displayName||l.name).join(", ")),1)])):c("",!0),U.value.mcpServers.length>0?(a(),o("div",Pn,[t[33]||(t[33]=s("h4",{class:"directory-detail-heading"},"MCP servers",-1)),(a(!0),o(O,null,V(U.value.mcpServers,l=>(a(),o("div",{key:l,class:"directory-include-row"},[s("span",null,[et(i(l)+" ",1),s("span",{class:G(["directory-auth-status",is(l)])},i(_t(l)),3)]),wt(l)?(a(),o("button",{key:0,type:"button",disabled:Ce.value===l,onClick:E=>Nt(l)},i(Ce.value===l?"Opening...":"Authenticate"),9,Ln)):c("",!0)]))),128))])):c("",!0)]),yt.value.length>0?(a(),o("div",En,[(a(!0),o(O,null,V(yt.value,l=>(a(),o("img",{key:l,src:l,alt:"",loading:"lazy"},null,8,Tn))),128))])):c("",!0),we.value.length>0?(a(),o("div",Un,[t[34]||(t[34]=s("strong",null,"Apps needing auth",-1)),(a(!0),o(O,null,V(we.value,l=>(a(),o("div",{key:l.id,class:"directory-include-row"},[s("span",null,i(l.name),1),l.installUrl?(a(),o("button",{key:0,type:"button",onClick:E=>ae(l.installUrl)},"Login",8,Dn)):c("",!0)]))),128))])):c("",!0)],64)):c("",!0)]),s("div",Nn,[C.value&&C.value.installed?(a(),o("button",{key:0,class:"directory-action danger",type:"button",disabled:Z.value,onClick:Ns},i(Z.value?"Uninstalling...":"Uninstall"),9,Fn)):C.value&&!Jt.value?(a(),o("button",{key:1,class:"directory-action primary",type:"button",disabled:Z.value||C.value.installPolicy==="NOT_AVAILABLE"||at.value,onClick:Ds},i(at.value?"ChatGPT Plus":Z.value?"Installing...":"Install"),9,Mn)):C.value?(a(),o("button",On," GPT Plus account required ")):c("",!0),C.value&&C.value.installed?(a(),o("button",{key:3,class:"directory-action",type:"button",disabled:Z.value,onClick:Fs},i(C.value.enabled?"Disable":"Enable"),9,xn)):c("",!0),C.value&&C.value.installed&&C.value.enabled?(a(),o("button",{key:4,class:"directory-action primary",type:"button",disabled:Z.value||Se.value,onClick:t[17]||(t[17]=l=>ws(C.value))},i(S.tryInFlightKey===_s(C.value)?"Starting...":"Try it!"),9,Rn)):c("",!0)])])])):c("",!0)])),(a(),ze(dt,{to:"body"},[Ee.value?(a(),o("div",{key:0,class:"directory-modal-overlay",onClick:je(Mt,["self"])},[s("article",Gn,[s("div",Bn,[s("div",Hn,[(Rt=$.value)!=null&&Rt.connector.logoUrl?(a(),o("img",{key:0,class:"directory-card-icon",src:$.value.connector.logoUrl,alt:$.value.connector.name,loading:"lazy"},null,8,jn)):(a(),o("div",zn,i((Gt=$.value)==null?void 0:Gt.connector.name.charAt(0)),1)),s("div",Kn,[s("h3",Vn,i(((Bt=$.value)==null?void 0:Bt.connector.name)||"Composio"),1),s("span",qn,i($.value?It($.value.connector):"Connector"),1)])]),s("button",{class:"directory-modal-close",type:"button","aria-label":"Close Composio detail",onClick:Mt},"Close")]),s("div",Wn,[ce.value?(a(),o("div",Qn,i(ce.value),1)):xe.value?(a(),o("div",Yn,"Loading connector...")):$.value?(a(),o(O,{key:2},[$.value.connector.description?(a(),o("p",Jn,i($.value.connector.description),1)):c("",!0),s("div",Xn,[s("div",Zn,[t[35]||(t[35]=s("h4",{class:"directory-detail-heading"},"Overview",-1)),s("div",er,[s("span",tr,i($.value.connector.toolsCount)+" tools",1),$.value.connector.triggersCount>0?(a(),o("span",sr,i($.value.connector.triggersCount)+" triggers",1)):c("",!0),$.value.connector.latestVersion?(a(),o("span",ar,"v"+i($.value.connector.latestVersion),1)):c("",!0),$.value.connector.authModes.length>0?(a(),o("span",or,i($.value.connector.authModes.join(", ")),1)):c("",!0)])]),s("div",lr,[t[36]||(t[36]=s("h4",{class:"directory-detail-heading"},"Connections",-1)),$.value.connections.length===0?(a(),o("div",ir," No linked accounts yet. ")):(a(),o("div",nr,[(a(!0),o(O,null,V($.value.connections,l=>(a(),o("div",{key:l.id,class:"directory-include-row"},[s("span",null,[et(i(l.alias||l.wordId||l.id)+" ",1),s("span",{class:G(["directory-auth-status",fs(l.status)])},i(gs(l.status)),3)]),s("span",rr,i(l.authScheme||"Auth"),1)]))),128))]))])]),$.value.tools.length>0?(a(),o("div",cr,[t[37]||(t[37]=s("h4",{class:"directory-detail-heading"},"Useful tools",-1)),(a(!0),o(O,null,V($.value.tools.slice(0,8),l=>(a(),o("div",{key:l.slug,class:"directory-include-row"},[s("span",null,i(l.name||l.slug),1),s("span",dr,i(l.slug),1)]))),128))])):c("",!0)],64)):c("",!0)]),s("div",ur,[$.value?(a(),o("button",{key:0,class:"directory-action-link",type:"button",onClick:t[18]||(t[18]=l=>ae($.value.dashboardUrl))}," Open dashboard ")):c("",!0),$.value&&Ye($.value.connector)?(a(),o("button",{key:1,class:"directory-action",type:"button",disabled:de.value===$.value.connector.slug,onClick:t[19]||(t[19]=l=>Ot($.value.connector))},i(de.value===((Ht=$.value)==null?void 0:Ht.connector.slug)?"Opening...":Ye($.value.connector)),9,pr)):c("",!0),$.value&&Lt($.value.connector)?(a(),o("button",{key:2,class:"directory-action primary",type:"button",disabled:Se.value,onClick:t[20]||(t[20]=l=>Et($.value.connector,$.value.connections))},i(S.tryInFlightKey===Pt($.value.connector.slug)?"Starting...":"Try it!"),9,yr)):c("",!0)])])])):c("",!0)]))])}}}),fr=st(mr,[["__scopeId","data-v-8c3d8127"]]);export{fr as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as Ke,u as Xe,x as y,w as G,b as je,H as Ye,e as qe,o as l,c as o,a,t as n,k as c,f as w,h as ae,p as Qe,P as Je,g as be,F as C,r as E,s as U,i as T,v as Ze,q as se,T as et,N as tt,y as b,Q as at,R as st,S as nt,_ as it}from"./index-Dp2k2aGg.js";const lt={class:"review-pane-header"},ot={class:"review-pane-heading"},rt={class:"review-pane-eyebrow"},ut={class:"review-pane-title"},dt={class:"review-pane-header-actions"},ct=["aria-label"],vt={class:"review-pane-toolbar"},pt={class:"review-pane-toolbar-controls"},ht={key:0,class:"review-pane-control-cluster"},ft={class:"review-pane-control-label"},wt={class:"review-pane-segmented"},mt=["data-active"],_t=["data-active","disabled"],yt={key:1,class:"review-pane-control-cluster"},bt={class:"review-pane-control-label"},kt={key:2,class:"review-pane-control-cluster"},gt={class:"review-pane-control-label"},Ct={class:"review-pane-segmented"},Bt=["data-active"],Ft=["data-active"],St={class:"review-pane-toolbar-actions"},It=["disabled"],xt={key:1,class:"review-pane-meta"},Lt={class:"review-pane-summary-pill review-pane-summary-pill-add"},$t={class:"review-pane-summary-pill review-pane-summary-pill-remove"},At={key:0},Pt={key:1},Et={key:2},Rt={class:"review-pane-content"},Nt={key:0,class:"review-pane-empty"},Tt={class:"review-pane-empty-title"},Mt={key:1,class:"review-pane-empty"},Dt={class:"review-pane-empty-title"},Wt={class:"review-pane-empty-text"},zt=["disabled"],Vt={key:2,class:"review-pane-empty"},Gt={class:"review-pane-empty-title"},Ut={class:"review-pane-empty-text"},Ht={key:0,class:"review-pane-bulk-actions"},Ot=["disabled","onClick"],Kt={key:1,class:"review-pane-empty"},Xt={class:"review-pane-empty-title"},jt={class:"review-pane-empty-text"},Yt={key:0,class:"review-pane-file-list"},qt=["data-expanded","onClick"],Qt=["data-expanded"],Jt={class:"review-pane-tree-folder-name"},Zt={class:"review-pane-tree-folder-count"},ea=["data-active","title","onClick"],ta={class:"review-pane-file-meta-row"},aa={class:"review-pane-file-path"},sa={class:"review-pane-file-delta"},na={class:"review-pane-delta-add"},ia={class:"review-pane-delta-remove"},la=["data-operation"],oa={class:"review-pane-diff"},ra={class:"review-pane-file-header"},ua={class:"review-pane-file-header-main"},da={class:"review-pane-file-title"},ca={class:"review-pane-file-subtitle"},va={key:0,class:"review-pane-row-actions"},pa=["disabled","onClick"],ha={key:0,class:"review-pane-raw-diff"},fa={key:1,class:"review-pane-hunks"},wa=["data-active","onClick"],ma={class:"review-pane-hunk-header"},_a={class:"review-pane-hunk-title"},ya={class:"review-pane-hunk-meta"},ba={key:0,class:"review-pane-row-actions"},ka=["disabled","onClick"],ga={class:"review-pane-lines"},Ca=["data-kind"],Ba={class:"review-pane-line-number"},Fa={class:"review-pane-line-number"},Sa={class:"review-pane-line-marker"},Ia={class:"review-pane-line-code"},xa={class:"review-pane-sheet-header"},La={class:"review-pane-sheet-count"},$a={class:"review-pane-sheet-list"},Aa=["data-expanded","onClick"],Pa=["data-expanded"],Ea={class:"review-pane-tree-folder-name"},Ra={class:"review-pane-tree-folder-count"},Na=["data-active","title","onClick"],Ta={class:"review-pane-file-meta-row"},Ma={class:"review-pane-file-path"},Da={class:"review-pane-file-delta"},Wa={class:"review-pane-delta-add"},za={class:"review-pane-delta-remove"},Va=["data-operation"],ke="codex-web-local.review-pane-file-list-width.v1",Ga=220,Ua=420,ge=288,Ha=Ke({__name:"ReviewPane",props:{threadId:{},cwd:{},isThreadInProgress:{type:Boolean},initialFilePath:{},commitSha:{}},emits:["close"],setup(Ce){const g=Ce,{isMobile:B}=Xe(),{t:r}=tt(),m=y("workspace"),F=y("unstaged"),d=y(null),x=y(""),H=y(!1),L=y(""),I=y(""),O=y(!1),Q=y(!1),R=y(!1),K=y(!1),M=y(""),$=y(""),X=y("");let j=null,A=null;const k=b(()=>{var e,t;return((e=d.value)==null?void 0:e.files.find(u=>u.id===L.value))??((t=d.value)==null?void 0:t.files[0])??null}),N=y({}),S=b(()=>{var e;return!!((e=g.commitSha)!=null&&e.trim())}),Be=b(()=>{var e;return(((e=d.value)==null?void 0:e.baseBranchOptions)??[]).map(t=>({value:t,label:t}))}),Fe=b(()=>{var e;return((e=d.value)==null?void 0:e.scope)==="commit"||S.value?r("No file changes in this commit."):m.value==="workspace"?r("Your current workspace is clean."):r("No merge diff found against the base branch.")});function ne(e){return e.trim().replace(/\\/g,"/")}function Se(e){const t=ne(e);return!t||!d.value?null:d.value.files.find(u=>[u.path,u.absolutePath,u.previousPath,u.previousAbsolutePath].some(v=>typeof v=="string"&&ne(v)===t))??null}function ie(){const e=Se(g.initialFilePath??"");return e?(ee(e.id),!0):!1}const Ie=b(()=>{var e,t;return(e=d.value)!=null&&e.isGitRepo?S.value?d.value.commitSha?`${r("Commit")} ${_e(d.value.commitSha)}`:r("Commit"):m.value==="workspace"?F.value==="staged"?r("Staged changes"):r("Workspace changes"):(t=d.value)!=null&&t.baseBranch?`${r("Against")} ${d.value.baseBranch}`:r("Base branch"):r("Repository review")}),le=b(()=>{var e;return!S.value&&m.value==="workspace"&&((e=d.value)==null?void 0:e.isGitRepo)===!0&&d.value.files.length>0}),oe=b(()=>le.value&&!R.value),xe=b(()=>F.value==="staged"?[{value:"unstage",label:r("Unstage all")}]:[{value:"stage",label:r("Stage all")},{value:"revert",label:r("Revert all")}]),Le=b(()=>F.value==="staged"?[{value:"unstage",label:r("Unstage file")}]:[{value:"stage",label:r("Stage file")},{value:"revert",label:r("Revert file")}]),$e=b(()=>F.value==="staged"?[{value:"unstage",label:r("Unstage hunk")}]:[{value:"stage",label:r("Stage hunk")},{value:"revert",label:r("Revert hunk")}]),re=b(()=>$.value||M.value||X.value),Ae=b(()=>!!($.value||M.value)),Y=y(Re()),Pe=b(()=>{const e={};return B.value||(e["--review-file-list-width"]=`${Y.value}px`),e}),ue=b(()=>{var e;return De(((e=d.value)==null?void 0:e.files)??[],N.value)}),de=b(()=>ue.value.nodes),Ee=b(()=>ue.value.folderIdsByFileId);function J(e){return Number.isFinite(e)?Math.min(Ua,Math.max(Ga,Math.round(e))):ge}function Re(){if(typeof window>"u")return ge;const e=window.localStorage.getItem(ke),t=e?Number(e):Number.NaN;return J(t)}function Ne(e){typeof window>"u"||window.localStorage.setItem(ke,String(J(e)))}function Te(e){if(B.value)return;e.preventDefault(),A==null||A();const t=e.clientX,u=Y.value,v=i=>{Y.value=J(u+(i.clientX-t))},p=()=>{window.removeEventListener("pointermove",v),window.removeEventListener("pointerup",s),A=null},s=()=>{p(),Ne(Y.value)};window.addEventListener("pointermove",v),window.addEventListener("pointerup",s),A=p}function Me(e){return e==="add"?"+":e==="remove"?"-":e==="hunk"?"@@":" "}function ce(e){const t=e.split("/").filter(Boolean);return t[t.length-1]??e}function ve(e,t){return e.localeCompare(t,void 0,{numeric:!0,sensitivity:"base"})}function De(e,t){const u={folders:new Map,files:[]},v={};for(const f of e){const _=f.path.split("/").filter(Boolean),W=_.pop()??f.path;let h=u,P="";const ye=[];for(const[Oe,z]of _.entries()){P=P?`${P}/${z}`:z;let V=h.folders.get(z);V||(V={id:P,name:z,depth:Oe,folders:new Map,files:[]},h.folders.set(z,V)),h=V,ye.push(V.id)}h.files.push({file:f,name:W,depth:_.length}),v[f.id]=ye}const p=[],s=f=>f.files.length+Array.from(f.folders.values()).reduce((_,W)=>_+s(W),0),i=f=>{const _=Array.from(f.folders.values()).sort((h,P)=>ve(h.name,P.name)),W=[...f.files].sort((h,P)=>ve(h.name,P.name));for(const h of _)p.push({kind:"folder",treeKey:`folder:${h.id}`,id:h.id,name:h.name,depth:h.depth,fileCount:s(h)}),t[h.id]!==!1&&i(h);for(const h of W)p.push({kind:"file",treeKey:`file:${h.file.id}`,id:h.file.id,name:h.name,depth:h.depth,file:h.file})};return i(u),{nodes:p,folderIdsByFileId:v}}function D(e){return N.value[e]!==!1}function pe(e){N.value={...N.value,[e]:!D(e)}}function he(e){const t=Ee.value[e]??[];if(t.length===0)return;const u={...N.value};let v=!1;for(const p of t)u[p]===!1&&(u[p]=!0,v=!0);v&&(N.value=u)}function fe(e){const t=B.value?8:10,u=B.value?12:14;return{paddingLeft:`${t+e*u}px`}}function we(){return{paddingLeft:B.value?"8px":"10px"}}function Z(e){return e==="add"?"Added":e==="delete"?"Deleted":e==="rename"?"Renamed":"Modified"}function We(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 q(){var e,t,u,v;if(g.cwd.trim()){Q.value=!0,M.value="";try{const p=m.value==="baseBranch"?x.value.trim():"",s=((e=g.commitSha)==null?void 0:e.trim())??"",i=await at(g.cwd,S.value?"commit":m.value,F.value,p||null,s||null);if(i.baseBranchOptions.length>0){const _=i.baseBranch??i.baseBranchOptions[0]??"";x.value!==_&&(H.value=!0,x.value=_)}else x.value!==""&&(H.value=!0,x.value="");d.value=i;const f=i.files.some(_=>_.id===L.value);!ie()&&!f&&(L.value=((t=i.files[0])==null?void 0:t.id)??"",I.value=((v=(u=i.files[0])==null?void 0:u.hunks[0])==null?void 0:v.id)??"")}catch(p){M.value=p instanceof Error?p.message:"Failed to load review snapshot"}finally{Q.value=!1}}}async function me(){await q()}function ee(e){var u,v;he(e),L.value=e;const t=((u=d.value)==null?void 0:u.files.find(p=>p.id===e))??null;I.value=((v=t==null?void 0:t.hunks[0])==null?void 0:v.id)??"",B.value&&(O.value=!1)}function _e(e){return e.trim().slice(0,7)}async function te(e,t,u=""){var v,p,s;if(d.value){R.value=!0,$.value="";try{const i=await nt({cwd:g.cwd,scope:m.value,workspaceView:F.value,action:e,level:t,patch:u});d.value=i,i.files.some(_=>_.id===L.value)||(L.value=((v=i.files[0])==null?void 0:v.id)??"",I.value=((s=(p=i.files[0])==null?void 0:p.hunks[0])==null?void 0:s.id)??"")}catch(i){$.value=i instanceof Error?i.message:"Failed to apply review action"}finally{R.value=!1}}}async function ze(e){await te(e,"all")}async function Ve(e,t){await te(e,"file",t.diff)}async function Ge(e,t){I.value=t.id,await te(e,"hunk",t.patch)}async function Ue(){if(g.cwd.trim()){K.value=!0,$.value="";try{await st(g.cwd),await q()}catch(e){$.value=e instanceof Error?e.message:"Failed to initialize Git"}finally{K.value=!1}}}function He(e){if(We(e)!==g.threadId)return;const t=e.params!==null&&typeof e.params=="object"&&!Array.isArray(e.params)?e.params:null,u=(t==null?void 0:t.item)!==null&&typeof(t==null?void 0:t.item)=="object"&&!Array.isArray(t.item)?t.item:null,v=typeof(u==null?void 0:u.type)=="string"?u.type:"";if(e.method==="item/started"&&v==="enteredReviewMode"){X.value=typeof(u==null?void 0:u.review)=="string"?u.review:"Review in progress";return}e.method==="item/completed"&&v==="exitedReviewMode"&&(X.value="")}return G(()=>[g.threadId,g.cwd,g.commitSha],()=>{S.value&&(m.value="workspace"),L.value="",I.value="",$.value="",X.value="",me()},{immediate:!0}),G(()=>[g.initialFilePath,g.commitSha],()=>{ie()}),G(()=>[m.value,F.value],()=>{L.value="",I.value="",$.value="",M.value="",q()}),G(x,(e,t)=>{if(H.value){H.value=!1;return}m.value==="baseBranch"&&(!e||e===t||q())}),G(k,e=>{var t;e&&(he(e.id),e.hunks.some(u=>u.id===I.value)||(I.value=((t=e.hunks[0])==null?void 0:t.id)??""))}),je(()=>{j=Ye(He)}),qe(()=>{j&&(j(),j=null),A==null||A()}),(e,t)=>{var u,v,p;return l(),o("section",{class:be(["review-pane",{"is-mobile":c(B)}]),onPointerdown:t[9]||(t[9]=se(()=>{},["stop"])),onClick:t[10]||(t[10]=se(()=>{},["stop"]))},[a("header",lt,[a("div",ot,[a("p",rt,n(c(r)("Review")),1),a("p",ut,n(Ie.value),1)]),a("div",dt,[c(B)&&((u=d.value)!=null&&u.files.length)?(l(),o("button",{key:0,type:"button",class:"review-pane-mobile-files-button",onClick:t[0]||(t[0]=s=>O.value=!0)},n(c(r)("Files")),1)):w("",!0),a("button",{type:"button",class:"review-pane-close","aria-label":c(r)("Close review pane"),onClick:t[1]||(t[1]=s=>e.$emit("close"))},[ae(Qe,{class:"icon-svg"})],8,ct)])]),a("div",vt,[a("div",pt,[S.value?w("",!0):(l(),o("div",ht,[a("span",ft,n(c(r)("Compare")),1),a("div",wt,[a("button",{type:"button",class:"review-pane-segmented-button review-pane-scope","data-active":m.value==="workspace",onClick:t[2]||(t[2]=s=>m.value="workspace")},n(c(r)("Workspace")),9,mt),a("button",{type:"button",class:"review-pane-segmented-button review-pane-scope","data-active":m.value==="baseBranch",disabled:!((v=d.value)!=null&&v.baseBranch),onClick:t[3]||(t[3]=s=>m.value="baseBranch")},n(c(r)("Base branch")),9,_t)])])),!S.value&&m.value==="baseBranch"&&((p=d.value)!=null&&p.baseBranchOptions.length)?(l(),o("div",yt,[a("span",bt,n(c(r)("Branch")),1),ae(Je,{modelValue:x.value,"onUpdate:modelValue":t[4]||(t[4]=s=>x.value=s),class:"review-pane-branch-dropdown",options:Be.value,placeholder:c(r)("Branch"),"enable-search":"","search-placeholder":c(r)("Search branches...")},null,8,["modelValue","options","placeholder","search-placeholder"])])):w("",!0),!S.value&&m.value==="workspace"?(l(),o("div",kt,[a("span",gt,n(c(r)("Changes")),1),a("div",Ct,[a("button",{type:"button",class:"review-pane-segmented-button review-pane-view","data-active":F.value==="unstaged",onClick:t[5]||(t[5]=s=>F.value="unstaged")},n(c(r)("Unstaged")),9,Bt),a("button",{type:"button",class:"review-pane-segmented-button review-pane-view","data-active":F.value==="staged",onClick:t[6]||(t[6]=s=>F.value="staged")},n(c(r)("Staged")),9,Ft)])])):w("",!0)]),a("div",St,[a("button",{type:"button",class:"review-pane-refresh",disabled:Q.value,onClick:me},n(c(r)("Refresh")),9,It)])]),re.value?(l(),o("div",{key:0,class:be(["review-pane-banner",{"is-error":Ae.value}])},n(re.value),3)):w("",!0),d.value?(l(),o("div",xt,[a("span",null,n(d.value.summary.fileCount)+" "+n(c(r)("files")),1),a("span",Lt,"+"+n(d.value.summary.addedLineCount),1),a("span",$t,"-"+n(d.value.summary.removedLineCount),1),d.value.headBranch?(l(),o("span",At,n(d.value.headBranch),1)):w("",!0),S.value&&d.value.commitSha?(l(),o("span",Pt,n(_e(d.value.commitSha)),1)):w("",!0),!S.value&&m.value==="baseBranch"&&d.value.baseBranch?(l(),o("span",Et,"vs "+n(d.value.baseBranch),1)):w("",!0)])):w("",!0),a("div",Rt,[d.value?d.value.isGitRepo?!S.value&&m.value==="baseBranch"&&!d.value.baseBranch?(l(),o("div",Vt,[a("p",Gt,n(c(r)("Base branch unavailable")),1),a("p",Ut,n(c(r)("Could not resolve `origin/HEAD`, `main`, or `master` for this repository.")),1)])):(l(),o(C,{key:3},[le.value?(l(),o("div",Ht,[(l(!0),o(C,null,E(xe.value,s=>(l(),o("button",{key:s.value,type:"button",class:"review-pane-bulk-button",disabled:R.value,onClick:i=>ze(s.value)},n(s.label),9,Ot))),128))])):w("",!0),d.value.files.length?(l(),o("div",{key:2,class:"review-pane-main",style:U(Pe.value)},[c(B)?w("",!0):(l(),o("aside",Yt,[(l(!0),o(C,null,E(de.value,s=>{var i;return l(),o(C,{key:s.treeKey},[s.kind==="folder"?(l(),o("button",{key:0,type:"button",class:"review-pane-tree-folder",style:U(fe(s.depth)),"data-expanded":D(s.id),onClick:f=>pe(s.id)},[a("span",{class:"review-pane-tree-caret","data-expanded":D(s.id)},null,8,Qt),a("span",Jt,n(s.name),1),a("span",Zt,n(s.fileCount),1)],12,qt)):(l(),o("button",{key:1,type:"button",class:"review-pane-file review-pane-tree-file",style:U(we()),"data-active":((i=k.value)==null?void 0:i.id)===s.file.id,title:s.file.path,onClick:f=>ee(s.file.id)},[a("span",ta,[a("span",aa,[T(n(s.name)+" ",1),s.file.previousPath?(l(),o(C,{key:0},[T(" ← "+n(ce(s.file.previousPath)),1)],64)):w("",!0)]),a("span",sa,[a("span",na,"+"+n(s.file.addedLineCount),1),t[11]||(t[11]=a("span",{class:"review-pane-delta-separator"},"/",-1)),a("span",ia,"-"+n(s.file.removedLineCount),1)])]),a("span",{class:"review-pane-file-op","data-operation":s.file.operation},n(Z(s.file.operation)),9,la)],12,ea))],64)}),128))])),c(B)?w("",!0):(l(),o("div",{key:1,class:"review-pane-resizer",role:"separator","aria-orientation":"vertical","aria-label":"Resize file list",onPointerdown:Te},null,32)),a("section",oa,[k.value?(l(),o(C,{key:0},[a("div",ra,[a("div",ua,[a("p",da,[T(n(k.value.path)+" ",1),k.value.previousPath?(l(),o(C,{key:0},[T(" ← "+n(k.value.previousPath),1)],64)):w("",!0)]),a("p",ca,n(Z(k.value.operation))+" · +"+n(k.value.addedLineCount)+" / -"+n(k.value.removedLineCount),1)]),oe.value?(l(),o("div",va,[(l(!0),o(C,null,E(Le.value,s=>(l(),o("button",{key:`${k.value.id}:${s.value}`,type:"button",class:"review-pane-row-button",disabled:R.value,onClick:i=>Ve(s.value,k.value)},n(s.label),9,pa))),128))])):w("",!0)]),k.value.hunks.length===0?(l(),o("div",ha,[a("pre",null,n(k.value.diff||"No unified diff available."),1)])):(l(),o("div",fa,[(l(!0),o(C,null,E(k.value.hunks,s=>(l(),o("article",{key:s.id,class:"review-pane-hunk","data-active":I.value===s.id,onClick:i=>I.value=s.id},[a("div",ma,[a("div",null,[a("p",_a,n(s.header),1),a("p",ya,"+"+n(s.addedLineCount)+" / -"+n(s.removedLineCount),1)]),oe.value?(l(),o("div",ba,[(l(!0),o(C,null,E($e.value,i=>(l(),o("button",{key:`${s.id}:${i.value}`,type:"button",class:"review-pane-row-button",disabled:R.value,onClick:f=>Ge(i.value,s)},n(i.label),9,ka))),128))])):w("",!0)]),a("div",ga,[(l(!0),o(C,null,E(s.lines,i=>(l(),o("div",{key:i.key,class:"review-pane-line","data-kind":i.kind},[a("span",Ba,n(i.oldLine??""),1),a("span",Fa,n(i.newLine??""),1),a("span",Sa,n(Me(i.kind)),1),a("code",Ia,n(i.text||" "),1)],8,Ca))),128))])],8,wa))),128))]))],64)):w("",!0)])],4)):(l(),o("div",Kt,[a("p",Xt,n(c(r)("No changes in this scope")),1),a("p",jt,n(Fe.value),1)]))],64)):(l(),o("div",Mt,[a("p",Dt,n(c(r)("This folder is not a Git repository")),1),a("p",Wt,n(c(r)("Initialize Git to review local changes and run Codex review.")),1),a("button",{type:"button",class:"review-pane-primary-cta",disabled:K.value,onClick:Ue},n(K.value?c(r)("Initializing…"):c(r)("Initialize Git")),9,zt)])):(l(),o("div",Nt,[a("p",Tt,n(c(r)("Loading review state")),1)]))]),ae(et,{name:"review-pane-sheet"},{default:Ze(()=>{var s;return[c(B)&&O.value&&((s=d.value)!=null&&s.files.length)?(l(),o("div",{key:0,class:"review-pane-sheet-backdrop",onClick:t[8]||(t[8]=i=>O.value=!1)},[a("div",{class:"review-pane-sheet",onClick:t[7]||(t[7]=se(()=>{},["stop"]))},[t[14]||(t[14]=a("div",{class:"review-pane-sheet-handle","aria-hidden":"true"},null,-1)),a("div",xa,[t[12]||(t[12]=a("p",{class:"review-pane-sheet-title"},"Changed files",-1)),a("p",La,n(d.value.files.length),1)]),a("div",$a,[(l(!0),o(C,null,E(de.value,i=>{var f;return l(),o(C,{key:`sheet:${i.treeKey}`},[i.kind==="folder"?(l(),o("button",{key:0,type:"button",class:"review-pane-tree-folder review-pane-tree-folder-sheet",style:U(fe(i.depth)),"data-expanded":D(i.id),onClick:_=>pe(i.id)},[a("span",{class:"review-pane-tree-caret","data-expanded":D(i.id)},null,8,Pa),a("span",Ea,n(i.name),1),a("span",Ra,n(i.fileCount),1)],12,Aa)):(l(),o("button",{key:1,type:"button",class:"review-pane-file review-pane-tree-file",style:U(we()),"data-active":((f=k.value)==null?void 0:f.id)===i.file.id,title:i.file.path,onClick:_=>ee(i.file.id)},[a("span",Ta,[a("span",Ma,[T(n(i.name)+" ",1),i.file.previousPath?(l(),o(C,{key:0},[T(" ← "+n(ce(i.file.previousPath)),1)],64)):w("",!0)]),a("span",Da,[a("span",Wa,"+"+n(i.file.addedLineCount),1),t[13]||(t[13]=a("span",{class:"review-pane-delta-separator"},"/",-1)),a("span",za,"-"+n(i.file.removedLineCount),1)])]),a("span",{class:"review-pane-file-op","data-operation":i.file.operation},n(Z(i.file.operation)),9,Va)],12,Na))],64)}),128))])])])):w("",!0)]}),_:1})],34)}}}),Ka=it(Ha,[["__scopeId","data-v-efa68587"]]);export{Ka as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-efa68587],[data-v-efa68587]:before,[data-v-efa68587]:after,[data-v-efa68587]::backdrop{--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-tracking:initial;--tw-font-weight:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-leading:initial}}}.review-pane[data-v-efa68587]{inset:calc(var(--spacing,.25rem) * 3);z-index:1200;min-height:calc(var(--spacing,.25rem) * 0);min-width:calc(var(--spacing,.25rem) * 0);border-radius:var(--radius-2xl,1rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-white,#fff);--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);flex-direction:column;display:flex;position:fixed;overflow:hidden}.review-pane.is-mobile[data-v-efa68587]{inset:calc(var(--spacing,.25rem) * 0);border-style:var(--tw-border-style);border-width:0;border-radius:0}.review-pane-header[data-v-efa68587]{justify-content:space-between;align-items:flex-start;gap:calc(var(--spacing,.25rem) * 3);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2.5);display:flex}.review-pane-heading[data-v-efa68587]{min-width:calc(var(--spacing,.25rem) * 0);flex:1}.review-pane-eyebrow[data-v-efa68587]{margin:calc(var(--spacing,.25rem) * 0);--tw-tracking:.12em;letter-spacing:.12em;color:var(--color-zinc-400,oklch(70.5% .015 286.067));text-transform:uppercase;font-size:11px}.review-pane-title[data-v-efa68587]{margin:calc(var(--spacing,.25rem) * 0);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-900,oklch(21% .006 285.885));overflow:hidden}.review-pane-header-actions[data-v-efa68587]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);flex-shrink:0;display:flex}.review-pane-close[data-v-efa68587],.review-pane-mobile-files-button[data-v-efa68587],.review-pane-refresh[data-v-efa68587],.review-pane-bulk-button[data-v-efa68587],.review-pane-row-button[data-v-efa68587],.review-pane-primary-cta[data-v-efa68587]{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-white,#fff);padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:calc(var(--spacing,.25rem) * 1.25);color:var(--color-zinc-700,oklch(37% .013 285.805));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));border-radius:3.40282e38px;font-size:11px}@media(hover:hover){:is(.review-pane-close[data-v-efa68587],.review-pane-mobile-files-button[data-v-efa68587],.review-pane-refresh[data-v-efa68587],.review-pane-bulk-button[data-v-efa68587],.review-pane-row-button[data-v-efa68587],.review-pane-primary-cta[data-v-efa68587]):hover{background-color:var(--color-zinc-50,oklch(98.5% 0 0))}}:is(.review-pane-close[data-v-efa68587],.review-pane-mobile-files-button[data-v-efa68587],.review-pane-refresh[data-v-efa68587],.review-pane-bulk-button[data-v-efa68587],.review-pane-row-button[data-v-efa68587],.review-pane-primary-cta[data-v-efa68587]):disabled{cursor:default;opacity:.5}.review-pane-close[data-v-efa68587]{height:calc(var(--spacing,.25rem) * 7.5);width:calc(var(--spacing,.25rem) * 7.5);padding:calc(var(--spacing,.25rem) * 0);border-radius:3.40282e38px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.review-pane-toolbar[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 2);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2.5);flex-direction:column;display:flex}.review-pane-toolbar-controls[data-v-efa68587]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);flex-wrap:wrap;display:flex}.review-pane-control-cluster[data-v-efa68587]{min-width:calc(var(--spacing,.25rem) * 0);align-items:center;gap:calc(var(--spacing,.25rem) * 1.5);display:flex}.review-pane-control-label[data-v-efa68587]{--tw-font-weight:var(--font-weight-medium,500);font-size:10px;font-weight:var(--font-weight-medium,500);--tw-tracking:.08em;letter-spacing:.08em;color:var(--color-zinc-400,oklch(70.5% .015 286.067));text-transform:uppercase;flex-shrink:0}.review-pane-branch-dropdown[data-v-efa68587]{min-width:9rem}.review-pane-branch-dropdown[data-v-efa68587] .composer-dropdown-trigger{min-height:calc(var(--spacing,.25rem) * 7);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-white,#fff);padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:calc(var(--spacing,.25rem) * 1);--tw-font-weight:var(--font-weight-medium,500);font-size:11px;font-weight:var(--font-weight-medium,500);color:var(--color-zinc-700,oklch(37% .013 285.805));--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-radius:3.40282e38px}.review-pane-branch-dropdown[data-v-efa68587] .composer-dropdown-value{max-width:calc(var(--spacing,.25rem) * 36)}.review-pane-segmented[data-v-efa68587]{min-width:calc(var(--spacing,.25rem) * 0);align-items:center;gap:calc(var(--spacing,.25rem) * 1);background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding:calc(var(--spacing,.25rem) * 1);border-radius:3.40282e38px;display:inline-flex}.review-pane-segmented-button[data-v-efa68587]{min-width:calc(var(--spacing,.25rem) * 0);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:calc(var(--spacing,.25rem) * 1.25);--tw-font-weight:var(--font-weight-medium,500);font-size:11px;font-weight:var(--font-weight-medium,500);color:var(--color-zinc-500,oklch(55.2% .016 285.938));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));border-width:1px;border-color:#0000;border-radius:3.40282e38px;position:relative}.review-pane-segmented-button[data-v-efa68587]:before{content:"";margin-right:calc(var(--spacing,.25rem) * 1.5);height:calc(var(--spacing,.25rem) * 1.5);width:calc(var(--spacing,.25rem) * 1.5);background-color:var(--color-zinc-300,oklch(87.1% .006 286.286));vertical-align:middle;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));border-radius:3.40282e38px;display:inline-block}.review-pane-segmented-button[data-active=true][data-v-efa68587]{border-color:var(--color-sky-200,oklch(90.1% .058 230.902));background-color:var(--color-sky-600,oklch(58.8% .158 241.966));color:var(--color-white,#fff);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.review-pane-segmented-button[data-active=true][data-v-efa68587]:before{background-color:var(--color-white,#fff)}.review-pane-segmented-button[data-v-efa68587]:disabled{opacity:.45}.review-pane-toolbar-actions[data-v-efa68587]{align-items:center;gap:calc(var(--spacing,.25rem) * 1.5);flex-shrink:0;display:flex}.review-pane-refresh[data-v-efa68587]{border-color:var(--color-amber-300,oklch(87.9% .169 91.605));background-color:var(--color-amber-50,oklch(98.7% .022 95.277));color:var(--color-amber-900,oklch(41.4% .112 45.904))}@media(hover:hover){.review-pane-refresh[data-v-efa68587]:hover{background-color:var(--color-amber-100,oklch(96.2% .059 95.617))}}.review-pane-banner[data-v-efa68587]{margin-inline:calc(var(--spacing,.25rem) * 3);margin-top:calc(var(--spacing,.25rem) * 2.5);border-radius:var(--radius-xl,.75rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-amber-200,oklch(92.4% .12 95.746));background-color:var(--color-amber-50,oklch(98.7% .022 95.277));padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-amber-800,oklch(47.3% .137 46.201))}.review-pane-banner.is-error[data-v-efa68587]{border-color:var(--color-rose-200,oklch(89.2% .058 10.001));background-color:var(--color-rose-50,oklch(96.9% .015 12.422));color:var(--color-rose-700,oklch(51.4% .222 16.935))}.review-pane-meta[data-v-efa68587]{align-items:center;gap:calc(var(--spacing,.25rem) * 1.5);padding-inline:calc(var(--spacing,.25rem) * 3);padding-top:calc(var(--spacing,.25rem) * 2.5);color:var(--color-zinc-500,oklch(55.2% .016 285.938));flex-wrap:wrap;font-size:11px;display:flex}.review-pane-meta span[data-v-efa68587]{background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1);border-radius:3.40282e38px}.review-pane-summary-pill.review-pane-summary-pill-add[data-v-efa68587]{background-color:var(--color-emerald-100,oklch(95% .052 163.051));color:var(--color-emerald-700,oklch(50.8% .118 165.612))}.review-pane-summary-pill.review-pane-summary-pill-remove[data-v-efa68587]{background-color:var(--color-rose-100,oklch(94.1% .03 12.58));color:var(--color-rose-700,oklch(51.4% .222 16.935))}.review-pane-content[data-v-efa68587]{min-height:calc(var(--spacing,.25rem) * 0);flex:1;overflow:hidden}.review-pane-bulk-actions[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 1.5);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2.5);flex-wrap:nowrap;display:flex;overflow-x:auto}.review-pane-main[data-v-efa68587]{height:100%;min-height:calc(var(--spacing,.25rem) * 0);grid-template-columns:var(--review-file-list-width,18rem) .5rem minmax(0,1fr);display:grid}.review-pane-file-list[data-v-efa68587]{min-width:calc(var(--spacing,.25rem) * 0);border-right-style:var(--tw-border-style);border-right-width:1px;border-color:var(--color-zinc-100,oklch(96.7% .001 286.375));background-color:#fafafa99;display:none;overflow-y:auto}@supports (color:color-mix(in lab,red,red)){.review-pane-file-list[data-v-efa68587]{background-color:color-mix(in oklab,var(--color-zinc-50,oklch(98.5% 0 0)) 60%,transparent)}}.review-pane-file-list[data-v-efa68587]{padding:calc(var(--spacing,.25rem) * 2)}@media(min-width:48rem){.review-pane-file-list[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 1.5);flex-direction:column;display:flex}}.review-pane-file-list[data-v-efa68587]{container-type:inline-size}.review-pane-tree-folder[data-v-efa68587]{align-items:center;gap:calc(var(--spacing,.25rem) * 1);border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1.5);text-align:left;--tw-font-weight:var(--font-weight-medium,500);font-size:12px;font-weight:var(--font-weight-medium,500);color:var(--color-zinc-600,oklch(44.2% .017 285.786));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));border-width:1px;border-color:#0000;display:flex}@media(hover:hover){.review-pane-tree-folder[data-v-efa68587]:hover{background-color:var(--color-white,#fff);color:var(--color-zinc-900,oklch(21% .006 285.885))}}.review-pane-tree-folder[data-expanded=false][data-v-efa68587]{color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.review-pane-tree-folder-sheet[data-v-efa68587]{border-radius:var(--radius-md,.375rem);background-color:#fafafacc}@supports (color:color-mix(in lab,red,red)){.review-pane-tree-folder-sheet[data-v-efa68587]{background-color:color-mix(in oklab,var(--color-zinc-50,oklch(98.5% 0 0)) 80%,transparent)}}.review-pane-tree-caret[data-v-efa68587]{height:calc(var(--spacing,.25rem) * 3.5);width:calc(var(--spacing,.25rem) * 3.5);flex-shrink:0;position:relative}.review-pane-tree-caret[data-v-efa68587]:before{content:"";top:calc(var(--spacing,.25rem) * 1);left:calc(var(--spacing,.25rem) * 1);height:calc(var(--spacing,.25rem) * 0);width:calc(var(--spacing,.25rem) * 0);border-block-style:var(--tw-border-style);border-block-width:4px;border-left-style:var(--tw-border-style);border-left-width:5px;transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));border-block-color:#0000;border-left-color:currentColor;position:absolute}.review-pane-tree-caret[data-expanded=true][data-v-efa68587]:before{transform-origin:2px 4px;transform:rotate(90deg)}.review-pane-tree-folder-name[data-v-efa68587]{min-width:calc(var(--spacing,.25rem) * 0);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.review-pane-tree-folder-count[data-v-efa68587]{background-color:var(--color-zinc-200,oklch(92% .004 286.32));padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .5);--tw-font-weight:var(--font-weight-medium,500);font-size:10px;font-weight:var(--font-weight-medium,500);color:var(--color-zinc-500,oklch(55.2% .016 285.938));border-radius:3.40282e38px;flex-shrink:0}.review-pane-resizer[data-v-efa68587]{cursor:col-resize;background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));display:none;position:relative}@media(min-width:48rem){.review-pane-resizer[data-v-efa68587]{display:block}}.review-pane-resizer[data-v-efa68587]:before{content:"";inset-block:calc(var(--spacing,.25rem) * 0);--tw-translate-x: -50% ;width:1px;translate:var(--tw-translate-x) var(--tw-translate-y);background-color:var(--color-zinc-300,oklch(87.1% .006 286.286));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));position:absolute;left:50%}.review-pane-resizer[data-v-efa68587]:hover:before{background-color:var(--color-sky-500,oklch(68.5% .169 237.323))}.review-pane-file[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * .75);border-radius:var(--radius-xl,.75rem);border-style:var(--tw-border-style);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:calc(var(--spacing,.25rem) * 2);text-align:left;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));border-width:1px;border-color:#0000;flex-direction:column;display:flex}@media(hover:hover){.review-pane-file[data-v-efa68587]:hover{border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-white,#fff)}}.review-pane-tree-file[data-v-efa68587]{border-radius:var(--radius-lg,.5rem);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1.75)}.review-pane-file-meta-row[data-v-efa68587]{min-width:calc(var(--spacing,.25rem) * 0);justify-content:space-between;align-items:flex-start;gap:calc(var(--spacing,.25rem) * 2);display:flex}.review-pane-file[data-active=true][data-v-efa68587]{border-color:var(--color-zinc-300,oklch(87.1% .006 286.286));background-color:var(--color-white,#fff);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.review-pane-file-op[data-v-efa68587]{width:fit-content;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * .5);--tw-font-weight:var(--font-weight-medium,500);font-size:10px;font-weight:var(--font-weight-medium,500);--tw-tracking:.08em;letter-spacing:.08em;text-transform:uppercase;border-radius:3.40282e38px;display:inline-flex}.review-pane-file-op[data-operation=add][data-v-efa68587]{background-color:var(--color-emerald-100,oklch(95% .052 163.051));color:var(--color-emerald-800,oklch(43.2% .095 166.913))}.review-pane-file-op[data-operation=delete][data-v-efa68587]{background-color:var(--color-rose-100,oklch(94.1% .03 12.58));color:var(--color-rose-700,oklch(51.4% .222 16.935))}.review-pane-file-op[data-operation=rename][data-v-efa68587]{background-color:var(--color-sky-100,oklch(95.1% .026 236.824));color:var(--color-sky-700,oklch(50% .134 242.749))}.review-pane-file-op[data-operation=update][data-v-efa68587]{background-color:var(--color-amber-100,oklch(96.2% .059 95.617));color:var(--color-amber-800,oklch(47.3% .137 46.201))}.review-pane-file-path[data-v-efa68587]{min-width:calc(var(--spacing,.25rem) * 0);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-zinc-800,oklch(27.4% .006 286.033));overflow:hidden}.review-pane-file-delta[data-v-efa68587]{align-items:center;gap:calc(var(--spacing,.25rem) * 1);white-space:nowrap;flex-shrink:0;font-size:11px;display:inline-flex}@container (max-width:14rem){.review-pane-file-list .review-pane-file-meta-row[data-v-efa68587]{align-items:stretch;gap:calc(var(--spacing,.25rem) * 1);flex-direction:column}.review-pane-file-list .review-pane-file-delta[data-v-efa68587]{align-self:flex-start}}.review-pane-delta-add[data-v-efa68587]{color:var(--color-emerald-600,oklch(59.6% .145 163.225))}.review-pane-delta-remove[data-v-efa68587]{color:var(--color-rose-600,oklch(58.6% .253 17.585))}.review-pane-delta-separator[data-v-efa68587]{color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.review-pane-diff[data-v-efa68587]{min-height:calc(var(--spacing,.25rem) * 0);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 3);overflow-y:auto}.review-pane-file-header[data-v-efa68587],.review-pane-hunk[data-v-efa68587]{border-radius:var(--radius-2xl,1rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-white,#fff)}.review-pane-file-header[data-v-efa68587]{margin-bottom:calc(var(--spacing,.25rem) * 3);justify-content:space-between;align-items:flex-start;gap:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2.5);flex-wrap:wrap;display:flex}.review-pane-file-title[data-v-efa68587]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);word-break:break-all;color:var(--color-zinc-900,oklch(21% .006 285.885))}.review-pane-file-subtitle[data-v-efa68587],.review-pane-hunk-meta[data-v-efa68587]{margin:calc(var(--spacing,.25rem) * 0);color:var(--color-zinc-500,oklch(55.2% .016 285.938));font-size:11px}.review-pane-row-actions[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 1.5);flex-wrap:wrap;display:flex}.review-pane-hunks[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 2.5);flex-direction:column;display:flex}.review-pane-hunk[data-v-efa68587]{overflow:hidden}.review-pane-hunk[data-active=true][data-v-efa68587]{border-color:var(--color-zinc-400,oklch(70.5% .015 286.067));--tw-shadow:0 0 0 1px var(--tw-shadow-color,#18181b14);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.review-pane-hunk-header[data-v-efa68587]{justify-content:space-between;align-items:flex-start;gap:calc(var(--spacing,.25rem) * 2);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-zinc-100,oklch(96.7% .001 286.375));background-color:#fafafab3;flex-wrap:wrap;display:flex}@supports (color:color-mix(in lab,red,red)){.review-pane-hunk-header[data-v-efa68587]{background-color:color-mix(in oklab,var(--color-zinc-50,oklch(98.5% 0 0)) 70%,transparent)}}.review-pane-hunk-header[data-v-efa68587]{padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2.5)}.review-pane-hunk-title[data-v-efa68587]{margin:calc(var(--spacing,.25rem) * 0);font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-800,oklch(27.4% .006 286.033))}.review-pane-lines[data-v-efa68587]{background-color:var(--color-zinc-950,oklch(14.1% .005 285.823));padding-inline:calc(var(--spacing,.25rem) * 0);padding-block:calc(var(--spacing,.25rem) * 0);font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-100,oklch(96.7% .001 286.375));overflow-x:auto}.review-pane-line[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 0);grid-template-columns:3.5rem 3.5rem 1.5rem minmax(0,1fr);min-width:max-content;display:grid}.review-pane-line-number[data-v-efa68587]{padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:calc(var(--spacing,.25rem) * 1);text-align:right;color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.review-pane-line-marker[data-v-efa68587]{padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1);text-align:center;color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.review-pane-line-code[data-v-efa68587]{padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:calc(var(--spacing,.25rem) * 1);word-break:break-all;white-space:pre-wrap;display:block}.review-pane-line[data-kind=add][data-v-efa68587]{background-color:#002c2299}@supports (color:color-mix(in lab,red,red)){.review-pane-line[data-kind=add][data-v-efa68587]{background-color:color-mix(in oklab,var(--color-emerald-950,oklch(26.2% .051 172.552)) 60%,transparent)}}.review-pane-line[data-kind=add][data-v-efa68587]{color:var(--color-emerald-100,oklch(95% .052 163.051))}.review-pane-line[data-kind=remove][data-v-efa68587]{background-color:#4d021899}@supports (color:color-mix(in lab,red,red)){.review-pane-line[data-kind=remove][data-v-efa68587]{background-color:color-mix(in oklab,var(--color-rose-950,oklch(27.1% .105 12.094)) 60%,transparent)}}.review-pane-line[data-kind=remove][data-v-efa68587]{color:var(--color-rose-100,oklch(94.1% .03 12.58))}.review-pane-line[data-kind=add] .review-pane-line-marker[data-v-efa68587],.review-pane-line[data-kind=add] .review-pane-line-code[data-v-efa68587]{color:var(--color-emerald-300,oklch(84.5% .143 164.978))}.review-pane-line[data-kind=remove] .review-pane-line-marker[data-v-efa68587],.review-pane-line[data-kind=remove] .review-pane-line-code[data-v-efa68587]{color:var(--color-rose-300,oklch(81% .117 11.638))}.review-pane-line[data-kind=hunk][data-v-efa68587]{background-color:#052f4ab3}@supports (color:color-mix(in lab,red,red)){.review-pane-line[data-kind=hunk][data-v-efa68587]{background-color:color-mix(in oklab,var(--color-sky-950,oklch(29.3% .066 243.157)) 70%,transparent)}}.review-pane-line[data-kind=hunk][data-v-efa68587]{color:var(--color-sky-200,oklch(90.1% .058 230.902))}.review-pane-line[data-kind=meta][data-v-efa68587]{background-color:var(--color-zinc-900,oklch(21% .006 285.885));color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.review-pane-raw-diff[data-v-efa68587]{border-radius:var(--radius-2xl,1rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-zinc-950,oklch(14.1% .005 285.823));padding:calc(var(--spacing,.25rem) * 3);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-100,oklch(96.7% .001 286.375));overflow-x:auto}.review-pane-raw-diff pre[data-v-efa68587]{margin:calc(var(--spacing,.25rem) * 0);font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);word-break:break-all;white-space:pre-wrap}.review-pane-empty[data-v-efa68587]{height:100%;min-height:calc(var(--spacing,.25rem) * 0);padding-inline:calc(var(--spacing,.25rem) * 6);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.review-pane-empty-title[data-v-efa68587]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-900,oklch(21% .006 285.885))}.review-pane-empty-text[data-v-efa68587]{margin-top:calc(var(--spacing,.25rem) * 2);max-width:var(--container-sm,24rem);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.review-pane-primary-cta[data-v-efa68587]{margin-top:calc(var(--spacing,.25rem) * 4);border-color:var(--color-emerald-600,oklch(59.6% .145 163.225));background-color:var(--color-emerald-600,oklch(59.6% .145 163.225));color:var(--color-white,#fff)}@media(hover:hover){.review-pane-primary-cta[data-v-efa68587]:hover{background-color:var(--color-emerald-700,oklch(50.8% .118 165.612))}}.review-pane-sheet-backdrop[data-v-efa68587]{inset:calc(var(--spacing,.25rem) * 0);z-index:50;background-color:#0000004d;position:fixed}@supports (color:color-mix(in lab,red,red)){.review-pane-sheet-backdrop[data-v-efa68587]{background-color:color-mix(in oklab,var(--color-black,#000) 30%,transparent)}}.review-pane-sheet[data-v-efa68587]{inset-inline:calc(var(--spacing,.25rem) * 0);bottom:calc(var(--spacing,.25rem) * 0);border-top-left-radius:var(--radius-3xl,1.5rem);border-top-right-radius:var(--radius-3xl,1.5rem);background-color:var(--color-white,#fff);padding-inline:calc(var(--spacing,.25rem) * 4);padding-top:calc(var(--spacing,.25rem) * 3);padding-bottom:calc(var(--spacing,.25rem) * 6);--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);position:absolute}.review-pane-sheet-handle[data-v-efa68587]{margin-inline:auto;margin-bottom:calc(var(--spacing,.25rem) * 3);height:calc(var(--spacing,.25rem) * 1.5);width:calc(var(--spacing,.25rem) * 12);background-color:var(--color-zinc-300,oklch(87.1% .006 286.286));border-radius:3.40282e38px}.review-pane-sheet-header[data-v-efa68587]{margin-bottom:calc(var(--spacing,.25rem) * 3);justify-content:space-between;align-items:center;display:flex}.review-pane-sheet-title[data-v-efa68587]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-900,oklch(21% .006 285.885))}.review-pane-sheet-count[data-v-efa68587]{margin:calc(var(--spacing,.25rem) * 0);background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1);color:var(--color-zinc-500,oklch(55.2% .016 285.938));border-radius:3.40282e38px;font-size:11px}.review-pane-sheet-list[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 2);max-height:60vh;padding-bottom:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex;overflow-y:auto}.review-pane-sheet-enter-active[data-v-efa68587],.review-pane-sheet-leave-active[data-v-efa68587]{transition:opacity .16s}.review-pane-sheet-enter-active .review-pane-sheet[data-v-efa68587],.review-pane-sheet-leave-active .review-pane-sheet[data-v-efa68587]{transition:transform .2s}.review-pane-sheet-enter-from[data-v-efa68587],.review-pane-sheet-leave-to[data-v-efa68587]{opacity:0}.review-pane-sheet-enter-from .review-pane-sheet[data-v-efa68587],.review-pane-sheet-leave-to .review-pane-sheet[data-v-efa68587]{transform:translateY(16px)}@media(max-width:767px){.review-pane-header[data-v-efa68587]{padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2)}.review-pane-eyebrow[data-v-efa68587]{font-size:10px}.review-pane-title[data-v-efa68587]{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:calc(var(--spacing,.25rem) * 5);line-height:calc(var(--spacing,.25rem) * 5)}.review-pane-header-actions[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 1.5)}.review-pane-close[data-v-efa68587],.review-pane-mobile-files-button[data-v-efa68587],.review-pane-refresh[data-v-efa68587]{padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:calc(var(--spacing,.25rem) * 1);font-size:12px}.review-pane-close[data-v-efa68587]{height:calc(var(--spacing,.25rem) * 7);width:calc(var(--spacing,.25rem) * 7)}.review-pane-toolbar[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 1.5);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2)}.review-pane-toolbar-controls[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 1.5);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}.review-pane-control-cluster[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 1)}.review-pane-control-label[data-v-efa68587]{font-size:9px}.review-pane-branch-dropdown[data-v-efa68587]{min-width:calc(var(--spacing,.25rem) * 0);flex:1}.review-pane-branch-dropdown[data-v-efa68587] .composer-dropdown-trigger{padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * .75);font-size:12px}.review-pane-segmented[data-v-efa68587]{justify-content:space-between;gap:calc(var(--spacing,.25rem) * 1);width:100%;padding:calc(var(--spacing,.25rem) * .75)}.review-pane-segmented-button[data-v-efa68587]{padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1);flex:1;font-size:12px}.review-pane-toolbar-actions[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 1);width:auto}.review-pane-refresh[data-v-efa68587]{padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:calc(var(--spacing,.25rem) * 1);font-size:12px}.review-pane-banner[data-v-efa68587]{margin-inline:calc(var(--spacing,.25rem) * 3);margin-top:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:calc(var(--spacing,.25rem) * 1.5);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}.review-pane-meta[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 1);padding-inline:calc(var(--spacing,.25rem) * 3);padding-top:calc(var(--spacing,.25rem) * 2)}.review-pane-meta span[data-v-efa68587]{padding-inline:calc(var(--spacing,.25rem) * 1.75);padding-block:calc(var(--spacing,.25rem) * .75);font-size:11px}.review-pane-bulk-actions[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 1);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2)}.review-pane-bulk-button[data-v-efa68587]{padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:calc(var(--spacing,.25rem) * 1);font-size:12px}.review-pane-main[data-v-efa68587]{height:100%;min-height:calc(var(--spacing,.25rem) * 0);flex-direction:column;display:flex}.review-pane-resizer[data-v-efa68587]{display:none}.review-pane-diff[data-v-efa68587]{min-height:calc(var(--spacing,.25rem) * 0);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 2.5);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;overflow-y:auto}.review-pane-file-header[data-v-efa68587],.review-pane-hunk-header[data-v-efa68587]{padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:calc(var(--spacing,.25rem) * 2)}.review-pane-sheet[data-v-efa68587]{padding-inline:calc(var(--spacing,.25rem) * 3);padding-top:calc(var(--spacing,.25rem) * 2.5);padding-bottom:calc(var(--spacing,.25rem) * 4)}.review-pane-sheet-handle[data-v-efa68587]{margin-bottom:calc(var(--spacing,.25rem) * 2);height:calc(var(--spacing,.25rem) * 1.25);width:calc(var(--spacing,.25rem) * 11)}.review-pane-sheet-header[data-v-efa68587]{margin-bottom:calc(var(--spacing,.25rem) * 2)}.review-pane-sheet-title[data-v-efa68587]{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}.review-pane-sheet-count[data-v-efa68587]{padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .75);font-size:10px}.review-pane-sheet-list[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 1.5);padding-bottom:calc(var(--spacing,.25rem) * 2)}.review-pane-sheet-list .review-pane-tree-folder[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 1);border-radius:var(--radius-md,.375rem);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1);font-size:12px}.review-pane-sheet-list .review-pane-tree-folder-count[data-v-efa68587]{padding-inline:calc(var(--spacing,.25rem) * 1.25);padding-block:calc(var(--spacing,.25rem) * .25);font-size:9px}.review-pane-sheet-list .review-pane-file[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * .5);border-radius:var(--radius-lg,.5rem);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1.5)}.review-pane-sheet-list .review-pane-file-meta-row[data-v-efa68587]{gap:calc(var(--spacing,.25rem) * 1.5)}.review-pane-sheet-list .review-pane-file-op[data-v-efa68587]{padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .25);font-size:9px}.review-pane-sheet-list .review-pane-file-path[data-v-efa68587]{--tw-leading:calc(var(--spacing,.25rem) * 5);font-size:13px;line-height:calc(var(--spacing,.25rem) * 5)}.review-pane-sheet-list .review-pane-file-delta[data-v-efa68587]{font-size:11px}}@media(min-width:768px){.review-pane-toolbar[data-v-efa68587]{align-items:center;gap:calc(var(--spacing,.25rem) * 2.5);flex-direction:row}.review-pane-toolbar-controls[data-v-efa68587]{min-width:calc(var(--spacing,.25rem) * 0);flex-wrap:nowrap}.review-pane-control-cluster[data-v-efa68587]{flex-shrink:0}.review-pane-toolbar-actions[data-v-efa68587]{margin-left:auto}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-leading{syntax:"*";inherits:false}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import{_ as Ft,o as r,c as l,a as d,d as ds,u as hs,w as ce,n as At,b as fs,e as ps,t as f,f as _,F as y,r as b,g as $,h as q,i as K,j as ms,k as Pe,I as vs,l as ks,m as gs,p as Vn,q as st,s as St,v as qn,T as _s,x as C,y as I,z as ys,A as ws,B as Kn,C as bs,D as xs,E as Cs,G as $s}from"./index-Dp2k2aGg.js";const Ls={},Ts={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function Ms(T,J){return r(),l("svg",Ts,[...J[0]||(J[0]=[d("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 14L4 9l5-5m-5 5h11a4 4 0 0 1 0 8H4"},null,-1)])])}const Zn=Ft(Ls,[["render",Ms]]),Is={},Ps={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function As(T,J){return r(),l("svg",Ps,[...J[0]||(J[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 Ss=Ft(Is,[["render",As]]),Es={key:0,class:"conversation-loading"},Fs={key:1,class:"conversation-empty"},Bs={key:0,class:"conversation-load-more"},Rs=["disabled"],Hs=["data-role","data-message-type"],Os={key:0,class:"message-row","data-role":"system"},zs={class:"message-stack","data-role":"system"},Ws=["onClick"],js={class:"cmd-group-label"},Ds={class:"cmd-status"},Us={class:"cmd-group-inner"},Ns=["onClick"],Vs={class:"cmd-label"},qs={class:"cmd-status"},Ks={class:"cmd-output-inner"},Zs=["textContent"],Gs=["onClick"],Xs={class:"cmd-label"},Js={class:"cmd-status"},Ys={class:"cmd-output-inner"},Qs=["textContent"],eo=["data-role","data-message-type"],to=["data-role"],no=["data-role"],io={key:0,class:"file-change-summary-block"},so=["onClick"],oo={class:"file-change-summary-label"},ao={class:"file-change-summary-status"},ro=["data-tone"],lo={class:"file-change-panel-inner"},co={class:"file-change-list"},uo=["data-operation"],ho=["title","onClick"],fo={key:0,class:"file-change-arrow"},po=["title","onClick"],mo={key:2,class:"file-change-delta"},vo=["data-tone"],ko={key:0,class:"file-change-actions"},go={key:0,class:"file-change-action-error"},_o=["disabled","title","aria-label","onClick"],yo=["data-role","data-message-type"],wo=["data-role"],bo=["data-role"],xo=["data-role"],Co=["onClick"],$o=["src","alt"],Lo={key:1,class:"message-file-attachments"},To=["href","title"],Mo={key:2,class:"message-skill-attachments"},Io=["href","title"],Po={class:"message-skill-chip-name"},Ao=["data-role"],So={key:0,class:"automation-message-label"},Eo={key:0},Fo={key:1,class:"worked-separator-wrap","aria-live":"polite"},Bo=["onClick"],Ro={class:"worked-separator-text"},Ho={key:0,class:"worked-details"},Oo=["onClick"],zo={class:"cmd-label"},Wo={class:"cmd-status"},jo={class:"cmd-output-inner"},Do=["textContent"],Uo=["data-streaming"],No={class:"plan-card-header"},Vo={key:0,class:"plan-card-badge"},qo=["innerHTML"],Ko={key:1,class:"plan-step-list"},Zo=["data-status"],Go=["data-status"],Xo=["innerHTML"],Jo=["innerHTML"],Yo={key:3,class:"plan-card-actions"},Qo=["onClick"],ea={key:0,class:"message-text"},ta={key:0},na={key:1,class:"message-bold-text"},ia={key:2,class:"message-italic-text"},sa={key:3,class:"message-strikethrough-text"},oa=["href","title"],aa=["href","title"],ra={key:6,class:"message-inline-code"},la={key:0},ca={key:1,class:"message-bold-text"},ua={key:2,class:"message-italic-text"},da={key:3,class:"message-strikethrough-text"},ha=["href","title"],fa=["href","title"],pa={key:6,class:"message-inline-code"},ma={key:2,class:"message-blockquote"},va={key:0},ka={key:1,class:"message-bold-text"},ga={key:2,class:"message-italic-text"},_a={key:3,class:"message-strikethrough-text"},ya=["href","title"],wa=["href","title"],ba={key:6,class:"message-inline-code"},xa={key:3,class:"message-list message-list-unordered"},Ca=["innerHTML"],$a={key:4,class:"message-list message-task-list"},La=["data-checked"],Ta={class:"message-list-item-text"},Ma={key:0},Ia={key:1,class:"message-bold-text"},Pa={key:2,class:"message-italic-text"},Aa={key:3,class:"message-strikethrough-text"},Sa=["href","title"],Ea=["href","title"],Fa={key:6,class:"message-inline-code"},Ba=["start"],Ra=["innerHTML"],Ha={key:6,class:"message-table-wrap"},Oa={class:"message-table"},za={key:0},Wa={key:1,class:"message-bold-text"},ja={key:2,class:"message-italic-text"},Da={key:3,class:"message-strikethrough-text"},Ua=["href","title"],Na=["href","title"],Va={key:6,class:"message-inline-code"},qa={key:0},Ka={key:0},Za={key:1,class:"message-bold-text"},Ga={key:2,class:"message-italic-text"},Xa={key:3,class:"message-strikethrough-text"},Ja=["href","title"],Ya=["href","title"],Qa={key:6,class:"message-inline-code"},er={key:7,class:"message-code-block"},tr={key:0,class:"message-code-language"},nr={class:"message-code-pre"},ir=["innerHTML"],sr={key:8,class:"message-divider"},or={key:9,class:"message-text"},ar=["onClick"],rr=["src","alt","onError"],lr=["href","onClick"],cr={key:4,class:"file-change-summary-block file-change-summary-block-inline"},ur=["onClick"],dr={class:"file-change-summary-label"},hr={class:"file-change-summary-status"},fr=["data-tone"],pr={class:"file-change-panel-inner"},mr={class:"file-change-list"},vr=["data-operation"],kr=["title","onClick"],gr={key:0,class:"file-change-arrow"},_r=["title","onClick"],yr={key:2,class:"file-change-delta"},wr=["data-tone"],br={key:0,class:"file-change-actions"},xr={key:0,class:"file-change-action-error"},Cr=["disabled","title","aria-label","onClick"],$r=["data-role"],Lr=["onClick"],Tr=["onClick"],Mr=["data-copied","aria-label","title","onClick"],Ir={class:"message-copy-label"},Pr={key:1,class:"conversation-item conversation-item-overlay"},Ar={class:"message-row"},Sr={class:"message-stack"},Er={class:"live-overlay-inline","aria-live":"polite"},Fr={class:"live-overlay-label"},Br={key:0,class:"live-overlay-reasoning"},Rr={key:1,class:"live-overlay-error"},Hr=["href"],Or=["src"],zr={key:0,class:"diff-viewer-sidebar"},Wr={class:"diff-viewer-sidebar-header"},jr={class:"diff-viewer-sidebar-count"},Dr={class:"diff-viewer-sidebar-list"},Ur=["data-active","onClick"],Nr=["data-operation"],Vr={class:"diff-viewer-file-label"},qr={key:0,class:"diff-viewer-file-delta"},Kr={class:"diff-viewer-main"},Zr={class:"diff-viewer-toolbar"},Gr={class:"diff-viewer-title-wrap"},Xr={class:"diff-viewer-title"},Jr={class:"diff-viewer-subtitle"},Yr={key:0},Qr={class:"diff-viewer-toolbar-actions"},el={key:0,class:"diff-viewer-empty"},tl={key:1,class:"diff-viewer-panel"},nl={class:"diff-viewer-meta"},il={class:"diff-viewer-language"},sl={class:"diff-viewer-lines"},ol=["data-kind"],al={class:"diff-viewer-line-number"},rl={class:"diff-viewer-line-number"},ll={class:"diff-viewer-line-marker"},cl=["innerHTML"],ul={class:"diff-viewer-mobile-sheet-header"},dl={class:"diff-viewer-sidebar-count"},hl={class:"diff-viewer-mobile-sheet-list"},fl=["data-active","onClick"],pl=["data-operation"],ml={class:"diff-viewer-file-label"},vl={key:0,class:"diff-viewer-file-delta"},kl=16,gl=300,_l=1200,yl=300,wl=250,Et=50,bl=30,xl=200,Cl=ds({__name:"ThreadConversation",props:{messages:{},pendingRequests:{},liveOverlay:{},isLoading:{type:Boolean},activeThreadId:{},cwd:{},hasMorePersistedAbove:{type:Boolean},isLoadingPersistedAbove:{type:Boolean},loadEarlierMessages:{type:Function}},emits:["forkThread","rollback","implementPlan","respondServerRequest"],setup(T,{expose:J,emit:Gn}){const _e=C(new Set),Z=C(new Set),ye=C(new Set),ot=C(new Set),we=C(new Set),at=C(null),Ae=C(""),Y=C(!1),Bt=C(null),be=C(!1),Rt=C(0),Ht=C(0),rt=C(""),lt=C(""),{isMobile:Se}=hs(),{buildFeedbackMailto:Ot,feedbackMailtoBase:Xn,recordVisibleFailure:zt}=xs(),Wt=Xn();function Jn(e,n){zt(n);const t=e.currentTarget;t instanceof HTMLAnchorElement&&(t.href=Ot())}function Yn(e,n){zt(n);const t=e.currentTarget;t instanceof HTMLAnchorElement&&(t.href=Ot())}function Qn(e){var i;const n=e.replace(/\r\n/g,`
|
|
2
|
+
`).trim();if(!n)return null;const t=[],s=[];for(const a of n.split(`
|
|
3
|
+
`)){const c=a.trim();if(!c){t.length===0&&s.push("");continue}const o=c.match(/^[-*]\s+\[([ xX~>|-])\]\s+(.+)$/);if(o){const u=(o[1]??" ").toLowerCase();let h="pending";u==="x"&&(h="completed"),(u==="~"||u===">"||u==="-")&&(h="inProgress"),t.push({step:((i=o[2])==null?void 0:i.trim())??"",status:h});continue}s.push(c)}return t.length===0?null:{explanation:s.join(`
|
|
4
|
+
`).trim(),steps:t.filter(a=>a.step.length>0)}}function ct(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}:Qn(e.text)}function W(e){return e.messageType==="commandExecution"&&!!e.commandExecution}function ut(e){return e.messageType==="plan"||e.messageType==="plan.live"}function ei(e){return e.messageType==="turnError"}function ti(e){return ut(e)&&e.messageType!=="plan.live"&&e.role==="assistant"&&!!e.turnId}function ni(e){var t;const n=((t=e.turnId)==null?void 0:t.trim())??"";n&>("implementPlan",{turnId:n})}function dt(e){return e.messageType==="fileChange"&&e.fileChangeStatus==="completed"&&Array.isArray(e.fileChanges)&&e.fileChanges.length>0}function Ee(e){return e.role==="assistant"&&!W(e)&&e.messageType!=="worked"&&!(e.messageType??"").endsWith(".live")}const ht=I(()=>{var e;for(let n=g.messages.length-1;n>=0;n-=1){const t=g.messages[n];if(t.messageType==="commandExecution"&&((e=t.commandExecution)==null?void 0:e.status)==="inProgress")return t.id}return""}),jt=I(()=>g.messages.some(e=>e.role==="assistant"&&e.messageType==="agentMessage.live"&&e.text.trim().length>0)),Dt=I(()=>!!g.liveOverlay||ht.value.length>0||jt.value),ft=I(()=>{const e={};for(let n=0;n<g.messages.length;){const t=g.messages[n];if(!W(t)){n+=1;continue}const s=[];for(;n<g.messages.length&&W(g.messages[n]);)s.push(g.messages[n]),n+=1;if(s.length<=1)continue;const i=s[s.length-1];e[i.id]=s.slice(0,-1)}return e}),ii=I(()=>{const e=new Set;for(const n of Object.values(ft.value))for(const t of n)e.add(t.id);return e});function Ut(e){var n;return((n=ct(e))==null?void 0:n.explanation)??""}function Nt(e){var n;return((n=ct(e))==null?void 0:n.steps)??[]}function si(e){switch(e){case"completed":return"✓";case"inProgress":return"•";default:return"○"}}function Vt(e){return!jt.value&&e.id===ht.value}function j(e){return W(e)?_e.value.has(e.id)||!Z.value.has(e.id)&&Vt(e):!1}function pt(e){return W(e)&&Dt.value}function mt(e){var n;return W(e)&&(Dt.value||((n=e.commandExecution)==null?void 0:n.status)==="inProgress")}function vt(e){if(!W(e))return;const n=new Set(_e.value),t=new Set(Z.value),s=Vt(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)),_e.value=n,Z.value=t}function Fe(e){return ft.value[e.id]??[]}function qt(e){return W(e)?[...Fe(e),e]:[]}function oi(e){if(Fe(e).length===0)return;const t=new Set(ye.value);t.has(e.id)?t.delete(e.id):t.add(e.id),ye.value=t}function kt(e){return ye.value.has(e.id)}function ai(e){var a,c;const t=qt(e).length,s=((c=(a=e.commandExecution)==null?void 0:a.command)==null?void 0:c.trim())||"(command)";return`${t===1?"1 command":`${t} commands`} · latest: ${s}`}function ri(e){return Re(e)}function li(e){const n=new Set(ot.value);n.has(e.id)?n.delete(e.id):n.add(e.id),ot.value=n}function Kt(e){return ot.value.has(e.id)}function Zt(e){const n=new Set(we.value);n.has(e.id)?n.delete(e.id):n.add(e.id),we.value=n}function ue(e){return we.value.has(e.id)}function S(e){return`${e.path}\0${e.movedToPath??""}`}function Be(e,n){e&&(at.value=e,Ae.value=S(n),Y.value=!1)}function Gt(){at.value=null,Ae.value="",Y.value=!1}function ci(){Y.value=!Y.value}function ui(){Y.value=!1}function Xt(e){Ae.value=S(e),Se.value&&(Y.value=!1)}function Re(e){const n=e.commandExecution;if(!n)return"";const t=pt(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 He(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 Oe(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 di(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 g=T,gt=Gn,Q=C(null),Jt=C(null),xe=C(""),ee=C(""),E=C({}),G=C({}),H=C({}),X=C(!0),Yt={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 te=0,O=0,ze=0,ne=null,Ce=null;const Qt=new WeakSet,We=C(null),de=C(0),en=C(0);let je=null;const $e=new Map,Le=new Map,he=new Map,fe=new Map;function De(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 z=C(0),ie=C(!1),hi=I(()=>g.messages.slice(z.value)),_t=I(()=>z.value>0||g.hasMorePersistedAbove===!0),fi=I(()=>!X.value&&(g.messages.length>0||g.pendingRequests.length>0||!!g.liveOverlay));function pi(){return We.value?Promise.resolve():(je||(je=ys(()=>import("./common-BeuopZEI.js"),[]).then(e=>{We.value=e.default,fe.clear(),he.clear(),de.value+=1}).finally(()=>{je=null})),je)}function mi(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 Ue(e){return e.replace(/\\/gu,"/").split("/").filter(Boolean).pop()||e}function pe(e){return e.replace(/\\/gu,"/")}function tn(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 vi(e){const n=pe(e),t=n.match(/^\/Users\/([^/]+)/u);if(t)return`/Users/${t[1]}`;const s=n.match(/^\/home\/([^/]+)/u);return s?`/home/${s[1]}`:""}function me(e){const n=pe(e);if(!n)return n;let t="",s=n;const i=s.match(/^([A-Za-z]:)(\/.*)?$/u);i?(t=`${i[1]}/`,s=(i[2]??"").replace(/^\/+/u,"")):s.startsWith("/")&&(t="/",s=s.slice(1));const a=s.split("/").filter(Boolean),c=[];for(const u of a)if(u!=="."){if(u===".."){c.length>0&&c.pop();continue}c.push(u)}const o=c.join("/");return t?`${t}${o}`.replace(/\/+$/u,"")||t:o||n}function nn(e,n){const t=pe(tn(e.trim()));if(!t)return"";if(t.startsWith("/")||/^[A-Za-z]:\//u.test(t))return me(t);if(t.startsWith("~/")){const a=vi(n);if(a)return me(`${a}/${t.slice(2)}`)}const i=pe(n.trim());return me(i?`${i.replace(/\/+$/u,"")}/${t}`:t)}function Te(e){if(!e)return null;let n=e.trim();n=Ne(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=tn(n),mi(n)?{path:n,line:s}:null}function Ne(e){let n=e,t="",s="";const i={"(":")","[":"]","{":"}","<":">",'"':'"',"'":"'","`":"`","“":"”","‘":"’"};for(;n.length>0;){const a=n[0],c=Object.prototype.hasOwnProperty.call(i,a)?i[a]:"";if(!c||!n.endsWith(c))break;t+=a,s+=c,n=n.slice(1,-1)}return{core:n,leading:t,trailing:s}}function sn(e,n,t){let s=0,i=n-1;for(;i>=t&&e[i]==="*";)s+=1,i-=1;return s}function ki(e,n){let t=0,s=n;for(;s<e.length&&e[s]==="*";)t+=1,s+=1;return t}function on(e,n,t,s,i){const a=sn(e,n,s);return a<2?null:ki(e,t)>=a?{segmentStart:n-a,segmentEnd:t+a,tokenEndTrim:0}:sn(i,i.length,0)>=a?{segmentStart:n-a,segmentEnd:t,tokenEndTrim:a}:null}function yt(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
|
+
`)||i.includes(`
|
|
6
|
+
`))return null;const a=Ne(s).core.trim()||s,c=Ne(i).core.trim();return c?{label:a,target:c}:null}function Ve(e){const n=e.trim().match(/^codex:\/\/threads\/([A-Za-z0-9-]+)$/u);if(!n)return null;if(typeof window>"u")return`/#/thread/${n[1]}`;const t=window.location.pathname.replace(/\/?$/u,"/");return`${window.location.origin}${t}#/thread/${n[1]}`}function an(e){const n=Math.min(6,Math.max(1,Math.trunc(e)));return`h${String(n)}`}function rn(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 gi(e){switch(e){case"completed":return"[x]";case"inProgress":return"[~]";default:return"[ ]"}}function _i(e){var s;const n=ct(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=>`- ${gi(i.status)} ${i.step}`.trim()).join(`
|
|
7
|
+
`)),t.join(`
|
|
8
|
+
|
|
9
|
+
`).trim()}function yi(e){const n=[],t=e.text.trim()||_i(e),s=ut(e)&&t?`Plan
|
|
10
|
+
${t}`:t;s&&n.push(s);const i=(e.fileAttachments??[]).map(c=>c.path.trim()).filter(c=>c.length>0);i.length>0&&n.push(`Files:
|
|
11
|
+
${i.join(`
|
|
12
|
+
`)}`);const a=(e.images??[]).map(c=>c.trim()).filter(c=>c.length>0);return a.length>0&&n.push(`Images:
|
|
13
|
+
${a.join(`
|
|
14
|
+
`)}`),n.join(`
|
|
15
|
+
|
|
16
|
+
`).trim()}const ln=I(()=>{var t;const e=new Map;for(const s of g.messages){if(!Ee(s))continue;const i=yi(s);if(!i)continue;const a=typeof s.turnIndex=="number"?`turn:${s.turnIndex}`:`message:${s.id}`,c=e.get(a);if(c){c.anchorMessageId=s.id,c.parts.push(i);continue}e.set(a,{anchorMessageId:s.id,parts:[i]})}const n={};for(const s of e.values()){const i=s.parts.join(`
|
|
17
|
+
|
|
18
|
+
`).trim();i&&(n[s.anchorMessageId]=i)}for(const[s,i]of Object.entries(qe.value)){if(i.source!=="metadata")continue;const a=Ti(i);if(!a)continue;const c=(t=n[s])==null?void 0:t.trim();n[s]=c?`${c}
|
|
19
|
+
|
|
20
|
+
${a}`:a}return n}),cn=I(()=>{const e=new Map;for(const t of g.messages){if(!Ee(t)||typeof t.turnIndex!="number")continue;const s=`turn:${t.turnIndex}`,i=e.get(s);if(i){i.anchorMessageId=t.id,i.turnIndex=t.turnIndex;continue}e.set(s,{anchorMessageId:t.id,turnIndex:t.turnIndex})}const n={};for(const t of e.values())n[t.anchorMessageId]=t.turnIndex;return n});function un(e){return typeof ln.value[e.id]=="string"}function wi(e){return typeof cn.value[e.id]=="number"}function bi(e,n){return e?!n||e===n?e:`${e}
|
|
21
|
+
${n}`.trim():n}function xi(e,n){const t=e.operation==="add"||n.operation==="add"?"add":e.operation==="delete"||n.operation==="delete"?"delete":"update";return{path:n.path||e.path,operation:t,movedToPath:n.movedToPath??e.movedToPath??null,diff:bi(e.diff,n.diff),addedLineCount:e.addedLineCount+n.addedLineCount,removedLineCount:e.removedLineCount+n.removedLineCount}}function Ci(e,n){const t=e.operation==="add"?0:e.operation==="update"?1:2,s=n.operation==="add"?0:n.operation==="update"?1:2;if(t!==s)return t-s;const i=`${e.path}\0${e.movedToPath??""}`,a=`${n.path}\0${n.movedToPath??""}`;return i.localeCompare(a)}function wt(e){const n=new Map;for(const t of e){const s=`${t.path}\0${t.movedToPath??""}`,i=n.get(s);n.set(s,i?xi(i,t):{...t})}return Array.from(n.values()).sort(Ci)}const qe=I(()=>{var i,a;const e=new Map,n=new Map,t=new Map;for(const c of g.messages){if(Ee(c)&&typeof c.turnIndex=="number"&&(e.set(`turn:${c.turnIndex}`,c.id),Array.isArray(c.fileChanges)&&c.fileChanges.length>0&&n.set(c.id,{changes:wt(c.fileChanges),sourceMessageIds:[],source:"assistant",turnId:c.turnId??""})),!dt(c))continue;const o=typeof c.turnIndex=="number"?`turn:${c.turnIndex}`:`message:${c.id}`,u=t.get(o);u?u.push(c):t.set(o,[c])}const s={};for(const[c,o]of t.entries()){const u=e.get(c);if(!u)continue;const h=((i=n.get(u))==null?void 0:i.turnId)??"";s[u]={changes:wt(o.flatMap(p=>p.fileChanges??[])),sourceMessageIds:o.map(p=>p.id),source:"metadata",turnId:((a=o.find(p=>typeof p.turnId=="string"&&p.turnId.length>0))==null?void 0:a.turnId)??h}}for(const[c,o]of n.entries())s[c]||(s[c]=o);return s}),bt=I(()=>{var s;const e=new Map,n=new Map;for(const i of g.messages){if(Ee(i)&&typeof i.turnIndex=="number"&&e.set(`turn:${i.turnIndex}`,i.id),!dt(i))continue;const a=typeof i.turnIndex=="number"?`turn:${i.turnIndex}`:`message:${i.id}`,c=n.get(a);c?c.push(i):n.set(a,[i])}const t={};for(const[i,a]of n.entries()){if(e.has(i))continue;const c=a[a.length-1];c&&(t[c.id]={changes:wt(a.flatMap(o=>o.fileChanges??[])),sourceMessageIds:a.map(o=>o.id),source:"metadata",turnId:c.turnId??((s=a.find(o=>typeof o.turnId=="string"&&o.turnId.length>0))==null?void 0:s.turnId)??""})}return t}),$i=I(()=>{const e=new Set;for(const n of Object.values(qe.value))for(const t of n.sourceMessageIds)e.add(t);for(const[n,t]of Object.entries(bt.value))for(const s of t.sourceMessageIds)s!==n&&e.add(s);return e});function P(e){return qe.value[e.id]??null}function A(e){return bt.value[e.id]??null}function Ke(e){return e!=null&&e.turnId&&g.activeThreadId?`thread:${g.activeThreadId}:turn:${e.turnId}`:""}function dn(e){return Ke(e).length>0}function se(e){const n=Ke(e);return n?E.value[n]??"idle":"idle"}function Ze(e){const n=Ke(e);return n?G.value[n]??"":""}function D(e){const n=se(e);return n==="undone"||n==="redoing"?"redo":"undo"}function hn(e){const n=se(e);return n==="undoing"?"Undoing":n==="redoing"?"Redoing":D(e)==="redo"?"Redo":"Undo"}async function fn(e,n){const t=Ke(e);if(!e||!t||!g.activeThreadId||!g.cwd)return;const s=se(e),i=n==="undo"?"undoing":"redoing";E.value={...E.value,[t]:i},G.value={...G.value,[t]:""};let a;try{const c=H.value[t]??[];a=await ws(g.activeThreadId,e.turnId,g.cwd,n,c.length>0?c:void 0,"single_turn")}catch(c){E.value={...E.value,[t]:s},G.value={...G.value,[t]:c instanceof Error?c.message:"Failed to update file changes."};return}if(a.errors.length>0){n==="undo"?(H.value={...H.value,[t]:a.revertedPatchIds??[]},E.value={...E.value,[t]:"undone"}):((a.appliedPatchIds??[]).length>0&&(H.value={...H.value,[t]:a.appliedPatchIds??[]}),E.value={...E.value,[t]:"undone"}),G.value={...G.value,[t]:a.errors.join("; ")};return}n==="undo"?(H.value={...H.value,[t]:a.revertedPatchIds??[]},E.value={...E.value,[t]:"undone"}):(H.value={...H.value,[t]:a.appliedPatchIds??[]},E.value={...E.value,[t]:"redone"})}function ve(e){return e.operation==="update"&&e.movedToPath?e.addedLineCount>0||e.removedLineCount>0?"Moved + edited":"Moved":e.operation==="add"?"Added":e.operation==="delete"?"Deleted":"Edited"}function Ge(e){return e.operation==="update"&&e.movedToPath?"move":e.operation}function oe(e){const n=[];return e.addedLineCount>0&&n.push(`+${e.addedLineCount}`),e.removedLineCount>0&&n.push(`-${e.removedLineCount}`),n.join(" ")}function pn(e,n,t=""){const s=[];return e>0&&s.push({tone:"add",label:`+${e}`}),n>0&&s.push({tone:"remove",label:`-${n}`}),s.length>0?s:t?[{tone:"neutral",label:t}]:[]}function mn(e){return pn(e.addedLineCount,e.removedLineCount)}function Xe(e){return e===1?"1 file changed":`${e} files changed`}function Li(e){if(!e||e.changes.length===0)return"";let n=0,t=0,s=0,i=0;for(const c of e.changes){if(c.operation==="add"){n+=1;continue}if(c.operation==="delete"){t+=1;continue}if(c.movedToPath){i+=1;continue}s+=1}const a=[];return s>0&&a.push(`${s} edited`),n>0&&a.push(`${n} added`),t>0&&a.push(`${t} deleted`),i>0&&a.push(`${i} moved`),a.join(", ")}function vn(e){if(!e||e.changes.length===0)return"Modified files";const n=Xe(e.changes.length),t=Li(e);return t?`${n} · ${t}`:n}function kn(e){if(!e||e.changes.length===0)return[];const n=e.changes.reduce((i,a)=>i+a.addedLineCount,0),t=e.changes.reduce((i,a)=>i+a.removedLineCount,0),s=e.changes.some(i=>i.movedToPath)?"Moved":"Ready";return pn(n,t,s)}function F(e){const n=nn(e,g.cwd),t=me(pe(g.cwd.trim())),s=me(pe(n));return t&&s.startsWith(`${t}/`)?s.slice(t.length+1):e}function Ti(e){return!e||e.changes.length===0?"":`Modified files:
|
|
22
|
+
${e.changes.map(t=>{const s=F(t.path),i=t.movedToPath?` -> ${F(t.movedToPath)}`:"",a=oe(t);return`- ${ve(t)}: ${s}${i}${a?` (${a})`:""}`}).join(`
|
|
23
|
+
`)}`.trim()}const ke=I(()=>{var e;return((e=at.value)==null?void 0:e.changes)??[]}),B=I(()=>{const e=ke.value;return e.length===0?null:e.find(n=>S(n)===Ae.value)??e[0]});function Mi(e){var s;const t=((s=(e.movedToPath||e.path).split(".").pop())==null?void 0:s.toLowerCase())??"";return Yt[t]??t??""}function Ii(e){return e.operation==="update"&&/^diff --git |^@@ |^--- |^\+\+\+ |^[ +-]|^\*\*\* (Move to:|End of File)/mu.test(e.diff)}function Pi(e){const n=e.diff.replace(/\r\n/g,`
|
|
24
|
+
`),t=n.length>0?n.split(`
|
|
25
|
+
`):[];return t.length>0&&t[t.length-1]===""&&t.pop(),t.map((s,i)=>({key:`${S(e)}:synthetic:${i}`,kind:e.operation==="delete"?"remove":"add",oldLine:e.operation==="delete"?i+1:null,newLine:e.operation==="delete"?null:i+1,text:s}))}function Ai(e){const n=e.diff.replace(/\r\n/g,`
|
|
26
|
+
`),t=n.length>0?n.split(`
|
|
27
|
+
`):[];t.length>0&&t[t.length-1]===""&&t.pop();const s=[];let i=0,a=0;for(const[c,o]of t.entries()){const u=o.match(/^@@\s+-(\d+)(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s+@@/u);if(u){i=Number(u[1]),a=Number(u[2]),s.push({key:`${S(e)}:hunk:${c}`,kind:"hunk",oldLine:null,newLine:null,text:o});continue}if(o.startsWith("+")&&!o.startsWith("+++")){s.push({key:`${S(e)}:add:${c}`,kind:"add",oldLine:null,newLine:a,text:o.slice(1)}),a+=1;continue}if(o.startsWith("-")&&!o.startsWith("---")){s.push({key:`${S(e)}:remove:${c}`,kind:"remove",oldLine:i,newLine:null,text:o.slice(1)}),i+=1;continue}if(o.startsWith(" ")){s.push({key:`${S(e)}:context:${c}`,kind:"context",oldLine:i,newLine:a,text:o.slice(1)}),i+=1,a+=1;continue}s.push({key:`${S(e)}:meta:${c}`,kind:"meta",oldLine:null,newLine:null,text:o})}return s}function Si(e){return!e||!e.diff.trim()?[]:Ii(e)?Ai(e):Pi(e)}const Ei=I(()=>Si(B.value));function Fi(e){return!!(e!=null&&e.diff.trim())}function Bi(e){return e.kind==="add"?"+":e.kind==="remove"?"-":e.kind==="hunk"?"@@":""}async function Ri(e){const n=ln.value[e]??"";if(!n)return;let t=!1;try{await Kn(n),t=!0}catch{t=!1}t||(t=bs(n)),t&&(ee.value=e,ne&&clearTimeout(ne),ne=setTimeout(()=>{ee.value===e&&(ee.value=""),ne=null},1800))}function Hi(e){const n=cn.value[e];typeof n=="number"&&g.activeThreadId&>("forkThread",{threadId:g.activeThreadId,turnIndex:n})}const gn=I(()=>{const e={};for(const n of g.messages){if(n.role!=="user"||typeof n.turnIndex!="number")continue;const t=typeof n.turnId=="string"&&n.turnId.length>0?n.turnId:"";!t||n.text.trim().length===0||(e[n.id]=t)}return e});function _n(e){return typeof gn.value[e.id]=="string"}function Oi(e){const n=gn.value[e];n&>("rollback",{turnId:n})}function ge(e,n={}){const t=[],s=/codex:\/\/threads\/[A-Za-z0-9-]+|https?:\/\/[^\s<>"'`,。;:!?、()[\]{}「」『』《》]+|file:\/\/[^\n<>"'`,。;:!?、[\]{}「」『』《》]+|["'](?:[A-Za-z]:[\\/]|~\/|\.{1,2}\/|\/)[^\n"']+["']|`(?:[A-Za-z]:[\\/]|~\/|\.{1,2}\/|\/)[^`\n]+`/gu;let i=0;for(const a of e.matchAll(s)){if(typeof a.index!="number")continue;const c=a.index,o=c+a[0].length;let u=a[0],h="";for(;/[.,;:!?,。;:!?、]$/u.test(u);)h=u.slice(-1)+h,u=u.slice(0,-1);const p=on(e,c,o,i,u),m=(p==null?void 0:p.segmentStart)??c,w=(p==null?void 0:p.segmentEnd)??o;m>i&&t.push({kind:"text",value:e.slice(i,m)}),p!=null&&p.tokenEndTrim&&(u=u.slice(0,-p.tokenEndTrim));const k=Ne(u);u=k.core;const x=k.leading,v=k.trailing+h;x&&t.push({kind:"text",value:x});const L=Ve(u);if(L)t.push({kind:"url",value:L,href:L}),v&&t.push({kind:"text",value:v});else if(u.startsWith("**")&&u.endsWith("**")&&u.length>4)t.push({kind:"bold",value:u.slice(2,-2)}),v&&t.push({kind:"text",value:v});else if(/^https?:\/\//u.test(u))t.push({kind:"url",value:u,href:u}),v&&t.push({kind:"text",value:v});else{const R=Te(u);R?(t.push({kind:"file",value:u,path:R.path,displayPath:u,downloadName:Ue(R.path)}),v&&t.push({kind:"text",value:v})):t.push({kind:"text",value:a[0]})}i=w}return i<e.length&&t.push({kind:"text",value:e.slice(i)}),n.applyMarkdownMarkers===!1?t:yn(t)}function xt(e,n){const t=[];let s=!1,i="";const a=c=>{c&&t.push({kind:"text",value:c})};for(const c of e){if(c.kind!=="text"){s&&(a(`${n.marker}${i}`),s=!1,i=""),t.push(c);continue}let o=c.value;for(;o.length>0;){const u=o.indexOf(n.marker);if(u<0){s?i+=o:a(o);break}const h=o.slice(0,u);if(s?i+=h:a(h),o=o.slice(u+n.marker.length),s){const p=i;p.length>0&&(!n.isValidContent||n.isValidContent(p))?t.push({kind:n.kind,value:p}):a(`${n.marker}${p}${n.marker}`),i="",s=!1}else s=!0}}return s&&a(`${n.marker}${i}`),t}function yn(e){const n=s=>s.trim().length>0&&!/^\s/u.test(s)&&!/\s$/u.test(s);let t=xt(e,{marker:"**",kind:"bold",isValidContent:n});return t=xt(t,{marker:"~~",kind:"strikethrough",isValidContent:n}),t=xt(t,{marker:"*",kind:"italic",isValidContent:n}),t}function zi(e,n={}){const t=[];let s=0,i=0;const a=(c,o)=>{let u=c.indexOf("[",o);for(;u>=0;){const h=c.indexOf("]",u+1);if(h<0)return null;if(c[h+1]!=="("){u=c.indexOf("[",u+1);continue}let p=1,m=h+2,w=!1;for(;m<c.length;){const k=c[m];if(k===`
|
|
28
|
+
`){w=!0;break}if(k==="("&&(p+=1),k===")"&&(p-=1,p===0)){const x=c.slice(u,m+1);if(yt(x))return{start:u,end:m+1,token:x};break}m+=1}if(w){u=c.indexOf("[",u+1);continue}u=c.indexOf("[",u+1)}return null};for(;i<e.length;){const c=a(e,i);if(!c)break;const{start:o,end:u,token:h}=c,p=on(e,o,u,s,h),m=(p==null?void 0:p.segmentStart)??o,w=(p==null?void 0:p.segmentEnd)??u;m>s&&t.push(...ge(e.slice(s,m),n));const k=yt(h);if(!k){t.push(...ge(e.slice(m,w),n)),s=w,i=w;continue}const x=k.label,v=k.target,L=Ve(v);if(L)t.push({kind:"url",value:x||L,href:L});else if(/^https?:\/\//u.test(v))t.push({kind:"url",value:x||v,href:v});else{const R=Te(v);R?t.push({kind:"file",value:v,path:R.path,displayPath:x||v,downloadName:Ue(R.path)}):t.push({kind:"text",value:h})}s=w,i=w}return s<e.length&&t.push(...ge(e.slice(s),n)),t}function Wi(e){const n=e.includes("`"),t=zi(e,{applyMarkdownMarkers:!n});if(!n)return t;if(!t.some(i=>i.kind==="text"&&i.value.includes("`")))return yn(t);const s=i=>{if(!i.includes("`"))return ge(i);const a=[];let c=0,o=0;for(;c<i.length;){if(i[c]!=="`"){c+=1;continue}let u=1;for(;c+u<i.length&&i[c+u]==="`";)u+=1;const h="`".repeat(u);let p=c+u,m=-1;for(;p<i.length;){const k=i.indexOf(h,p);if(k<0)break;const x=k>0&&i[k-1]==="`",v=k+u<i.length&&i[k+u]==="`",L=i.slice(c+u,k).includes(`
|
|
29
|
+
`);if(!x&&!v&&!L){m=k;break}p=k+1}if(m<0){c+=u;continue}c>o&&a.push(...ge(i.slice(o,c)));const w=i.slice(c+u,m);if(w.length>0){const k=yt(w);if(k){const x=Ve(k.target);if(x)a.push({kind:"url",value:k.label||x,href:x});else if(/^https?:\/\//u.test(k.target))a.push({kind:"url",value:k.label||k.target,href:k.target});else{const v=Te(k.target);v?a.push({kind:"file",value:k.target,path:v.path,displayPath:k.label||k.target,downloadName:Ue(v.path)}):a.push({kind:"code",value:w})}}else{const x=Ve(w);if(x)a.push({kind:"url",value:x,href:x});else if(/^https?:\/\/[^\s]+$/u.test(w))a.push({kind:"url",value:w,href:w});else{const v=Te(w);if(v){const L=v.line?`${v.path}:${String(v.line)}`:v.path;a.push({kind:"file",value:w,path:v.path,displayPath:L,downloadName:Ue(v.path)})}else a.push({kind:"code",value:w})}}}else a.push({kind:"text",value:`${h}${h}`});c=m+u,o=c}return o<i.length&&a.push(...ge(i.slice(o))),a};return t.flatMap(i=>i.kind==="text"?s(i.value):[i])}function ae(e){const n=Le.get(e);return n?(Le.delete(e),Le.set(e,n),n):De(Le,e,Wi(e),_l)}function ji(e){const n=e.trim();if(!n)return"";if(n.startsWith("data:")||n.startsWith("blob:")||n.startsWith("http://")||n.startsWith("https://")||n.startsWith("/codex-local-image?"))return n;if(n.startsWith("file://"))return`/codex-local-image?path=${encodeURIComponent(n)}`;const t=n.startsWith("/"),s=/^[A-Za-z]:[\\/]/u.test(n);return t||s?`/codex-local-image?path=${encodeURIComponent(n)}`:n}function U(e){const n=e.trim();if(!n)return"#";const t=c=>c.startsWith("/")||/^[A-Za-z]:[\\/]/u.test(c),s=Te(n),i=(s==null?void 0:s.path)??n,a=nn(i,g.cwd);if(t(a)){const c=a.startsWith("/")?a:`/${a}`;return`/codex-local-browse${encodeURI(c)}`}return"#"}const Di=I(()=>({left:`${String(Rt.value)}px`,top:`${String(Ht.value)}px`}));function Ui(e){const n=e.trim();if(!n)return"";try{const t=new URL(n,window.location.href);return t.pathname.startsWith("/codex-local-browse")?`${`/codex-local-edit${t.pathname.slice(19)}`}${t.search}${t.hash}`:""}catch{return""}}function Ni(e){const n=e.target;if(!(n instanceof Element))return;const t=n.closest("a.message-file-link");if(!(t instanceof HTMLAnchorElement))return;const s=(t.getAttribute("href")??"").trim();!s||s==="#"||(e.preventDefault(),e.stopPropagation(),rt.value=s,lt.value=Ui(s),Rt.value=e.clientX,Ht.value=e.clientY,be.value=!0)}function re(){be.value&&(be.value=!1)}function Vi(){const e=rt.value;re(),!(!e||e==="#")&&window.open(e,"_blank","noopener,noreferrer")}function qi(){const e=lt.value;re(),!(!e||e==="#")&&window.open(e,"_blank","noopener,noreferrer")}async function Ki(){const e=rt.value;if(re(),!(!e||e==="#"))try{await Kn(e)}catch{}}function wn(e){if(!be.value)return;const n=Bt.value;if(!n){re();return}const t=e.target;t instanceof Node&&n.contains(t)||re()}function bn(){re()}function xn(e){e.key==="Escape"&&re()}function Cn(e){return e.replace(/\r\n/gu,`
|
|
30
|
+
`)}function N(e){var t;return(((t=e.match(/^\s*/u))==null?void 0:t[0])??"").replace(/\t/gu," ").length}function $n(e,n){if(n<=0)return e.trimStart();let t=0,s=0;for(;t<e.length&&s<n;){const i=e[t];s+=i===" "?4:1,t+=1}return e.slice(t)}function V(e){return e.trim().length===0}function Ct(e){const n=e.match(/^\s{0,3}(#{1,6})\s+(.+)$/u);return n?{level:n[1].length,value:n[2].trim()}:null}function Je(e){const n=e.match(/^\s{0,3}>\s?(.*)$/u);return n?n[1]??"":null}function Me(e){var t;const n=e.match(/^\s*[-*+]\s+(.+)$/u);return((t=n==null?void 0:n[1])==null?void 0:t.trim())??null}function Zi(e){var t;const n=e.match(/^(\s*)[-*+]\s+(.+)$/u);return n?{indent:N(n[1]??""),text:((t=n[2])==null?void 0:t.trim())??""}:null}function Ie(e){var t;const n=e.match(/^\s*[-*+]\s+\[([ xX])\]\s+(.+)$/u);return n?{checked:(n[1]??" ").toLowerCase()==="x",text:((t=n[2])==null?void 0:t.trim())??""}:null}function Ln(e){var t;const n=e.match(/^(\s*)[-*+]\s+\[([ xX])\]\s+(.+)$/u);return n?{indent:N(n[1]??""),item:{checked:(n[2]??" ").toLowerCase()==="x",text:((t=n[3])==null?void 0:t.trim())??""}}:null}function Tn(e){var t;const n=e.match(/^(\s*)(\d+)[.)]\s+(.+)$/u);return n?{indent:N(n[1]??""),start:Number.parseInt(n[2]??"1",10)||1,text:((t=n[3])==null?void 0:t.trim())??""}:null}function $t(e){var n;return((n=Tn(e))==null?void 0:n.text)??null}function Mn(e){return Tn(e)}function Lt(e){const n=e.trim();if(!n.includes("|"))return null;let t=n;t.startsWith("|")&&(t=t.slice(1)),t.endsWith("|")&&(t=t.slice(0,-1));const s=[];let i="",a=0;for(let c=0;c<t.length;c+=1){const o=t[c];if(o==="\\"&&t[c+1]==="|"){i+="|",c+=1;continue}if(o==="`"){let u=1;for(;t[c+u]==="`";)u+=1;i+=t.slice(c,c+u),a===0?a=u:a===u&&(a=0),c+=u-1;continue}if(o==="|"&&a===0){s.push(i.trim()),i="";continue}i+=o}return s.push(i.trim()),s.some(c=>c.length>0)?s:null}function Gi(e){const n=Lt(e);if(!n||n.length===0)return null;const t=n.map(s=>{const i=s.replace(/\s+/gu,"");if(!/^:?-{3,}:?$/u.test(i))return null;const a=i.startsWith(":"),c=i.endsWith(":");return a&&c?"center":c?"right":a?"left":null});return t.every((s,i)=>s!==null||/^-+$/u.test(n[i].replace(/\s+/gu,"")))?t:null}function In(e,n){return e.length===n?e:e.length>n?e.slice(0,n):[...e,...Array.from({length:n-e.length},()=>"")]}function Pn(e,n){var p;if(n+1>=e.length)return null;const t=e[n],s=e[n+1],i=Lt(t),a=Gi(s);if(!i||!a||i.length!==a.length)return null;const c=t.trim();if(!c.startsWith("|")&&(((p=c.match(/\|/gu))==null?void 0:p.length)??0)<2)return null;const o=i.length,u=[];let h=n+2;for(;h<e.length&&!V(e[h]);){const m=Lt(e[h]);if(!m)break;u.push(In(m,o)),h+=1}return{kind:"table",headers:In(i,o),rows:u,alignments:a}}function Xi(e){return V(e)||Ye(e)!==null||Tt(e)||Ct(e)!==null||Je(e)!==null||Ie(e)!==null||Me(e)!==null||$t(e)!==null}function Ji(e,n,t=-1){const s=[];let i=n;for(;i<e.length&&!(Xi(e[i])||t>=0&&N(e[i])<=t);)s.push(t>=0?$n(e[i],t+1):e[i]),i+=1;const a=s.join(`
|
|
31
|
+
`).trim();return a?{value:a,nextIndex:i}:null}function An(e,n){for(let t=n;t<e.length;t+=1)if(!V(e[t]))return t;return-1}function Yi(e,n,t,s=null,i=!1){const a=[];let c=n;for(;c<e.length;){const o=e[c];if(V(o)){const m=An(e,c+1);if(m===-1){a.push(""),c=e.length;break}const w=s==null?void 0:s(e[m]);if(w&&w.indent===t||N(e[m])<=t)break;a.push(""),c+=1;continue}const u=s==null?void 0:s(o);if(u&&u.indent===t)break;const h=N(o),p=i&&(Ie(o)!==null||Me(o)!==null);if(h<=t&&!p)break;a.push(h>t?$n(o,t+1):o.trimStart()),c+=1}for(;a.length>0&&V(a[0]);)a.shift();for(;a.length>0&&V(a[a.length-1]);)a.pop();return a.length===0?null:{blocks:Qe(a.join(`
|
|
32
|
+
`)),nextIndex:c}}function Sn(e,n,t,s=!1){const i=[];let a=n;const c=t(e[n]);if(!c)return null;const o=c.indent;for(;a<e.length;){const u=t(e[a]);if(u===null||u.indent!==o)break;const h=[u.text],p=[];for(a+=1;a<e.length;){if(V(e[a])){const v=An(e,a+1);if(v===-1){a=e.length;break}const L=t(e[v]);if(L&&L.indent===o){a=v;break}if(N(e[v])<=o){a=v;break}a+=1;continue}const m=t(e[a]);if(m&&m.indent===o)break;const w=N(e[a])>o,k=s&&(Ie(e[a])!==null||Me(e[a])!==null);if(w||k){const v=Yi(e,a,o,t,s);if(v){p.push(...v.blocks),a=v.nextIndex;continue}}if(N(e[a])<=o)break;const x=Ji(e,a,o);if(!x)break;h.push(x.value),a=x.nextIndex}i.push(p.length>0?{paragraphs:h,children:p}:{paragraphs:h})}return i.length>0?{items:i,nextIndex:a}:null}function Tt(e){return/^\s{0,3}(?:-{3,}|\*{3,}|_{3,})\s*$/u.test(e.trim())}function Ye(e){const n=e.match(/^\s{0,3}(```+|~~~+)\s*([^\s`~][^`]*)?\s*$/u);return n?{marker:n[1],language:(n[2]??"").trim()}:null}function Qe(e){var a;const t=Cn(e).split(`
|
|
33
|
+
`),s=[];let i=0;for(;i<t.length;){if(V(t[i])){i+=1;continue}const c=Ye(t[i]);if(c){i+=1;const v=[];for(;i<t.length;){if(t[i].trim()===c.marker){i+=1;break}v.push(t[i]),i+=1}s.push({kind:"codeBlock",language:c.language,value:v.join(`
|
|
34
|
+
`)});continue}if(Tt(t[i])){s.push({kind:"thematicBreak"}),i+=1;continue}const o=Ct(t[i]);if(o){s.push({kind:"heading",level:o.level,value:o.value}),i+=1;continue}if(Je(t[i])!==null){const v=[];for(;i<t.length;){const L=Je(t[i]);if(L===null)break;v.push(L),i+=1}s.push({kind:"blockquote",value:v.join(`
|
|
35
|
+
`).trim()});continue}const h=Pn(t,i);if(h){s.push(h),i+=2+h.rows.length;continue}if(Ie(t[i])!==null){const v=[],L=((a=Ln(t[i]))==null?void 0:a.indent)??0;for(;i<t.length;){const R=Ln(t[i]);if(R===null||R.indent!==L)break;v.push(R.item),i+=1}if(v.length>0){s.push({kind:"taskList",items:v});continue}}const m=Me(t[i]);if(m!==null){const v=Sn(t,i,Zi);if(v){s.push({kind:"unorderedList",items:v.items}),i=v.nextIndex;continue}if(m.length>0){s.push({kind:"unorderedList",items:[{paragraphs:[m]}]}),i+=1;continue}}const w=$t(t[i]);if(w!==null){const v=Mn(t[i]),L=Sn(t,i,Mn,!0);if(L){s.push({kind:"orderedList",items:L.items,start:(v==null?void 0:v.start)??1}),i=L.nextIndex;continue}if(w.length>0){s.push({kind:"orderedList",items:[{paragraphs:[w]}],start:(v==null?void 0:v.start)??1}),i+=1;continue}}const k=[];for(;i<t.length&&!(V(t[i])||Ye(t[i])||Tt(t[i])||Ct(t[i])||Pn(t,i)||Je(t[i])!==null||Ie(t[i])!==null||Me(t[i])!==null||$t(t[i])!==null);)k.push(t[i]),i+=1;const x=k.join(`
|
|
36
|
+
`).trim();x&&s.push({kind:"paragraph",value:x})}return s}function Qi(e){if(!e.includes(")return Qe(e);const n=[],t=/!\[([^\]]*)\]\(([^)\n]+)\)/gu;let s=0;for(const i of e.matchAll(t)){const[a,c,o]=i;if(typeof i.index!="number")continue;const u=i.index,h=u+a.length,p=ji(o.trim());p&&(u>s&&n.push(...Qe(e.slice(s,u))),n.push({kind:"image",url:p,alt:c.trim(),markdown:a}),s=h)}return s<e.length&&n.push(...Qe(e.slice(s))),n}function En(e){const t=Cn(e).split(`
|
|
37
|
+
`),s=[];let i=0,a=0;const c=o=>{if(o<=a)return;const u=t.slice(a,o).join(`
|
|
38
|
+
`);s.push(...Qi(u))};for(;i<t.length;){const o=Ye(t[i]);if(!o){i+=1;continue}c(i),i+=1;const u=[];for(;i<t.length;){if(t[i].trim()===o.marker){i+=1;break}u.push(t[i]),i+=1}s.push({kind:"codeBlock",language:o.language,value:u.join(`
|
|
39
|
+
`)}),a=i}return c(t.length),s.length>0?s:[{kind:"paragraph",value:e}]}function es(e){const n=$e.get(e.id);if(n&&n.text===e.text&&n.cwd===g.cwd)return $e.delete(e.id),$e.set(e.id,n),n.blocks;const t=En(e.text);return De($e,e.id,{text:e.text,cwd:g.cwd,blocks:t},gl).blocks}function M(e){return e.replace(/&/gu,"&").replace(/</gu,"<").replace(/>/gu,">").replace(/"/gu,""").replace(/'/gu,"'")}function Fn(e){var t;const n=((t=e.trim().split(/\s+/u)[0])==null?void 0:t.toLowerCase())??"";return n?Yt[n]??n:""}function ts(e,n){const t=Fn(e);if(!t)return M(n);const s=We.value;if(!s)return M(n);try{if(s.getLanguage(t))return s.highlight(n,{language:t,ignoreIllegals:!0}).value}catch{}return M(n)}function Bn(e,n){const t=`${de.value}\0${Fn(e)}\0${e}\0${n}`,s=fe.get(t);return s!==void 0?(fe.delete(t),fe.set(t,s),s):De(fe,t,ts(e,n),wl)}function le(e){return ae(e).map(n=>n.kind==="text"?M(n.value):n.kind==="bold"?`<strong class="message-bold-text">${M(n.value)}</strong>`:n.kind==="italic"?`<em class="message-italic-text">${M(n.value)}</em>`:n.kind==="strikethrough"?`<s class="message-strikethrough-text">${M(n.value)}</s>`:n.kind==="file"?`<a class="message-file-link" href="${M(U(n.path))}" target="_blank" rel="noopener noreferrer" title="${M(n.path)}">${M(n.displayPath)}</a>`:n.kind==="url"?`<a class="message-file-link" href="${M(n.href)}" target="_blank" rel="noopener noreferrer" title="${M(n.href)}">${M(n.value)}</a>`:`<code class="message-inline-code">${M(n.value)}</code>`).join("")}function ns(e){return e.paragraphs.map(n=>`<div class="message-list-item-text message-list-item-paragraph">${le(n)}</div>`).join("")}function et(e){var s;const n=ns(e),t=((s=e.children)==null?void 0:s.map(i=>Hn(i)).join(""))??"";return n+t}function Rn(e){return e?` style="text-align:${e}"`:""}function Hn(e){if(e.kind==="paragraph")return`<p class="message-text">${le(e.value)}</p>`;if(e.kind==="heading"){const n=Math.min(6,Math.max(1,Math.trunc(e.level))),t=an(n),s=`message-heading ${rn(n)}`;return`<${t} class="${s}">${le(e.value)}</${t}>`}if(e.kind==="blockquote")return`<blockquote class="message-blockquote">${le(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">${et(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">${le(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">${et(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"${Rn(e.alignments[a]??null)}>${le(i)}</th>`).join(""),t=e.rows.map(i=>'<tr class="message-table-body-row">'+i.map((a,c)=>`<td class="message-table-cell"${Rn(e.alignments[c]??null)}>${le(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">${M(e.language)}</div>`:""}<pre class="message-code-pre"><code class="hljs">${Bn(e.language,e.value)}</code></pre></div>`:e.kind==="thematicBreak"?'<hr class="message-divider">':`<img class="message-image-preview message-markdown-image" src="${M(e.url)}" alt="${M(e.alt||"Embedded message image")}" loading="lazy">`}function Mt(e){const n=`${g.cwd}\0${de.value}\0${e}`,t=he.get(n);if(t&&t.text===e&&t.cwd===g.cwd&&t.highlightVersion===de.value)return he.delete(n),he.set(n,t),t.html;const s=En(e).map(i=>Hn(i)).join("");return De(he,n,{text:e,cwd:g.cwd,highlightVersion:de.value,html:s},yl).html}function is(){const e=Q.value,n=Jt.value;!e||!n||(e.scrollTop=e.scrollHeight,n.scrollIntoView({block:"end"}))}function ss(e){return e.scrollHeight-(e.scrollTop+e.clientHeight)<=kl}function os(){if(Q.value&&X.value){tt();return}}function tt(){Q.value&&is()}function It(){return X.value}function On(){if(!It()){ze=0,O=0;return}if(tt(),ze-=1,ze<=0){O=0;return}O=requestAnimationFrame(On)}function nt(e=6){It()&&(O&&(cancelAnimationFrame(O),O=0),ze=Math.max(e,1),O=requestAnimationFrame(On))}function zn(){nt(3)}function Wn(){X.value=!0,tt(),nt(4)}async function jn(){var i;const e=Q.value;if(!e||!_t.value||ie.value||g.isLoadingPersistedAbove===!0)return;ie.value=!0;const n=g.activeThreadId,t=e.scrollHeight,s=e.scrollTop;try{z.value>0?z.value=Math.max(0,z.value-bl):g.hasMorePersistedAbove===!0&&await((i=g.loadEarlierMessages)==null?void 0:i.call(g,n)),await At(),g.activeThreadId===n&&(e.scrollTop=s+(e.scrollHeight-t))}finally{ie.value=!1}}J({jumpToLatest:Wn});function as(){if(!It())return;const e=Q.value;if(!e)return;const n=e.querySelectorAll("img.message-image-preview");for(const t of n)t.complete||Qt.has(t)||(Qt.add(t),t.addEventListener("load",zn,{once:!0}),t.addEventListener("error",zn,{once:!0}))}async function it(){return Ce||(Ce=At().then(()=>new Promise(e=>{te&&cancelAnimationFrame(te),te=requestAnimationFrame(()=>{te=0,Ce=null,os(),as(),nt(),e()})})),Ce)}function rs(){$e.clear(),Le.clear(),he.clear(),fe.clear()}ce(()=>g.messages,async e=>{if(g.isLoading)return;const n=new Set(e.filter(t=>t.messageType==="commandExecution"&&t.commandExecution).map(t=>t.id));_e.value=Oe(_e.value,n),Z.value=Oe(Z.value,n),ye.value=Oe(ye.value,new Set(Object.keys(ft.value))),we.value=Oe(we.value,new Set([...Object.keys(qe.value),...Object.keys(bt.value)])),X.value?z.value=Math.max(0,e.length-Et):z.value=Math.min(z.value,Math.max(0,e.length-1)),await it()}),ce(()=>g.messages.some(e=>e.text.includes("```")),e=>{!e||We.value||pi()},{immediate:!0}),ce(ht,(e,n)=>{if(!n||n===e||!Z.value.has(n))return;const t=new Set(Z.value);t.delete(n),Z.value=t}),ce(()=>g.pendingRequests,async()=>{g.isLoading||await it()},{deep:!0}),ce(()=>g.liveOverlay,async e=>{e&&X.value&&(await At(),tt(),nt(8))},{deep:!0}),ce(()=>g.isLoading,async e=>{e||(z.value=Math.max(0,g.messages.length-Et),await it())}),ce(()=>g.activeThreadId,async()=>{X.value=!0,xe.value="",ie.value=!1,E.value={},G.value={},H.value={},z.value=Math.max(0,g.messages.length-Et),await it()},{flush:"post"});function ls(){const e=Q.value;!e||g.isLoading||(X.value=ss(e),_t.value&&!ie.value&&e.scrollTop<xl&&jn())}const Pt=C(new Set);function Dn(e,n){return`${e}:${n}`}function cs(e,n){return Pt.value.has(Dn(e,n))}function us(e,n){const t=new Set(Pt.value);t.add(Dn(e,n)),Pt.value=t,en.value+=1}function Un(e){xe.value=e}function Nn(){xe.value=""}return fs(()=>{window.addEventListener("pointerdown",wn),window.addEventListener("blur",bn),window.addEventListener("keydown",xn)}),ps(()=>{rs(),te&&(cancelAnimationFrame(te),te=0),O&&(cancelAnimationFrame(O),O=0),ne&&(clearTimeout(ne),ne=null),window.removeEventListener("pointerdown",wn),window.removeEventListener("blur",bn),window.removeEventListener("keydown",xn)}),(e,n)=>(r(),l("section",{class:"conversation-root",onContextmenuCapture:Ni},[T.isLoading?(r(),l("p",Es,"Loading messages...")):T.messages.length===0&&T.pendingRequests.length===0&&!T.liveOverlay?(r(),l("p",Fs," No messages in this thread yet. ")):(r(),l("ul",{key:2,ref_key:"conversationListRef",ref:Q,class:"conversation-list",onScroll:ls},[_t.value?(r(),l("li",Bs,[d("button",{type:"button",class:"load-more-button",disabled:ie.value||T.isLoadingPersistedAbove,onClick:jn},f(ie.value||T.isLoadingPersistedAbove?"Loading…":"Load earlier messages"),9,Rs)])):_("",!0),(r(!0),l(y,null,b(hi.value,t=>{var s,i,a,c;return r(),l(y,{key:t.id},[!ii.value.has(t.id)&&!$i.value.has(t.id)?(r(),l("li",{key:0,class:"conversation-item","data-role":t.role,"data-message-type":t.messageType||""},[W(t)?(r(),l("div",Os,[d("div",zs,[Fe(t).length>0?(r(),l("button",{key:0,type:"button",class:$(["cmd-row cmd-row-group cmd-compact",[He(t),{"cmd-expanded":kt(t)}]]),onClick:o=>oi(t)},[d("span",{class:$(["cmd-chevron",{"cmd-chevron-open":kt(t)}])},"▶",2),d("span",js,f(ai(t)),1),d("span",Ds,f(ri(t)),1)],10,Ws)):_("",!0),Fe(t).length>0?(r(),l("div",{key:1,class:$(["cmd-group-wrap",{"cmd-group-visible":kt(t)}])},[d("div",Us,[(r(!0),l(y,null,b(qt(t),o=>{var u,h;return r(),l("div",{key:`grouped-cmd-${o.id}`,class:"worked-cmd-item"},[d("button",{type:"button",class:$(["cmd-row",[He(o),{"cmd-expanded":j(o),"cmd-compact":!0}]]),onClick:p=>vt(o)},[d("span",{class:$(["cmd-chevron",{"cmd-chevron-open":j(o)}])},"▶",2),d("code",Vs,f(((u=o.commandExecution)==null?void 0:u.command)||"(command)"),1),d("span",qs,f(Re(o)),1)],10,Ns),d("div",{class:$(["cmd-output-wrap",{"cmd-output-visible":j(o)}])},[d("div",Ks,[d("pre",{class:$(["cmd-output",{"cmd-output-condensed":mt(o)}]),textContent:f(((h=o.commandExecution)==null?void 0:h.aggregatedOutput)||"(no output)")},null,10,Zs)])],2)])}),128))])],2)):(r(),l(y,{key:2},[d("button",{type:"button",class:$(["cmd-row",[He(t),{"cmd-expanded":j(t),"cmd-compact":pt(t)}]]),onClick:o=>vt(t)},[d("span",{class:$(["cmd-chevron",{"cmd-chevron-open":j(t)}])},"▶",2),d("code",Xs,f(((s=t.commandExecution)==null?void 0:s.command)||"(command)"),1),d("span",Js,f(Re(t)),1)],10,Gs),d("div",{class:$(["cmd-output-wrap",{"cmd-output-visible":j(t)}])},[d("div",Ys,[d("pre",{class:$(["cmd-output",{"cmd-output-condensed":mt(t)}]),textContent:f(((i=t.commandExecution)==null?void 0:i.aggregatedOutput)||"(no output)")},null,10,Qs)])],2)],64))])])):dt(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},[A(t)?(r(),l("section",io,[d("button",{type:"button",class:$(["cmd-row cmd-row-group cmd-compact file-change-summary-row",{"cmd-expanded":ue(t)}]),onClick:o=>Zt(t)},[d("span",{class:$(["cmd-chevron",{"cmd-chevron-open":ue(t)}])},"▶",2),d("span",oo,f(vn(A(t))),1),d("span",ao,[(r(!0),l(y,null,b(kn(A(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,ro))),128))])],10,so),d("div",{class:$(["cmd-group-wrap",{"cmd-group-visible":ue(t)}])},[d("div",lo,[d("ul",co,[(r(!0),l(y,null,b(((a=A(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":Ge(o)},f(ve(o)),9,uo),d("button",{type:"button",class:"file-change-path-button",title:o.path,onClick:u=>Be(A(t),o)},f(F(o.path)),9,ho),o.movedToPath?(r(),l("span",fo,"→")):_("",!0),o.movedToPath?(r(),l("button",{key:1,type:"button",class:"file-change-path-button",title:o.movedToPath,onClick:u=>Be(A(t),o)},f(F(o.movedToPath)),9,po)):_("",!0),o.addedLineCount>0||o.removedLineCount>0?(r(),l("span",mo,[(r(!0),l(y,null,b(mn(o),u=>(r(),l("span",{key:`change-delta:${t.id}:${o.path}:${u.tone}:${u.label}`,class:"file-change-signed-count","data-tone":u.tone},f(u.label),9,vo))),128))])):_("",!0)]))),128))]),dn(A(t))?(r(),l("div",ko,[Ze(A(t))?(r(),l("p",go,f(Ze(A(t))),1)):_("",!0),d("button",{type:"button",class:"file-change-action-button",disabled:se(A(t))==="undoing"||se(A(t))==="redoing",title:D(A(t))==="redo"?"Redo file changes from this turn":"Undo file changes from this turn","aria-label":D(A(t))==="redo"?"Redo file changes from this turn":"Undo file changes from this turn",onClick:o=>fn(A(t),D(A(t)))},[q(Zn,{class:$(["icon-svg file-change-action-icon",{"file-change-action-icon-redo":D(A(t))==="redo"}])},null,8,["class"]),K(" "+f(hn(A(t))),1)],8,_o)])):_("",!0)])],2)])):_("",!0)],8,no)],8,to)],8,eo)):(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:$(["message-image-list",{"message-generated-image-list":t.messageType==="imageView"}]),"data-role":t.role},[(r(!0),l(y,null,b(t.images,o=>(r(),l("li",{key:o,class:"message-image-item"},[d("button",{class:"message-image-button",type:"button",onClick:u=>Un(o)},[d("img",{class:$(["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,$o)],8,Co)]))),128))],10,xo)):_("",!0),t.fileAttachments&&t.fileAttachments.length>0?(r(),l("div",Lo,[(r(!0),l(y,null,b(t.fileAttachments,o=>(r(),l("span",{key:`${t.id}:${o.path}`,class:"message-file-chip"},[n[6]||(n[6]=d("span",{class:"message-file-chip-icon"},"📄",-1)),d("a",{class:"message-file-link message-file-chip-name",href:U(o.path),target:"_blank",rel:"noopener noreferrer",title:o.path},f(o.label),9,To)]))),128))])):_("",!0),t.skills&&t.skills.length>0?(r(),l("div",Mo,[(r(!0),l(y,null,b(t.skills,o=>(r(),l("a",{key:`${t.id}:${o.path}`,class:"message-skill-chip",href:U(o.path),title:o.path},[n[7]||(n[7]=d("span",{class:"message-skill-chip-prefix"},"Skill",-1)),d("span",Po,f(o.name),1)],8,Io))),128))])):_("",!0),t.text.length>0?(r(),l("article",{key:3,class:"message-card","data-role":t.role},[t.isAutomationRun?(r(),l("div",So,[n[8]||(n[8]=d("span",null,"Sent via automation",-1)),t.automationDisplayName?(r(),l("code",Eo,f(t.automationDisplayName),1)):_("",!0)])):_("",!0),t.messageType==="worked"?(r(),l("div",Fo,[d("button",{type:"button",class:"worked-separator",onClick:o=>li(t)},[n[9]||(n[9]=d("span",{class:"worked-separator-line","aria-hidden":"true"},null,-1)),d("span",{class:$(["worked-chevron",{"worked-chevron-open":Kt(t)}])},"▶",2),d("p",Ro,f(t.text),1),n[10]||(n[10]=d("span",{class:"worked-separator-line","aria-hidden":"true"},null,-1))],8,Bo),Kt(t)?(r(),l("div",Ho,[(r(!0),l(y,null,b(di(T.messages,T.messages.indexOf(t)),o=>{var u,h;return r(),l("div",{key:`worked-cmd-${o.id}`,class:"worked-cmd-item"},[d("button",{type:"button",class:$(["cmd-row",[He(o),{"cmd-expanded":j(o),"cmd-compact":pt(o)}]]),onClick:p=>vt(o)},[d("span",{class:$(["cmd-chevron",{"cmd-chevron-open":j(o)}])},"▶",2),d("code",zo,f(((u=o.commandExecution)==null?void 0:u.command)||"(command)"),1),d("span",Wo,f(Re(o)),1)],10,Oo),d("div",{class:$(["cmd-output-wrap",{"cmd-output-visible":j(o)}])},[d("div",jo,[d("pre",{class:$(["cmd-output",{"cmd-output-condensed":mt(o)}]),textContent:f(((h=o.commandExecution)==null?void 0:h.aggregatedOutput)||"(no output)")},null,10,Do)])],2)])}),128))])):_("",!0)])):ut(t)?(r(),l("div",{key:2,class:"plan-card","data-streaming":t.messageType==="plan.live"},[d("div",No,[n[11]||(n[11]=d("p",{class:"plan-card-title"},"Plan",-1)),t.messageType==="plan.live"?(r(),l("span",Vo,"Updating")):_("",!0)]),Ut(t)?(r(),l("div",{key:0,class:"plan-card-explanation plan-card-markdown",innerHTML:Mt(Ut(t))},null,8,qo)):_("",!0),Nt(t).length>0?(r(),l("ol",Ko,[(r(!0),l(y,null,b(Nt(t),(o,u)=>(r(),l("li",{key:`${t.id}:plan-step:${u}`,class:"plan-step-item","data-status":o.status},[d("span",{class:"plan-step-status","data-status":o.status},f(si(o.status)),9,Go),d("div",{class:"plan-step-text plan-card-markdown",innerHTML:Mt(o.step)},null,8,Xo)],8,Zo))),128))])):(r(),l("div",{key:2,class:"plan-card-markdown",innerHTML:Mt(t.text)},null,8,Jo)),ti(t)?(r(),l("div",Yo,[d("button",{type:"button",class:"plan-card-implement-button",onClick:o=>ni(t)}," Implement plan ",8,Qo)])):_("",!0)],8,Uo)):ms([t.id,t.text,g.cwd,de.value,en.value],()=>(r(),l("div",{key:3,class:"message-text-flow"},[(r(!0),l(y,null,b(es(t),(o,u)=>(r(),l(y,{key:`block-${u}`},[o.kind==="paragraph"?(r(),l("p",ea,[(r(!0),l(y,null,b(ae(o.value),(h,p)=>(r(),l(y,{key:`seg-${u}-${p}`},[h.kind==="text"?(r(),l("span",ta,f(h.value),1)):h.kind==="bold"?(r(),l("strong",na,f(h.value),1)):h.kind==="italic"?(r(),l("em",ia,f(h.value),1)):h.kind==="strikethrough"?(r(),l("s",sa,f(h.value),1)):h.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:U(h.path),target:"_blank",rel:"noopener noreferrer",title:h.path},f(h.displayPath),9,oa)):h.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:h.href,target:"_blank",rel:"noopener noreferrer",title:h.href},f(h.value),9,aa)):(r(),l("code",ra,f(h.value),1))],64))),128))])):o.kind==="heading"?(r(),Cs($s(an(o.level)),{key:1,class:$(["message-heading",rn(o.level)])},{default:qn(()=>[(r(!0),l(y,null,b(ae(o.value),(h,p)=>(r(),l(y,{key:`heading-seg-${u}-${p}`},[h.kind==="text"?(r(),l("span",la,f(h.value),1)):h.kind==="bold"?(r(),l("strong",ca,f(h.value),1)):h.kind==="italic"?(r(),l("em",ua,f(h.value),1)):h.kind==="strikethrough"?(r(),l("s",da,f(h.value),1)):h.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:U(h.path),target:"_blank",rel:"noopener noreferrer",title:h.path},f(h.displayPath),9,ha)):h.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:h.href,target:"_blank",rel:"noopener noreferrer",title:h.href},f(h.value),9,fa)):(r(),l("code",pa,f(h.value),1))],64))),128))]),_:2},1032,["class"])):o.kind==="blockquote"?(r(),l("blockquote",ma,[(r(!0),l(y,null,b(ae(o.value),(h,p)=>(r(),l(y,{key:`quote-seg-${u}-${p}`},[h.kind==="text"?(r(),l("span",va,f(h.value),1)):h.kind==="bold"?(r(),l("strong",ka,f(h.value),1)):h.kind==="italic"?(r(),l("em",ga,f(h.value),1)):h.kind==="strikethrough"?(r(),l("s",_a,f(h.value),1)):h.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:U(h.path),target:"_blank",rel:"noopener noreferrer",title:h.path},f(h.displayPath),9,ya)):h.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:h.href,target:"_blank",rel:"noopener noreferrer",title:h.href},f(h.value),9,wa)):(r(),l("code",ba,f(h.value),1))],64))),128))])):o.kind==="unorderedList"?(r(),l("ul",xa,[(r(!0),l(y,null,b(o.items,(h,p)=>(r(),l("li",{key:`ul-${u}-${p}`,class:"message-list-item"},[d("div",{class:"message-list-item-content",innerHTML:et(h)},null,8,Ca)]))),128))])):o.kind==="taskList"?(r(),l("ul",$a,[(r(!0),l(y,null,b(o.items,(h,p)=>(r(),l("li",{key:`task-${u}-${p}`,class:"message-task-item"},[d("span",{class:"message-task-checkbox","data-checked":h.checked},f(h.checked?"☑":"☐"),9,La),d("div",Ta,[(r(!0),l(y,null,b(ae(h.text),(m,w)=>(r(),l(y,{key:`task-seg-${u}-${p}-${w}`},[m.kind==="text"?(r(),l("span",Ma,f(m.value),1)):m.kind==="bold"?(r(),l("strong",Ia,f(m.value),1)):m.kind==="italic"?(r(),l("em",Pa,f(m.value),1)):m.kind==="strikethrough"?(r(),l("s",Aa,f(m.value),1)):m.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:U(m.path),target:"_blank",rel:"noopener noreferrer",title:m.path},f(m.displayPath),9,Sa)):m.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:m.href,target:"_blank",rel:"noopener noreferrer",title:m.href},f(m.value),9,Ea)):(r(),l("code",Fa,f(m.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(y,null,b(o.items,(h,p)=>(r(),l("li",{key:`ol-${u}-${p}`,class:"message-list-item"},[d("div",{class:"message-list-item-content",innerHTML:et(h)},null,8,Ra)]))),128))],8,Ba)):o.kind==="table"?(r(),l("div",Ha,[d("table",Oa,[d("thead",null,[d("tr",null,[(r(!0),l(y,null,b(o.headers,(h,p)=>(r(),l("th",{key:`th-${u}-${p}`,class:"message-table-head-cell",style:St({textAlign:o.alignments[p]??"left"})},[(r(!0),l(y,null,b(ae(h),(m,w)=>(r(),l(y,{key:`th-seg-${u}-${p}-${w}`},[m.kind==="text"?(r(),l("span",za,f(m.value),1)):m.kind==="bold"?(r(),l("strong",Wa,f(m.value),1)):m.kind==="italic"?(r(),l("em",ja,f(m.value),1)):m.kind==="strikethrough"?(r(),l("s",Da,f(m.value),1)):m.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:U(m.path),target:"_blank",rel:"noopener noreferrer",title:m.path},f(m.displayPath),9,Ua)):m.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:m.href,target:"_blank",rel:"noopener noreferrer",title:m.href},f(m.value),9,Na)):(r(),l("code",Va,f(m.value),1))],64))),128))],4))),128))])]),o.rows.length>0?(r(),l("tbody",qa,[(r(!0),l(y,null,b(o.rows,(h,p)=>(r(),l("tr",{key:`tr-${u}-${p}`,class:"message-table-body-row"},[(r(!0),l(y,null,b(h,(m,w)=>(r(),l("td",{key:`td-${u}-${p}-${w}`,class:"message-table-cell",style:St({textAlign:o.alignments[w]??"left"})},[(r(!0),l(y,null,b(ae(m),(k,x)=>(r(),l(y,{key:`td-seg-${u}-${p}-${w}-${x}`},[k.kind==="text"?(r(),l("span",Ka,f(k.value),1)):k.kind==="bold"?(r(),l("strong",Za,f(k.value),1)):k.kind==="italic"?(r(),l("em",Ga,f(k.value),1)):k.kind==="strikethrough"?(r(),l("s",Xa,f(k.value),1)):k.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:U(k.path),target:"_blank",rel:"noopener noreferrer",title:k.path},f(k.displayPath),9,Ja)):k.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:k.href,target:"_blank",rel:"noopener noreferrer",title:k.href},f(k.value),9,Ya)):(r(),l("code",Qa,f(k.value),1))],64))),128))],4))),128))]))),128))])):_("",!0)])])):o.kind==="codeBlock"?(r(),l("div",er,[o.language?(r(),l("div",tr,f(o.language),1)):_("",!0),d("pre",nr,[d("code",{class:"hljs",innerHTML:Bn(o.language,o.value)},null,8,ir)])])):o.kind==="thematicBreak"?(r(),l("hr",sr)):cs(t.id,u)?(r(),l("p",or,f(o.markdown),1)):(r(),l("button",{key:10,class:"message-image-button",type:"button",onClick:h=>Un(o.url)},[d("img",{class:"message-image-preview message-markdown-image",src:o.url,alt:o.alt||"Embedded message image",loading:"lazy",onError:h=>us(t.id,u)},null,40,rr)],8,ar))],64))),128))])),n,0),ei(t)?(r(),l("a",{key:4,class:"turn-error-feedback",href:Pe(Wt),onClick:o=>Yn(o,t.text)}," Send feedback ",8,lr)):_("",!0)],8,Ao)):_("",!0),P(t)?(r(),l("section",cr,[d("button",{type:"button",class:$(["cmd-row cmd-row-group cmd-compact file-change-summary-row",{"cmd-expanded":ue(t)}]),onClick:o=>Zt(t)},[d("span",{class:$(["cmd-chevron",{"cmd-chevron-open":ue(t)}])},"▶",2),d("span",dr,f(vn(P(t))),1),d("span",hr,[(r(!0),l(y,null,b(kn(P(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,fr))),128))])],10,ur),d("div",{class:$(["cmd-group-wrap",{"cmd-group-visible":ue(t)}])},[d("div",pr,[d("ul",mr,[(r(!0),l(y,null,b(((c=P(t))==null?void 0:c.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":Ge(o)},f(ve(o)),9,vr),d("button",{type:"button",class:"file-change-path-button",title:o.path,onClick:u=>Be(P(t),o)},f(F(o.path)),9,kr),o.movedToPath?(r(),l("span",gr,"→")):_("",!0),o.movedToPath?(r(),l("button",{key:1,type:"button",class:"file-change-path-button",title:o.movedToPath,onClick:u=>Be(P(t),o)},f(F(o.movedToPath)),9,_r)):_("",!0),o.addedLineCount>0||o.removedLineCount>0?(r(),l("span",yr,[(r(!0),l(y,null,b(mn(o),u=>(r(),l("span",{key:`change-delta:inline:${t.id}:${o.path}:${u.tone}:${u.label}`,class:"file-change-signed-count","data-tone":u.tone},f(u.label),9,wr))),128))])):_("",!0)]))),128))]),dn(P(t))?(r(),l("div",br,[Ze(P(t))?(r(),l("p",xr,f(Ze(P(t))),1)):_("",!0),d("button",{type:"button",class:"file-change-action-button",disabled:se(P(t))==="undoing"||se(P(t))==="redoing",title:D(P(t))==="redo"?"Redo file changes from this turn":"Undo file changes from this turn","aria-label":D(P(t))==="redo"?"Redo file changes from this turn":"Undo file changes from this turn",onClick:o=>fn(P(t),D(P(t)))},[q(Zn,{class:$(["icon-svg file-change-action-icon",{"file-change-action-icon-redo":D(P(t))==="redo"}])},null,8,["class"]),K(" "+f(hn(P(t))),1)],8,Cr)])):_("",!0)])],2)])):_("",!0),un(t)||_n(t)?(r(),l("div",{key:5,class:"message-toolbar","data-role":t.role},[_n(t)?(r(),l("button",{key:0,type:"button",class:"message-edit-button","aria-label":"Edit this message",title:"Edit this message",onClick:o=>Oi(t.id)},[q(vs,{class:"icon-svg message-edit-icon"}),n[12]||(n[12]=d("span",{class:"message-edit-label"},"Edit message",-1))],8,Lr)):_("",!0),wi(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=>Hi(t.id)},[q(ks,{class:"icon-svg message-fork-icon"}),n[13]||(n[13]=d("span",{class:"message-fork-label"},"Fork",-1))],8,Tr)):_("",!0),un(t)?(r(),l("button",{key:2,type:"button",class:"message-copy-button","data-copied":ee.value===t.id,"aria-label":ee.value===t.id?"Response copied":"Copy response",title:ee.value===t.id?"Response copied":"Copy response",onClick:o=>Ri(t.id)},[q(Ss,{class:"icon-svg message-copy-icon"}),d("span",Ir,f(ee.value===t.id?"Copied":"Copy"),1)],8,Mr)):_("",!0)],8,$r)):_("",!0)],8,bo)],8,wo)],8,yo))],8,Hs)):_("",!0)],64)}),128)),T.liveOverlay?(r(),l("li",Pr,[d("div",Ar,[d("div",Sr,[d("article",Er,[d("p",Fr,f(T.liveOverlay.activityLabel),1),T.liveOverlay.reasoningText?(r(),l("p",Br,f(T.liveOverlay.reasoningText),1)):_("",!0),T.liveOverlay.errorText?(r(),l("div",Rr,[d("span",null,f(T.liveOverlay.errorText),1),d("a",{class:"live-overlay-feedback",href:Pe(Wt),onClick:n[1]||(n[1]=t=>Jn(t,T.liveOverlay.errorText))},"Send feedback",8,Hr)])):_("",!0)])])])])):_("",!0),d("li",{ref_key:"bottomAnchorRef",ref:Jt,class:"conversation-bottom-anchor"},null,512)],544)),fi.value?(r(),l("button",{key:3,type:"button",class:"jump-to-latest-button",title:"Jump to latest","aria-label":"Jump to latest output",onClick:Wn},[q(gs,{class:"icon-svg jump-to-latest-icon"})])):_("",!0),xe.value.length>0?(r(),l("div",{key:4,class:"image-modal-backdrop",onClick:Nn},[d("div",{class:"image-modal-content",onClick:n[2]||(n[2]=st(()=>{},["stop"]))},[d("button",{class:"image-modal-close",type:"button","aria-label":"Close image preview",onClick:Nn},[q(Vn,{class:"icon-svg"})]),d("img",{class:"image-modal-image",src:xe.value,alt:"Expanded message image"},null,8,Or)])])):_("",!0),be.value?(r(),l("div",{key:5,ref_key:"fileLinkContextMenuRef",ref:Bt,class:"file-link-context-menu",style:St(Di.value),onClick:n[3]||(n[3]=st(()=>{},["stop"]))},[d("button",{type:"button",class:"file-link-context-menu-item",onClick:Vi}," Open link "),d("button",{type:"button",class:"file-link-context-menu-item",onClick:Ki}," Copy link "),lt.value?(r(),l("button",{key:0,type:"button",class:"file-link-context-menu-item",onClick:qi}," Edit file ")):_("",!0)],4)):_("",!0),B.value?(r(),l("div",{key:6,class:"diff-viewer-backdrop",onClick:Gt},[d("div",{class:"diff-viewer-shell",onClick:n[5]||(n[5]=st(()=>{},["stop"]))},[Pe(Se)?_("",!0):(r(),l("aside",zr,[d("div",Wr,[n[14]||(n[14]=d("p",{class:"diff-viewer-sidebar-title"},"Changed files",-1)),d("p",jr,f(Xe(ke.value.length)),1)]),d("div",Dr,[(r(!0),l(y,null,b(ke.value,t=>(r(),l("button",{key:`diff-viewer:${S(t)}`,type:"button",class:"diff-viewer-file-button","data-active":S(t)===S(B.value),onClick:s=>Xt(t)},[d("span",{class:"file-change-badge","data-operation":Ge(t)},f(ve(t)),9,Nr),d("span",Vr,[K(f(F(t.path))+" ",1),t.movedToPath?(r(),l(y,{key:0},[K(" → "+f(F(t.movedToPath)),1)],64)):_("",!0)]),oe(t)?(r(),l("span",qr,f(oe(t)),1)):_("",!0)],8,Ur))),128))])])),d("section",Kr,[d("div",Zr,[d("div",Gr,[d("p",Xr,[K(f(F(B.value.path))+" ",1),B.value.movedToPath?(r(),l(y,{key:0},[K(" → "+f(F(B.value.movedToPath)),1)],64)):_("",!0)]),d("p",Jr,[K(f(ve(B.value))+" ",1),oe(B.value)?(r(),l("span",Yr," · "+f(oe(B.value)),1)):_("",!0)])]),d("div",Qr,[Pe(Se)?(r(),l("button",{key:0,type:"button",class:"diff-viewer-mobile-files-button",onClick:ci},f(Xe(ke.value.length)),1)):_("",!0),d("button",{class:"image-modal-close diff-viewer-close",type:"button","aria-label":"Close diff viewer",onClick:Gt},[q(Vn,{class:"icon-svg"})])])]),Fi(B.value)?(r(),l("div",tl,[d("div",nl,[d("span",il,f(Mi(B.value)||"diff"),1)]),d("div",sl,[(r(!0),l(y,null,b(Ei.value,t=>(r(),l("div",{key:t.key,class:"diff-viewer-line","data-kind":t.kind},[d("span",al,f(t.oldLine??""),1),d("span",rl,f(t.newLine??""),1),d("span",ll,f(Bi(t)),1),d("code",{class:"diff-viewer-line-code",innerHTML:M(t.text)||" "},null,8,cl)],8,ol))),128))])])):(r(),l("div",el,[...n[15]||(n[15]=[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(_s,{name:"diff-viewer-sheet"},{default:qn(()=>[Pe(Se)&&Y.value?(r(),l("div",{key:0,class:"diff-viewer-mobile-sheet-backdrop",onClick:ui},[d("div",{class:"diff-viewer-mobile-sheet",onClick:n[4]||(n[4]=st(()=>{},["stop"]))},[n[17]||(n[17]=d("div",{class:"diff-viewer-mobile-sheet-handle","aria-hidden":"true"},null,-1)),d("div",ul,[n[16]||(n[16]=d("p",{class:"diff-viewer-sidebar-title"},"Changed files",-1)),d("p",dl,f(Xe(ke.value.length)),1)]),d("div",hl,[(r(!0),l(y,null,b(ke.value,t=>(r(),l("button",{key:`diff-viewer-sheet:${S(t)}`,type:"button",class:"diff-viewer-file-button","data-active":S(t)===S(B.value),onClick:s=>Xt(t)},[d("span",{class:"file-change-badge","data-operation":Ge(t)},f(ve(t)),9,pl),d("span",ml,[K(f(F(t.path))+" ",1),t.movedToPath?(r(),l(y,{key:0},[K(" → "+f(F(t.movedToPath)),1)],64)):_("",!0)]),oe(t)?(r(),l("span",vl,f(oe(t)),1)):_("",!0)],8,fl))),128))])])])):_("",!0)]),_:1})])])):_("",!0)],32))}}),Ll=Ft(Cl,[["__scopeId","data-v-516a2ab3"]]);export{Ll as default};
|