codex-mobile-re 0.1.97 → 0.1.99

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.
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.esm-Cxn_LBGD.js","assets/index.esm-Bx2Y2PLG.js","assets/index.esm-DYMAm9mq.js"])))=>i.map(i=>d[i]);
2
+ import{d as rt,o as a,a as l,n as K,b as s,t as i,F as O,u as n,e as u,w as Be,g as je,Z as ua,r as z,j as ct,k as w,_ as ut,l as Te,c as He,I as da,T as it,q as d,J as os,m as ds,N as ps,f as nt,$ as Je,a0 as Ye,A as is,y as pa,v as va,a1 as ya,a2 as ha,a3 as ma,p as ga,a4 as fa,i as ka,a5 as ba,a6 as _a,a7 as wa,a8 as Ca,a9 as Sa,aa as $a,ab as Pa,ac as Aa,ad as Ia,ae as La,af as Ea,ag as Ta,ah as Ua,ai as Na,aj as Fa,ak as Ma,al as Da,am as Oa,an as Ra,ao as xa,ap as Ga,aq as Ba,ar as ns,as as ja}from"./index-CZP3HKY9.js";import{s as Ha}from"./sanitizeHtml-Bd3No2dT.js";const za=[[/(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 vs(v){return v.trim().toLowerCase()}function Ka(v,R){return R.reduce((g,[P,S])=>g+(P.test(v)?S:0),0)}function rs(v){return v.activeCount*1e3+(v.isNoAuth?300:0)+v.toolsCount*3+v.triggersCount*4+Ka(`${v.name} ${v.slug} ${v.description}`,za)}function Va(v,R){const g=vs(R);if(!g)return 0;const P=v.name.toLowerCase(),S=v.slug.toLowerCase();return P===g||S===g?1e6:P.replace(/\s+/gu,"")===g.replace(/\s+/gu,"")?9e5:P.startsWith(g)||S.startsWith(g)?8e5:P.includes(g)||S.includes(g)?7e5:0}function Ge(v){return v.activeCount>0?0:v.totalConnections>0?1:v.isNoAuth?2:3}function qa(v,R,g=""){const P=vs(g),S=L=>Va(L,P);return R==="name"?[...v].sort((L,E)=>S(E)-S(L)||Ge(L)-Ge(E)||L.name.localeCompare(E.name)):R==="date"?[...v].sort((L,E)=>S(E)-S(L)||Ge(L)-Ge(E)||L.name.localeCompare(E.name)):[...v].sort((L,E)=>S(E)-S(L)||Ge(L)-Ge(E)||rs(E)-rs(L)||L.name.localeCompare(E.name))}const Wa={class:"skill-card-top"},Qa=["src","alt"],Ja={key:1,class:"skill-card-avatar-fallback"},Ya={class:"skill-card-info"},Za={class:"skill-card-header"},Xa={class:"skill-card-name"},el={key:0,class:"skill-card-badge-disabled"},tl={key:1,class:"skill-card-badge"},sl={key:0,class:"skill-card-owner"},al=["title"],ll={key:0,class:"skill-card-desc"},ol={key:1,class:"skill-card-meta-row"},il=rt({__name:"SkillCard",props:{skill:{},showStatusBadge:{type:Boolean,default:!0},showBrowseAction:{type:Boolean,default:!0},showOwner:{type:Boolean,default:!0}},emits:["select"],setup(v){const R=v,{t:g}=ct(),P=w(()=>R.showStatusBadge!==!1),S=w(()=>R.showBrowseAction!==!1),L=w(()=>R.showOwner!==!1),E=w(()=>{const r=R.skill.path;return r?r.endsWith("/SKILL.md")?r.slice(0,-9):r:""});function M(){const r=E.value;r&&window.open(`/codex-local-browse${encodeURI(r)}`,"_blank","noopener,noreferrer")}const U=w(()=>{const r=R.skill.publishedAt;if(!r)return"";const B=new Date(r),W=Date.now()-r;return W<36e5?`${Math.floor(W/6e4)}${g("ago")}`:W<864e5?`${Math.floor(W/36e5)}${g("ago")}`:W<2592e6?`${Math.floor(W/864e5)}${g("ago")}`:B.toLocaleDateString("en-US",{month:"short",day:"numeric"})}),x=w(()=>{const r=[];return R.skill.installCountLabel&&r.push(R.skill.installCountLabel),U.value&&r.push(U.value),r});function V(r){const B=r.target;B.style.display="none"}return(r,B)=>(a(),l("button",{class:K(["skill-card",{"is-disabled":v.skill.installed&&v.skill.enabled===!1}]),type:"button",onClick:B[0]||(B[0]=q=>r.$emit("select",v.skill))},[s("div",Wa,[v.skill.avatarUrl?(a(),l("img",{key:0,class:"skill-card-avatar",src:v.skill.avatarUrl,alt:v.skill.owner,loading:"lazy",onError:V},null,40,Qa)):(a(),l("div",Ja,i(v.skill.owner.charAt(0)),1)),s("div",Ya,[s("div",Za,[s("span",Xa,i(v.skill.displayName||v.skill.name),1),P.value?(a(),l(O,{key:0},[v.skill.installed&&v.skill.enabled===!1?(a(),l("span",el,i(n(g)("Disabled")),1)):v.skill.installed?(a(),l("span",tl,i(n(g)("Installed")),1)):u("",!0)],64)):u("",!0)]),L.value?(a(),l("span",sl,i(v.skill.owner),1)):u("",!0)]),S.value&&v.skill.installed&&E.value?(a(),l("button",{key:2,class:"skill-card-browse",type:"button",title:n(g)("Browse files"),onClick:Be(M,["stop"])},[je(ua,{class:"skill-card-browse-icon"})],8,al)):u("",!0)]),v.skill.description?(a(),l("p",ll,i(v.skill.description),1)):u("",!0),x.value.length>0?(a(),l("div",ol,[(a(!0),l(O,null,z(x.value,q=>(a(),l("span",{key:q,class:"skill-card-meta"},i(q),1))),128))])):u("",!0)],2))}}),cs=ut(il,[["__scopeId","data-v-2dc2f3b0"]]),nl={class:"sdm-panel"},rl={class:"sdm-header"},cl={class:"sdm-title-area"},ul=["src","alt"],dl={class:"sdm-title-col"},pl={class:"sdm-title-row"},vl={class:"sdm-title"},yl={key:0,class:"sdm-badge-disabled"},hl={class:"sdm-owner"},ml=["aria-label"],gl={class:"sdm-body"},fl={key:0,class:"sdm-desc"},kl={key:1,class:"sdm-readme-loading"},bl=["innerHTML"],_l=["href"],wl={class:"sdm-footer"},Cl={class:"sdm-footer-actions"},Sl=["disabled"],$l=["disabled"],Pl=["disabled"],Al=["disabled"],Il=rt({__name:"SkillDetailModal",props:{skill:{},visible:{type:Boolean},isInstalling:{type:Boolean},isUninstalling:{type:Boolean},isTrying:{type:Boolean}},emits:["close","install","uninstall","toggle-enabled","try"],setup(v,{emit:R}){const g=v,P=R,S=d(null),L=d(""),E=d(""),M=d(!1),{t:U}=ct(),x=w(()=>S.value??g.skill.enabled??!0),V=w(()=>g.isInstalling===!0||g.isUninstalling===!0),r=w(()=>L.value||g.skill.description),B=w(()=>{const _=g.skill.path;return _?_.endsWith("/SKILL.md")?_.slice(0,-9):_:""}),q=w(()=>{const _=E.value;if(!_)return"";const N=_.replace(/^---[\s\S]*?---\s*/,"");return Ha(W(N))});function W(_){return _.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").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 le(){if(!(!g.skill.owner||!g.skill.name)){M.value=!0,L.value="",E.value="";try{const _=new URLSearchParams({owner:g.skill.owner,name:g.skill.name});g.skill.installed&&_.set("installed","true"),g.skill.path&&_.set("path",g.skill.path);const N=await fetch(`/codex-api/skills-hub/readme?${_}`);if(!N.ok)return;const j=await N.json();E.value=j.content??"",L.value=j.description??""}catch{}finally{M.value=!1}}}Te(()=>g.visible,_=>{_&&(S.value=null,L.value="",E.value="",le())});function I(){P("install",g.skill)}function f(){P("uninstall",g.skill)}function b(){const _=!x.value;S.value=_,P("toggle-enabled",g.skill,_)}function m(){g.isTrying||P("try",g.skill)}function Q(){const _=B.value;_&&window.open(`/codex-local-browse${encodeURI(_)}`,"_blank","noopener,noreferrer")}return(_,N)=>(a(),He(it,{to:"body"},[v.visible?(a(),l("div",{key:0,class:"sdm-overlay",onClick:N[1]||(N[1]=Be(j=>_.$emit("close"),["self"]))},[s("div",nl,[s("div",rl,[s("div",cl,[v.skill.avatarUrl?(a(),l("img",{key:0,class:"sdm-avatar",src:v.skill.avatarUrl,alt:v.skill.owner,loading:"lazy"},null,8,ul)):u("",!0),s("div",dl,[s("div",pl,[s("h3",vl,i(v.skill.displayName||v.skill.name),1),v.skill.installed&&!x.value?(a(),l("span",yl,i(n(U)("Disabled")),1)):u("",!0)]),s("span",hl,i(v.skill.owner),1)])]),s("button",{class:"sdm-close",type:"button","aria-label":n(U)("Close"),onClick:N[0]||(N[0]=j=>_.$emit("close"))},[je(da,{class:"sdm-close-icon"})],8,ml)]),s("div",gl,[r.value?(a(),l("p",fl,i(r.value),1)):u("",!0),M.value?(a(),l("div",kl,i(n(U)("Loading skill contents...")),1)):E.value?(a(),l("div",{key:2,class:"sdm-readme",innerHTML:q.value},null,8,bl)):u("",!0),v.skill.url?(a(),l("a",{key:3,class:"sdm-link",href:v.skill.url,target:"_blank",rel:"noopener noreferrer"},i(n(U)("View on GitHub")),9,_l)):u("",!0)]),s("div",wl,[s("div",Cl,[v.skill.installed?(a(),l("button",{key:0,class:"sdm-btn sdm-btn-danger",type:"button",disabled:V.value,onClick:f},i(g.isUninstalling?n(U)("Uninstalling..."):n(U)("Uninstall")),9,Sl)):(a(),l("button",{key:1,class:"sdm-btn sdm-btn-primary",type:"button",disabled:V.value,onClick:I},i(g.isInstalling?n(U)("Installing..."):n(U)("Install")),9,$l)),v.skill.installed?(a(),l("button",{key:2,class:"sdm-btn sdm-btn-secondary",type:"button",disabled:V.value,onClick:b},i(x.value?n(U)("Disable"):n(U)("Enable")),9,Pl)):u("",!0),v.skill.installed&&x.value?(a(),l("button",{key:3,class:"sdm-btn sdm-btn-primary",type:"button",disabled:V.value||g.isTrying,onClick:m},i(g.isTrying?"Starting...":"Try it!"),9,Al)):u("",!0),v.skill.installed&&B.value?(a(),l("button",{key:4,class:"sdm-btn sdm-btn-secondary",type:"button",onClick:Q},i(n(U)("Browse files")),1)):u("",!0)])])])])):u("",!0)]))}}),Ll=ut(Il,[["__scopeId","data-v-318b9c96"]]),El={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 ft=null;function Tl(){return ft||(ft=Promise.all([os(()=>import("./index.esm-Cxn_LBGD.js"),__vite__mapDeps([0,1])),os(()=>import("./index.esm-DYMAm9mq.js"),__vite__mapDeps([2,1]))])),ft}function Ul(v){const R=d(null),g=d(""),P=d(""),S=d(""),L=d({loggedIn:!1,githubUsername:"",repoOwner:"",repoName:"",configured:!1,startup:{inProgress:!1,mode:"idle",branch:"main",lastAction:"not-started",lastRunAtIso:"",lastSuccessAtIso:"",lastError:""}}),E=w(()=>S.value==="pull"),M=w(()=>S.value==="push"),U=w(()=>S.value==="startup-sync"),x=w(()=>S.value!=="");async function V(){try{const f=await fetch("/codex-api/skills-sync/status");if(!f.ok)return;const b=await f.json();b.data&&(L.value=b.data)}catch{}}async function r(){try{const f=await fetch("/codex-api/skills-sync/github/start-login",{method:"POST"}),b=await f.json();if(!f.ok||!b.data)throw new Error("Failed to start GitHub login");R.value=b.data;const m=30,Q=Math.max((b.data.interval??5)*1e3,3e3);let _=!1;for(let N=0;N<m;N++){await new Promise(te=>setTimeout(te,Q));const j=await fetch("/codex-api/skills-sync/github/complete-login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceCode:b.data.device_code})}),J=await j.json();if(!j.ok)throw new Error(J.error||"Failed to complete GitHub login");if(J.ok){_=!0;break}if(!J.pending)throw new Error(J.error||"Failed to complete GitHub login")}if(!_)throw new Error("GitHub login timed out. Please retry.");R.value=null,await V(),v.showToast("GitHub login successful")}catch(f){v.showToast(f instanceof Error?f.message:"Failed GitHub login","error")}}async function B(){try{const[f,b]=await Tl(),{getApp:m,getApps:Q,initializeApp:_}=f,{getAuth:N,GithubAuthProvider:j,signInWithPopup:J}=b,te=Q().length>0?m():_(El),se=N(te),X=new j;X.addScope("repo");const oe=await J(se,X),ne=j.credentialFromResult(oe),re=(ne==null?void 0:ne.accessToken)??"";if(!re)throw new Error("GitHub access token missing from Firebase login");const ee=await fetch("/codex-api/skills-sync/github/token-login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:re})}),Y=await ee.json();if(!ee.ok||!Y.ok)throw new Error(Y.error||"Failed to login with GitHub token");await V(),v.showToast("GitHub login successful")}catch(f){const b=f instanceof Error?f.message:"Failed Firebase GitHub login";v.showToast(b,"error")}}async function q(){P.value="",g.value="pull-started",S.value="pull";try{const f=await fetch("/codex-api/skills-sync/pull",{method:"POST"}),b=await f.json();if(!f.ok||!b.ok)throw new Error(b.error||"Failed to pull synced skills");await v.onPulled(),g.value="pull-success",v.showToast(L.value.loggedIn?"Pulled skills from private sync repo":"Pulled skills from upstream repo")}catch(f){const b=f instanceof Error?f.message:"Failed to pull sync";P.value=b,g.value="pull-failed",v.showToast(b,"error")}finally{S.value=""}}async function W(){P.value="",g.value="push-started",S.value="push";try{const f=await fetch("/codex-api/skills-sync/push",{method:"POST"}),b=await f.json();if(!f.ok||!b.ok)throw new Error(b.error||"Failed to push synced skills");g.value="push-success",v.showToast("Pushed skills to private sync repo")}catch(f){const b=f instanceof Error?f.message:"Failed to push sync";P.value=b,g.value="push-failed",v.showToast(b,"error")}finally{S.value=""}}async function le(){P.value="",g.value="startup-sync-started",S.value="startup-sync";try{const f=await fetch("/codex-api/skills-sync/startup-sync",{method:"POST"}),b=await f.json();if(!f.ok||!b.ok)throw new Error(b.error||"Failed to run startup sync");await v.onPulled(),await V(),g.value="startup-sync-success",v.showToast("Startup sync completed")}catch(f){const b=f instanceof Error?f.message:"Failed startup sync";P.value=b,g.value="startup-sync-failed",v.showToast(b,"error")}finally{S.value=""}}async function I(){try{const f=await fetch("/codex-api/skills-sync/github/logout",{method:"POST"}),b=await f.json();if(!f.ok||!b.ok)throw new Error(b.error||"Failed to logout GitHub");await V(),v.showToast("Logged out from GitHub")}catch(f){v.showToast(f instanceof Error?f.message:"Failed to logout GitHub","error")}}return{deviceLogin:R,isPullInFlight:E,isPushInFlight:M,isStartupSyncInFlight:U,isSyncActionInFlight:x,loadSyncStatus:V,logoutGithub:I,pullSkillsSync:q,pushSkillsSync:W,startupSkillsSync:le,startGithubFirebaseLogin:B,startGithubLogin:r,syncActionError:P,syncActionStatus:g,syncStatus:L}}const Nl={class:"skills-hub"},Fl={class:"skills-hub-header"},Ml={class:"skills-hub-title"},Dl={class:"skills-hub-subtitle"},Ol={class:"skills-sync-panel"},Rl={class:"skills-sync-header"},xl=["href"],Gl={key:1,class:"skills-sync-badge"},Bl={key:2,class:"skills-sync-badge"},jl={class:"skills-sync-meta"},Hl={key:0,class:"skills-sync-error"},zl=["href"],Kl={key:1,class:"skills-sync-meta"},Vl={key:2,class:"skills-sync-error"},ql=["href"],Wl={key:3,class:"skills-sync-device"},Ql=["href"],Jl={class:"skills-sync-actions"},Yl=["disabled"],Zl=["disabled"],Xl=["disabled"],eo=["disabled"],to={class:"skills-search-panel"},so={class:"skills-search-header"},ao={class:"skills-search-copy"},lo={class:"skills-directory-link",href:"https://skills.anyclaw.store/",target:"_blank",rel:"noopener noreferrer"},oo=["placeholder","aria-label"],io=["disabled"],no={key:0,class:"skills-hub-error"},ro=["href"],co={key:1,class:"skills-hub-section"},uo={class:"skills-hub-section-title"},po={key:0,class:"skills-hub-grid"},vo={key:2,class:"skills-hub-section"},yo={class:"skills-hub-section-title"},ho={key:0,class:"skills-hub-grid"},mo={class:"skills-hub-section"},go={key:0,class:"skills-hub-loading"},fo={key:1,class:"skills-hub-error"},ko=["href"],bo={key:2,class:"skills-hub-empty"},_o=rt({__name:"SkillsHub",props:{tryInFlightKey:{}},emits:["skills-changed","try-item"],setup(v,{emit:R}){const g={name:"",owner:"",description:"",url:"",installed:!1},P=d([]),S=d([]),L=d(!1),E=d(!1),M=d(""),U=d(""),x=d(""),V=d(!0),r=d(!0),B=d(!1),q=d(g),W=d(null),le=d(""),I=d(!1),f=d(!1);let b=null;ds(()=>{b&&clearTimeout(b)});const{t:m}=ct(),{buildFeedbackMailto:Q,feedbackMailtoBase:_,recordVisibleFailure:N}=va(),j=_(),J=v,te=R,se=w(()=>{var y;return((y=W.value)==null?void 0:y.type)==="error"?"skills-hub-toast-error":"skills-hub-toast-success"}),X=w(()=>`${q.value.owner}/${q.value.name}`),oe=w(()=>I.value&&le.value===X.value),ne=w(()=>f.value&&le.value===X.value),re=w(()=>{if(!D.value.configured)return"";const y=D.value.repoOwner.trim(),p=D.value.repoName.trim();return!y||!p?"":`https://github.com/${encodeURIComponent(y)}/${encodeURIComponent(p)}`}),ee=w(()=>P.value);function Y(y,p="success"){W.value={text:y,type:p},b&&clearTimeout(b),b=setTimeout(()=>{W.value=null},3e3)}function fe(y,p){N(p);const h=y.currentTarget;h instanceof HTMLAnchorElement&&(h.href=Q())}function de(y){if(P.value=y.installed??[],S.value.length>0){const p=new Map(P.value.map(h=>[h.name,h]));S.value=S.value.map(h=>{const G=p.get(h.name);return G?Ue(h,G):h})}}function Ue(y,p){return{...y,installed:!0,path:p.path,enabled:p.enabled}}function ze(y,p){return{...y,installed:!0,source:p.source,publishedAt:p.publishedAt}}async function pe(){L.value=!0,M.value="";try{const y=await fetch("/codex-api/skills-hub");if(!y.ok)throw new Error(`HTTP ${y.status}`);const p=await y.json();de(p)}catch(y){M.value=y instanceof Error?y.message:m("Failed to load skills")}finally{L.value=!1}}function be(y){const p=y.installed?P.value.find(h=>h.name===y.name):void 0;q.value=p?ze(p,y):y,B.value=!0}async function Ne(){const y=U.value.trim();if(!(y.length<2)){E.value=!0,x.value="";try{const p=new URLSearchParams({q:y}),h=await fetch(`/codex-api/skills-hub/search?${p}`),G=await h.json();if(!h.ok)throw new Error(G.error||`HTTP ${h.status}`);const ce=new Map(P.value.map(ue=>[ue.name,ue]));S.value=(G.results??[]).map(ue=>{const ae=ce.get(ue.name);return ae?Ue(ue,ae):ue}),r.value=!0,S.value.length===0&&Y(m("No matching skills found."),"error")}catch(p){x.value=p instanceof Error?p.message:m("Failed to search skills")}finally{E.value=!1}}}async function Fe(y){le.value=`${y.owner}/${y.name}`,I.value=!0;try{const h=await(await fetch("/codex-api/skills-hub/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({owner:y.owner,name:y.name,source:y.source})})).json();if(!h.ok)throw new Error(h.error||m("Install failed"));if(!h.path)throw new Error(m("Install completed but no local skill path was returned"));await pe();const G=P.value.find(ce=>ce.name===y.name);if(!(G!=null&&G.path))throw new Error(m("Install completed but the local skill was not found after refresh"));q.value=ze(G,y),Y(`${y.displayName||y.name} ${m("skill installed")}`),B.value=!1,te("skills-changed")}catch(p){Y(p instanceof Error?p.message:m("Failed to install skill"),"error")}finally{I.value=!1}}async function Me(y){le.value=`${y.owner}/${y.name}`,f.value=!0;try{const h=await(await fetch("/codex-api/skills-hub/uninstall",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:y.name,path:y.path})})).json();if(!h.ok)throw new Error(h.error||m("Uninstall failed"));P.value=P.value.filter(G=>G.name!==y.name),Y(`${y.displayName||y.name} ${m("skill uninstalled")}`),B.value=!1,te("skills-changed")}catch(p){Y(p instanceof Error?p.message:m("Failed to uninstall skill"),"error")}finally{f.value=!1}}async function De(y,p){try{if(!(await fetch("/codex-api/rpc",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({method:"skills/config/write",params:{path:y.path,enabled:p}})})).ok)throw new Error(m("Failed to update skill"));await fetch("/codex-api/skills-sync/push",{method:"POST"}),Y(`${y.displayName||y.name} ${m("skill")} ${m(p?"enabled":"disabled")}`),await pe()}catch(h){Y(h instanceof Error?h.message:m("Failed to update skill"),"error")}}function C(y){!y.installed||y.enabled===!1||J.tryInFlightKey||(te("try-item",{kind:"skill",name:y.name,displayName:y.displayName||y.name,skillPath:y.path}),B.value=!1)}function F(y){return`skill:${y.name}:${y.path??""}`}const{deviceLogin:_e,isPullInFlight:Ke,isPushInFlight:Oe,isStartupSyncInFlight:$,isSyncActionInFlight:ve,loadSyncStatus:Ve,logoutGithub:we,pullSkillsSync:Ce,pushSkillsSync:Se,startupSkillsSync:Z,startGithubFirebaseLogin:Re,startGithubLogin:ye,syncActionError:he,syncActionStatus:$e,syncStatus:D}=Ul({showToast:Y,onPulled:async()=>{await pe(),te("skills-changed")}}),Pe=[w(()=>D.value.startup.lastError),he,x,M];return ps(()=>{pe(),Ve()}),Te(Pe,(y,p)=>{y.forEach((h,G)=>{if(h===p[G])return;const ce=h.trim();ce&&N(ce)})}),(y,p)=>(a(),l("div",Nl,[s("div",Fl,[s("h2",Ml,i(n(m)("Skills Hub")),1),s("p",Dl,i(n(m)("Manage installed skills on this machine")),1)]),s("div",Ol,[s("div",Rl,[s("strong",null,i(n(m)("Skills Sync (GitHub)")),1),n(D).configured&&re.value?(a(),l("a",{key:0,class:"skills-sync-badge skills-sync-badge-link",href:re.value,target:"_blank",rel:"noopener noreferrer"},i(n(m)("Connected"))+": "+i(n(D).repoOwner)+"/"+i(n(D).repoName),9,xl)):n(D).loggedIn?(a(),l("span",Gl,i(n(m)("Logged in as"))+" "+i(n(D).githubUsername),1)):(a(),l("span",Bl,i(n(m)("Not connected")),1))]),s("div",jl,[s("span",null,i(n(m)("Startup"))+": "+i(n(D).startup.mode),1),s("span",null,i(n(m)("Branch"))+": "+i(n(D).startup.branch),1),s("span",null,i(n(m)("Action"))+": "+i(n(D).startup.lastAction),1)]),n(D).startup.lastError?(a(),l("div",Hl,[s("span",null,i(n(D).startup.lastError),1),s("a",{class:"skills-error-feedback",href:n(j),onClick:p[0]||(p[0]=h=>fe(h,n(D).startup.lastError))},i(n(m)("Send feedback")),9,zl)])):u("",!0),n($e)?(a(),l("div",Kl,[s("span",null,i(n(m)("Manual sync"))+": "+i(n($e)),1)])):u("",!0),n(he)?(a(),l("div",Vl,[s("span",null,i(n(he)),1),s("a",{class:"skills-error-feedback",href:n(j),onClick:p[1]||(p[1]=h=>fe(h,n(he)))},i(n(m)("Send feedback")),9,ql)])):u("",!0),n(_e)?(a(),l("div",Wl,[s("span",null,[nt(i(n(m)("Open"))+" ",1),s("a",{href:n(_e).verification_uri,target:"_blank",rel:"noreferrer"},i(n(m)("GitHub device login")),9,Ql),nt(" "+i(n(m)("and enter code:")),1)]),s("code",null,i(n(_e).user_code),1)])):u("",!0),s("div",Jl,[n(D).loggedIn?u("",!0):(a(),l("button",{key:0,class:"skills-hub-sort",type:"button",onClick:p[2]||(p[2]=(...h)=>n(Re)&&n(Re)(...h))},i(n(m)("Login with GitHub")),1)),n(D).loggedIn?u("",!0):(a(),l("button",{key:1,class:"skills-hub-sort",type:"button",onClick:p[3]||(p[3]=(...h)=>n(ye)&&n(ye)(...h))},i(n(m)("Device Login")),1)),n(D).loggedIn?(a(),l("button",{key:2,class:"skills-hub-sort",type:"button",onClick:p[4]||(p[4]=(...h)=>n(we)&&n(we)(...h)),disabled:n(ve)},i(n(m)("Logout GitHub")),9,Yl)):u("",!0),s("button",{class:"skills-hub-sort",type:"button",onClick:p[5]||(p[5]=(...h)=>n(Z)&&n(Z)(...h)),disabled:n(ve)},i(n($)?n(m)("Syncing..."):n(m)("Startup Sync")),9,Zl),s("button",{class:"skills-hub-sort",type:"button",onClick:p[6]||(p[6]=(...h)=>n(Ce)&&n(Ce)(...h)),disabled:n(ve)},i(n(Ke)?n(m)("Pulling..."):n(m)("Pull")),9,Xl),n(D).loggedIn?(a(),l("button",{key:3,class:"skills-hub-sort",type:"button",onClick:p[7]||(p[7]=(...h)=>n(Se)&&n(Se)(...h)),disabled:!n(D).configured||n(ve)},i(n(Oe)?n(m)("Pushing..."):n(m)("Push")),9,eo)):u("",!0)])]),W.value?(a(),l("div",{key:0,class:K(["skills-hub-toast",se.value])},i(W.value.text),3)):u("",!0),s("div",to,[s("div",so,[s("div",ao,[s("strong",null,i(n(m)("Find skills")),1),s("span",null,i(n(m)("Search the Skills registry with npx skills find.")),1)]),s("a",lo,i(n(m)("Skills directory")),1)]),s("form",{class:"skills-search-form",onSubmit:Be(Ne,["prevent"])},[Je(s("input",{"onUpdate:modelValue":p[8]||(p[8]=h=>U.value=h),class:"skills-search-input",type:"search",placeholder:n(m)("Search skills..."),"aria-label":n(m)("Search skills")},null,8,oo),[[Ye,U.value]]),s("button",{class:"skills-hub-sort",type:"submit",disabled:E.value||U.value.trim().length<2},i(E.value?n(m)("Searching..."):n(m)("Search")),9,io)],32),x.value?(a(),l("div",no,[s("span",null,i(x.value),1),s("a",{class:"skills-error-feedback",href:n(j),onClick:p[9]||(p[9]=h=>fe(h,x.value))},i(n(m)("Send feedback")),9,ro)])):u("",!0)]),S.value.length>0?(a(),l("div",co,[s("button",{class:"skills-hub-section-toggle",type:"button",onClick:p[10]||(p[10]=h=>r.value=!r.value)},[s("span",uo,i(n(m)("Search results ({count})",{count:S.value.length})),1),je(is,{class:K(["skills-hub-section-chevron",{"is-open":r.value}])},null,8,["class"])]),r.value?(a(),l("div",po,[(a(!0),l(O,null,z(S.value,h=>(a(),He(cs,{key:h.source||`${h.owner}/${h.name}`,skill:h,"show-browse-action":!1,onSelect:G=>be(G)},null,8,["skill","onSelect"]))),128))])):u("",!0)])):u("",!0),pa(y.$slots,"before-installed",{},void 0),ee.value.length>0?(a(),l("div",vo,[s("button",{class:"skills-hub-section-toggle",type:"button",onClick:p[11]||(p[11]=h=>V.value=!V.value)},[s("span",yo,i(n(m)("Installed skills ({count})",{count:ee.value.length})),1),je(is,{class:K(["skills-hub-section-chevron",{"is-open":V.value}])},null,8,["class"])]),V.value?(a(),l("div",ho,[(a(!0),l(O,null,z(ee.value,h=>(a(),He(cs,{key:h.name,skill:h,"show-status-badge":!1,"show-owner":!1,onSelect:G=>be(G)},null,8,["skill","onSelect"]))),128))])):u("",!0)])):u("",!0),s("div",mo,[L.value?(a(),l("div",go,i(n(m)("Loading skills...")),1)):M.value?(a(),l("div",fo,[s("span",null,i(M.value),1),s("a",{class:"skills-error-feedback",href:n(j),onClick:p[12]||(p[12]=h=>fe(h,M.value))},i(n(m)("Send feedback")),9,ko)])):P.value.length===0?(a(),l("div",bo,i(n(m)("No installed skills found.")),1)):u("",!0)]),je(Ll,{skill:q.value,visible:B.value,"is-installing":oe.value,"is-uninstalling":ne.value,"is-trying":J.tryInFlightKey===F(q.value),onClose:p[13]||(p[13]=h=>B.value=!1),onInstall:Fe,onUninstall:Me,onToggleEnabled:De,onTry:C},null,8,["skill","visible","is-installing","is-uninstalling","is-trying"])]))}}),wo=ut(_o,[["__scopeId","data-v-25bfcbd5"]]),Co={class:"directory-hub"},So={class:"directory-header"},$o={class:"directory-title"},Po={class:"directory-subtitle"},Ao={class:"directory-header-actions"},Io=["disabled"],Lo={class:"directory-tabs",role:"tablist","aria-label":"Directory sections"},Eo=["aria-selected","onClick"],To={key:1,class:"directory-section"},Uo={class:"directory-toolbar"},No={class:"directory-sort-group",role:"group","aria-label":"Sort plugins"},Fo={key:0,class:"directory-marketplace"},Mo={class:"directory-marketplace-header"},Do=["disabled"],Oo={key:0,class:"directory-marketplace-empty"},Ro={key:1,class:"directory-marketplace-list"},xo={class:"directory-marketplace-name"},Go={key:0,class:"directory-marketplace-path"},Bo=["disabled","onClick"],jo={class:"directory-marketplace-add"},Ho=["disabled"],zo={key:1,class:"directory-empty"},Ko={key:2,class:"directory-error"},Vo={key:3,class:"directory-loading"},qo={key:4,class:"directory-empty"},Wo={key:5,class:"directory-grid"},Qo=["onClick"],Jo={class:"directory-card-top"},Yo=["src","alt"],Zo={class:"directory-card-main"},Xo={class:"directory-card-title-row"},ei={class:"directory-card-title"},ti={key:0,class:"directory-badge is-muted"},si={key:1,class:"directory-badge"},ai={class:"directory-card-meta"},li={key:0,class:"directory-card-description"},oi={class:"directory-chip-row"},ii={key:0,class:"directory-chip"},ni={key:2,class:"directory-section"},ri={class:"directory-toolbar"},ci={class:"directory-sort-group",role:"group","aria-label":"Sort apps"},ui={key:0,class:"directory-empty"},di={key:1,class:"directory-error"},pi={key:2,class:"directory-loading"},vi={key:3,class:"directory-empty"},yi={key:4,class:"directory-grid"},hi={class:"directory-card-top"},mi=["src","alt"],gi={key:1,class:"directory-card-fallback"},fi={class:"directory-card-main"},ki={class:"directory-card-title-row"},bi={class:"directory-card-title"},_i={key:0,class:"directory-badge is-muted"},wi={key:1,class:"directory-badge"},Ci={class:"directory-card-meta"},Si={key:0,class:"directory-card-description"},$i={class:"directory-chip-row"},Pi={key:0,class:"directory-chip"},Ai={class:"directory-card-actions"},Ii=["disabled","onClick"],Li=["onClick"],Ei=["disabled","onClick"],Ti={key:3,class:"directory-section"},Ui={class:"directory-toolbar"},Ni={class:"directory-sort-group",role:"group","aria-label":"Sort Composio connectors"},Fi={key:0,class:"directory-error"},Mi={key:1,class:"directory-loading"},Di={key:2,class:"directory-empty"},Oi={class:"directory-empty-copy"},Ri={class:"directory-card-actions"},xi=["disabled"],Gi={key:3,class:"composio-preview"},Bi={class:"composio-preview-hero"},ji={class:"composio-preview-actions"},Hi=["disabled"],zi={class:"composio-preview-grid"},Ki={class:"directory-card-top"},Vi={class:"directory-card-fallback composio-fallback"},qi={class:"directory-card-main"},Wi={class:"directory-card-title-row"},Qi={class:"directory-card-title"},Ji={class:"directory-card-meta"},Yi={class:"directory-card-description"},Zi={class:"directory-chip-row"},Xi={key:4,class:"directory-section composio-section"},en={class:"directory-card directory-card-wide composio-status-card"},tn={class:"directory-card-top"},sn={class:"directory-card-main"},an={class:"directory-card-title-row"},ln={class:"directory-card-title"},on={class:"directory-badge"},nn={class:"directory-card-meta"},rn={class:"directory-card-description"},cn={class:"directory-chip-row"},un={key:0,class:"directory-chip"},dn={key:1,class:"directory-chip"},pn={key:2,class:"directory-chip"},vn={class:"directory-card-actions"},yn={key:0,class:"directory-empty"},hn={key:1,class:"directory-grid"},mn={class:"directory-card-top"},gn=["src","alt"],fn={key:1,class:"directory-card-fallback composio-fallback"},kn={class:"directory-card-main"},bn={class:"directory-card-title-row"},_n={class:"directory-card-title"},wn={key:0,class:"directory-badge"},Cn={key:1,class:"directory-badge"},Sn={class:"directory-card-meta"},$n={key:0,class:"directory-card-description"},Pn={class:"directory-chip-row"},An={class:"directory-chip"},In={key:0,class:"directory-chip"},Ln={key:1,class:"directory-chip"},En={class:"directory-card-actions"},Tn=["onClick"],Un=["disabled","onClick"],Nn=["disabled","onClick"],Fn={key:2,class:"directory-section-actions"},Mn=["disabled"],Dn={key:4,class:"directory-section"},On={class:"skills-embedded-section"},Rn={class:"skills-embedded-title"},xn={key:0,class:"skills-embedded-body"},Gn={key:0,class:"directory-empty"},Bn={key:1,class:"directory-error"},jn={key:2,class:"directory-loading"},Hn={key:3,class:"directory-empty"},zn={key:4,class:"mcp-skill-grid"},Kn=["onClick"],Vn={class:"mcp-skill-card-top"},qn={class:"mcp-skill-avatar-fallback"},Wn={class:"mcp-skill-info"},Qn={class:"mcp-skill-header"},Jn={class:"mcp-skill-name"},Yn={class:"mcp-skill-meta"},Zn={key:0,class:"directory-mcp-detail"},Xn={key:0},er={class:"directory-mini-list"},tr={key:1},sr={class:"directory-mini-list"},ar={class:"directory-modal"},lr={class:"directory-modal-header"},or={class:"directory-card-top"},ir=["src","alt"],nr={key:1,class:"directory-card-fallback"},rr={class:"directory-card-main"},cr={class:"directory-modal-title"},ur={class:"directory-card-meta"},dr=["aria-label"],pr={class:"directory-modal-body"},vr={key:0,class:"directory-error"},yr={key:1,class:"directory-loading"},hr={key:0,class:"directory-detail-description"},mr={key:1,class:"directory-detail-block"},gr={class:"directory-chip-row"},fr={class:"directory-detail-grid"},kr={key:0,class:"directory-detail-block"},br={class:"directory-detail-heading"},_r={key:0,class:"directory-auth-status is-warning"},wr=["onClick"],Cr={key:1,class:"directory-detail-block"},Sr={class:"directory-detail-heading"},$r={class:"directory-mini-list"},Pr={key:2,class:"directory-detail-block"},Ar=["disabled","onClick"],Ir={key:2,class:"directory-screenshots"},Lr=["src"],Er={key:3,class:"directory-auth-panel"},Tr=["onClick"],Ur={class:"directory-modal-footer"},Nr=["disabled"],Fr=["disabled"],Mr={key:2,class:"directory-action",type:"button",disabled:""},Dr=["disabled"],Or=["disabled"],Rr={class:"directory-modal directory-modal--share"},xr={class:"directory-modal-header"},Gr={class:"directory-card-main"},Br={class:"directory-modal-title"},jr={class:"directory-card-meta"},Hr=["aria-label"],zr={class:"directory-modal-body"},Kr={key:0,class:"directory-error"},Vr={key:1,class:"directory-loading"},qr={key:0,class:"directory-empty"},Wr={key:1,class:"directory-share-list"},Qr={class:"directory-share-info"},Jr={class:"directory-share-name"},Yr=["href"],Zr=["disabled","onClick"],Xr=["disabled","onClick"],ec=["disabled"],tc={class:"directory-modal"},sc={class:"directory-modal-header"},ac={class:"directory-card-top"},lc=["src","alt"],oc={key:1,class:"directory-card-fallback composio-fallback"},ic={class:"directory-card-main"},nc={class:"directory-modal-title"},rc={class:"directory-card-meta"},cc=["aria-label"],uc={class:"directory-modal-body"},dc={key:0,class:"directory-error"},pc={key:1,class:"directory-loading"},vc={key:0,class:"directory-detail-description"},yc={class:"directory-detail-grid"},hc={class:"directory-detail-block"},mc={class:"directory-chip-row"},gc={class:"directory-chip"},fc={key:0,class:"directory-chip"},kc={key:1,class:"directory-chip"},bc={key:2,class:"directory-chip"},_c={class:"directory-detail-block"},wc={key:0,class:"directory-mini-list"},Cc={key:1},Sc={class:"directory-card-meta"},$c={key:1,class:"directory-detail-block"},Pc={class:"directory-card-meta"},Ac={class:"directory-modal-footer"},Ic=["disabled"],Lc=["disabled"],Ec="/Users/igor/.codex/skills/shared_skills/composio-cli/SKILL.md",Tc=50,us=100,Uc=rt({__name:"DirectoryHub",props:{cwd:{},threadId:{},tryInFlightKey:{}},emits:["skills-changed","try-item"],setup(v,{expose:R,emit:g}){const P=[[/^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]],S=[[/(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]],L=[[/(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]],E=[[/(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]],M=v,U=g,x=ya(),V=ha(),{t:r}=ct(),B=w(()=>[{id:"plugins",label:r("Plugins"),subtitle:r("Plugins make Codex work your way.")},{id:"apps",label:r("Apps"),subtitle:r("Connect Codex to external apps and services.")},{id:"composio",label:"Composio",subtitle:r("Browse Composio connectors, auth state, and ready-to-try integrations.")},{id:"skills",label:r("Skills"),subtitle:r("MCPs first, then installed skills and GitHub sync state.")}]),q=[{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 W(e){return e==="plugins"||e==="apps"||e==="composio"||e==="skills"}function le(){return W(x.query.tab)?x.query.tab:"skills"}const I=d(le()),f=d(new Set),b=d(!1),m=d([]),Q=d([]),_=d(null),N=d([]),j=d(null),J=d(0),te=d([]),se=d("popular"),X=d("popular"),oe=d("popular"),ne=d(""),re=d(""),ee=d(""),Y=d(!1),fe=d(!1),de=d(!1),Ue=d(!1),ze=d(!1),pe=d(!1),be=d(!0),Ne=d(""),Fe=d(""),Me=d(""),De=d(""),C=d(null),F=d(null),_e=d(!1),Ke=d(!1),Oe=d(""),$=d(null),ve=d(!1),Ve=d(!1),we=d(""),Ce=d(!1),Se=d(!1),Z=d(!1),Re=d(""),ye=d(""),he=d([]),$e=d(""),D=d(new Set),Pe=d(null),y=d(""),p=d(""),h=d(!1),G=d([]),ce=d(!1),ue=d(!1),ae=d(!1),me=d(""),Ae=d("");let qe=null,We=null;ds(()=>{qe&&clearTimeout(qe),We&&clearTimeout(We)});let dt=!1;const ys=w(()=>B.value.find(e=>e.id===I.value)??B.value[0]),kt=w(()=>!b.value||["plugin/list","plugin/read","plugin/install","plugin/uninstall"].every(e=>f.value.has(e))),Ze=w(()=>!b.value||f.value.has("app/list")),pt=w(()=>!b.value||f.value.has("mcpServerStatus/list")),bt=w(()=>f.value.has("config/mcpServer/reload")),_t=w(()=>f.value.has("mcpServer/oauth/login")),hs=w(()=>!b.value||["marketplace/add","marketplace/remove","marketplace/upgrade"].every(e=>f.value.has(e))),ms=w(()=>!b.value||["plugin/share/save","plugin/share/list","plugin/share/delete"].every(e=>f.value.has(e))),Ie=w(()=>(M.tryInFlightKey??"").length>0),wt=w(()=>{var e,t,c;return((e=F.value)==null?void 0:e.description)||((t=F.value)==null?void 0:t.summary.longDescription)||((c=F.value)==null?void 0:c.summary.description)||""}),Ct=w(()=>{var t;const e=(t=F.value)==null?void 0:t.summary;return e?[...e.screenshotUrls,...e.screenshots.map(tt)].filter(Boolean):[]}),vt=w(()=>{var c;const e=((c=F.value)==null?void 0:c.apps)??[];if(e.length===0)return!1;const t=new Set;for(const k of Q.value)t.add(k.id.trim().toLowerCase()),t.add(Tt(k.name));return e.some(k=>{const H=k.id.trim().toLowerCase(),ke=Tt(k.name),Ee=H.length>0&&t.has(H),ot=ke.length>0&&t.has(ke);return!Ee&&!ot})}),gs=w(()=>{var e,t;return((e=C.value)==null?void 0:e.installPolicy)==="NOT_AVAILABLE"||(((t=F.value)==null?void 0:t.apps.some(c=>Et(c)))??!1)}),St=w(()=>Is(Ns(Es(m.value,ne.value),se.value),se.value,ne.value)),$t=w(()=>{const e=new Map;for(const t of m.value){if(!t.marketplaceName)continue;const c=t.marketplaceName;e.has(c)||e.set(c,{name:t.marketplaceName,displayName:t.marketplaceDisplayName||t.marketplaceName,path:t.marketplacePath})}return[...e.values()].sort((t,c)=>t.displayName.localeCompare(c.displayName))}),Pt=w(()=>Ls(Fs(Ts(Q.value,re.value),X.value),X.value,re.value)),At=w(()=>qa(Us(N.value,ee.value),oe.value,ee.value)),fs=w(()=>{const e=Qe(ee.value);return e?q.filter(t=>Xe([t.name,t.slug,t.meta,t.description,...t.chips],e)):q}),yt=w(()=>Ms(te.value)),It=w(()=>j.value!==null),ks=w(()=>new Map(te.value.map(e=>[e.name,e]))),bs=w(()=>{const e=_.value;return e&&[e.email||e.defaultOrgName,e.defaultOrgId?`org ${e.defaultOrgId}`:"",e.baseUrl||""].filter(Boolean).join(" · ")||r("Composio CLI shares the login and connections from this machine.")});function Qe(e){return e.trim().toLowerCase()}function _s(e){return Qe(e).replace(/\s+\((synced|legacy)\)\s*$/iu,"").replace(/\s+\(.*?\)\s*$/u,"").replace(/[-_]+/gu," ").replace(/\s+plugin$/iu,"").replace(/\s+/gu," ").trim()}function Lt(...e){const t=new Set;for(const c of e){const k=_s(c);k&&(t.add(k),t.add(k.replace(/\s+/gu,"")))}return Array.from(t)}function ws(e){return!e.isAccessible&&e.installUrl.trim().length===0}function Cs(e){const t=e.id.trim();if(t){const k=Q.value.find(H=>H.id===t);if(k)return k}const c=Lt(e.name);return Q.value.find(k=>Lt(k.name).some(H=>c.includes(H)))??null}function Et(e){const t=Cs(e);return t?ws(t):e.needsAuth&&e.installUrl.trim().length===0}function Xe(e,t){const c=Qe(t);return c?e.some(k=>k==null?void 0:k.toLowerCase().includes(c)):!0}function et(e,t){return t.reduce((c,[k,H])=>c+(k.test(e)?H:0),0)}function ht(e){return e.replace(/\s+\((synced|legacy)\)\s*$/iu,"").replace(/\s+\(.*?\)\s*$/u,"").trim()}function Tt(e){return ht(e).toLowerCase()}function Ss(e){return e==="DEFAULT_OAI_CATALOG"?r("OpenAI catalog"):e==="ECOSYSTEM_DIRECTORY"?r("Ecosystem directory"):e?e.replace(/_/gu," ").toLowerCase().replace(/\b\w/gu,t=>t.toUpperCase()):""}function $s(e){return e.developer||Ss(e.distributionChannel)||r("App")}function mt(e){var t;return((t=ks.value.get(e))==null?void 0:t.authStatus)??"unknown"}function Ut(e){const t=mt(e);return r(t==="oAuth"?"Logged in":t==="bearerToken"?"Bearer token":t==="notLoggedIn"?"Login required":t==="unsupported"?"Auth unsupported":"Status unknown")}function Ps(e){const t=mt(e);return t==="oAuth"||t==="bearerToken"?"is-ok":t==="notLoggedIn"?"is-warning":"is-muted"}function As(e){return e==="oAuth"||e==="bearerToken"?"mcp-skill-badge-ok":e==="notLoggedIn"?"mcp-skill-badge-warning":"mcp-skill-badge-muted"}function Nt(e){return _t.value&&mt(e)==="notLoggedIn"}function Is(e,t,c){return t==="popular"&&Qe(c).length===0?e.slice(0,us):e}function Ls(e,t,c){if(t!=="popular"||Qe(c).length>0)return e;const k=new Set,H=[];for(const ke of e){const Ee=ht(ke.name).toLowerCase();if(!k.has(Ee)&&(k.add(Ee),H.push(ke),H.length>=us))break}return H}function Es(e,t){return e.filter(c=>Xe([c.displayName,c.name,c.description,c.developerName,c.category,c.marketplaceDisplayName,...c.capabilities],t))}function Ts(e,t){return e.filter(c=>Xe([c.name,c.description,c.developer,c.category,c.distributionChannel,...c.pluginDisplayNames],t))}function Us(e,t){return e.filter(c=>Xe([c.name,c.slug,c.description,...c.authModes,...c.connectionStatuses],t))}function Ft(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+et(`${e.displayName} ${e.name} ${e.description} ${e.category}`,L)}function Mt(e){const t=ht(e.name);return(e.isAccessible?1e4:0)+et(t,P)+(e.pluginDisplayNames.length>0?260:0)+(e.distributionChannel==="DEFAULT_OAI_CATALOG"?120:0)+(e.isEnabled?40:0)+(e.installUrl?20:0)+et(`${e.name} ${e.description} ${e.category} ${e.pluginDisplayNames.join(" ")}`,S)-e.catalogRank*.001}function Dt(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+et(e.name,E)}function Ns(e,t){return t==="name"?[...e].sort((c,k)=>c.displayName.localeCompare(k.displayName)):t==="date"?[...e]:[...e].sort((c,k)=>Ft(k)-Ft(c)||c.displayName.localeCompare(k.displayName))}function Fs(e,t){return t==="name"?[...e].sort((c,k)=>c.name.localeCompare(k.name)):t==="date"?[...e].sort((c,k)=>c.catalogRank-k.catalogRank):[...e].sort((c,k)=>Mt(k)-Mt(c)||c.name.localeCompare(k.name))}function Ms(e,t){return[...e].sort((c,k)=>Dt(k)-Dt(c)||c.name.localeCompare(k.name))}function T(e,t="success"){Pe.value={text:e,type:t},qe&&clearTimeout(qe),qe=setTimeout(()=>{Pe.value=null},3e3)}function tt(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 st(e){return e?e.logoUrl||tt(e.logoPath)||e.composerIconUrl||tt(e.composerIconPath):""}function Ot(e){return tt(e.logoUrlDark||e.logoUrl)}function Rt(e){return e.activeCount>0?`${e.activeCount} ${r("connected")} ${e.activeCount===1?r("account"):r("accounts")}`:e.isNoAuth?r("No auth required"):e.connectionStatuses.length>0?e.connectionStatuses.join(", "):e.authModes.join(", ")||r("Connection required")}function Ds(e){return e.isNoAuth||e.activeCount>0}function at(e){return e.isNoAuth?"":e.activeCount>0?r("Manage"):e.totalConnections>0?r("Reconnect"):r("Connect")}function Os(e){const t=e.trim().toUpperCase();return t==="ACTIVE"?r("Active"):t==="EXPIRED"?r("Expired"):t==="FAILED"?r("Failed"):t==="INITIATED"?r("Pending"):t||r("Unknown")}function Rs(e){const t=e.trim().toUpperCase();return t==="ACTIVE"?"is-ok":t==="INITIATED"?"is-warning":t==="EXPIRED"||t==="FAILED"?"is-error":"is-muted"}function xs(e){return`app:${e.id}:`}function Gs(e){Ie.value||U("try-item",{kind:"app",name:e.id,displayName:e.name})}function Bs(e){return`plugin:${e.name}:`}function xt(e){return`composio:${e}:`}function js(e){Ie.value||U("try-item",{kind:"plugin",name:e.name,displayName:e.displayName})}function Gt(e){return Ds(e)}function Hs(e,t=[]){const c=t.find(H=>H.status==="ACTIVE"&&!H.isDisabled),k=c!=null&&c.wordId?` If there are multiple accounts, prefer \`${c.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.${k}`}function Bt(e,t=[]){Ie.value||U("try-item",{kind:"composio",name:e.slug,displayName:e.name,prompt:Hs(e,t),attachedSkills:[{name:"composio-cli",path:Ec}]})}function ie(e){const t=e.trim();/^https?:\/\//i.test(t)&&window.location.assign(t)}function zs(e){const t=e.find(c=>c.needsAuth&&c.installUrl.trim().length>0);return t?(ie(t.installUrl),!0):!1}function Ks(e){return e.brandColor?{backgroundColor:e.brandColor,color:"#fff"}:{}}async function Vs(){try{f.value=new Set(await ba())}catch{f.value=new Set}finally{b.value=!0}}async function ge(){var e;if(kt.value){Y.value=!0,Ne.value="";try{const t=(e=M.cwd)==null?void 0:e.trim(),[c]=await Promise.all([_a(t?[t]:void 0),Ze.value?xe():Promise.resolve()]);m.value=c}catch(t){Ne.value=t instanceof Error?t.message:"Failed to load plugins"}finally{Y.value=!1}}}async function jt(){const e=y.value.trim();if(e){h.value=!0,p.value="add";try{await wa(e),y.value="",T("Marketplace added"),await ge()}catch(t){T(t instanceof Error?t.message:"Failed to add marketplace","error")}finally{h.value=!1,p.value=""}}}async function qs(e){h.value=!0,p.value=`remove:${e}`;try{await Ca(e),T("Marketplace removed"),await ge()}catch(t){T(t instanceof Error?t.message:"Failed to remove marketplace","error")}finally{h.value=!1,p.value=""}}async function Ws(){h.value=!0,p.value="upgrade";try{const e=await Sa();e.errors.length>0?T(e.errors.join("; "),"error"):T(`Upgraded ${e.upgradedRoots.length||e.selectedMarketplaces.length||"all"} marketplace${e.upgradedRoots.length+e.selectedMarketplaces.length===1?"":"s"}`),await ge()}catch(e){T(e instanceof Error?e.message:"Failed to upgrade marketplaces","error")}finally{h.value=!1,p.value=""}}async function xe(){var e;if(Ze.value){fe.value=!0,Fe.value="";try{Q.value=await $a(((e=M.threadId)==null?void 0:e.trim())||void 0)}catch(t){Fe.value=t instanceof Error?t.message:"Failed to load apps"}finally{fe.value=!1}}}async function Le(e=!1){if(de.value){dt=!0;return}de.value=!0,Me.value="";try{const t=await Pa();if(_.value=t,!t.available||!t.authenticated){N.value=[],j.value=null,J.value=0;return}const c=e?j.value:null,k=await Aa(ee.value,c,Tc);N.value=e?[...N.value,...k.data]:k.data,j.value=k.nextCursor,J.value=k.total}catch(t){Me.value=t instanceof Error?t.message:"Failed to load Composio connectors",N.value=[],j.value=null,J.value=0}finally{de.value=!1,dt&&(dt=!1,Le())}}async function Qs(){!It.value||de.value||await Le(!0)}async function lt(){if(pt.value){Ue.value=!0,De.value="";try{te.value=await ns()}catch(e){De.value=e instanceof Error?e.message:"Failed to load MCP servers"}finally{Ue.value=!1}}}async function Ht(){var e;if(!(!pt.value||!((e=F.value)!=null&&e.mcpServers.length)))try{te.value=await ns()}catch{}}function zt(e=!1){I.value==="plugins"&&ge(),I.value==="apps"&&xe(),I.value==="composio"&&Le(),I.value==="skills"&&(e&&bt.value?Xt():lt())}function Js(e){if(e==="app/list/updated"){xe();return}(e==="mcpServer/startupStatus/updated"||e==="mcpServer/oauthLogin/completed")&&lt()}R({refreshFromNotification:Js});async function Ys(){pe.value=!0;try{I.value==="plugins"?await ge():I.value==="apps"?await xe():I.value==="composio"?await Le():I.value==="skills"&&bt.value?await Xt():I.value==="skills"&&await lt()}finally{pe.value=!1}}async function Kt(e){C.value=e,F.value=null,Oe.value="",he.value=[],_e.value=!0,Ke.value=!0;try{F.value=await Ia(e),C.value=F.value.summary,Ze.value&&Q.value.length===0&&await xe(),await Ht()}catch(t){Oe.value=t instanceof Error?t.message:"Failed to load plugin"}finally{Ke.value=!1}}async function Vt(e){if(!_t.value)return!1;$e.value=e;try{const t=await La(e);return t.authorizationUrl?(ie(t.authorizationUrl),!0):(T(r("No login URL returned for {name}",{name:e}),"error"),!1)}catch(t){return T(t instanceof Error?t.message:r("Failed to start login for {name}",{name:e}),"error"),!1}finally{$e.value=""}}async function Zs(e){await Ht();const t=e.mcpServers.find(c=>Nt(c));t&&await Vt(t)}function gt(){_e.value=!1}function qt(){const e=C.value;return e?e.marketplacePath?`${e.marketplacePath.replace(/[\\/]+$/,"")}/${e.name}`:e.sourceUrl||"":""}async function Wt(){Ae.value="",ce.value=!0,ue.value=!0;try{G.value=await Ea()}catch(e){Ae.value=e instanceof Error?e.message:"Failed to load plugin shares"}finally{ue.value=!1}}async function Xs(){const e=qt();if(e){ae.value=!0,me.value="save";try{const t=await Ta(e);T(t.shareUrl?"Plugin shared":"Plugin shared (no URL returned)"),await Wt()}catch(t){Ae.value=t instanceof Error?t.message:"Failed to share plugin"}finally{ae.value=!1,me.value=""}}}async function ea(e){ae.value=!0,me.value=`delete:${e}`;try{await Ua(e),G.value=G.value.filter(t=>t.remotePluginId!==e),T("Share removed")}catch(t){Ae.value=t instanceof Error?t.message:"Failed to remove share"}finally{ae.value=!1,me.value=""}}async function ta(e){ae.value=!0,me.value=`checkout:${e}`;try{await Na(e),T("Plugin checked out")}catch(t){Ae.value=t instanceof Error?t.message:"Failed to checkout plugin"}finally{ae.value=!1,me.value=""}}function Qt(){ce.value=!1}async function Jt(e){ve.value=!0,Ve.value=!0,we.value="",$.value=null;try{$.value=await Fa(e)}catch(t){we.value=t instanceof Error?t.message:"Failed to load Composio connector"}finally{Ve.value=!1}}function Yt(){ve.value=!1}async function sa(e){var t;ye.value=e.slug;try{const c=await ja(e.slug);if(!c.redirectUrl){T(r("No login URL returned for {name}",{name:e.name}),"error");return}ie(c.redirectUrl),T(r("Opened {name} authorization",{name:e.name})),await Le(),ve.value&&((t=$.value)==null?void 0:t.connector.slug)===e.slug&&await Jt(e.slug)}catch(c){T(c instanceof Error?c.message:r("Failed to connect {name}",{name:e.name}),"error")}finally{ye.value=""}}async function Zt(e){var t;if(e.activeCount>0&&((t=_.value)!=null&&t.webUrl)){ie(_.value.webUrl);return}await sa(e)}async function aa(){Se.value=!0;const e=window.open("about:blank","_blank");e&&(e.opener=null);try{const t=await Ma();t.loginUrl&&e?e.location.href=t.loginUrl:t.loginUrl?ie(t.loginUrl):e==null||e.close(),T("Composio CLI login started")}catch(t){e==null||e.close(),T(t instanceof Error?t.message:"Failed to start Composio login","error")}finally{Se.value=!1}}async function la(){Ce.value=!0;try{await Da(),T("Composio CLI installed"),await Le()}catch(e){T(e instanceof Error?e.message:"Failed to install Composio CLI","error")}finally{Ce.value=!1}}async function oa(){if(C.value&&!vt.value){Z.value=!0;try{const e=await Oa(C.value);he.value=e.appsNeedingAuth,T(`${C.value.displayName} ${r("plugin installed")}`);const t=zs(e.appsNeedingAuth);await ge();const c=m.value.find(k=>{var H;return k.id===((H=C.value)==null?void 0:H.id)});c&&(await Kt(c),!t&&F.value&&await Zs(F.value))}catch(e){T(e instanceof Error?e.message:"Failed to install plugin","error")}finally{Z.value=!1}}}async function ia(){if(C.value){Z.value=!0;try{const e=C.value.displayName;await Ra(C.value.id),T(`${e} ${r("plugin uninstalled")}`),gt(),await ge()}catch(e){T(e instanceof Error?e.message:"Failed to uninstall plugin","error")}finally{Z.value=!1}}}async function na(){if(C.value){Z.value=!0;try{const e=!C.value.enabled;await xa(C.value.id,e),C.value={...C.value,enabled:e},F.value&&(F.value={...F.value,summary:{...F.value.summary,enabled:e}}),T(`${C.value.displayName} ${r("plugin")} ${r(e?"enabled":"disabled")}`),await ge()}catch(e){T(e instanceof Error?e.message:"Failed to update plugin","error")}finally{Z.value=!1}}}async function ra(e){Re.value=e.id;try{const t=!e.isEnabled;await Ga(e.id,t),Q.value=Q.value.map(c=>c.id===e.id?{...c,isEnabled:t}:c),T(`${e.name} ${r("app")} ${r(t?"enabled":"disabled")}`)}catch(t){T(t instanceof Error?t.message:"Failed to update app","error")}finally{Re.value=""}}async function Xt(){ze.value=!0;try{await Ba(),await lt(),T("MCP servers reloaded")}catch(e){T(e instanceof Error?e.message:"Failed to reload MCP servers","error")}finally{ze.value=!1}}function ca(e){const t=new Set(D.value);t.has(e)?t.delete(e):t.add(e),D.value=t}return Te(I,e=>{x.name==="skills"&&x.query.tab!==e&&V.replace({name:"skills",query:{...x.query,tab:e}}),zt()}),Te(()=>x.query.tab,()=>{if(x.name!=="skills")return;const e=le();I.value!==e&&(I.value=e)}),Te(ee,()=>{I.value==="composio"&&(N.value=[],j.value=null,J.value=0,We&&clearTimeout(We),We=setTimeout(()=>{Le()},250))}),Te(()=>M.cwd,()=>{I.value==="plugins"&&ge()}),Te(()=>M.threadId,()=>{(I.value==="apps"||I.value==="plugins")&&xe()}),ps(async()=>{await Vs(),zt()}),(e,t)=>{var c,k,H,ke,Ee,ot,es,ts,ss,as,ls;return a(),l("div",Co,[s("div",So,[s("div",null,[s("h2",$o,i(n(r)("Skills"))+" & "+i(n(r)("Apps")),1),s("p",Po,i(ys.value.subtitle),1)]),s("div",Ao,[s("button",{class:"directory-refresh",type:"button",disabled:pe.value,onClick:Ys},i(pe.value?"Refreshing...":"Refresh"),9,Io)])]),s("div",Lo,[(a(!0),l(O,null,z(B.value,o=>(a(),l("button",{key:o.id,class:K(["directory-tab",{"is-active":I.value===o.id}]),type:"button",role:"tab","aria-selected":I.value===o.id,onClick:A=>I.value=o.id},i(o.label),11,Eo))),128))]),Pe.value?(a(),l("div",{key:0,class:K(["directory-toast",{"is-error":Pe.value.type==="error"}])},i(Pe.value.text),3)):u("",!0),I.value==="plugins"?(a(),l("section",To,[s("div",Uo,[Je(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>ne.value=o),class:"directory-search",type:"search",placeholder:"Search plugins...","aria-label":"Search plugins"},null,512),[[Ye,ne.value]]),s("div",No,[s("button",{class:K(["directory-sort-button",{"is-active":se.value==="popular"}]),type:"button",onClick:t[1]||(t[1]=o=>se.value="popular")}," Popular ",2),s("button",{class:K(["directory-sort-button",{"is-active":se.value==="name"}]),type:"button",onClick:t[2]||(t[2]=o=>se.value="name")},i(n(r)("A-Z")),3),s("button",{class:K(["directory-sort-button",{"is-active":se.value==="date"}]),type:"button",onClick:t[3]||(t[3]=o=>se.value="date")}," Date ",2)])]),hs.value?(a(),l("div",Fo,[s("div",Mo,[t[22]||(t[22]=s("span",{class:"directory-marketplace-title"},"Marketplaces",-1)),s("button",{class:"directory-marketplace-upgrade",type:"button",disabled:h.value,onClick:Ws},i(p.value==="upgrade"?"Upgrading...":"Upgrade all"),9,Do)]),$t.value.length===0?(a(),l("div",Oo,"No marketplaces configured.")):(a(),l("div",Ro,[(a(!0),l(O,null,z($t.value,o=>(a(),l("div",{key:o.name,class:"directory-marketplace-row"},[s("span",xo,i(o.displayName),1),o.path?(a(),l("code",Go,i(o.path),1)):u("",!0),s("button",{class:"directory-marketplace-remove",type:"button",disabled:h.value,onClick:A=>qs(o.name)},i(p.value===`remove:${o.name}`?n(r)("Removing..."):n(r)("Remove")),9,Bo)]))),128))])),s("div",jo,[Je(s("input",{"onUpdate:modelValue":t[4]||(t[4]=o=>y.value=o),class:"directory-marketplace-source",type:"url",placeholder:"Git URL to add a marketplace","aria-label":"Marketplace Git URL",onKeydown:ma(jt,["enter"])},null,544),[[Ye,y.value]]),s("button",{class:"directory-marketplace-add-button",type:"button",disabled:h.value||!y.value.trim(),onClick:jt},i(p.value==="add"?"Adding...":"Add"),9,Ho)])])):u("",!0),kt.value?Ne.value?(a(),l("div",Ko,i(Ne.value),1)):Y.value?(a(),l("div",Vo,"Loading plugins...")):St.value.length===0?(a(),l("div",qo,"No plugins found.")):(a(),l("div",Wo,[(a(!0),l(O,null,z(St.value,o=>(a(),l("button",{key:o.id,class:K(["directory-card",{"is-disabled":o.installed&&!o.enabled}]),type:"button",onClick:A=>Kt(o)},[s("div",Jo,[st(o)?(a(),l("img",{key:0,class:"directory-card-icon",src:st(o),alt:o.displayName,loading:"lazy"},null,8,Yo)):(a(),l("div",{key:1,class:"directory-card-fallback",style:ga(Ks(o))},i(o.displayName.charAt(0)),5)),s("div",Zo,[s("div",Xo,[s("span",ei,i(o.displayName),1),o.installed&&!o.enabled?(a(),l("span",ti,i(n(r)("Disabled")),1)):o.installed?(a(),l("span",si,i(n(r)("Installed")),1)):u("",!0)]),s("span",ai,i(o.developerName||o.marketplaceDisplayName||o.marketplaceName||n(r)("Plugin")),1)])]),o.description?(a(),l("p",li,i(o.description),1)):u("",!0),s("div",oi,[o.category?(a(),l("span",ii,i(o.category),1)):u("",!0),(a(!0),l(O,null,z(o.capabilities.slice(0,2),A=>(a(),l("span",{key:A,class:"directory-chip"},i(A),1))),128))])],10,Qo))),128))])):(a(),l("div",zo," Plugin APIs unavailable in this Codex CLI. Update Codex CLI to use plugin catalog features. "))])):I.value==="apps"?(a(),l("section",ni,[s("div",ri,[Je(s("input",{"onUpdate:modelValue":t[5]||(t[5]=o=>re.value=o),class:"directory-search",type:"search",placeholder:"Search apps...","aria-label":"Search apps"},null,512),[[Ye,re.value]]),s("div",ci,[s("button",{class:K(["directory-sort-button",{"is-active":X.value==="popular"}]),type:"button",onClick:t[6]||(t[6]=o=>X.value="popular")}," Popular ",2),s("button",{class:K(["directory-sort-button",{"is-active":X.value==="name"}]),type:"button",onClick:t[7]||(t[7]=o=>X.value="name")},i(n(r)("A-Z")),3),s("button",{class:K(["directory-sort-button",{"is-active":X.value==="date"}]),type:"button",onClick:t[8]||(t[8]=o=>X.value="date")}," Date ",2)])]),Ze.value?Fe.value?(a(),l("div",di,i(Fe.value),1)):fe.value?(a(),l("div",pi,"Loading apps...")):Pt.value.length===0?(a(),l("div",vi,"No apps found.")):(a(),l("div",yi,[(a(!0),l(O,null,z(Pt.value,o=>(a(),l("article",{key:o.id,class:"directory-card"},[s("div",hi,[Ot(o)?(a(),l("img",{key:0,class:"directory-card-icon",src:Ot(o),alt:o.name,loading:"lazy"},null,8,mi)):(a(),l("div",gi,i(o.name.charAt(0)),1)),s("div",fi,[s("div",ki,[s("span",bi,i(o.name),1),o.isEnabled?o.isAccessible?(a(),l("span",wi,i(n(r)("Connected")),1)):u("",!0):(a(),l("span",_i,i(n(r)("Disabled")),1))]),s("span",Ci,i($s(o)),1)])]),o.description?(a(),l("p",Si,i(o.description),1)):u("",!0),s("div",$i,[o.category?(a(),l("span",Pi,i(o.category),1)):u("",!0),(a(!0),l(O,null,z(o.pluginDisplayNames.slice(0,2),A=>(a(),l("span",{key:A,class:"directory-chip"},i(A),1))),128))]),s("div",Ai,[s("button",{class:"directory-action",type:"button",disabled:Re.value===o.id,onClick:A=>ra(o)},i(o.isEnabled?"Disable":"Enable"),9,Ii),o.installUrl?(a(),l("button",{key:0,class:"directory-action-link",type:"button",onClick:A=>ie(o.installUrl)},i(o.isAccessible?"Manage":"Login"),9,Li)):u("",!0),o.isAccessible&&o.isEnabled?(a(),l("button",{key:1,class:"directory-action",type:"button",disabled:Ie.value,onClick:A=>Gs(o)},i(M.tryInFlightKey===xs(o)?"Starting...":"Try it!"),9,Ei)):u("",!0)])]))),128))])):(a(),l("div",ui," Apps APIs unavailable in this Codex CLI. Update Codex CLI to manage apps. "))])):I.value==="composio"?(a(),l("section",Ti,[s("div",Ui,[Je(s("input",{"onUpdate:modelValue":t[9]||(t[9]=o=>ee.value=o),class:"directory-search",type:"search",placeholder:"Search Composio connectors...","aria-label":"Search Composio connectors"},null,512),[[Ye,ee.value]]),s("div",Ni,[s("button",{class:K(["directory-sort-button",{"is-active":oe.value==="popular"}]),type:"button",onClick:t[10]||(t[10]=o=>oe.value="popular")}," Popular ",2),s("button",{class:K(["directory-sort-button",{"is-active":oe.value==="name"}]),type:"button",onClick:t[11]||(t[11]=o=>oe.value="name")},i(n(r)("A-Z")),3),s("button",{class:K(["directory-sort-button",{"is-active":oe.value==="date"}]),type:"button",onClick:t[12]||(t[12]=o=>oe.value="date")}," Date ",2)])]),Me.value?(a(),l("div",Fi,i(Me.value),1)):de.value?(a(),l("div",Mi,"Loading Composio connectors...")):(c=_.value)!=null&&c.available?_.value.authenticated?(a(),l("div",Xi,[s("article",en,[s("div",tn,[t[26]||(t[26]=s("div",{class:"directory-card-fallback composio-fallback"},"C",-1)),s("div",sn,[s("div",an,[s("span",ln,i(n(r)("Composio workspace")),1),s("span",on,i(n(r)("Connected")),1)]),s("span",nn,i(_.value.email||_.value.defaultOrgName||n(r)("Authenticated")),1)])]),s("p",rn,i(bs.value),1),s("div",cn,[_.value.defaultOrgName?(a(),l("span",un,i(_.value.defaultOrgName),1)):u("",!0),_.value.cliVersion?(a(),l("span",dn,"CLI "+i(_.value.cliVersion),1)):u("",!0),N.value.length?(a(),l("span",pn," Showing "+i(N.value.length)+i(J.value?` / ${J.value}`:"")+" connectors ",1)):u("",!0)]),s("div",vn,[s("button",{class:"directory-action-link",type:"button",onClick:t[14]||(t[14]=o=>ie(_.value.webUrl))}," Open dashboard ")])]),At.value.length===0?(a(),l("div",yn,"No Composio connectors found.")):(a(),l("div",hn,[(a(!0),l(O,null,z(At.value,o=>(a(),l("article",{key:o.slug,class:"directory-card"},[s("div",mn,[o.logoUrl?(a(),l("img",{key:0,class:"directory-card-icon",src:o.logoUrl,alt:o.name,loading:"lazy"},null,8,gn)):(a(),l("div",fn,i(o.name.charAt(0)),1)),s("div",kn,[s("div",bn,[s("span",_n,i(o.name),1),o.activeCount>0?(a(),l("span",wn,i(n(r)("Connected")),1)):o.isNoAuth?(a(),l("span",Cn,i(n(r)("No auth")),1)):u("",!0)]),s("span",Sn,i(Rt(o)),1)])]),o.description?(a(),l("p",$n,i(o.description),1)):u("",!0),s("div",Pn,[s("span",An,i(o.toolsCount)+" tools",1),o.triggersCount>0?(a(),l("span",In,i(o.triggersCount)+" triggers",1)):u("",!0),o.authModes.length>0?(a(),l("span",Ln,i(o.authModes.join(", ")),1)):u("",!0)]),s("div",En,[s("button",{class:"directory-action",type:"button",onClick:A=>Jt(o.slug)}," Details ",8,Tn),at(o)?(a(),l("button",{key:0,class:"directory-action-link",type:"button",disabled:ye.value===o.slug,onClick:A=>Zt(o)},i(ye.value===o.slug?"Opening...":at(o)),9,Un)):u("",!0),Gt(o)?(a(),l("button",{key:1,class:"directory-action primary",type:"button",disabled:Ie.value,onClick:A=>Bt(o)},i(M.tryInFlightKey===xt(o.slug)?"Starting...":"Try it!"),9,Nn)):u("",!0)])]))),128))])),It.value?(a(),l("div",Fn,[s("button",{class:"directory-action",type:"button",disabled:de.value,onClick:Qs},i(de.value?"Loading...":"Load more"),9,Mn)])):u("",!0)])):(a(),l("div",Gi,[s("article",Bi,[t[24]||(t[24]=fa('<div class="composio-preview-copy" data-v-e6af0e33><div class="directory-card-fallback composio-fallback" data-v-e6af0e33>C</div><div data-v-e6af0e33><p class="composio-preview-kicker" data-v-e6af0e33>Connector catalog preview</p><h3 class="composio-preview-title" data-v-e6af0e33>Connect everyday apps like Gmail, Calendar, Reddit, YouTube, and Drive.</h3><p class="composio-preview-text" data-v-e6af0e33> 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",ji,[s("button",{class:"directory-action primary",type:"button",disabled:Se.value,onClick:aa},i(Se.value?"Opening...":"Login to Composio"),9,Hi),s("button",{class:"directory-action-link",type:"button",onClick:t[13]||(t[13]=o=>ie(_.value.webUrl||"https://dashboard.composio.dev/"))}," Open dashboard ")])]),s("div",zi,[(a(!0),l(O,null,z(fs.value,o=>(a(),l("article",{key:o.slug,class:"directory-card composio-preview-card"},[s("div",Ki,[s("div",Vi,i(o.initial),1),s("div",qi,[s("div",Wi,[s("span",Qi,i(o.name),1),t[25]||(t[25]=s("span",{class:"directory-badge is-muted"},"Preview",-1))]),s("span",Ji,i(o.meta),1)])]),s("p",Yi,i(o.description),1),s("div",Zi,[(a(!0),l(O,null,z(o.chips,A=>(a(),l("span",{key:A,class:"directory-chip"},i(A),1))),128))])]))),128))])])):(a(),l("div",Di,[s("div",Oi,[t[23]||(t[23]=s("p",{class:"directory-empty-text"},"Composio CLI is not installed in this environment.",-1)),s("div",Ri,[s("button",{class:"directory-action primary",type:"button",disabled:Ce.value,onClick:la},i(Ce.value?"Installing...":"Install Composio"),9,xi)])])]))])):I.value==="skills"?(a(),l("section",Dn,[je(wo,{"try-in-flight-key":M.tryInFlightKey,onSkillsChanged:t[16]||(t[16]=o=>U("skills-changed")),onTryItem:t[17]||(t[17]=o=>U("try-item",o))},{"before-installed":ka(()=>[s("div",On,[s("button",{class:"skills-embedded-toggle",type:"button",onClick:t[15]||(t[15]=o=>be.value=!be.value)},[s("span",Rn,"MCPs("+i(yt.value.length)+")",1),s("span",{class:K(["skills-embedded-chevron",{"is-open":be.value}])},"›",2)]),be.value?(a(),l("div",xn,[pt.value?De.value?(a(),l("div",Bn,i(De.value),1)):Ue.value?(a(),l("div",jn,"Loading MCP servers...")):yt.value.length===0?(a(),l("div",Hn,"No MCP servers configured.")):(a(),l("div",zn,[(a(!0),l(O,null,z(yt.value,o=>(a(),l("article",{key:o.name},[s("button",{class:"mcp-skill-card skill-card",type:"button",onClick:A=>ca(o.name)},[s("div",Vn,[s("div",qn,i(o.name.charAt(0)),1),s("div",Wn,[s("div",Qn,[s("span",Jn,i(o.name),1),s("span",{class:K(["mcp-skill-badge",As(o.authStatus)])},i(Ut(o.name)),3)]),t[27]||(t[27]=s("span",{class:"mcp-skill-owner"},"mcp",-1))]),s("span",{class:K(["mcp-skill-chevron",{"is-open":D.value.has(o.name)}])},"›",2)]),s("p",Yn,i(o.tools.length)+" tools · "+i(o.resources.length+o.resourceTemplates.length)+" resources",1),D.value.has(o.name)?(a(),l("div",Zn,[o.tools.length>0?(a(),l("div",Xn,[t[28]||(t[28]=s("h3",{class:"directory-mini-heading"},"Tools",-1)),s("p",er,i(o.tools.map(A=>A.title||A.name).join(", ")),1)])):u("",!0),o.resources.length>0||o.resourceTemplates.length>0?(a(),l("div",tr,[t[29]||(t[29]=s("h3",{class:"directory-mini-heading"},"Resources",-1)),s("p",sr,i([...o.resources.map(A=>A.title||A.name||A.uri),...o.resourceTemplates.map(A=>A.title||A.name||A.uriTemplate)].join(", ")),1)])):u("",!0)])):u("",!0)],8,Kn)]))),128))])):(a(),l("div",Gn," MCP status APIs unavailable in this Codex CLI. Update Codex CLI to inspect MCP servers. "))])):u("",!0)])]),_:1},8,["try-in-flight-key"])])):u("",!0),(a(),He(it,{to:"body"},[_e.value?(a(),l("div",{key:0,class:"directory-modal-overlay",onClick:Be(gt,["self"])},[s("article",ar,[s("div",lr,[s("div",or,[C.value&&st(C.value)?(a(),l("img",{key:0,class:"directory-card-icon",src:st(C.value),alt:C.value.displayName,loading:"lazy"},null,8,ir)):(a(),l("div",nr,i((k=C.value)==null?void 0:k.displayName.charAt(0)),1)),s("div",rr,[s("h3",cr,i(((H=C.value)==null?void 0:H.displayName)||n(r)("Plugin")),1),s("span",ur,i(((ke=C.value)==null?void 0:ke.developerName)||((Ee=C.value)==null?void 0:Ee.marketplaceDisplayName)||((ot=C.value)==null?void 0:ot.marketplaceName)),1)])]),s("button",{class:"directory-modal-close",type:"button","aria-label":n(r)("Close plugin detail"),onClick:gt},i(n(r)("Close")),9,dr)]),s("div",pr,[Oe.value?(a(),l("div",vr,i(Oe.value),1)):Ke.value?(a(),l("div",yr,"Loading plugin...")):F.value?(a(),l(O,{key:2},[wt.value?(a(),l("p",hr,i(wt.value),1)):u("",!0),F.value.summary.capabilities.length>0?(a(),l("div",mr,[t[30]||(t[30]=s("h4",{class:"directory-detail-heading"},"Capabilities",-1)),s("div",gr,[(a(!0),l(O,null,z(F.value.summary.capabilities,o=>(a(),l("span",{key:o,class:"directory-chip"},i(o),1))),128))])])):u("",!0),s("div",fr,[F.value.apps.length>0?(a(),l("div",kr,[s("h4",br,i(n(r)("Apps")),1),(a(!0),l(O,null,z(F.value.apps,o=>(a(),l("div",{key:o.id,class:"directory-include-row"},[s("span",null,i(o.name),1),Et(o)?(a(),l("span",_r,"GPT Plus account required")):o.installUrl?(a(),l("button",{key:1,type:"button",onClick:A=>ie(o.installUrl)},i(o.needsAuth?"Login":"Manage"),9,wr)):u("",!0)]))),128))])):u("",!0),F.value.skills.length>0?(a(),l("div",Cr,[s("h4",Sr,i(n(r)("Skills")),1),s("p",$r,i(F.value.skills.map(o=>o.displayName||o.name).join(", ")),1)])):u("",!0),F.value.mcpServers.length>0?(a(),l("div",Pr,[t[31]||(t[31]=s("h4",{class:"directory-detail-heading"},"MCP servers",-1)),(a(!0),l(O,null,z(F.value.mcpServers,o=>(a(),l("div",{key:o,class:"directory-include-row"},[s("span",null,[nt(i(o)+" ",1),s("span",{class:K(["directory-auth-status",Ps(o)])},i(Ut(o)),3)]),Nt(o)?(a(),l("button",{key:0,type:"button",disabled:$e.value===o,onClick:A=>Vt(o)},i($e.value===o?"Opening...":"Authenticate"),9,Ar)):u("",!0)]))),128))])):u("",!0)]),Ct.value.length>0?(a(),l("div",Ir,[(a(!0),l(O,null,z(Ct.value,o=>(a(),l("img",{key:o,src:o,alt:"",loading:"lazy"},null,8,Lr))),128))])):u("",!0),he.value.length>0?(a(),l("div",Er,[s("strong",null,i(n(r)("Apps needing auth")),1),(a(!0),l(O,null,z(he.value,o=>(a(),l("div",{key:o.id,class:"directory-include-row"},[s("span",null,i(o.name),1),o.installUrl?(a(),l("button",{key:0,type:"button",onClick:A=>ie(o.installUrl)},i(n(r)("Login")),9,Tr)):u("",!0)]))),128))])):u("",!0)],64)):u("",!0)]),s("div",Ur,[C.value&&C.value.installed?(a(),l("button",{key:0,class:"directory-action danger",type:"button",disabled:Z.value,onClick:ia},i(Z.value?"Uninstalling...":"Uninstall"),9,Nr)):C.value&&!gs.value?(a(),l("button",{key:1,class:"directory-action primary",type:"button",disabled:Z.value||C.value.installPolicy==="NOT_AVAILABLE"||vt.value,onClick:oa},i(vt.value?"ChatGPT Plus":Z.value?"Installing...":"Install"),9,Fr)):C.value?(a(),l("button",Mr," GPT Plus account required ")):u("",!0),C.value&&C.value.installed?(a(),l("button",{key:3,class:"directory-action",type:"button",disabled:Z.value,onClick:na},i(C.value.enabled?"Disable":"Enable"),9,Dr)):u("",!0),C.value&&C.value.installed&&C.value.enabled?(a(),l("button",{key:4,class:"directory-action primary",type:"button",disabled:Z.value||Ie.value,onClick:t[18]||(t[18]=o=>js(C.value))},i(M.tryInFlightKey===Bs(C.value)?"Starting...":"Try it!"),9,Or)):u("",!0),ms.value&&C.value&&C.value.installed?(a(),l("button",{key:5,class:"directory-action",type:"button",onClick:Wt},i(n(r)("Share")),1)):u("",!0)])])])):u("",!0)])),(a(),He(it,{to:"body"},[ce.value?(a(),l("div",{key:0,class:"directory-modal-overlay",onClick:Be(Qt,["self"])},[s("article",Rr,[s("div",xr,[s("div",Gr,[s("h3",Br,i(n(r)("Plugin shares")),1),s("span",jr,i(((es=C.value)==null?void 0:es.displayName)||n(r)("Plugin")),1)]),s("button",{class:"directory-modal-close",type:"button","aria-label":n(r)("Close plugin shares"),onClick:Qt},i(n(r)("Close")),9,Hr)]),s("div",zr,[Ae.value?(a(),l("div",Kr,i(Ae.value),1)):ue.value?(a(),l("div",Vr,"Loading shares...")):(a(),l(O,{key:2},[G.value.length===0?(a(),l("p",qr,"No shares yet. Share this plugin to make it available on other devices.")):(a(),l("div",Wr,[(a(!0),l(O,null,z(G.value,o=>(a(),l("div",{key:o.remotePluginId,class:"directory-share-row"},[s("div",Qr,[s("span",Jr,i(o.pluginName),1),o.shareUrl?(a(),l("a",{key:0,class:"directory-share-link",href:o.shareUrl,target:"_blank",rel:"noreferrer"},i(o.shareUrl),9,Yr)):u("",!0)]),s("button",{class:"directory-share-checkout",type:"button",disabled:ae.value,onClick:A=>ta(o.remotePluginId)},i(me.value===`checkout:${o.remotePluginId}`?n(r)("Checking out..."):n(r)("Checkout")),9,Zr),s("button",{class:"directory-share-delete",type:"button",disabled:ae.value,onClick:A=>ea(o.remotePluginId)},i(me.value===`delete:${o.remotePluginId}`?n(r)("Removing..."):n(r)("Remove")),9,Xr)]))),128))])),s("button",{class:"directory-action primary",type:"button",disabled:ae.value||!qt(),onClick:Xs},i(me.value==="save"?n(r)("Sharing..."):n(r)("Share this plugin")),9,ec)],64))])])])):u("",!0)])),(a(),He(it,{to:"body"},[ve.value?(a(),l("div",{key:0,class:"directory-modal-overlay",onClick:Be(Yt,["self"])},[s("article",tc,[s("div",sc,[s("div",ac,[(ts=$.value)!=null&&ts.connector.logoUrl?(a(),l("img",{key:0,class:"directory-card-icon",src:$.value.connector.logoUrl,alt:$.value.connector.name,loading:"lazy"},null,8,lc)):(a(),l("div",oc,i((ss=$.value)==null?void 0:ss.connector.name.charAt(0)),1)),s("div",ic,[s("h3",nc,i(((as=$.value)==null?void 0:as.connector.name)||"Composio"),1),s("span",rc,i($.value?Rt($.value.connector):n(r)("Connector")),1)])]),s("button",{class:"directory-modal-close",type:"button","aria-label":n(r)("Close Composio detail"),onClick:Yt},i(n(r)("Close")),9,cc)]),s("div",uc,[we.value?(a(),l("div",dc,i(we.value),1)):Ve.value?(a(),l("div",pc,"Loading connector...")):$.value?(a(),l(O,{key:2},[$.value.connector.description?(a(),l("p",vc,i($.value.connector.description),1)):u("",!0),s("div",yc,[s("div",hc,[t[32]||(t[32]=s("h4",{class:"directory-detail-heading"},"Overview",-1)),s("div",mc,[s("span",gc,i($.value.connector.toolsCount)+" tools",1),$.value.connector.triggersCount>0?(a(),l("span",fc,i($.value.connector.triggersCount)+" triggers",1)):u("",!0),$.value.connector.latestVersion?(a(),l("span",kc,"v"+i($.value.connector.latestVersion),1)):u("",!0),$.value.connector.authModes.length>0?(a(),l("span",bc,i($.value.connector.authModes.join(", ")),1)):u("",!0)])]),s("div",_c,[t[33]||(t[33]=s("h4",{class:"directory-detail-heading"},"Connections",-1)),$.value.connections.length===0?(a(),l("div",wc," No linked accounts yet. ")):(a(),l("div",Cc,[(a(!0),l(O,null,z($.value.connections,o=>(a(),l("div",{key:o.id,class:"directory-include-row"},[s("span",null,[nt(i(o.alias||o.wordId||o.id)+" ",1),s("span",{class:K(["directory-auth-status",Rs(o.status)])},i(Os(o.status)),3)]),s("span",Sc,i(o.authScheme||"Auth"),1)]))),128))]))])]),$.value.tools.length>0?(a(),l("div",$c,[t[34]||(t[34]=s("h4",{class:"directory-detail-heading"},"Useful tools",-1)),(a(!0),l(O,null,z($.value.tools.slice(0,8),o=>(a(),l("div",{key:o.slug,class:"directory-include-row"},[s("span",null,i(o.name||o.slug),1),s("span",Pc,i(o.slug),1)]))),128))])):u("",!0)],64)):u("",!0)]),s("div",Ac,[$.value?(a(),l("button",{key:0,class:"directory-action-link",type:"button",onClick:t[19]||(t[19]=o=>ie($.value.dashboardUrl))}," Open dashboard ")):u("",!0),$.value&&at($.value.connector)?(a(),l("button",{key:1,class:"directory-action",type:"button",disabled:ye.value===$.value.connector.slug,onClick:t[20]||(t[20]=o=>Zt($.value.connector))},i(ye.value===((ls=$.value)==null?void 0:ls.connector.slug)?"Opening...":at($.value.connector)),9,Ic)):u("",!0),$.value&&Gt($.value.connector)?(a(),l("button",{key:2,class:"directory-action primary",type:"button",disabled:Ie.value,onClick:t[21]||(t[21]=o=>Bt($.value.connector,$.value.connections))},i(M.tryInFlightKey===xt($.value.connector.slug)?"Starting...":"Try it!"),9,Lc)):u("",!0)])])])):u("",!0)]))])}}}),Mc=ut(Uc,[["__scopeId","data-v-e6af0e33"]]);export{Mc as default};
@@ -1 +1 @@
1
- import{d as Xe,A as Ke,q as y,l as G,M as je,N as Ye,m as qe,o,a as r,b as a,t as s,u as c,e as w,g as ae,I as Je,U as Qe,n as be,F as C,r as P,p as U,f as T,i as Ze,w as se,h as et,j as tt,k as b,V as at,W as st,X as nt,_ as it}from"./index-CNFcjd2m.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"],Lt={key:1,class:"review-pane-meta"},xt={class:"review-pane-summary-pill review-pane-summary-pill-add"},$t={class:"review-pane-summary-pill review-pane-summary-pill-remove"},At={key:0},Et={key:1},Pt={key:2},Nt={class:"review-pane-content"},Rt={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"},Vt=["disabled"],zt={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"],Xt={key:1,class:"review-pane-empty"},Kt={class:"review-pane-empty-title"},jt={class:"review-pane-empty-text"},Yt={key:0,class:"review-pane-file-list"},qt=["data-expanded","onClick"],Jt=["data-expanded"],Qt={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"},La={class:"review-pane-sheet-header"},xa={class:"review-pane-sheet-title"},$a={class:"review-pane-sheet-count"},Aa={class:"review-pane-sheet-list"},Ea=["data-expanded","onClick"],Pa=["data-expanded"],Na={class:"review-pane-tree-folder-name"},Ra={class:"review-pane-tree-folder-count"},Ta=["data-active","title","onClick"],Ma={class:"review-pane-file-meta-row"},Da={class:"review-pane-file-path"},Wa={class:"review-pane-file-delta"},Va={class:"review-pane-delta-add"},za={class:"review-pane-delta-remove"},Ga=["data-operation"],ke="codex-web-local.review-pane-file-list-width.v1",Ua=220,Ha=420,ge=288,Oa=Xe({__name:"ReviewPane",props:{threadId:{},cwd:{},isThreadInProgress:{type:Boolean},initialFilePath:{},commitSha:{}},emits:["close"],setup(Ce){const g=Ce,{isMobile:B}=Ke(),{t:l}=tt(),m=y("workspace"),F=y("unstaged"),d=y(null),L=y(""),H=y(!1),x=y(""),I=y(""),O=y(!1),J=y(!1),N=y(!1),X=y(!1),M=y(""),$=y(""),K=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===x.value))??((t=d.value)==null?void 0:t.files[0])??null}),R=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?l("No file changes in this commit."):m.value==="workspace"?l("Your current workspace is clean."):l("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?`${l("Commit")} ${_e(d.value.commitSha)}`:l("Commit"):m.value==="workspace"?F.value==="staged"?l("Staged changes"):l("Workspace changes"):(t=d.value)!=null&&t.baseBranch?`${l("Against")} ${d.value.baseBranch}`:l("Base branch"):l("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&&!N.value),Le=b(()=>F.value==="staged"?[{value:"unstage",label:l("Unstage all")}]:[{value:"stage",label:l("Stage all")},{value:"revert",label:l("Revert all")}]),xe=b(()=>F.value==="staged"?[{value:"unstage",label:l("Unstage file")}]:[{value:"stage",label:l("Stage file")},{value:"revert",label:l("Revert file")}]),$e=b(()=>F.value==="staged"?[{value:"unstage",label:l("Unstage hunk")}]:[{value:"stage",label:l("Stage hunk")},{value:"revert",label:l("Revert hunk")}]),re=b(()=>$.value||M.value||K.value),Ae=b(()=>!!($.value||M.value)),Y=y(Ne()),Ee=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)??[],R.value)}),de=b(()=>ue.value.nodes),Pe=b(()=>ue.value.folderIdsByFileId);function Q(e){return Number.isFinite(e)?Math.min(Ha,Math.max(Ua,Math.round(e))):ge}function Ne(){if(typeof window>"u")return ge;const e=window.localStorage.getItem(ke),t=e?Number(e):Number.NaN;return Q(t)}function Re(e){typeof window>"u"||window.localStorage.setItem(ke,String(Q(e)))}function Te(e){if(B.value)return;e.preventDefault(),A==null||A();const t=e.clientX,u=Y.value,v=i=>{Y.value=Q(u+(i.clientX-t))},p=()=>{window.removeEventListener("pointermove",v),window.removeEventListener("pointerup",n),A=null},n=()=>{p(),Re(Y.value)};window.addEventListener("pointermove",v),window.addEventListener("pointerup",n),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,E="";const ye=[];for(const[Oe,V]of _.entries()){E=E?`${E}/${V}`:V;let z=h.folders.get(V);z||(z={id:E,name:V,depth:Oe,folders:new Map,files:[]},h.folders.set(V,z)),h=z,ye.push(z.id)}h.files.push({file:f,name:W,depth:_.length}),v[f.id]=ye}const p=[],n=f=>f.files.length+Array.from(f.folders.values()).reduce((_,W)=>_+n(W),0),i=f=>{const _=Array.from(f.folders.values()).sort((h,E)=>ve(h.name,E.name)),W=[...f.files].sort((h,E)=>ve(h.name,E.name));for(const h of _)p.push({kind:"folder",treeKey:`folder:${h.id}`,id:h.id,name:h.name,depth:h.depth,fileCount:n(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 R.value[e]!==!1}function pe(e){R.value={...R.value,[e]:!D(e)}}function he(e){const t=Pe.value[e]??[];if(t.length===0)return;const u={...R.value};let v=!1;for(const p of t)u[p]===!1&&(u[p]=!0,v=!0);v&&(R.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 l(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()){J.value=!0,M.value="";try{const p=m.value==="baseBranch"?L.value.trim():"",n=((e=g.commitSha)==null?void 0:e.trim())??"",i=await at(g.cwd,S.value?"commit":m.value,F.value,p||null,n||null);if(i.baseBranchOptions.length>0){const _=i.baseBranch??i.baseBranchOptions[0]??"";L.value!==_&&(H.value=!0,L.value=_)}else L.value!==""&&(H.value=!0,L.value="");d.value=i;const f=i.files.some(_=>_.id===x.value);!ie()&&!f&&(x.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{J.value=!1}}}async function me(){await q()}function ee(e){var u,v;he(e),x.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,n;if(d.value){N.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===x.value)||(x.value=((v=i.files[0])==null?void 0:v.id)??"",I.value=((n=(p=i.files[0])==null?void 0:p.hunks[0])==null?void 0:n.id)??"")}catch(i){$.value=i instanceof Error?i.message:"Failed to apply review action"}finally{N.value=!1}}}async function Ve(e){await te(e,"all")}async function ze(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()){X.value=!0,$.value="";try{await st(g.cwd),await q()}catch(e){$.value=e instanceof Error?e.message:"Failed to initialize Git"}finally{X.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"){K.value=typeof(u==null?void 0:u.review)=="string"?u.review:"Review in progress";return}e.method==="item/completed"&&v==="exitedReviewMode"&&(K.value="")}return G(()=>[g.threadId,g.cwd,g.commitSha],()=>{S.value&&(m.value="workspace"),x.value="",I.value="",$.value="",K.value="",me()},{immediate:!0}),G(()=>[g.initialFilePath,g.commitSha],()=>{ie()}),G(()=>[m.value,F.value],()=>{x.value="",I.value="",$.value="",M.value="",q()}),G(L,(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 o(),r("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,s(c(l)("Review")),1),a("p",ut,s(Ie.value),1)]),a("div",dt,[c(B)&&((u=d.value)!=null&&u.files.length)?(o(),r("button",{key:0,type:"button",class:"review-pane-mobile-files-button",onClick:t[0]||(t[0]=n=>O.value=!0)},s(c(l)("Files")),1)):w("",!0),a("button",{type:"button",class:"review-pane-close","aria-label":c(l)("Close review pane"),onClick:t[1]||(t[1]=n=>e.$emit("close"))},[ae(Je,{class:"icon-svg"})],8,ct)])]),a("div",vt,[a("div",pt,[S.value?w("",!0):(o(),r("div",ht,[a("span",ft,s(c(l)("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]=n=>m.value="workspace")},s(c(l)("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]=n=>m.value="baseBranch")},s(c(l)("Base branch")),9,_t)])])),!S.value&&m.value==="baseBranch"&&((p=d.value)!=null&&p.baseBranchOptions.length)?(o(),r("div",yt,[a("span",bt,s(c(l)("Branch")),1),ae(Qe,{modelValue:L.value,"onUpdate:modelValue":t[4]||(t[4]=n=>L.value=n),class:"review-pane-branch-dropdown",options:Be.value,placeholder:c(l)("Branch"),"enable-search":"","search-placeholder":c(l)("Search branches...")},null,8,["modelValue","options","placeholder","search-placeholder"])])):w("",!0),!S.value&&m.value==="workspace"?(o(),r("div",kt,[a("span",gt,s(c(l)("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]=n=>F.value="unstaged")},s(c(l)("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]=n=>F.value="staged")},s(c(l)("Staged")),9,Ft)])])):w("",!0)]),a("div",St,[a("button",{type:"button",class:"review-pane-refresh",disabled:J.value,onClick:me},s(c(l)("Refresh")),9,It)])]),re.value?(o(),r("div",{key:0,class:be(["review-pane-banner",{"is-error":Ae.value}])},s(re.value),3)):w("",!0),d.value?(o(),r("div",Lt,[a("span",null,s(d.value.summary.fileCount)+" "+s(c(l)("files")),1),a("span",xt,"+"+s(d.value.summary.addedLineCount),1),a("span",$t,"-"+s(d.value.summary.removedLineCount),1),d.value.headBranch?(o(),r("span",At,s(d.value.headBranch),1)):w("",!0),S.value&&d.value.commitSha?(o(),r("span",Et,s(_e(d.value.commitSha)),1)):w("",!0),!S.value&&m.value==="baseBranch"&&d.value.baseBranch?(o(),r("span",Pt,"vs "+s(d.value.baseBranch),1)):w("",!0)])):w("",!0),a("div",Nt,[d.value?d.value.isGitRepo?!S.value&&m.value==="baseBranch"&&!d.value.baseBranch?(o(),r("div",zt,[a("p",Gt,s(c(l)("Base branch unavailable")),1),a("p",Ut,s(c(l)("Could not resolve `origin/HEAD`, `main`, or `master` for this repository.")),1)])):(o(),r(C,{key:3},[le.value?(o(),r("div",Ht,[(o(!0),r(C,null,P(Le.value,n=>(o(),r("button",{key:n.value,type:"button",class:"review-pane-bulk-button",disabled:N.value,onClick:i=>Ve(n.value)},s(n.label),9,Ot))),128))])):w("",!0),d.value.files.length?(o(),r("div",{key:2,class:"review-pane-main",style:U(Ee.value)},[c(B)?w("",!0):(o(),r("aside",Yt,[(o(!0),r(C,null,P(de.value,n=>{var i;return o(),r(C,{key:n.treeKey},[n.kind==="folder"?(o(),r("button",{key:0,type:"button",class:"review-pane-tree-folder",style:U(fe(n.depth)),"data-expanded":D(n.id),onClick:f=>pe(n.id)},[a("span",{class:"review-pane-tree-caret","data-expanded":D(n.id)},null,8,Jt),a("span",Qt,s(n.name),1),a("span",Zt,s(n.fileCount),1)],12,qt)):(o(),r("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)===n.file.id,title:n.file.path,onClick:f=>ee(n.file.id)},[a("span",ta,[a("span",aa,[T(s(n.name)+" ",1),n.file.previousPath?(o(),r(C,{key:0},[T(" ← "+s(ce(n.file.previousPath)),1)],64)):w("",!0)]),a("span",sa,[a("span",na,"+"+s(n.file.addedLineCount),1),t[11]||(t[11]=a("span",{class:"review-pane-delta-separator"},"/",-1)),a("span",ia,"-"+s(n.file.removedLineCount),1)])]),a("span",{class:"review-pane-file-op","data-operation":n.file.operation},s(Z(n.file.operation)),9,la)],12,ea))],64)}),128))])),c(B)?w("",!0):(o(),r("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?(o(),r(C,{key:0},[a("div",ra,[a("div",ua,[a("p",da,[T(s(k.value.path)+" ",1),k.value.previousPath?(o(),r(C,{key:0},[T(" ← "+s(k.value.previousPath),1)],64)):w("",!0)]),a("p",ca,s(Z(k.value.operation))+" · +"+s(k.value.addedLineCount)+" / -"+s(k.value.removedLineCount),1)]),oe.value?(o(),r("div",va,[(o(!0),r(C,null,P(xe.value,n=>(o(),r("button",{key:`${k.value.id}:${n.value}`,type:"button",class:"review-pane-row-button",disabled:N.value,onClick:i=>ze(n.value,k.value)},s(n.label),9,pa))),128))])):w("",!0)]),k.value.hunks.length===0?(o(),r("div",ha,[a("pre",null,s(k.value.diff||"No unified diff available."),1)])):(o(),r("div",fa,[(o(!0),r(C,null,P(k.value.hunks,n=>(o(),r("article",{key:n.id,class:"review-pane-hunk","data-active":I.value===n.id,onClick:i=>I.value=n.id},[a("div",ma,[a("div",null,[a("p",_a,s(n.header),1),a("p",ya,"+"+s(n.addedLineCount)+" / -"+s(n.removedLineCount),1)]),oe.value?(o(),r("div",ba,[(o(!0),r(C,null,P($e.value,i=>(o(),r("button",{key:`${n.id}:${i.value}`,type:"button",class:"review-pane-row-button",disabled:N.value,onClick:f=>Ge(i.value,n)},s(i.label),9,ka))),128))])):w("",!0)]),a("div",ga,[(o(!0),r(C,null,P(n.lines,i=>(o(),r("div",{key:i.key,class:"review-pane-line","data-kind":i.kind},[a("span",Ba,s(i.oldLine??""),1),a("span",Fa,s(i.newLine??""),1),a("span",Sa,s(Me(i.kind)),1),a("code",Ia,s(i.text||" "),1)],8,Ca))),128))])],8,wa))),128))]))],64)):w("",!0)])],4)):(o(),r("div",Xt,[a("p",Kt,s(c(l)("No changes in this scope")),1),a("p",jt,s(Fe.value),1)]))],64)):(o(),r("div",Mt,[a("p",Dt,s(c(l)("This folder is not a Git repository")),1),a("p",Wt,s(c(l)("Initialize Git to review local changes and run Codex review.")),1),a("button",{type:"button",class:"review-pane-primary-cta",disabled:X.value,onClick:Ue},s(X.value?c(l)("Initializing…"):c(l)("Initialize Git")),9,Vt)])):(o(),r("div",Rt,[a("p",Tt,s(c(l)("Loading review state")),1)]))]),ae(et,{name:"review-pane-sheet"},{default:Ze(()=>{var n;return[c(B)&&O.value&&((n=d.value)!=null&&n.files.length)?(o(),r("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[13]||(t[13]=a("div",{class:"review-pane-sheet-handle","aria-hidden":"true"},null,-1)),a("div",La,[a("p",xa,s(c(l)("Changed files")),1),a("p",$a,s(d.value.files.length),1)]),a("div",Aa,[(o(!0),r(C,null,P(de.value,i=>{var f;return o(),r(C,{key:`sheet:${i.treeKey}`},[i.kind==="folder"?(o(),r("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",Na,s(i.name),1),a("span",Ra,s(i.fileCount),1)],12,Ea)):(o(),r("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",Ma,[a("span",Da,[T(s(i.name)+" ",1),i.file.previousPath?(o(),r(C,{key:0},[T(" ← "+s(ce(i.file.previousPath)),1)],64)):w("",!0)]),a("span",Wa,[a("span",Va,"+"+s(i.file.addedLineCount),1),t[12]||(t[12]=a("span",{class:"review-pane-delta-separator"},"/",-1)),a("span",za,"-"+s(i.file.removedLineCount),1)])]),a("span",{class:"review-pane-file-op","data-operation":i.file.operation},s(Z(i.file.operation)),9,Ga)],12,Ta))],64)}),128))])])])):w("",!0)]}),_:1})],34)}}}),Ka=it(Oa,[["__scopeId","data-v-b6468d35"]]);export{Ka as default};
1
+ import{d as Xe,B as Ke,q as y,l as G,N as je,O as Ye,m as qe,o,a as r,b as a,t as s,u as c,e as w,g as ae,I as Je,V as Qe,n as be,F as C,r as P,p as U,f as T,i as Ze,w as se,h as et,j as tt,k as b,W as at,X as st,Y as nt,_ as it}from"./index-CZP3HKY9.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"],Lt={key:1,class:"review-pane-meta"},xt={class:"review-pane-summary-pill review-pane-summary-pill-add"},$t={class:"review-pane-summary-pill review-pane-summary-pill-remove"},At={key:0},Et={key:1},Pt={key:2},Nt={class:"review-pane-content"},Rt={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"},Vt=["disabled"],zt={key:2,class:"review-pane-empty"},Gt={class:"review-pane-empty-title"},Ut={class:"review-pane-empty-text"},Ot={key:0,class:"review-pane-bulk-actions"},Ht=["disabled","onClick"],Xt={key:1,class:"review-pane-empty"},Kt={class:"review-pane-empty-title"},jt={class:"review-pane-empty-text"},Yt={key:0,class:"review-pane-file-list"},qt=["data-expanded","onClick"],Jt=["data-expanded"],Qt={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"},La={class:"review-pane-sheet-header"},xa={class:"review-pane-sheet-title"},$a={class:"review-pane-sheet-count"},Aa={class:"review-pane-sheet-list"},Ea=["data-expanded","onClick"],Pa=["data-expanded"],Na={class:"review-pane-tree-folder-name"},Ra={class:"review-pane-tree-folder-count"},Ta=["data-active","title","onClick"],Ma={class:"review-pane-file-meta-row"},Da={class:"review-pane-file-path"},Wa={class:"review-pane-file-delta"},Va={class:"review-pane-delta-add"},za={class:"review-pane-delta-remove"},Ga=["data-operation"],ke="codex-web-local.review-pane-file-list-width.v1",Ua=220,Oa=420,ge=288,Ha=Xe({__name:"ReviewPane",props:{threadId:{},cwd:{},isThreadInProgress:{type:Boolean},initialFilePath:{},commitSha:{}},emits:["close"],setup(Ce){const g=Ce,{isMobile:B}=Ke(),{t:l}=tt(),m=y("workspace"),F=y("unstaged"),d=y(null),L=y(""),O=y(!1),x=y(""),I=y(""),H=y(!1),J=y(!1),N=y(!1),X=y(!1),M=y(""),$=y(""),K=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===x.value))??((t=d.value)==null?void 0:t.files[0])??null}),R=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?l("No file changes in this commit."):m.value==="workspace"?l("Your current workspace is clean."):l("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?`${l("Commit")} ${_e(d.value.commitSha)}`:l("Commit"):m.value==="workspace"?F.value==="staged"?l("Staged changes"):l("Workspace changes"):(t=d.value)!=null&&t.baseBranch?`${l("Against")} ${d.value.baseBranch}`:l("Base branch"):l("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&&!N.value),Le=b(()=>F.value==="staged"?[{value:"unstage",label:l("Unstage all")}]:[{value:"stage",label:l("Stage all")},{value:"revert",label:l("Revert all")}]),xe=b(()=>F.value==="staged"?[{value:"unstage",label:l("Unstage file")}]:[{value:"stage",label:l("Stage file")},{value:"revert",label:l("Revert file")}]),$e=b(()=>F.value==="staged"?[{value:"unstage",label:l("Unstage hunk")}]:[{value:"stage",label:l("Stage hunk")},{value:"revert",label:l("Revert hunk")}]),re=b(()=>$.value||M.value||K.value),Ae=b(()=>!!($.value||M.value)),Y=y(Ne()),Ee=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)??[],R.value)}),de=b(()=>ue.value.nodes),Pe=b(()=>ue.value.folderIdsByFileId);function Q(e){return Number.isFinite(e)?Math.min(Oa,Math.max(Ua,Math.round(e))):ge}function Ne(){if(typeof window>"u")return ge;const e=window.localStorage.getItem(ke),t=e?Number(e):Number.NaN;return Q(t)}function Re(e){typeof window>"u"||window.localStorage.setItem(ke,String(Q(e)))}function Te(e){if(B.value)return;e.preventDefault(),A==null||A();const t=e.clientX,u=Y.value,v=i=>{Y.value=Q(u+(i.clientX-t))},p=()=>{window.removeEventListener("pointermove",v),window.removeEventListener("pointerup",n),A=null},n=()=>{p(),Re(Y.value)};window.addEventListener("pointermove",v),window.addEventListener("pointerup",n),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,E="";const ye=[];for(const[He,V]of _.entries()){E=E?`${E}/${V}`:V;let z=h.folders.get(V);z||(z={id:E,name:V,depth:He,folders:new Map,files:[]},h.folders.set(V,z)),h=z,ye.push(z.id)}h.files.push({file:f,name:W,depth:_.length}),v[f.id]=ye}const p=[],n=f=>f.files.length+Array.from(f.folders.values()).reduce((_,W)=>_+n(W),0),i=f=>{const _=Array.from(f.folders.values()).sort((h,E)=>ve(h.name,E.name)),W=[...f.files].sort((h,E)=>ve(h.name,E.name));for(const h of _)p.push({kind:"folder",treeKey:`folder:${h.id}`,id:h.id,name:h.name,depth:h.depth,fileCount:n(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 R.value[e]!==!1}function pe(e){R.value={...R.value,[e]:!D(e)}}function he(e){const t=Pe.value[e]??[];if(t.length===0)return;const u={...R.value};let v=!1;for(const p of t)u[p]===!1&&(u[p]=!0,v=!0);v&&(R.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 l(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()){J.value=!0,M.value="";try{const p=m.value==="baseBranch"?L.value.trim():"",n=((e=g.commitSha)==null?void 0:e.trim())??"",i=await at(g.cwd,S.value?"commit":m.value,F.value,p||null,n||null);if(i.baseBranchOptions.length>0){const _=i.baseBranch??i.baseBranchOptions[0]??"";L.value!==_&&(O.value=!0,L.value=_)}else L.value!==""&&(O.value=!0,L.value="");d.value=i;const f=i.files.some(_=>_.id===x.value);!ie()&&!f&&(x.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{J.value=!1}}}async function me(){await q()}function ee(e){var u,v;he(e),x.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&&(H.value=!1)}function _e(e){return e.trim().slice(0,7)}async function te(e,t,u=""){var v,p,n;if(d.value){N.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===x.value)||(x.value=((v=i.files[0])==null?void 0:v.id)??"",I.value=((n=(p=i.files[0])==null?void 0:p.hunks[0])==null?void 0:n.id)??"")}catch(i){$.value=i instanceof Error?i.message:"Failed to apply review action"}finally{N.value=!1}}}async function Ve(e){await te(e,"all")}async function ze(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()){X.value=!0,$.value="";try{await st(g.cwd),await q()}catch(e){$.value=e instanceof Error?e.message:"Failed to initialize Git"}finally{X.value=!1}}}function Oe(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"){K.value=typeof(u==null?void 0:u.review)=="string"?u.review:"Review in progress";return}e.method==="item/completed"&&v==="exitedReviewMode"&&(K.value="")}return G(()=>[g.threadId,g.cwd,g.commitSha],()=>{S.value&&(m.value="workspace"),x.value="",I.value="",$.value="",K.value="",me()},{immediate:!0}),G(()=>[g.initialFilePath,g.commitSha],()=>{ie()}),G(()=>[m.value,F.value],()=>{x.value="",I.value="",$.value="",M.value="",q()}),G(L,(e,t)=>{if(O.value){O.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(Oe)}),qe(()=>{j&&(j(),j=null),A==null||A()}),(e,t)=>{var u,v,p;return o(),r("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,s(c(l)("Review")),1),a("p",ut,s(Ie.value),1)]),a("div",dt,[c(B)&&((u=d.value)!=null&&u.files.length)?(o(),r("button",{key:0,type:"button",class:"review-pane-mobile-files-button",onClick:t[0]||(t[0]=n=>H.value=!0)},s(c(l)("Files")),1)):w("",!0),a("button",{type:"button",class:"review-pane-close","aria-label":c(l)("Close review pane"),onClick:t[1]||(t[1]=n=>e.$emit("close"))},[ae(Je,{class:"icon-svg"})],8,ct)])]),a("div",vt,[a("div",pt,[S.value?w("",!0):(o(),r("div",ht,[a("span",ft,s(c(l)("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]=n=>m.value="workspace")},s(c(l)("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]=n=>m.value="baseBranch")},s(c(l)("Base branch")),9,_t)])])),!S.value&&m.value==="baseBranch"&&((p=d.value)!=null&&p.baseBranchOptions.length)?(o(),r("div",yt,[a("span",bt,s(c(l)("Branch")),1),ae(Qe,{modelValue:L.value,"onUpdate:modelValue":t[4]||(t[4]=n=>L.value=n),class:"review-pane-branch-dropdown",options:Be.value,placeholder:c(l)("Branch"),"enable-search":"","search-placeholder":c(l)("Search branches...")},null,8,["modelValue","options","placeholder","search-placeholder"])])):w("",!0),!S.value&&m.value==="workspace"?(o(),r("div",kt,[a("span",gt,s(c(l)("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]=n=>F.value="unstaged")},s(c(l)("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]=n=>F.value="staged")},s(c(l)("Staged")),9,Ft)])])):w("",!0)]),a("div",St,[a("button",{type:"button",class:"review-pane-refresh",disabled:J.value,onClick:me},s(c(l)("Refresh")),9,It)])]),re.value?(o(),r("div",{key:0,class:be(["review-pane-banner",{"is-error":Ae.value}])},s(re.value),3)):w("",!0),d.value?(o(),r("div",Lt,[a("span",null,s(d.value.summary.fileCount)+" "+s(c(l)("files")),1),a("span",xt,"+"+s(d.value.summary.addedLineCount),1),a("span",$t,"-"+s(d.value.summary.removedLineCount),1),d.value.headBranch?(o(),r("span",At,s(d.value.headBranch),1)):w("",!0),S.value&&d.value.commitSha?(o(),r("span",Et,s(_e(d.value.commitSha)),1)):w("",!0),!S.value&&m.value==="baseBranch"&&d.value.baseBranch?(o(),r("span",Pt,"vs "+s(d.value.baseBranch),1)):w("",!0)])):w("",!0),a("div",Nt,[d.value?d.value.isGitRepo?!S.value&&m.value==="baseBranch"&&!d.value.baseBranch?(o(),r("div",zt,[a("p",Gt,s(c(l)("Base branch unavailable")),1),a("p",Ut,s(c(l)("Could not resolve `origin/HEAD`, `main`, or `master` for this repository.")),1)])):(o(),r(C,{key:3},[le.value?(o(),r("div",Ot,[(o(!0),r(C,null,P(Le.value,n=>(o(),r("button",{key:n.value,type:"button",class:"review-pane-bulk-button",disabled:N.value,onClick:i=>Ve(n.value)},s(n.label),9,Ht))),128))])):w("",!0),d.value.files.length?(o(),r("div",{key:2,class:"review-pane-main",style:U(Ee.value)},[c(B)?w("",!0):(o(),r("aside",Yt,[(o(!0),r(C,null,P(de.value,n=>{var i;return o(),r(C,{key:n.treeKey},[n.kind==="folder"?(o(),r("button",{key:0,type:"button",class:"review-pane-tree-folder",style:U(fe(n.depth)),"data-expanded":D(n.id),onClick:f=>pe(n.id)},[a("span",{class:"review-pane-tree-caret","data-expanded":D(n.id)},null,8,Jt),a("span",Qt,s(n.name),1),a("span",Zt,s(n.fileCount),1)],12,qt)):(o(),r("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)===n.file.id,title:n.file.path,onClick:f=>ee(n.file.id)},[a("span",ta,[a("span",aa,[T(s(n.name)+" ",1),n.file.previousPath?(o(),r(C,{key:0},[T(" ← "+s(ce(n.file.previousPath)),1)],64)):w("",!0)]),a("span",sa,[a("span",na,"+"+s(n.file.addedLineCount),1),t[11]||(t[11]=a("span",{class:"review-pane-delta-separator"},"/",-1)),a("span",ia,"-"+s(n.file.removedLineCount),1)])]),a("span",{class:"review-pane-file-op","data-operation":n.file.operation},s(Z(n.file.operation)),9,la)],12,ea))],64)}),128))])),c(B)?w("",!0):(o(),r("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?(o(),r(C,{key:0},[a("div",ra,[a("div",ua,[a("p",da,[T(s(k.value.path)+" ",1),k.value.previousPath?(o(),r(C,{key:0},[T(" ← "+s(k.value.previousPath),1)],64)):w("",!0)]),a("p",ca,s(Z(k.value.operation))+" · +"+s(k.value.addedLineCount)+" / -"+s(k.value.removedLineCount),1)]),oe.value?(o(),r("div",va,[(o(!0),r(C,null,P(xe.value,n=>(o(),r("button",{key:`${k.value.id}:${n.value}`,type:"button",class:"review-pane-row-button",disabled:N.value,onClick:i=>ze(n.value,k.value)},s(n.label),9,pa))),128))])):w("",!0)]),k.value.hunks.length===0?(o(),r("div",ha,[a("pre",null,s(k.value.diff||"No unified diff available."),1)])):(o(),r("div",fa,[(o(!0),r(C,null,P(k.value.hunks,n=>(o(),r("article",{key:n.id,class:"review-pane-hunk","data-active":I.value===n.id,onClick:i=>I.value=n.id},[a("div",ma,[a("div",null,[a("p",_a,s(n.header),1),a("p",ya,"+"+s(n.addedLineCount)+" / -"+s(n.removedLineCount),1)]),oe.value?(o(),r("div",ba,[(o(!0),r(C,null,P($e.value,i=>(o(),r("button",{key:`${n.id}:${i.value}`,type:"button",class:"review-pane-row-button",disabled:N.value,onClick:f=>Ge(i.value,n)},s(i.label),9,ka))),128))])):w("",!0)]),a("div",ga,[(o(!0),r(C,null,P(n.lines,i=>(o(),r("div",{key:i.key,class:"review-pane-line","data-kind":i.kind},[a("span",Ba,s(i.oldLine??""),1),a("span",Fa,s(i.newLine??""),1),a("span",Sa,s(Me(i.kind)),1),a("code",Ia,s(i.text||" "),1)],8,Ca))),128))])],8,wa))),128))]))],64)):w("",!0)])],4)):(o(),r("div",Xt,[a("p",Kt,s(c(l)("No changes in this scope")),1),a("p",jt,s(Fe.value),1)]))],64)):(o(),r("div",Mt,[a("p",Dt,s(c(l)("This folder is not a Git repository")),1),a("p",Wt,s(c(l)("Initialize Git to review local changes and run Codex review.")),1),a("button",{type:"button",class:"review-pane-primary-cta",disabled:X.value,onClick:Ue},s(X.value?c(l)("Initializing…"):c(l)("Initialize Git")),9,Vt)])):(o(),r("div",Rt,[a("p",Tt,s(c(l)("Loading review state")),1)]))]),ae(et,{name:"review-pane-sheet"},{default:Ze(()=>{var n;return[c(B)&&H.value&&((n=d.value)!=null&&n.files.length)?(o(),r("div",{key:0,class:"review-pane-sheet-backdrop",onClick:t[8]||(t[8]=i=>H.value=!1)},[a("div",{class:"review-pane-sheet",onClick:t[7]||(t[7]=se(()=>{},["stop"]))},[t[13]||(t[13]=a("div",{class:"review-pane-sheet-handle","aria-hidden":"true"},null,-1)),a("div",La,[a("p",xa,s(c(l)("Changed files")),1),a("p",$a,s(d.value.files.length),1)]),a("div",Aa,[(o(!0),r(C,null,P(de.value,i=>{var f;return o(),r(C,{key:`sheet:${i.treeKey}`},[i.kind==="folder"?(o(),r("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",Na,s(i.name),1),a("span",Ra,s(i.fileCount),1)],12,Ea)):(o(),r("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",Ma,[a("span",Da,[T(s(i.name)+" ",1),i.file.previousPath?(o(),r(C,{key:0},[T(" ← "+s(ce(i.file.previousPath)),1)],64)):w("",!0)]),a("span",Wa,[a("span",Va,"+"+s(i.file.addedLineCount),1),t[12]||(t[12]=a("span",{class:"review-pane-delta-separator"},"/",-1)),a("span",za,"-"+s(i.file.removedLineCount),1)])]),a("span",{class:"review-pane-file-op","data-operation":i.file.operation},s(Z(i.file.operation)),9,Ga)],12,Ta))],64)}),128))])])])):w("",!0)]}),_:1})],34)}}}),Ka=it(Ha,[["__scopeId","data-v-dc05b5df"]]);export{Ka as default};
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.3.3 | 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-dc05b5df],[data-v-dc05b5df]:before,[data-v-dc05b5df]:after,[data-v-dc05b5df]::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-dc05b5df]{inset:calc(var(--spacing,.25rem) * 3);z-index:var(--z-modal);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);min-width:0;min-height:0;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-dc05b5df]{border-style:var(--tw-border-style);border-width:0;border-radius:0;top:0;right:0;bottom:0;left:0}.review-pane-header[data-v-dc05b5df]{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-dc05b5df]{flex:1;min-width:0}.review-pane-eyebrow[data-v-dc05b5df]{--tw-tracking:.12em;letter-spacing:.12em;color:var(--color-zinc-400,oklch(70.5% .015 286.067));text-transform:uppercase;margin:0;font-size:11px}.review-pane-title[data-v-dc05b5df]{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));margin:0;overflow:hidden}.review-pane-header-actions[data-v-dc05b5df]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);flex-shrink:0;display:flex}.review-pane-close[data-v-dc05b5df],.review-pane-mobile-files-button[data-v-dc05b5df],.review-pane-refresh[data-v-dc05b5df],.review-pane-bulk-button[data-v-dc05b5df],.review-pane-row-button[data-v-dc05b5df],.review-pane-primary-cta[data-v-dc05b5df]{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-dc05b5df],.review-pane-mobile-files-button[data-v-dc05b5df],.review-pane-refresh[data-v-dc05b5df],.review-pane-bulk-button[data-v-dc05b5df],.review-pane-row-button[data-v-dc05b5df],.review-pane-primary-cta[data-v-dc05b5df]):hover{background-color:var(--color-zinc-50,oklch(98.5% 0 none))}}:is(.review-pane-close[data-v-dc05b5df],.review-pane-mobile-files-button[data-v-dc05b5df],.review-pane-refresh[data-v-dc05b5df],.review-pane-bulk-button[data-v-dc05b5df],.review-pane-row-button[data-v-dc05b5df],.review-pane-primary-cta[data-v-dc05b5df]):disabled{cursor:default;opacity:.5}.review-pane-close[data-v-dc05b5df]{height:calc(var(--spacing,.25rem) * 7.5);width:calc(var(--spacing,.25rem) * 7.5);border-radius:3.40282e38px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.review-pane-toolbar[data-v-dc05b5df]{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-dc05b5df]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);flex-wrap:wrap;display:flex}.review-pane-control-cluster[data-v-dc05b5df]{align-items:center;gap:calc(var(--spacing,.25rem) * 1.5);min-width:0;display:flex}.review-pane-control-label[data-v-dc05b5df]{--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-dc05b5df]{min-width:9rem}.review-pane-branch-dropdown[data-v-dc05b5df] .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:var(--spacing,.25rem);--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-dc05b5df] .composer-dropdown-value{max-width:calc(var(--spacing,.25rem) * 36)}.review-pane-segmented[data-v-dc05b5df]{align-items:center;gap:var(--spacing,.25rem);background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));min-width:0;padding:var(--spacing,.25rem);border-radius:3.40282e38px;display:inline-flex}.review-pane-segmented-button[data-v-dc05b5df]{border-style:var(--tw-border-style);min-width:0;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-dc05b5df]: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-dc05b5df]{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-dc05b5df]:before{background-color:var(--color-white,#fff)}.review-pane-segmented-button[data-v-dc05b5df]:disabled{opacity:.45}.review-pane-toolbar-actions[data-v-dc05b5df]{align-items:center;gap:calc(var(--spacing,.25rem) * 1.5);flex-shrink:0;display:flex}.review-pane-refresh[data-v-dc05b5df]{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-dc05b5df]:hover{background-color:var(--color-amber-100,oklch(96.2% .059 95.617))}}.review-pane-banner[data-v-dc05b5df]{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-dc05b5df]{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-dc05b5df]{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-dc05b5df]{background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);border-radius:3.40282e38px}.review-pane-summary-pill.review-pane-summary-pill-add[data-v-dc05b5df]{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-dc05b5df]{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-dc05b5df]{flex:1;min-height:0;overflow:hidden}.review-pane-bulk-actions[data-v-dc05b5df]{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-dc05b5df]{grid-template-columns:var(--review-file-list-width,18rem) .5rem minmax(0,1fr);height:100%;min-height:0;display:grid}.review-pane-file-list[data-v-dc05b5df]{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;min-width:0;display:none;overflow-y:auto}@supports (color:color-mix(in lab,red,red)){.review-pane-file-list[data-v-dc05b5df]{background-color:color-mix(in oklab,var(--color-zinc-50,oklch(98.5% 0 none)) 60%,transparent)}}.review-pane-file-list[data-v-dc05b5df]{padding:calc(var(--spacing,.25rem) * 2)}@media (min-width:48rem){.review-pane-file-list[data-v-dc05b5df]{gap:calc(var(--spacing,.25rem) * 1.5);flex-direction:column;display:flex}}.review-pane-file-list[data-v-dc05b5df]{container-type:inline-size}.review-pane-tree-folder[data-v-dc05b5df]{align-items:center;gap:var(--spacing,.25rem);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-dc05b5df]: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-dc05b5df]{color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.review-pane-tree-folder-sheet[data-v-dc05b5df]{border-radius:var(--radius-md,.375rem);background-color:#fafafacc}@supports (color:color-mix(in lab,red,red)){.review-pane-tree-folder-sheet[data-v-dc05b5df]{background-color:color-mix(in oklab,var(--color-zinc-50,oklch(98.5% 0 none)) 80%,transparent)}}.review-pane-tree-caret[data-v-dc05b5df]{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-dc05b5df]:before{content:"";top:var(--spacing,.25rem);left:var(--spacing,.25rem);border-block-style:var(--tw-border-style);border-block-width:4px;border-left-style:var(--tw-border-style);border-left-width:5px;width:0;height:0;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-dc05b5df]:before{transform-origin:2px 4px;transform:rotate(90deg)}.review-pane-tree-folder-name[data-v-dc05b5df]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.review-pane-tree-folder-count[data-v-dc05b5df]{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-dc05b5df]{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-dc05b5df]{display:block}}.review-pane-resizer[data-v-dc05b5df]:before{content:"";--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));inset-block:0;position:absolute;left:50%}.review-pane-resizer[data-v-dc05b5df]:hover:before{background-color:var(--color-sky-500,oklch(68.5% .169 237.323))}.review-pane-file[data-v-dc05b5df]{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-dc05b5df]:hover{border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-white,#fff)}}.review-pane-tree-file[data-v-dc05b5df]{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-dc05b5df]{justify-content:space-between;align-items:flex-start;gap:calc(var(--spacing,.25rem) * 2);min-width:0;display:flex}.review-pane-file[data-active=true][data-v-dc05b5df]{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-dc05b5df]{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-dc05b5df]{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-dc05b5df]{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-dc05b5df]{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-dc05b5df]{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-dc05b5df]{text-overflow:ellipsis;white-space:nowrap;min-width:0;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-dc05b5df]{align-items:center;gap:var(--spacing,.25rem);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-dc05b5df]{align-items:stretch;gap:var(--spacing,.25rem);flex-direction:column}.review-pane-file-list .review-pane-file-delta[data-v-dc05b5df]{align-self:flex-start}}.review-pane-delta-add[data-v-dc05b5df]{color:var(--color-emerald-600,oklch(59.6% .145 163.225))}.review-pane-delta-remove[data-v-dc05b5df]{color:var(--color-rose-600,oklch(58.6% .253 17.585))}.review-pane-delta-separator[data-v-dc05b5df]{color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.review-pane-diff[data-v-dc05b5df]{min-height:0;padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 3);overflow-y:auto}.review-pane-file-header[data-v-dc05b5df],.review-pane-hunk[data-v-dc05b5df]{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-dc05b5df]{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-dc05b5df]{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));margin:0}.review-pane-file-subtitle[data-v-dc05b5df],.review-pane-hunk-meta[data-v-dc05b5df]{color:var(--color-zinc-500,oklch(55.2% .016 285.938));margin:0;font-size:11px}.review-pane-row-actions[data-v-dc05b5df]{gap:calc(var(--spacing,.25rem) * 1.5);flex-wrap:wrap;display:flex}.review-pane-hunks[data-v-dc05b5df]{gap:calc(var(--spacing,.25rem) * 2.5);flex-direction:column;display:flex}.review-pane-hunk[data-v-dc05b5df]{overflow:hidden}.review-pane-hunk[data-active=true][data-v-dc05b5df]{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-dc05b5df]{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-dc05b5df]{background-color:color-mix(in oklab,var(--color-zinc-50,oklch(98.5% 0 none)) 70%,transparent)}}.review-pane-hunk-header[data-v-dc05b5df]{padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2.5)}.review-pane-hunk-title[data-v-dc05b5df]{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));margin:0}.review-pane-lines[data-v-dc05b5df]{background-color:var(--color-zinc-950,oklch(14.1% .005 285.823));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));padding-block:0;padding-inline:0;overflow-x:auto}.review-pane-line[data-v-dc05b5df]{grid-template-columns:3.5rem 3.5rem 1.5rem minmax(0,1fr);gap:0;min-width:max-content;display:grid}.review-pane-line-number[data-v-dc05b5df]{padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:var(--spacing,.25rem);text-align:right;color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.review-pane-line-marker[data-v-dc05b5df]{padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);text-align:center;color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.review-pane-line-code[data-v-dc05b5df]{padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:var(--spacing,.25rem);word-break:break-all;white-space:pre-wrap;display:block}.review-pane-line[data-kind=add][data-v-dc05b5df]{background-color:#002c2299}@supports (color:color-mix(in lab,red,red)){.review-pane-line[data-kind=add][data-v-dc05b5df]{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-dc05b5df]{color:var(--color-emerald-100,oklch(95% .052 163.051))}.review-pane-line[data-kind=remove][data-v-dc05b5df]{background-color:#4d021899}@supports (color:color-mix(in lab,red,red)){.review-pane-line[data-kind=remove][data-v-dc05b5df]{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-dc05b5df]{color:var(--color-rose-100,oklch(94.1% .03 12.58))}.review-pane-line[data-kind=add] .review-pane-line-marker[data-v-dc05b5df],.review-pane-line[data-kind=add] .review-pane-line-code[data-v-dc05b5df]{color:var(--color-emerald-300,oklch(84.5% .143 164.978))}.review-pane-line[data-kind=remove] .review-pane-line-marker[data-v-dc05b5df],.review-pane-line[data-kind=remove] .review-pane-line-code[data-v-dc05b5df]{color:var(--color-rose-300,oklch(81% .117 11.638))}.review-pane-line[data-kind=hunk][data-v-dc05b5df]{background-color:#052f4ab3}@supports (color:color-mix(in lab,red,red)){.review-pane-line[data-kind=hunk][data-v-dc05b5df]{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-dc05b5df]{color:var(--color-sky-200,oklch(90.1% .058 230.902))}.review-pane-line[data-kind=meta][data-v-dc05b5df]{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-dc05b5df]{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-dc05b5df]{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;margin:0}.review-pane-empty[data-v-dc05b5df]{height:100%;min-height: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-dc05b5df]{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));margin:0}.review-pane-empty-text[data-v-dc05b5df]{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-dc05b5df]{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-dc05b5df]:hover{background-color:var(--color-emerald-700,oklch(50.8% .118 165.612))}}.review-pane-sheet-backdrop[data-v-dc05b5df]{z-index:50;background-color:#0000004d;position:fixed;top:0;right:0;bottom:0;left:0}@supports (color:color-mix(in lab,red,red)){.review-pane-sheet-backdrop[data-v-dc05b5df]{background-color:color-mix(in oklab,var(--color-black,#000) 30%,transparent)}}.review-pane-sheet[data-v-dc05b5df]{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);inset-inline:0;position:absolute;bottom:0}.review-pane-sheet-handle[data-v-dc05b5df]{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-dc05b5df]{margin-bottom:calc(var(--spacing,.25rem) * 3);justify-content:space-between;align-items:center;display:flex}.review-pane-sheet-title[data-v-dc05b5df]{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));margin:0}.review-pane-sheet-count[data-v-dc05b5df]{background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);color:var(--color-zinc-500,oklch(55.2% .016 285.938));border-radius:3.40282e38px;margin:0;font-size:11px}.review-pane-sheet-list[data-v-dc05b5df]{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-dc05b5df],.review-pane-sheet-leave-active[data-v-dc05b5df]{transition:opacity .16s}.review-pane-sheet-enter-active .review-pane-sheet[data-v-dc05b5df],.review-pane-sheet-leave-active .review-pane-sheet[data-v-dc05b5df]{transition:transform .2s}.review-pane-sheet-enter-from[data-v-dc05b5df],.review-pane-sheet-leave-to[data-v-dc05b5df]{opacity:0}.review-pane-sheet-enter-from .review-pane-sheet[data-v-dc05b5df],.review-pane-sheet-leave-to .review-pane-sheet[data-v-dc05b5df]{transform:translateY(16px)}@media (max-width:767px){.review-pane-header[data-v-dc05b5df]{padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2)}.review-pane-eyebrow[data-v-dc05b5df]{font-size:10px}.review-pane-title[data-v-dc05b5df]{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-dc05b5df]{gap:calc(var(--spacing,.25rem) * 1.5)}.review-pane-close[data-v-dc05b5df],.review-pane-mobile-files-button[data-v-dc05b5df],.review-pane-refresh[data-v-dc05b5df]{padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:var(--spacing,.25rem);font-size:12px}.review-pane-close[data-v-dc05b5df]{height:calc(var(--spacing,.25rem) * 7);width:calc(var(--spacing,.25rem) * 7)}.review-pane-toolbar[data-v-dc05b5df]{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-dc05b5df]{gap:calc(var(--spacing,.25rem) * 1.5);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}.review-pane-control-cluster[data-v-dc05b5df]{gap:var(--spacing,.25rem)}.review-pane-control-label[data-v-dc05b5df]{font-size:9px}.review-pane-branch-dropdown[data-v-dc05b5df]{flex:1;min-width:0}.review-pane-branch-dropdown[data-v-dc05b5df] .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-dc05b5df]{justify-content:space-between;gap:var(--spacing,.25rem);width:100%;padding:calc(var(--spacing,.25rem) * .75)}.review-pane-segmented-button[data-v-dc05b5df]{padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex:1;font-size:12px}.review-pane-toolbar-actions[data-v-dc05b5df]{gap:var(--spacing,.25rem);width:auto}.review-pane-refresh[data-v-dc05b5df]{padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:var(--spacing,.25rem);font-size:12px}.review-pane-banner[data-v-dc05b5df]{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-dc05b5df]{gap:var(--spacing,.25rem);padding-inline:calc(var(--spacing,.25rem) * 3);padding-top:calc(var(--spacing,.25rem) * 2)}.review-pane-meta span[data-v-dc05b5df]{padding-inline:calc(var(--spacing,.25rem) * 1.75);padding-block:calc(var(--spacing,.25rem) * .75);font-size:11px}.review-pane-bulk-actions[data-v-dc05b5df]{gap:var(--spacing,.25rem);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2)}.review-pane-bulk-button[data-v-dc05b5df]{padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:var(--spacing,.25rem);font-size:12px}.review-pane-main[data-v-dc05b5df]{flex-direction:column;height:100%;min-height:0;display:flex}.review-pane-resizer[data-v-dc05b5df]{display:none}.review-pane-diff[data-v-dc05b5df]{min-height: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-dc05b5df],.review-pane-hunk-header[data-v-dc05b5df]{padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:calc(var(--spacing,.25rem) * 2)}.review-pane-sheet[data-v-dc05b5df]{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-dc05b5df]{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-dc05b5df]{margin-bottom:calc(var(--spacing,.25rem) * 2)}.review-pane-sheet-title[data-v-dc05b5df]{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-dc05b5df]{padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .75);font-size:10px}.review-pane-sheet-list[data-v-dc05b5df]{gap:calc(var(--spacing,.25rem) * 1.5);padding-bottom:calc(var(--spacing,.25rem) * 2)}.review-pane-sheet-list .review-pane-tree-folder[data-v-dc05b5df]{gap:var(--spacing,.25rem);border-radius:var(--radius-md,.375rem);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);font-size:12px}.review-pane-sheet-list .review-pane-tree-folder-count[data-v-dc05b5df]{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-dc05b5df]{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-dc05b5df]{gap:calc(var(--spacing,.25rem) * 1.5)}.review-pane-sheet-list .review-pane-file-op[data-v-dc05b5df]{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-dc05b5df]{--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-dc05b5df]{font-size:11px}}@media (min-width:768px){.review-pane-toolbar[data-v-dc05b5df]{align-items:center;gap:calc(var(--spacing,.25rem) * 2.5);flex-direction:row}.review-pane-toolbar-controls[data-v-dc05b5df]{flex-wrap:nowrap;min-width:0}.review-pane-control-cluster[data-v-dc05b5df]{flex-shrink:0}.review-pane-toolbar-actions[data-v-dc05b5df]{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}