codexui-android 0.1.102 → 0.1.104

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codexui-android",
3
- "version": "0.1.102",
3
+ "version": "0.1.104",
4
4
  "description": "A lightweight web interface for Codex that runs on top of the Codex app-server, allowing remote access from any browser",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -42,7 +42,6 @@
42
42
  "@firebase/util",
43
43
  "esbuild",
44
44
  "node-pty",
45
- "node-pty-prebuilt-multiarch",
46
45
  "protobufjs"
47
46
  ]
48
47
  },
@@ -69,6 +68,7 @@
69
68
  "qrcode-terminal": "^0.12.0",
70
69
  "ws": "^8.18.3"
71
70
  },
71
+ "optionalDependencies": {},
72
72
  "devDependencies": {
73
73
  "@playwright/test": "^1.59.1",
74
74
  "@tailwindcss/vite": "^4.1.18",
@@ -1,9 +1,8 @@
1
- const { existsSync, lstatSync, readFileSync, realpathSync, rmSync, writeFileSync } = require('node:fs')
1
+ const { chmodSync, existsSync, lstatSync, readFileSync, realpathSync, rmSync, writeFileSync } = require('node:fs')
2
2
  const { dirname, join } = require('node:path')
3
3
  const { spawnSync } = require('node:child_process')
4
4
 
5
5
  const PTY_PACKAGES = [
6
- 'node-pty-prebuilt-multiarch',
7
6
  'node-pty',
8
7
  ]
9
8
 
@@ -38,9 +37,18 @@ function patchMakefile(makefile) {
38
37
  }
39
38
  }
40
39
 
40
+ function ensureSpawnHelperExecutable(root) {
41
+ if (process.platform !== 'darwin' && process.platform !== 'linux') return
42
+ const helperPath = join(root, 'prebuilds', `${process.platform}-${process.arch}`, 'spawn-helper')
43
+ if (existsSync(helperPath)) {
44
+ chmodSync(helperPath, 0o755)
45
+ }
46
+ }
47
+
41
48
  for (const name of PTY_PACKAGES) {
42
49
  const root = packageRoot(name)
43
50
  if (!root) continue
51
+ ensureSpawnHelperExecutable(root)
44
52
 
45
53
  const buildDir = join(root, 'build')
46
54
  const makefile = join(buildDir, 'Makefile')
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.esm-BMAgl1KF.js","assets/index.esm-O-ekzJz9.js","assets/index.esm-TywpZG2x.js"])))=>i.map(i=>d[i]);
2
- import{d as Fe,o as a,c as l,h as M,a as s,t as i,s as r,f as c,p as Ne,j as Ie,S as $s,J as tt,y as $,_ as Oe,w as Se,A as De,m as Ss,U as et,r as u,z as Mt,b as xt,v as Me,V as Is,W as As,F as j,g as z,L as Qe,X as Ye,q as Ps,x as Ls,Y as Es,Z as Ts,$ as Us,a0 as Ns,a1 as Ds,a2 as Ms,a3 as Fs,a4 as Os,a5 as xs,a6 as Rs,a7 as Gs,a8 as js,a9 as Hs,aa as Bs,ab as Ks,ac as Ft,ad as zs}from"./index-Dpl251IF.js";const Vs={class:"skill-card-top"},Ws=["src","alt"],qs={key:1,class:"skill-card-avatar-fallback"},Js={class:"skill-card-info"},Zs={class:"skill-card-header"},Qs={class:"skill-card-name"},Ys={key:0,class:"skill-card-badge-disabled"},Xs={key:1,class:"skill-card-badge"},ea={class:"skill-card-owner"},ta=["title"],sa={key:0,class:"skill-card-desc"},aa={key:1,class:"skill-card-date"},oa=Fe({__name:"SkillCard",props:{skill:{}},emits:["select"],setup(y){const J=y,{t:g}=tt(),E=$(()=>{const _=J.skill.path;return _?_.endsWith("/SKILL.md")?_.slice(0,-9):_:""});function N(){const _=E.value;_&&window.open(`/codex-local-browse${encodeURI(_)}`,"_blank","noopener,noreferrer")}const O=$(()=>{const _=J.skill.publishedAt;if(!_)return"";const I=new Date(_),m=Date.now()-_;return m<36e5?`${Math.floor(m/6e4)}m ago`:m<864e5?`${Math.floor(m/36e5)}h ago`:m<2592e6?`${Math.floor(m/864e5)}d ago`:I.toLocaleDateString("en-US",{month:"short",day:"numeric"})});function H(_){const I=_.target;I.style.display="none"}return(_,I)=>(a(),l("button",{class:M(["skill-card",{"is-disabled":y.skill.installed&&y.skill.enabled===!1}]),type:"button",onClick:I[0]||(I[0]=x=>_.$emit("select",y.skill))},[s("div",Vs,[y.skill.avatarUrl?(a(),l("img",{key:0,class:"skill-card-avatar",src:y.skill.avatarUrl,alt:y.skill.owner,loading:"lazy",onError:H},null,40,Ws)):(a(),l("div",qs,i(y.skill.owner.charAt(0)),1)),s("div",Js,[s("div",Zs,[s("span",Qs,i(y.skill.displayName||y.skill.name),1),y.skill.installed&&y.skill.enabled===!1?(a(),l("span",Ys,i(r(g)("Disabled")),1)):y.skill.installed?(a(),l("span",Xs,i(r(g)("Installed")),1)):c("",!0)]),s("span",ea,i(y.skill.owner),1)]),y.skill.installed&&E.value?(a(),l("button",{key:2,class:"skill-card-browse",type:"button",title:r(g)("Browse files"),onClick:Ne(N,["stop"])},[Ie($s,{class:"skill-card-browse-icon"})],8,ta)):c("",!0)]),y.skill.description?(a(),l("p",sa,i(y.skill.description),1)):c("",!0),O.value?(a(),l("span",aa,i(O.value),1)):c("",!0)],2))}}),la=Oe(oa,[["__scopeId","data-v-b276a846"]]),ia={class:"sdm-panel"},na={class:"sdm-header"},ra={class:"sdm-title-area"},ca=["src","alt"],da={class:"sdm-title-col"},ua={class:"sdm-title-row"},ya={class:"sdm-title"},va={key:0,class:"sdm-badge-disabled"},pa={class:"sdm-owner"},ha=["aria-label"],ma={class:"sdm-body"},ga={key:0,class:"sdm-desc"},fa={key:1,class:"sdm-readme-loading"},ka=["innerHTML"],ba=["href"],_a={class:"sdm-footer"},Ca={class:"sdm-footer-actions"},wa=["disabled"],$a=["disabled"],Sa=["disabled"],Ia=["disabled"],Aa=Fe({__name:"SkillDetailModal",props:{skill:{},visible:{type:Boolean},isInstalling:{type:Boolean},isUninstalling:{type:Boolean},isTrying:{type:Boolean}},emits:["close","install","uninstall","toggle-enabled","try"],setup(y,{emit:J}){const g=y,E=J,N=u(null),O=u(""),H=u(""),_=u(!1),{t:I}=tt(),x=$(()=>N.value??g.skill.enabled??!0),m=$(()=>g.isInstalling===!0||g.isUninstalling===!0),B=$(()=>O.value||g.skill.description),V=$(()=>{const f=g.skill.path;return f?f.endsWith("/SKILL.md")?f.slice(0,-9):f:""}),Y=$(()=>{const f=H.value;if(!f)return"";const P=f.replace(/^---[\s\S]*?---\s*/,"");return w(P)});function w(f){return f.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 D(){if(!(!g.skill.owner||!g.skill.name)){_.value=!0,O.value="",H.value="";try{const f=new URLSearchParams({owner:g.skill.owner,name:g.skill.name});g.skill.installed&&f.set("installed","true"),g.skill.path&&f.set("path",g.skill.path);const P=await fetch(`/codex-api/skills-hub/readme?${f}`);if(!P.ok)return;const T=await P.json();H.value=T.content??"",O.value=T.description??""}catch{}finally{_.value=!1}}}Se(()=>g.visible,f=>{f&&(N.value=null,O.value="",H.value="",D())});function R(){E("install",g.skill)}function p(){E("uninstall",g.skill)}function h(){const f=!x.value;N.value=f,E("toggle-enabled",g.skill,f)}function Z(){g.isTrying||E("try",g.skill)}function K(){const f=V.value;f&&window.open(`/codex-local-browse${encodeURI(f)}`,"_blank","noopener,noreferrer")}return(f,P)=>(a(),De(et,{to:"body"},[y.visible?(a(),l("div",{key:0,class:"sdm-overlay",onClick:P[1]||(P[1]=Ne(T=>f.$emit("close"),["self"]))},[s("div",ia,[s("div",na,[s("div",ra,[y.skill.avatarUrl?(a(),l("img",{key:0,class:"sdm-avatar",src:y.skill.avatarUrl,alt:y.skill.owner,loading:"lazy"},null,8,ca)):c("",!0),s("div",da,[s("div",ua,[s("h3",ya,i(y.skill.displayName||y.skill.name),1),y.skill.installed&&!x.value?(a(),l("span",va,i(r(I)("Disabled")),1)):c("",!0)]),s("span",pa,i(y.skill.owner),1)])]),s("button",{class:"sdm-close",type:"button","aria-label":r(I)("Close"),onClick:P[0]||(P[0]=T=>f.$emit("close"))},[Ie(Ss,{class:"sdm-close-icon"})],8,ha)]),s("div",ma,[B.value?(a(),l("p",ga,i(B.value),1)):c("",!0),_.value?(a(),l("div",fa,i(r(I)("Loading skill contents...")),1)):H.value?(a(),l("div",{key:2,class:"sdm-readme",innerHTML:Y.value},null,8,ka)):c("",!0),s("a",{class:"sdm-link",href:y.skill.url,target:"_blank",rel:"noopener noreferrer"},i(r(I)("View on GitHub")),9,ba)]),s("div",_a,[s("div",Ca,[y.skill.installed?(a(),l("button",{key:0,class:"sdm-btn sdm-btn-danger",type:"button",disabled:m.value,onClick:p},i(g.isUninstalling?r(I)("Uninstalling..."):r(I)("Uninstall")),9,wa)):(a(),l("button",{key:1,class:"sdm-btn sdm-btn-primary",type:"button",disabled:m.value,onClick:R},i(g.isInstalling?r(I)("Installing..."):r(I)("Install")),9,$a)),y.skill.installed?(a(),l("button",{key:2,class:"sdm-btn sdm-btn-secondary",type:"button",disabled:m.value,onClick:h},i(x.value?r(I)("Disable"):r(I)("Enable")),9,Sa)):c("",!0),y.skill.installed&&x.value?(a(),l("button",{key:3,class:"sdm-btn sdm-btn-primary",type:"button",disabled:m.value||g.isTrying,onClick:Z},i(g.isTrying?"Starting...":"Try it!"),9,Ia)):c("",!0),y.skill.installed&&V.value?(a(),l("button",{key:4,class:"sdm-btn sdm-btn-secondary",type:"button",onClick:K},i(r(I)("Browse files")),1)):c("",!0)])])])])):c("",!0)]))}}),Pa=Oe(Aa,[["__scopeId","data-v-8fb16c1e"]]),La={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 Xe=null;function Ea(){return Xe||(Xe=Promise.all([Mt(()=>import("./index.esm-BMAgl1KF.js"),__vite__mapDeps([0,1])),Mt(()=>import("./index.esm-TywpZG2x.js"),__vite__mapDeps([2,1]))])),Xe}function Ta(y){const J=u(null),g=u(""),E=u(""),N=u(""),O=u({loggedIn:!1,githubUsername:"",repoOwner:"",repoName:"",configured:!1,startup:{inProgress:!1,mode:"idle",branch:"main",lastAction:"not-started",lastRunAtIso:"",lastSuccessAtIso:"",lastError:""}}),H=$(()=>N.value==="pull"),_=$(()=>N.value==="push"),I=$(()=>N.value==="startup-sync"),x=$(()=>N.value!=="");async function m(){try{const p=await fetch("/codex-api/skills-sync/status");if(!p.ok)return;const h=await p.json();h.data&&(O.value=h.data)}catch{}}async function B(){try{const p=await fetch("/codex-api/skills-sync/github/start-login",{method:"POST"}),h=await p.json();if(!p.ok||!h.data)throw new Error("Failed to start GitHub login");J.value=h.data;const Z=30,K=Math.max((h.data.interval??5)*1e3,3e3);let f=!1;for(let P=0;P<Z;P++){await new Promise(q=>setTimeout(q,K));const T=await fetch("/codex-api/skills-sync/github/complete-login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceCode:h.data.device_code})}),W=await T.json();if(!T.ok)throw new Error(W.error||"Failed to complete GitHub login");if(W.ok){f=!0;break}if(!W.pending)throw new Error(W.error||"Failed to complete GitHub login")}if(!f)throw new Error("GitHub login timed out. Please retry.");J.value=null,await m(),y.showToast("GitHub login successful")}catch(p){y.showToast(p instanceof Error?p.message:"Failed GitHub login","error")}}async function V(){try{const[p,h]=await Ea(),{getApp:Z,getApps:K,initializeApp:f}=p,{getAuth:P,GithubAuthProvider:T,signInWithPopup:W}=h,q=K().length>0?Z():f(La),le=P(q),ae=new T;ae.addScope("repo");const Q=await W(le,ae),te=T.credentialFromResult(Q),ne=(te==null?void 0:te.accessToken)??"";if(!ne)throw new Error("GitHub access token missing from Firebase login");const oe=await fetch("/codex-api/skills-sync/github/token-login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:ne})}),X=await oe.json();if(!oe.ok||!X.ok)throw new Error(X.error||"Failed to login with GitHub token");await m(),y.showToast("GitHub login successful")}catch(p){const h=p instanceof Error?p.message:"Failed Firebase GitHub login";y.showToast(h,"error")}}async function Y(){E.value="",g.value="pull-started",N.value="pull";try{const p=await fetch("/codex-api/skills-sync/pull",{method:"POST"}),h=await p.json();if(!p.ok||!h.ok)throw new Error(h.error||"Failed to pull synced skills");await y.onPulled(),g.value="pull-success",y.showToast(O.value.loggedIn?"Pulled skills from private sync repo":"Pulled skills from upstream repo")}catch(p){const h=p instanceof Error?p.message:"Failed to pull sync";E.value=h,g.value="pull-failed",y.showToast(h,"error")}finally{N.value=""}}async function w(){E.value="",g.value="push-started",N.value="push";try{const p=await fetch("/codex-api/skills-sync/push",{method:"POST"}),h=await p.json();if(!p.ok||!h.ok)throw new Error(h.error||"Failed to push synced skills");g.value="push-success",y.showToast("Pushed skills to private sync repo")}catch(p){const h=p instanceof Error?p.message:"Failed to push sync";E.value=h,g.value="push-failed",y.showToast(h,"error")}finally{N.value=""}}async function D(){E.value="",g.value="startup-sync-started",N.value="startup-sync";try{const p=await fetch("/codex-api/skills-sync/startup-sync",{method:"POST"}),h=await p.json();if(!p.ok||!h.ok)throw new Error(h.error||"Failed to run startup sync");await y.onPulled(),await m(),g.value="startup-sync-success",y.showToast("Startup sync completed")}catch(p){const h=p instanceof Error?p.message:"Failed startup sync";E.value=h,g.value="startup-sync-failed",y.showToast(h,"error")}finally{N.value=""}}async function R(){try{const p=await fetch("/codex-api/skills-sync/github/logout",{method:"POST"}),h=await p.json();if(!p.ok||!h.ok)throw new Error(h.error||"Failed to logout GitHub");await m(),y.showToast("Logged out from GitHub")}catch(p){y.showToast(p instanceof Error?p.message:"Failed to logout GitHub","error")}}return{deviceLogin:J,isPullInFlight:H,isPushInFlight:_,isStartupSyncInFlight:I,isSyncActionInFlight:x,loadSyncStatus:m,logoutGithub:R,pullSkillsSync:Y,pushSkillsSync:w,startupSkillsSync:D,startGithubFirebaseLogin:V,startGithubLogin:B,syncActionError:E,syncActionStatus:g,syncStatus:O}}const Ua={class:"skills-hub"},Na={class:"skills-hub-header"},Da={class:"skills-hub-title"},Ma={class:"skills-hub-subtitle"},Fa={class:"skills-sync-panel"},Oa={class:"skills-sync-header"},xa=["href"],Ra={key:1,class:"skills-sync-badge"},Ga={key:2,class:"skills-sync-badge"},ja={class:"skills-sync-meta"},Ha={key:0,class:"skills-sync-error"},Ba={key:1,class:"skills-sync-meta"},Ka={key:2,class:"skills-sync-error"},za={key:3,class:"skills-sync-device"},Va=["href"],Wa={class:"skills-sync-actions"},qa=["disabled"],Ja=["disabled"],Za=["disabled"],Qa=["disabled"],Ya={key:1,class:"skills-hub-section"},Xa={class:"skills-hub-section-title"},eo={key:0,class:"skills-hub-grid"},to={class:"skills-hub-section"},so={key:0,class:"skills-hub-loading"},ao={key:1,class:"skills-hub-error"},oo={key:2,class:"skills-hub-empty"},lo=Fe({__name:"SkillsHub",props:{tryInFlightKey:{}},emits:["skills-changed","try-item"],setup(y,{emit:J}){const g={name:"",owner:"",description:"",url:"",installed:!1},E=u([]),N=u(!1),O=u(""),H=u(!0),_=u(!1),I=u(g),x=u(null),m=u(""),B=u(!1),V=u(!1);let Y=null;const{t:w}=tt(),D=y,R=J,p=$(()=>{var d;return((d=x.value)==null?void 0:d.type)==="error"?"skills-hub-toast-error":"skills-hub-toast-success"}),h=$(()=>`${I.value.owner}/${I.value.name}`),Z=$(()=>B.value&&m.value===h.value),K=$(()=>V.value&&m.value===h.value),f=$(()=>{if(!U.value.configured)return"";const d=U.value.repoOwner.trim(),C=U.value.repoName.trim();return!d||!C?"":`https://github.com/${encodeURIComponent(d)}/${encodeURIComponent(C)}`}),P=$(()=>E.value);function T(d,C="success"){x.value={text:d,type:C},Y&&clearTimeout(Y),Y=setTimeout(()=>{x.value=null},3e3)}function W(d){E.value=d.installed??[]}async function q(){N.value=!0,O.value="";try{const d=await fetch("/codex-api/skills-hub");if(!d.ok)throw new Error(`HTTP ${d.status}`);const C=await d.json();W(C)}catch(d){O.value=d instanceof Error?d.message:"Failed to load skills"}finally{N.value=!1}}function le(d){I.value=d,_.value=!0}async function ae(d){m.value=`${d.owner}/${d.name}`,B.value=!0;try{const S=await(await fetch("/codex-api/skills-hub/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({owner:d.owner,name:d.name})})).json();if(!S.ok)throw new Error(S.error||"Install failed");const ee={...d,installed:!0,path:S.path,enabled:!0};E.value=[...E.value,ee],I.value=ee,T(`${d.displayName||d.name} skill installed`),_.value=!1,R("skills-changed")}catch(C){T(C instanceof Error?C.message:"Failed to install skill","error")}finally{B.value=!1}}async function Q(d){m.value=`${d.owner}/${d.name}`,V.value=!0;try{const S=await(await fetch("/codex-api/skills-hub/uninstall",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:d.name,path:d.path})})).json();if(!S.ok)throw new Error(S.error||"Uninstall failed");E.value=E.value.filter(ee=>ee.name!==d.name),T(`${d.displayName||d.name} skill uninstalled`),_.value=!1,R("skills-changed")}catch(C){T(C instanceof Error?C.message:"Failed to uninstall skill","error")}finally{V.value=!1}}async function te(d,C){try{if(!(await fetch("/codex-api/rpc",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({method:"skills/config/write",params:{path:d.path,enabled:C}})})).ok)throw new Error("Failed to update skill");await fetch("/codex-api/skills-sync/push",{method:"POST"}),T(`${d.displayName||d.name} skill ${C?"enabled":"disabled"}`),await q()}catch(S){T(S instanceof Error?S.message:"Failed to update skill","error")}}function ne(d){!d.installed||d.enabled===!1||D.tryInFlightKey||(R("try-item",{kind:"skill",name:d.name,displayName:d.displayName||d.name,skillPath:d.path}),_.value=!1)}function oe(d){return`skill:${d.name}:${d.path??""}`}const{deviceLogin:X,isPullInFlight:pe,isPushInFlight:he,isStartupSyncInFlight:me,isSyncActionInFlight:k,loadSyncStatus:L,logoutGithub:ge,pullSkillsSync:fe,pushSkillsSync:re,startupSkillsSync:b,startGithubFirebaseLogin:ce,startGithubLogin:ke,syncActionError:de,syncActionStatus:ue,syncStatus:U}=Ta({showToast:T,onPulled:async()=>{await q(),R("skills-changed")}});return xt(()=>{q(),L()}),(d,C)=>(a(),l("div",Ua,[s("div",Na,[s("h2",Da,i(r(w)("Skills Hub")),1),s("p",Ma,i(r(w)("Manage installed skills on this machine")),1)]),s("div",Fa,[s("div",Oa,[s("strong",null,i(r(w)("Skills Sync (GitHub)")),1),r(U).configured&&f.value?(a(),l("a",{key:0,class:"skills-sync-badge skills-sync-badge-link",href:f.value,target:"_blank",rel:"noopener noreferrer"},i(r(w)("Connected"))+": "+i(r(U).repoOwner)+"/"+i(r(U).repoName),9,xa)):r(U).loggedIn?(a(),l("span",Ra,i(r(w)("Logged in as"))+" "+i(r(U).githubUsername),1)):(a(),l("span",Ga,i(r(w)("Not connected")),1))]),s("div",ja,[s("span",null,i(r(w)("Startup"))+": "+i(r(U).startup.mode),1),s("span",null,i(r(w)("Branch"))+": "+i(r(U).startup.branch),1),s("span",null,i(r(w)("Action"))+": "+i(r(U).startup.lastAction),1)]),r(U).startup.lastError?(a(),l("div",Ha,i(r(U).startup.lastError),1)):c("",!0),r(ue)?(a(),l("div",Ba,[s("span",null,i(r(w)("Manual sync"))+": "+i(r(ue)),1)])):c("",!0),r(de)?(a(),l("div",Ka,i(r(de)),1)):c("",!0),r(X)?(a(),l("div",za,[s("span",null,[Me(i(r(w)("Open"))+" ",1),s("a",{href:r(X).verification_uri,target:"_blank",rel:"noreferrer"},i(r(w)("GitHub device login")),9,Va),Me(" "+i(r(w)("and enter code:")),1)]),s("code",null,i(r(X).user_code),1)])):c("",!0),s("div",Wa,[r(U).loggedIn?c("",!0):(a(),l("button",{key:0,class:"skills-hub-sort",type:"button",onClick:C[0]||(C[0]=(...S)=>r(ce)&&r(ce)(...S))},i(r(w)("Login with GitHub")),1)),r(U).loggedIn?c("",!0):(a(),l("button",{key:1,class:"skills-hub-sort",type:"button",onClick:C[1]||(C[1]=(...S)=>r(ke)&&r(ke)(...S))},i(r(w)("Device Login")),1)),r(U).loggedIn?(a(),l("button",{key:2,class:"skills-hub-sort",type:"button",onClick:C[2]||(C[2]=(...S)=>r(ge)&&r(ge)(...S)),disabled:r(k)},i(r(w)("Logout GitHub")),9,qa)):c("",!0),s("button",{class:"skills-hub-sort",type:"button",onClick:C[3]||(C[3]=(...S)=>r(b)&&r(b)(...S)),disabled:r(k)},i(r(me)?r(w)("Syncing..."):r(w)("Startup Sync")),9,Ja),s("button",{class:"skills-hub-sort",type:"button",onClick:C[4]||(C[4]=(...S)=>r(fe)&&r(fe)(...S)),disabled:r(k)},i(r(pe)?r(w)("Pulling..."):r(w)("Pull")),9,Za),r(U).loggedIn?(a(),l("button",{key:3,class:"skills-hub-sort",type:"button",onClick:C[5]||(C[5]=(...S)=>r(re)&&r(re)(...S)),disabled:!r(U).configured||r(k)},i(r(he)?r(w)("Pushing..."):r(w)("Push")),9,Qa)):c("",!0)])]),x.value?(a(),l("div",{key:0,class:M(["skills-hub-toast",p.value])},i(x.value.text),3)):c("",!0),Is(d.$slots,"before-installed",{},void 0),P.value.length>0?(a(),l("div",Ya,[s("button",{class:"skills-hub-section-toggle",type:"button",onClick:C[6]||(C[6]=S=>H.value=!H.value)},[s("span",Xa,i(r(w)("Installed skills ({count})",{count:P.value.length})),1),Ie(As,{class:M(["skills-hub-section-chevron",{"is-open":H.value}])},null,8,["class"])]),H.value?(a(),l("div",eo,[(a(!0),l(j,null,z(P.value,S=>(a(),De(la,{key:S.name,skill:S,onSelect:ee=>le(ee)},null,8,["skill","onSelect"]))),128))])):c("",!0)])):c("",!0),s("div",to,[N.value?(a(),l("div",so,i(r(w)("Loading skills...")),1)):O.value?(a(),l("div",ao,i(O.value),1)):E.value.length===0?(a(),l("div",oo,i(r(w)("No installed skills found.")),1)):c("",!0)]),Ie(Pa,{skill:I.value,visible:_.value,"is-installing":Z.value,"is-uninstalling":K.value,"is-trying":D.tryInFlightKey===oe(I.value),onClose:C[7]||(C[7]=S=>_.value=!1),onInstall:ae,onUninstall:Q,onToggleEnabled:te,onTry:ne},null,8,["skill","visible","is-installing","is-uninstalling","is-trying"])]))}}),io=Oe(lo,[["__scopeId","data-v-c1d170d0"]]),no={class:"directory-hub"},ro={class:"directory-header"},co={class:"directory-subtitle"},uo={class:"directory-header-actions"},yo=["disabled"],vo={class:"directory-tabs",role:"tablist","aria-label":"Directory sections"},po=["aria-selected","onClick"],ho={key:1,class:"directory-section"},mo={class:"directory-toolbar"},go={class:"directory-sort-group",role:"group","aria-label":"Sort plugins"},fo={key:0,class:"directory-empty"},ko={key:1,class:"directory-error"},bo={key:2,class:"directory-loading"},_o={key:3,class:"directory-empty"},Co={key:4,class:"directory-grid"},wo=["onClick"],$o={class:"directory-card-top"},So=["src","alt"],Io={class:"directory-card-main"},Ao={class:"directory-card-title-row"},Po={class:"directory-card-title"},Lo={key:0,class:"directory-badge is-muted"},Eo={key:1,class:"directory-badge"},To={class:"directory-card-meta"},Uo={key:0,class:"directory-card-description"},No={class:"directory-chip-row"},Do={key:0,class:"directory-chip"},Mo={key:2,class:"directory-section"},Fo={class:"directory-toolbar"},Oo={class:"directory-sort-group",role:"group","aria-label":"Sort apps"},xo={key:0,class:"directory-empty"},Ro={key:1,class:"directory-error"},Go={key:2,class:"directory-loading"},jo={key:3,class:"directory-empty"},Ho={key:4,class:"directory-grid"},Bo={class:"directory-card-top"},Ko=["src","alt"],zo={key:1,class:"directory-card-fallback"},Vo={class:"directory-card-main"},Wo={class:"directory-card-title-row"},qo={class:"directory-card-title"},Jo={key:0,class:"directory-badge is-muted"},Zo={key:1,class:"directory-badge"},Qo={class:"directory-card-meta"},Yo={key:0,class:"directory-card-description"},Xo={class:"directory-chip-row"},el={key:0,class:"directory-chip"},tl={class:"directory-card-actions"},sl=["disabled","onClick"],al=["onClick"],ol=["disabled","onClick"],ll={key:3,class:"directory-section"},il={class:"directory-toolbar"},nl={class:"directory-sort-group",role:"group","aria-label":"Sort Composio connectors"},rl={key:0,class:"directory-error"},cl={key:1,class:"directory-loading"},dl={key:2,class:"directory-empty"},ul={class:"directory-empty-copy"},yl={class:"directory-card-actions"},vl=["disabled"],pl={key:3,class:"directory-empty"},hl={class:"directory-empty-copy"},ml={class:"directory-card-actions"},gl=["disabled"],fl={key:4,class:"directory-section composio-section"},kl={class:"directory-card directory-card-wide composio-status-card"},bl={class:"directory-card-top"},_l={class:"directory-card-main"},Cl={class:"directory-card-meta"},wl={class:"directory-card-description"},$l={class:"directory-chip-row"},Sl={key:0,class:"directory-chip"},Il={key:1,class:"directory-chip"},Al={key:2,class:"directory-chip"},Pl={class:"directory-card-actions"},Ll={key:0,class:"directory-empty"},El={key:1,class:"directory-grid"},Tl={class:"directory-card-top"},Ul=["src","alt"],Nl={key:1,class:"directory-card-fallback composio-fallback"},Dl={class:"directory-card-main"},Ml={class:"directory-card-title-row"},Fl={class:"directory-card-title"},Ol={key:0,class:"directory-badge"},xl={key:1,class:"directory-badge"},Rl={class:"directory-card-meta"},Gl={key:0,class:"directory-card-description"},jl={class:"directory-chip-row"},Hl={class:"directory-chip"},Bl={key:0,class:"directory-chip"},Kl={key:1,class:"directory-chip"},zl={class:"directory-card-actions"},Vl=["onClick"],Wl=["disabled","onClick"],ql=["disabled","onClick"],Jl={key:2,class:"directory-section-actions"},Zl=["disabled"],Ql={key:4,class:"directory-section"},Yl={class:"skills-embedded-section"},Xl={class:"skills-embedded-title"},ei={key:0,class:"skills-embedded-body"},ti={key:0,class:"directory-empty"},si={key:1,class:"directory-error"},ai={key:2,class:"directory-loading"},oi={key:3,class:"directory-empty"},li={key:4,class:"mcp-skill-grid"},ii=["onClick"],ni={class:"mcp-skill-card-top"},ri={class:"mcp-skill-avatar-fallback"},ci={class:"mcp-skill-info"},di={class:"mcp-skill-header"},ui={class:"mcp-skill-name"},yi={class:"mcp-skill-meta"},vi={key:0,class:"directory-mcp-detail"},pi={key:0},hi={class:"directory-mini-list"},mi={key:1},gi={class:"directory-mini-list"},fi={class:"directory-modal"},ki={class:"directory-modal-header"},bi={class:"directory-card-top"},_i=["src","alt"],Ci={key:1,class:"directory-card-fallback"},wi={class:"directory-card-main"},$i={class:"directory-modal-title"},Si={class:"directory-card-meta"},Ii={class:"directory-modal-body"},Ai={key:0,class:"directory-error"},Pi={key:1,class:"directory-loading"},Li={key:0,class:"directory-detail-description"},Ei={key:1,class:"directory-detail-block"},Ti={class:"directory-chip-row"},Ui={class:"directory-detail-grid"},Ni={key:0,class:"directory-detail-block"},Di=["onClick"],Mi={key:1,class:"directory-detail-block"},Fi={class:"directory-mini-list"},Oi={key:2,class:"directory-detail-block"},xi=["disabled","onClick"],Ri={key:2,class:"directory-screenshots"},Gi=["src"],ji={key:3,class:"directory-auth-panel"},Hi=["onClick"],Bi={class:"directory-modal-footer"},Ki=["disabled"],zi=["disabled"],Vi=["disabled"],Wi=["disabled"],qi={class:"directory-modal"},Ji={class:"directory-modal-header"},Zi={class:"directory-card-top"},Qi=["src","alt"],Yi={key:1,class:"directory-card-fallback composio-fallback"},Xi={class:"directory-card-main"},en={class:"directory-modal-title"},tn={class:"directory-card-meta"},sn={class:"directory-modal-body"},an={key:0,class:"directory-error"},on={key:1,class:"directory-loading"},ln={key:0,class:"directory-detail-description"},nn={class:"directory-detail-grid"},rn={class:"directory-detail-block"},cn={class:"directory-chip-row"},dn={class:"directory-chip"},un={key:0,class:"directory-chip"},yn={key:1,class:"directory-chip"},vn={key:2,class:"directory-chip"},pn={class:"directory-detail-block"},hn={key:0,class:"directory-mini-list"},mn={key:1},gn={class:"directory-card-meta"},fn={key:1,class:"directory-detail-block"},kn={class:"directory-card-meta"},bn={class:"directory-modal-footer"},_n=["disabled"],Cn=["disabled"],wn="/Users/igor/.codex/skills/shared_skills/composio-cli/SKILL.md",$n=50,Ot=100,Sn=Fe({__name:"DirectoryHub",props:{cwd:{},threadId:{},tryInFlightKey:{}},emits:["skills-changed","try-item"],setup(y,{emit:J}){const g=[[/^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]],E=[[/(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]],N=[[/(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]],O=[[/(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]],H=[[/(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]],_=y,I=J,x=[{id:"plugins",label:"Plugins",subtitle:"Plugins make Codex work your way."},{id:"apps",label:"Apps",subtitle:"Connect Codex to external apps and services."},{id:"composio",label:"Composio",subtitle:"Browse Composio connectors, auth state, and ready-to-try integrations."},{id:"skills",label:"Skills",subtitle:"MCPs first, then installed skills and GitHub sync state."}],m=u("plugins"),B=u(new Set),V=u(!1),Y=u([]),w=u([]),D=u(null),R=u([]),p=u(null),h=u(0),Z=u([]),K=u("popular"),f=u("popular"),P=u("popular"),T=u(""),W=u(""),q=u(""),le=u(!1),ae=u(!1),Q=u(!1),te=u(!1),ne=u(!1),oe=u(!0),X=u(""),pe=u(""),he=u(""),me=u(""),k=u(null),L=u(null),ge=u(!1),fe=u(!1),re=u(""),b=u(null),ce=u(!1),ke=u(!1),de=u(""),ue=u(!1),U=u(!1),d=u(!1),C=u(""),S=u(""),ee=u([]),Ae=u(""),Pe=u(new Set),we=u(null);let xe=null,Re=null,Ge=!1;const Rt=$(()=>x.find(e=>e.id===m.value)??x[0]),st=$(()=>!V.value||["plugin/list","plugin/read","plugin/install","plugin/uninstall"].every(e=>B.value.has(e))),je=$(()=>!V.value||B.value.has("app/list")),He=$(()=>!V.value||B.value.has("mcpServerStatus/list")),Gt=$(()=>B.value.has("config/mcpServer/reload")),at=$(()=>B.value.has("mcpServer/oauth/login")),ye=$(()=>(_.tryInFlightKey??"").length>0),ot=$(()=>m.value==="plugins"?le.value:m.value==="apps"?ae.value:m.value==="composio"?Q.value:m.value==="skills"?te.value:!1),lt=$(()=>{var e,t,n;return((e=L.value)==null?void 0:e.description)||((t=L.value)==null?void 0:t.summary.longDescription)||((n=L.value)==null?void 0:n.summary.description)||""}),it=$(()=>{var t;const e=(t=L.value)==null?void 0:t.summary;return e?[...e.screenshotUrls,...e.screenshots.map(Le)].filter(Boolean):[]}),Be=$(()=>{var n;const e=((n=L.value)==null?void 0:n.apps)??[];if(e.length===0)return!1;const t=new Set;for(const v of w.value)t.add(v.id.trim().toLowerCase()),t.add(ut(v.name));return e.some(v=>{const G=v.id.trim().toLowerCase(),ie=ut(v.name),ve=G.length>0&&t.has(G),Ue=ie.length>0&&t.has(ie);return!ve&&!Ue})}),nt=$(()=>Wt(Yt(Jt(Y.value,T.value),K.value),K.value,T.value)),rt=$(()=>qt(Xt(Zt(w.value,W.value),f.value),f.value,W.value)),ct=$(()=>es(Qt(R.value,q.value),P.value)),Ke=$(()=>ts(Z.value)),dt=$(()=>p.value!==null),jt=$(()=>new Map(Z.value.map(e=>[e.name,e]))),Ht=$(()=>{const e=D.value;return e&&[e.email||e.defaultOrgName,e.defaultOrgId?`org ${e.defaultOrgId}`:"",e.baseUrl||""].filter(Boolean).join(" · ")||"Composio CLI shares the login and connections from this machine."});function ze(e){return e.trim().toLowerCase()}function Ve(e,t){const n=ze(t);return n?e.some(v=>v==null?void 0:v.toLowerCase().includes(n)):!0}function $e(e,t){return t.reduce((n,[v,G])=>n+(v.test(e)?G:0),0)}function We(e){return e.replace(/\s+\((synced|legacy)\)\s*$/iu,"").replace(/\s+\(.*?\)\s*$/u,"").trim()}function ut(e){return We(e).toLowerCase()}function Bt(e){return e==="DEFAULT_OAI_CATALOG"?"OpenAI catalog":e==="ECOSYSTEM_DIRECTORY"?"Ecosystem directory":e?e.replace(/_/gu," ").toLowerCase().replace(/\b\w/gu,t=>t.toUpperCase()):""}function Kt(e){return e.developer||Bt(e.distributionChannel)||"App"}function qe(e){var t;return((t=jt.value.get(e))==null?void 0:t.authStatus)??"unknown"}function yt(e){const t=qe(e);return t==="oAuth"?"Logged in":t==="bearerToken"?"Bearer token":t==="notLoggedIn"?"Login required":t==="unsupported"?"Auth unsupported":"Status unknown"}function zt(e){const t=qe(e);return t==="oAuth"||t==="bearerToken"?"is-ok":t==="notLoggedIn"?"is-warning":"is-muted"}function Vt(e){return e==="oAuth"||e==="bearerToken"?"mcp-skill-badge-ok":e==="notLoggedIn"?"mcp-skill-badge-warning":"mcp-skill-badge-muted"}function vt(e){return at.value&&qe(e)==="notLoggedIn"}function Wt(e,t,n){return t==="popular"&&ze(n).length===0?e.slice(0,Ot):e}function qt(e,t,n){if(t!=="popular"||ze(n).length>0)return e;const v=new Set,G=[];for(const ie of e){const ve=We(ie.name).toLowerCase();if(!v.has(ve)&&(v.add(ve),G.push(ie),G.length>=Ot))break}return G}function Jt(e,t){return e.filter(n=>Ve([n.displayName,n.name,n.description,n.developerName,n.category,n.marketplaceDisplayName,...n.capabilities],t))}function Zt(e,t){return e.filter(n=>Ve([n.name,n.description,n.developer,n.category,n.distributionChannel,...n.pluginDisplayNames],t))}function Qt(e,t){return e.filter(n=>Ve([n.name,n.slug,n.description,...n.authModes,...n.connectionStatuses],t))}function pt(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+$e(`${e.displayName} ${e.name} ${e.description} ${e.category}`,N)}function ht(e){const t=We(e.name);return(e.isAccessible?1e4:0)+$e(t,g)+(e.pluginDisplayNames.length>0?260:0)+(e.distributionChannel==="DEFAULT_OAI_CATALOG"?120:0)+(e.isEnabled?40:0)+(e.installUrl?20:0)+$e(`${e.name} ${e.description} ${e.category} ${e.pluginDisplayNames.join(" ")}`,E)-e.catalogRank*.001}function mt(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+$e(e.name,O)}function gt(e){return e.activeCount*1e3+(e.isNoAuth?300:0)+e.toolsCount*3+e.triggersCount*4+$e(`${e.name} ${e.slug} ${e.description}`,H)}function be(e){return e.activeCount>0?0:e.totalConnections>0?1:e.isNoAuth?2:3}function Yt(e,t){return t==="name"?[...e].sort((n,v)=>n.displayName.localeCompare(v.displayName)):t==="date"?[...e]:[...e].sort((n,v)=>pt(v)-pt(n)||n.displayName.localeCompare(v.displayName))}function Xt(e,t){return t==="name"?[...e].sort((n,v)=>n.name.localeCompare(v.name)):t==="date"?[...e].sort((n,v)=>n.catalogRank-v.catalogRank):[...e].sort((n,v)=>ht(v)-ht(n)||n.name.localeCompare(v.name))}function es(e,t){return t==="name"?[...e].sort((n,v)=>be(n)-be(v)||n.name.localeCompare(v.name)):t==="date"?[...e].sort((n,v)=>be(n)-be(v)):[...e].sort((n,v)=>be(n)-be(v)||gt(v)-gt(n)||n.name.localeCompare(v.name))}function ts(e,t){return[...e].sort((n,v)=>mt(v)-mt(n)||n.name.localeCompare(v.name))}function F(e,t="success"){we.value={text:e,type:t},xe&&clearTimeout(xe),xe=setTimeout(()=>{we.value=null},3e3)}function Le(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 Ee(e){return e?e.logoUrl||Le(e.logoPath)||e.composerIconUrl||Le(e.composerIconPath):""}function ft(e){return Le(e.logoUrlDark||e.logoUrl)}function kt(e){return e.activeCount>0?`${e.activeCount} connected ${e.activeCount===1?"account":"accounts"}`:e.isNoAuth?"No auth required":e.connectionStatuses.length>0?e.connectionStatuses.join(", "):e.authModes.join(", ")||"Connection required"}function ss(e){return e.isNoAuth||e.activeCount>0}function Te(e){return e.isNoAuth?"":e.activeCount>0?"Manage":e.totalConnections>0?"Reconnect":"Connect"}function as(e){const t=e.trim().toUpperCase();return t==="ACTIVE"?"Active":t==="EXPIRED"?"Expired":t==="FAILED"?"Failed":t==="INITIATED"?"Pending":t||"Unknown"}function os(e){const t=e.trim().toUpperCase();return t==="ACTIVE"?"is-ok":t==="INITIATED"?"is-warning":t==="EXPIRED"||t==="FAILED"?"is-error":"is-muted"}function ls(e){return`app:${e.id}:`}function is(e){ye.value||I("try-item",{kind:"app",name:e.id,displayName:e.name})}function ns(e){return`plugin:${e.name}:`}function bt(e){return`composio:${e}:`}function rs(e){ye.value||I("try-item",{kind:"plugin",name:e.name,displayName:e.displayName})}function _t(e){return ss(e)}function cs(e,t=[]){const n=t.find(G=>G.status==="ACTIVE"&&!G.isDisabled),v=n!=null&&n.wordId?` If there are multiple accounts, prefer \`${n.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.${v}`}function Ct(e,t=[]){ye.value||I("try-item",{kind:"composio",name:e.slug,displayName:e.name,prompt:cs(e,t),attachedSkills:[{name:"composio-cli",path:wn}]})}function se(e){const t=e.trim();/^https?:\/\//i.test(t)&&window.location.assign(t)}function ds(e){const t=e.find(n=>n.needsAuth&&n.installUrl.trim().length>0);return t?(se(t.installUrl),!0):!1}function us(e){return e.brandColor?{backgroundColor:e.brandColor,color:"#fff"}:{}}async function ys(){try{B.value=new Set(await Es())}catch{B.value=new Set}finally{V.value=!0}}async function _e(){var e;if(st.value){le.value=!0,X.value="";try{const t=(e=_.cwd)==null?void 0:e.trim();Y.value=await Ts(t?[t]:void 0)}catch(t){X.value=t instanceof Error?t.message:"Failed to load plugins"}finally{le.value=!1}}}async function Je(){var e;if(je.value){ae.value=!0,pe.value="";try{w.value=await Us(((e=_.threadId)==null?void 0:e.trim())||void 0)}catch(t){pe.value=t instanceof Error?t.message:"Failed to load apps"}finally{ae.value=!1}}}async function Ce(e=!1){if(Q.value){Ge=!0;return}Q.value=!0,he.value="";try{const t=await Ns();if(D.value=t,!t.available||!t.authenticated){R.value=[],p.value=null,h.value=0;return}const n=e?p.value:null,v=await Ds(q.value,n,$n);R.value=e?[...R.value,...v.data]:v.data,p.value=v.nextCursor,h.value=v.total}catch(t){he.value=t instanceof Error?t.message:"Failed to load Composio connectors",R.value=[],p.value=null,h.value=0}finally{Q.value=!1,Ge&&(Ge=!1,Ce())}}async function vs(){!dt.value||Q.value||await Ce(!0)}async function wt(){if(He.value){te.value=!0,me.value="";try{Z.value=await Ft()}catch(e){me.value=e instanceof Error?e.message:"Failed to load MCP servers"}finally{te.value=!1}}}async function $t(){var e;if(!(!He.value||!((e=L.value)!=null&&e.mcpServers.length)))try{Z.value=await Ft()}catch{}}function St(){m.value==="plugins"&&_e(),m.value==="apps"&&Je(),m.value==="composio"&&Ce(),m.value==="skills"&&(Gt.value?Cs():wt())}async function It(e){k.value=e,L.value=null,re.value="",ee.value=[],ge.value=!0,fe.value=!0;try{L.value=await Ms(e),k.value=L.value.summary,je.value&&w.value.length===0&&await Je(),await $t()}catch(t){re.value=t instanceof Error?t.message:"Failed to load plugin"}finally{fe.value=!1}}async function At(e){if(!at.value)return!1;Ae.value=e;try{const t=await Fs(e);return t.authorizationUrl?(se(t.authorizationUrl),!0):(F(`No login URL returned for ${e}`,"error"),!1)}catch(t){return F(t instanceof Error?t.message:`Failed to start login for ${e}`,"error"),!1}finally{Ae.value=""}}async function ps(e){await $t();const t=e.mcpServers.find(n=>vt(n));t&&await At(t)}function Ze(){ge.value=!1}async function Pt(e){ce.value=!0,ke.value=!0,de.value="",b.value=null;try{b.value=await Os(e)}catch(t){de.value=t instanceof Error?t.message:"Failed to load Composio connector"}finally{ke.value=!1}}function Lt(){ce.value=!1}async function hs(e){var t;S.value=e.slug;try{const n=await zs(e.slug);if(!n.redirectUrl){F(`No login URL returned for ${e.name}`,"error");return}se(n.redirectUrl),F(`Opened ${e.name} authorization`),await Ce(),ce.value&&((t=b.value)==null?void 0:t.connector.slug)===e.slug&&await Pt(e.slug)}catch(n){F(n instanceof Error?n.message:`Failed to connect ${e.name}`,"error")}finally{S.value=""}}async function Et(e){var t;if(e.activeCount>0&&((t=D.value)!=null&&t.webUrl)){se(D.value.webUrl);return}await hs(e)}async function ms(){U.value=!0;const e=window.open("about:blank","_blank");e&&(e.opener=null);try{const t=await xs();t.loginUrl&&e?e.location.href=t.loginUrl:t.loginUrl?se(t.loginUrl):e==null||e.close(),F("Composio CLI login started")}catch(t){e==null||e.close(),F(t instanceof Error?t.message:"Failed to start Composio login","error")}finally{U.value=!1}}async function gs(){ue.value=!0;try{await Rs(),F("Composio CLI installed"),await Ce()}catch(e){F(e instanceof Error?e.message:"Failed to install Composio CLI","error")}finally{ue.value=!1}}async function fs(){if(k.value&&!Be.value){d.value=!0;try{const e=await Gs(k.value);ee.value=e.appsNeedingAuth,F(`${k.value.displayName} plugin installed`);const t=ds(e.appsNeedingAuth);await _e();const n=Y.value.find(v=>{var G;return v.id===((G=k.value)==null?void 0:G.id)});n&&(await It(n),!t&&L.value&&await ps(L.value))}catch(e){F(e instanceof Error?e.message:"Failed to install plugin","error")}finally{d.value=!1}}}async function ks(){if(k.value){d.value=!0;try{const e=k.value.displayName;await js(k.value.id),F(`${e} plugin uninstalled`),Ze(),await _e()}catch(e){F(e instanceof Error?e.message:"Failed to uninstall plugin","error")}finally{d.value=!1}}}async function bs(){if(k.value){d.value=!0;try{const e=!k.value.enabled;await Hs(k.value.id,e),k.value={...k.value,enabled:e},L.value&&(L.value={...L.value,summary:{...L.value.summary,enabled:e}}),F(`${k.value.displayName} plugin ${e?"enabled":"disabled"}`),await _e()}catch(e){F(e instanceof Error?e.message:"Failed to update plugin","error")}finally{d.value=!1}}}async function _s(e){C.value=e.id;try{const t=!e.isEnabled;await Bs(e.id,t),w.value=w.value.map(n=>n.id===e.id?{...n,isEnabled:t}:n),F(`${e.name} app ${t?"enabled":"disabled"}`)}catch(t){F(t instanceof Error?t.message:"Failed to update app","error")}finally{C.value=""}}async function Cs(){ne.value=!0;try{await Ks(),await wt(),F("MCP servers reloaded")}catch(e){F(e instanceof Error?e.message:"Failed to reload MCP servers","error")}finally{ne.value=!1}}function ws(e){const t=new Set(Pe.value);t.has(e)?t.delete(e):t.add(e),Pe.value=t}return Se(m,()=>St()),Se(q,()=>{m.value==="composio"&&(R.value=[],p.value=null,h.value=0,Re&&clearTimeout(Re),Re=setTimeout(()=>{Ce()},250))}),Se(()=>_.cwd,()=>{m.value==="plugins"&&_e()}),Se(()=>_.threadId,()=>{m.value==="apps"&&Je()}),xt(async()=>{await ys(),await _e()}),(e,t)=>{var n,v,G,ie,ve,Ue,Tt,Ut,Nt,Dt;return a(),l("div",no,[s("div",ro,[s("div",null,[t[20]||(t[20]=s("h2",{class:"directory-title"},"Skills & Apps",-1)),s("p",co,i(Rt.value.subtitle),1)]),s("div",uo,[s("button",{class:"directory-refresh",type:"button",disabled:ot.value,onClick:St},i(ot.value?"Refreshing...":"Refresh"),9,yo)])]),s("div",vo,[(a(),l(j,null,z(x,o=>s("button",{key:o.id,class:M(["directory-tab",{"is-active":m.value===o.id}]),type:"button",role:"tab","aria-selected":m.value===o.id,onClick:A=>m.value=o.id},i(o.label),11,po)),64))]),we.value?(a(),l("div",{key:0,class:M(["directory-toast",{"is-error":we.value.type==="error"}])},i(we.value.text),3)):c("",!0),m.value==="plugins"?(a(),l("section",ho,[s("div",mo,[Qe(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>T.value=o),class:"directory-search",type:"search",placeholder:"Search plugins...","aria-label":"Search plugins"},null,512),[[Ye,T.value]]),s("div",go,[s("button",{class:M(["directory-sort-button",{"is-active":K.value==="popular"}]),type:"button",onClick:t[1]||(t[1]=o=>K.value="popular")}," Popular ",2),s("button",{class:M(["directory-sort-button",{"is-active":K.value==="name"}]),type:"button",onClick:t[2]||(t[2]=o=>K.value="name")}," A-Z ",2),s("button",{class:M(["directory-sort-button",{"is-active":K.value==="date"}]),type:"button",onClick:t[3]||(t[3]=o=>K.value="date")}," Date ",2)])]),st.value?X.value?(a(),l("div",ko,i(X.value),1)):le.value?(a(),l("div",bo,"Loading plugins...")):nt.value.length===0?(a(),l("div",_o,"No plugins found.")):(a(),l("div",Co,[(a(!0),l(j,null,z(nt.value,o=>(a(),l("button",{key:o.id,class:M(["directory-card",{"is-disabled":o.installed&&!o.enabled}]),type:"button",onClick:A=>It(o)},[s("div",$o,[Ee(o)?(a(),l("img",{key:0,class:"directory-card-icon",src:Ee(o),alt:o.displayName,loading:"lazy"},null,8,So)):(a(),l("div",{key:1,class:"directory-card-fallback",style:Ps(us(o))},i(o.displayName.charAt(0)),5)),s("div",Io,[s("div",Ao,[s("span",Po,i(o.displayName),1),o.installed&&!o.enabled?(a(),l("span",Lo,"Disabled")):o.installed?(a(),l("span",Eo,"Installed")):c("",!0)]),s("span",To,i(o.developerName||o.marketplaceDisplayName||o.marketplaceName||"Plugin"),1)])]),o.description?(a(),l("p",Uo,i(o.description),1)):c("",!0),s("div",No,[o.category?(a(),l("span",Do,i(o.category),1)):c("",!0),(a(!0),l(j,null,z(o.capabilities.slice(0,2),A=>(a(),l("span",{key:A,class:"directory-chip"},i(A),1))),128))])],10,wo))),128))])):(a(),l("div",fo," Plugin APIs unavailable in this Codex CLI. Update Codex CLI to use plugin catalog features. "))])):m.value==="apps"?(a(),l("section",Mo,[s("div",Fo,[Qe(s("input",{"onUpdate:modelValue":t[4]||(t[4]=o=>W.value=o),class:"directory-search",type:"search",placeholder:"Search apps...","aria-label":"Search apps"},null,512),[[Ye,W.value]]),s("div",Oo,[s("button",{class:M(["directory-sort-button",{"is-active":f.value==="popular"}]),type:"button",onClick:t[5]||(t[5]=o=>f.value="popular")}," Popular ",2),s("button",{class:M(["directory-sort-button",{"is-active":f.value==="name"}]),type:"button",onClick:t[6]||(t[6]=o=>f.value="name")}," A-Z ",2),s("button",{class:M(["directory-sort-button",{"is-active":f.value==="date"}]),type:"button",onClick:t[7]||(t[7]=o=>f.value="date")}," Date ",2)])]),je.value?pe.value?(a(),l("div",Ro,i(pe.value),1)):ae.value?(a(),l("div",Go,"Loading apps...")):rt.value.length===0?(a(),l("div",jo,"No apps found.")):(a(),l("div",Ho,[(a(!0),l(j,null,z(rt.value,o=>(a(),l("article",{key:o.id,class:"directory-card"},[s("div",Bo,[ft(o)?(a(),l("img",{key:0,class:"directory-card-icon",src:ft(o),alt:o.name,loading:"lazy"},null,8,Ko)):(a(),l("div",zo,i(o.name.charAt(0)),1)),s("div",Vo,[s("div",Wo,[s("span",qo,i(o.name),1),o.isEnabled?o.isAccessible?(a(),l("span",Zo,"Connected")):c("",!0):(a(),l("span",Jo,"Disabled"))]),s("span",Qo,i(Kt(o)),1)])]),o.description?(a(),l("p",Yo,i(o.description),1)):c("",!0),s("div",Xo,[o.category?(a(),l("span",el,i(o.category),1)):c("",!0),(a(!0),l(j,null,z(o.pluginDisplayNames.slice(0,2),A=>(a(),l("span",{key:A,class:"directory-chip"},i(A),1))),128))]),s("div",tl,[s("button",{class:"directory-action",type:"button",disabled:C.value===o.id,onClick:A=>_s(o)},i(o.isEnabled?"Disable":"Enable"),9,sl),o.installUrl?(a(),l("button",{key:0,class:"directory-action-link",type:"button",onClick:A=>se(o.installUrl)},i(o.isAccessible?"Manage":"Login"),9,al)):c("",!0),o.isAccessible&&o.isEnabled?(a(),l("button",{key:1,class:"directory-action",type:"button",disabled:ye.value,onClick:A=>is(o)},i(_.tryInFlightKey===ls(o)?"Starting...":"Try it!"),9,ol)):c("",!0)])]))),128))])):(a(),l("div",xo," Apps APIs unavailable in this Codex CLI. Update Codex CLI to manage apps. "))])):m.value==="composio"?(a(),l("section",ll,[s("div",il,[Qe(s("input",{"onUpdate:modelValue":t[8]||(t[8]=o=>q.value=o),class:"directory-search",type:"search",placeholder:"Search Composio connectors...","aria-label":"Search Composio connectors"},null,512),[[Ye,q.value]]),s("div",nl,[s("button",{class:M(["directory-sort-button",{"is-active":P.value==="popular"}]),type:"button",onClick:t[9]||(t[9]=o=>P.value="popular")}," Popular ",2),s("button",{class:M(["directory-sort-button",{"is-active":P.value==="name"}]),type:"button",onClick:t[10]||(t[10]=o=>P.value="name")}," A-Z ",2),s("button",{class:M(["directory-sort-button",{"is-active":P.value==="date"}]),type:"button",onClick:t[11]||(t[11]=o=>P.value="date")}," Date ",2)])]),he.value?(a(),l("div",rl,i(he.value),1)):Q.value?(a(),l("div",cl,"Loading Composio connectors...")):(n=D.value)!=null&&n.available?D.value.authenticated?(a(),l("div",fl,[s("article",kl,[s("div",bl,[t[24]||(t[24]=s("div",{class:"directory-card-fallback composio-fallback"},"C",-1)),s("div",_l,[t[23]||(t[23]=s("div",{class:"directory-card-title-row"},[s("span",{class:"directory-card-title"},"Composio workspace"),s("span",{class:"directory-badge"},"Connected")],-1)),s("span",Cl,i(D.value.email||D.value.defaultOrgName||"Authenticated"),1)])]),s("p",wl,i(Ht.value),1),s("div",$l,[D.value.defaultOrgName?(a(),l("span",Sl,i(D.value.defaultOrgName),1)):c("",!0),D.value.cliVersion?(a(),l("span",Il,"CLI "+i(D.value.cliVersion),1)):c("",!0),R.value.length?(a(),l("span",Al," Showing "+i(R.value.length)+i(h.value?` / ${h.value}`:"")+" connectors ",1)):c("",!0)]),s("div",Pl,[s("button",{class:"directory-action-link",type:"button",onClick:t[12]||(t[12]=o=>se(D.value.webUrl))}," Open dashboard ")])]),ct.value.length===0?(a(),l("div",Ll,"No Composio connectors found.")):(a(),l("div",El,[(a(!0),l(j,null,z(ct.value,o=>(a(),l("article",{key:o.slug,class:"directory-card"},[s("div",Tl,[o.logoUrl?(a(),l("img",{key:0,class:"directory-card-icon",src:o.logoUrl,alt:o.name,loading:"lazy"},null,8,Ul)):(a(),l("div",Nl,i(o.name.charAt(0)),1)),s("div",Dl,[s("div",Ml,[s("span",Fl,i(o.name),1),o.activeCount>0?(a(),l("span",Ol,"Connected")):o.isNoAuth?(a(),l("span",xl,"No auth")):c("",!0)]),s("span",Rl,i(kt(o)),1)])]),o.description?(a(),l("p",Gl,i(o.description),1)):c("",!0),s("div",jl,[s("span",Hl,i(o.toolsCount)+" tools",1),o.triggersCount>0?(a(),l("span",Bl,i(o.triggersCount)+" triggers",1)):c("",!0),o.authModes.length>0?(a(),l("span",Kl,i(o.authModes.join(", ")),1)):c("",!0)]),s("div",zl,[s("button",{class:"directory-action",type:"button",onClick:A=>Pt(o.slug)}," Details ",8,Vl),Te(o)?(a(),l("button",{key:0,class:"directory-action-link",type:"button",disabled:S.value===o.slug,onClick:A=>Et(o)},i(S.value===o.slug?"Opening...":Te(o)),9,Wl)):c("",!0),_t(o)?(a(),l("button",{key:1,class:"directory-action primary",type:"button",disabled:ye.value,onClick:A=>Ct(o)},i(_.tryInFlightKey===bt(o.slug)?"Starting...":"Try it!"),9,ql)):c("",!0)])]))),128))])),dt.value?(a(),l("div",Jl,[s("button",{class:"directory-action",type:"button",disabled:Q.value,onClick:vs},i(Q.value?"Loading...":"Load more"),9,Zl)])):c("",!0)])):(a(),l("div",pl,[s("div",hl,[t[22]||(t[22]=s("p",{class:"directory-empty-text"},"Composio CLI is installed but not logged in.",-1)),s("div",ml,[s("button",{class:"directory-action primary",type:"button",disabled:U.value,onClick:ms},i(U.value?"Opening...":"Login"),9,gl)])])])):(a(),l("div",dl,[s("div",ul,[t[21]||(t[21]=s("p",{class:"directory-empty-text"},"Composio CLI is not installed in this environment.",-1)),s("div",yl,[s("button",{class:"directory-action primary",type:"button",disabled:ue.value,onClick:gs},i(ue.value?"Installing...":"Install"),9,vl)])])]))])):m.value==="skills"?(a(),l("section",Ql,[Ie(io,{"try-in-flight-key":_.tryInFlightKey,onSkillsChanged:t[14]||(t[14]=o=>I("skills-changed")),onTryItem:t[15]||(t[15]=o=>I("try-item",o))},{"before-installed":Ls(()=>[s("div",Yl,[s("button",{class:"skills-embedded-toggle",type:"button",onClick:t[13]||(t[13]=o=>oe.value=!oe.value)},[s("span",Xl,"MCPs("+i(Ke.value.length)+")",1),s("span",{class:M(["skills-embedded-chevron",{"is-open":oe.value}])},"›",2)]),oe.value?(a(),l("div",ei,[He.value?me.value?(a(),l("div",si,i(me.value),1)):te.value?(a(),l("div",ai,"Loading MCP servers...")):Ke.value.length===0?(a(),l("div",oi,"No MCP servers configured.")):(a(),l("div",li,[(a(!0),l(j,null,z(Ke.value,o=>(a(),l("article",{key:o.name},[s("button",{class:"mcp-skill-card skill-card",type:"button",onClick:A=>ws(o.name)},[s("div",ni,[s("div",ri,i(o.name.charAt(0)),1),s("div",ci,[s("div",di,[s("span",ui,i(o.name),1),s("span",{class:M(["mcp-skill-badge",Vt(o.authStatus)])},i(yt(o.name)),3)]),t[25]||(t[25]=s("span",{class:"mcp-skill-owner"},"mcp",-1))]),s("span",{class:M(["mcp-skill-chevron",{"is-open":Pe.value.has(o.name)}])},"›",2)]),s("p",yi,i(o.tools.length)+" tools · "+i(o.resources.length+o.resourceTemplates.length)+" resources",1),Pe.value.has(o.name)?(a(),l("div",vi,[o.tools.length>0?(a(),l("div",pi,[t[26]||(t[26]=s("h3",{class:"directory-mini-heading"},"Tools",-1)),s("p",hi,i(o.tools.map(A=>A.title||A.name).join(", ")),1)])):c("",!0),o.resources.length>0||o.resourceTemplates.length>0?(a(),l("div",mi,[t[27]||(t[27]=s("h3",{class:"directory-mini-heading"},"Resources",-1)),s("p",gi,i([...o.resources.map(A=>A.title||A.name||A.uri),...o.resourceTemplates.map(A=>A.title||A.name||A.uriTemplate)].join(", ")),1)])):c("",!0)])):c("",!0)],8,ii)]))),128))])):(a(),l("div",ti," MCP status APIs unavailable in this Codex CLI. Update Codex CLI to inspect MCP servers. "))])):c("",!0)])]),_:1},8,["try-in-flight-key"])])):c("",!0),(a(),De(et,{to:"body"},[ge.value?(a(),l("div",{key:0,class:"directory-modal-overlay",onClick:Ne(Ze,["self"])},[s("article",fi,[s("div",ki,[s("div",bi,[k.value&&Ee(k.value)?(a(),l("img",{key:0,class:"directory-card-icon",src:Ee(k.value),alt:k.value.displayName,loading:"lazy"},null,8,_i)):(a(),l("div",Ci,i((v=k.value)==null?void 0:v.displayName.charAt(0)),1)),s("div",wi,[s("h3",$i,i(((G=k.value)==null?void 0:G.displayName)||"Plugin"),1),s("span",Si,i(((ie=k.value)==null?void 0:ie.developerName)||((ve=k.value)==null?void 0:ve.marketplaceDisplayName)||((Ue=k.value)==null?void 0:Ue.marketplaceName)),1)])]),s("button",{class:"directory-modal-close",type:"button","aria-label":"Close plugin detail",onClick:Ze},"Close")]),s("div",Ii,[re.value?(a(),l("div",Ai,i(re.value),1)):fe.value?(a(),l("div",Pi,"Loading plugin...")):L.value?(a(),l(j,{key:2},[lt.value?(a(),l("p",Li,i(lt.value),1)):c("",!0),L.value.summary.capabilities.length>0?(a(),l("div",Ei,[t[28]||(t[28]=s("h4",{class:"directory-detail-heading"},"Capabilities",-1)),s("div",Ti,[(a(!0),l(j,null,z(L.value.summary.capabilities,o=>(a(),l("span",{key:o,class:"directory-chip"},i(o),1))),128))])])):c("",!0),s("div",Ui,[L.value.apps.length>0?(a(),l("div",Ni,[t[29]||(t[29]=s("h4",{class:"directory-detail-heading"},"Apps",-1)),(a(!0),l(j,null,z(L.value.apps,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=>se(o.installUrl)},i(o.needsAuth?"Login":"Manage"),9,Di)):c("",!0)]))),128))])):c("",!0),L.value.skills.length>0?(a(),l("div",Mi,[t[30]||(t[30]=s("h4",{class:"directory-detail-heading"},"Skills",-1)),s("p",Fi,i(L.value.skills.map(o=>o.displayName||o.name).join(", ")),1)])):c("",!0),L.value.mcpServers.length>0?(a(),l("div",Oi,[t[31]||(t[31]=s("h4",{class:"directory-detail-heading"},"MCP servers",-1)),(a(!0),l(j,null,z(L.value.mcpServers,o=>(a(),l("div",{key:o,class:"directory-include-row"},[s("span",null,[Me(i(o)+" ",1),s("span",{class:M(["directory-auth-status",zt(o)])},i(yt(o)),3)]),vt(o)?(a(),l("button",{key:0,type:"button",disabled:Ae.value===o,onClick:A=>At(o)},i(Ae.value===o?"Opening...":"Authenticate"),9,xi)):c("",!0)]))),128))])):c("",!0)]),it.value.length>0?(a(),l("div",Ri,[(a(!0),l(j,null,z(it.value,o=>(a(),l("img",{key:o,src:o,alt:"",loading:"lazy"},null,8,Gi))),128))])):c("",!0),ee.value.length>0?(a(),l("div",ji,[t[32]||(t[32]=s("strong",null,"Apps needing auth",-1)),(a(!0),l(j,null,z(ee.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=>se(o.installUrl)},"Login",8,Hi)):c("",!0)]))),128))])):c("",!0)],64)):c("",!0)]),s("div",Bi,[k.value&&k.value.installed?(a(),l("button",{key:0,class:"directory-action danger",type:"button",disabled:d.value,onClick:ks},i(d.value?"Uninstalling...":"Uninstall"),9,Ki)):k.value?(a(),l("button",{key:1,class:"directory-action primary",type:"button",disabled:d.value||k.value.installPolicy==="NOT_AVAILABLE"||Be.value,onClick:fs},i(Be.value?"ChatGPT Plus":d.value?"Installing...":"Install"),9,zi)):c("",!0),k.value&&k.value.installed?(a(),l("button",{key:2,class:"directory-action",type:"button",disabled:d.value,onClick:bs},i(k.value.enabled?"Disable":"Enable"),9,Vi)):c("",!0),k.value&&k.value.installed&&k.value.enabled?(a(),l("button",{key:3,class:"directory-action primary",type:"button",disabled:d.value||ye.value,onClick:t[16]||(t[16]=o=>rs(k.value))},i(_.tryInFlightKey===ns(k.value)?"Starting...":"Try it!"),9,Wi)):c("",!0)])])])):c("",!0)])),(a(),De(et,{to:"body"},[ce.value?(a(),l("div",{key:0,class:"directory-modal-overlay",onClick:Ne(Lt,["self"])},[s("article",qi,[s("div",Ji,[s("div",Zi,[(Tt=b.value)!=null&&Tt.connector.logoUrl?(a(),l("img",{key:0,class:"directory-card-icon",src:b.value.connector.logoUrl,alt:b.value.connector.name,loading:"lazy"},null,8,Qi)):(a(),l("div",Yi,i((Ut=b.value)==null?void 0:Ut.connector.name.charAt(0)),1)),s("div",Xi,[s("h3",en,i(((Nt=b.value)==null?void 0:Nt.connector.name)||"Composio"),1),s("span",tn,i(b.value?kt(b.value.connector):"Connector"),1)])]),s("button",{class:"directory-modal-close",type:"button","aria-label":"Close Composio detail",onClick:Lt},"Close")]),s("div",sn,[de.value?(a(),l("div",an,i(de.value),1)):ke.value?(a(),l("div",on,"Loading connector...")):b.value?(a(),l(j,{key:2},[b.value.connector.description?(a(),l("p",ln,i(b.value.connector.description),1)):c("",!0),s("div",nn,[s("div",rn,[t[33]||(t[33]=s("h4",{class:"directory-detail-heading"},"Overview",-1)),s("div",cn,[s("span",dn,i(b.value.connector.toolsCount)+" tools",1),b.value.connector.triggersCount>0?(a(),l("span",un,i(b.value.connector.triggersCount)+" triggers",1)):c("",!0),b.value.connector.latestVersion?(a(),l("span",yn,"v"+i(b.value.connector.latestVersion),1)):c("",!0),b.value.connector.authModes.length>0?(a(),l("span",vn,i(b.value.connector.authModes.join(", ")),1)):c("",!0)])]),s("div",pn,[t[34]||(t[34]=s("h4",{class:"directory-detail-heading"},"Connections",-1)),b.value.connections.length===0?(a(),l("div",hn," No linked accounts yet. ")):(a(),l("div",mn,[(a(!0),l(j,null,z(b.value.connections,o=>(a(),l("div",{key:o.id,class:"directory-include-row"},[s("span",null,[Me(i(o.alias||o.wordId||o.id)+" ",1),s("span",{class:M(["directory-auth-status",os(o.status)])},i(as(o.status)),3)]),s("span",gn,i(o.authScheme||"Auth"),1)]))),128))]))])]),b.value.tools.length>0?(a(),l("div",fn,[t[35]||(t[35]=s("h4",{class:"directory-detail-heading"},"Useful tools",-1)),(a(!0),l(j,null,z(b.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",kn,i(o.slug),1)]))),128))])):c("",!0)],64)):c("",!0)]),s("div",bn,[b.value?(a(),l("button",{key:0,class:"directory-action-link",type:"button",onClick:t[17]||(t[17]=o=>se(b.value.dashboardUrl))}," Open dashboard ")):c("",!0),b.value&&Te(b.value.connector)?(a(),l("button",{key:1,class:"directory-action",type:"button",disabled:S.value===b.value.connector.slug,onClick:t[18]||(t[18]=o=>Et(b.value.connector))},i(S.value===((Dt=b.value)==null?void 0:Dt.connector.slug)?"Opening...":Te(b.value.connector)),9,_n)):c("",!0),b.value&&_t(b.value.connector)?(a(),l("button",{key:2,class:"directory-action primary",type:"button",disabled:ye.value,onClick:t[19]||(t[19]=o=>Ct(b.value.connector,b.value.connections))},i(_.tryInFlightKey===bt(b.value.connector.slug)?"Starting...":"Try it!"),9,Cn)):c("",!0)])])])):c("",!0)]))])}}}),An=Oe(Sn,[["__scopeId","data-v-73b78445"]]);export{An as default};
@@ -1 +0,0 @@
1
- @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-b276a846],[data-v-b276a846]:before,[data-v-b276a846]:after,[data-v-b276a846]::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-font-weight:initial;--tw-leading:initial}}}.skill-card[data-v-b276a846]{cursor:pointer;gap:calc(var(--spacing,.25rem) * 1.5);border-radius:var(--radius-xl,.75rem);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:calc(var(--spacing,.25rem) * 3);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));flex-direction:column;display:flex}@media(hover:hover){.skill-card[data-v-b276a846]:hover{border-color:var(--color-zinc-300,oklch(87.1% .006 286.286));--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)}}.skill-card.is-disabled[data-v-b276a846]{opacity:.5}.skill-card-top[data-v-b276a846]{align-items:flex-start;gap:calc(var(--spacing,.25rem) * 2.5);display:flex}.skill-card-avatar[data-v-b276a846]{height:calc(var(--spacing,.25rem) * 8);width:calc(var(--spacing,.25rem) * 8);background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));border-radius:3.40282e38px;flex-shrink:0}.skill-card-avatar-fallback[data-v-b276a846]{height:calc(var(--spacing,.25rem) * 8);width:calc(var(--spacing,.25rem) * 8);background-color:var(--color-zinc-200,oklch(92% .004 286.32));font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-500,oklch(55.2% .016 285.938));text-transform:uppercase;border-radius:3.40282e38px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.skill-card-info[data-v-b276a846]{min-width:calc(var(--spacing,.25rem) * 0);gap:calc(var(--spacing,.25rem) * .5);flex-direction:column;flex:1;display:flex}.skill-card-header[data-v-b276a846]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.skill-card-name[data-v-b276a846]{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-900,oklch(21% .006 285.885));overflow:hidden}.skill-card-badge[data-v-b276a846]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-emerald-200,oklch(90.5% .093 164.15));background-color:var(--color-emerald-50,oklch(97.9% .021 166.113));padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .5);--tw-leading:1;--tw-font-weight:var(--font-weight-medium,500);font-size:10px;line-height:1;font-weight:var(--font-weight-medium,500);color:var(--color-emerald-700,oklch(50.8% .118 165.612));flex-shrink:0}.skill-card-badge-disabled[data-v-b276a846]{border-radius:var(--radius-md,.375rem);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-100,oklch(96.7% .001 286.375));padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .5);--tw-leading:1;--tw-font-weight:var(--font-weight-medium,500);font-size:10px;line-height:1;font-weight:var(--font-weight-medium,500);color:var(--color-zinc-500,oklch(55.2% .016 285.938));flex-shrink:0}.skill-card-owner[data-v-b276a846]{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.skill-card-browse[data-v-b276a846]{height:calc(var(--spacing,.25rem) * 7);width:calc(var(--spacing,.25rem) * 7);border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);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,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));background-color:#0000;border-width:0;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;display:flex}@media(hover:hover){.skill-card-browse[data-v-b276a846]:hover{background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));color:var(--color-zinc-600,oklch(44.2% .017 285.786))}}.skill-card-browse-icon[data-v-b276a846]{height:calc(var(--spacing,.25rem) * 4);width:calc(var(--spacing,.25rem) * 4)}.skill-card-desc[data-v-b276a846]{margin:calc(var(--spacing,.25rem) * 0);-webkit-line-clamp:2;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-500,oklch(55.2% .016 285.938));-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.skill-card-date[data-v-b276a846]{color:var(--color-zinc-300,oklch(87.1% .006 286.286));font-size:10px}@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-8fb16c1e],[data-v-8fb16c1e]:before,[data-v-8fb16c1e]:after,[data-v-8fb16c1e]::backdrop{--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-font-weight:initial;--tw-border-style:solid;--tw-leading:initial}}}.sdm-overlay[data-v-8fb16c1e]{inset:calc(var(--spacing,.25rem) * 0);z-index:50;background-color:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed}@supports (color:color-mix(in lab,red,red)){.sdm-overlay[data-v-8fb16c1e]{background-color:color-mix(in oklab,var(--color-black,#000) 40%,transparent)}}@media(min-width:40rem){.sdm-overlay[data-v-8fb16c1e]{align-items:center}}.sdm-panel[data-v-8fb16c1e]{width:100%;max-height:90vh;max-width:var(--container-lg,32rem);border-top-left-radius:var(--radius-2xl,1rem);border-top-right-radius:var(--radius-2xl,1rem);background-color:var(--color-white,#fff);--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px 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);flex-direction:column;display:flex;overflow:hidden}@media(min-width:40rem){.sdm-panel[data-v-8fb16c1e]{border-radius:var(--radius-2xl,1rem);max-height:80vh}}.sdm-header[data-v-8fb16c1e]{justify-content:space-between;align-items:flex-start;gap:calc(var(--spacing,.25rem) * 3);padding:calc(var(--spacing,.25rem) * 4);padding-bottom:calc(var(--spacing,.25rem) * 3);flex-shrink:0;display:flex}@media(min-width:40rem){.sdm-header[data-v-8fb16c1e]{padding:calc(var(--spacing,.25rem) * 5)}}.sdm-title-area[data-v-8fb16c1e]{min-width:calc(var(--spacing,.25rem) * 0);align-items:center;gap:calc(var(--spacing,.25rem) * 3);display:flex}.sdm-avatar[data-v-8fb16c1e]{height:calc(var(--spacing,.25rem) * 10);width:calc(var(--spacing,.25rem) * 10);background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));border-radius:3.40282e38px;flex-shrink:0}.sdm-title-col[data-v-8fb16c1e]{min-width:calc(var(--spacing,.25rem) * 0);gap:calc(var(--spacing,.25rem) * .5);flex-direction:column;display:flex}.sdm-title-row[data-v-8fb16c1e]{min-width:calc(var(--spacing,.25rem) * 0);align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.sdm-title[data-v-8fb16c1e]{margin:calc(var(--spacing,.25rem) * 0);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-900,oklch(21% .006 285.885));overflow:hidden}.sdm-badge-disabled[data-v-8fb16c1e]{border-radius:var(--radius-md,.375rem);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-100,oklch(96.7% .001 286.375));padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .5);--tw-leading:1;--tw-font-weight:var(--font-weight-medium,500);font-size:10px;line-height:1;font-weight:var(--font-weight-medium,500);color:var(--color-zinc-500,oklch(55.2% .016 285.938));flex-shrink:0}.sdm-owner[data-v-8fb16c1e]{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.sdm-close[data-v-8fb16c1e]{height:calc(var(--spacing,.25rem) * 7);width:calc(var(--spacing,.25rem) * 7);border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);color:var(--color-zinc-400,oklch(70.5% .015 286.067));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));background-color:#0000;border-width:0;flex-shrink:0;justify-content:center;align-items:center;display:flex}@media(hover:hover){.sdm-close[data-v-8fb16c1e]:hover{background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));color:var(--color-zinc-700,oklch(37% .013 285.805))}}.sdm-close-icon[data-v-8fb16c1e]{height:calc(var(--spacing,.25rem) * 4);width:calc(var(--spacing,.25rem) * 4)}.sdm-body[data-v-8fb16c1e]{min-height:calc(var(--spacing,.25rem) * 0);gap:calc(var(--spacing,.25rem) * 3);padding:calc(var(--spacing,.25rem) * 4);padding-top:calc(var(--spacing,.25rem) * 0);flex-direction:column;flex:1;display:flex;overflow-y:auto}@media(min-width:40rem){.sdm-body[data-v-8fb16c1e]{padding:calc(var(--spacing,.25rem) * 5)}}.sdm-desc[data-v-8fb16c1e]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);color:var(--color-zinc-600,oklch(44.2% .017 285.786))}.sdm-readme-loading[data-v-8fb16c1e]{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.sdm-readme[data-v-8fb16c1e]{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding-top:calc(var(--spacing,.25rem) * 3);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);color:var(--color-zinc-700,oklch(37% .013 285.805))}.sdm-readme[data-v-8fb16c1e] h2{margin-top:calc(var(--spacing,.25rem) * 3);margin-bottom:calc(var(--spacing,.25rem) * 1);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-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-800,oklch(27.4% .006 286.033))}.sdm-readme[data-v-8fb16c1e] h3{margin-top:calc(var(--spacing,.25rem) * 2);margin-bottom:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-700,oklch(37% .013 285.805))}.sdm-readme[data-v-8fb16c1e] h4{margin-top:calc(var(--spacing,.25rem) * 2);margin-bottom:calc(var(--spacing,.25rem) * .5);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-600,oklch(44.2% .017 285.786))}.sdm-readme[data-v-8fb16c1e] code{background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding-inline:calc(var(--spacing,.25rem) * 1);padding-block:calc(var(--spacing,.25rem) * .5);font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);border-radius:.25rem;font-size:11px}.sdm-readme[data-v-8fb16c1e] ul{margin:calc(var(--spacing,.25rem) * 0);padding-left:calc(var(--spacing,.25rem) * 4);list-style-type:disc}.sdm-readme[data-v-8fb16c1e] li{margin-bottom:calc(var(--spacing,.25rem) * .5)}.sdm-readme[data-v-8fb16c1e] strong{--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}.sdm-link[data-v-8fb16c1e]{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-blue-600,oklch(54.6% .245 262.881));flex-shrink:0;text-decoration-line:none}@media(hover:hover){.sdm-link[data-v-8fb16c1e]:hover{color:var(--color-blue-700,oklch(48.8% .243 264.376));text-decoration-line:underline}}.sdm-footer[data-v-8fb16c1e]{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding:calc(var(--spacing,.25rem) * 4);padding-top:calc(var(--spacing,.25rem) * 3);flex-shrink:0}@media(min-width:40rem){.sdm-footer[data-v-8fb16c1e]{padding:calc(var(--spacing,.25rem) * 5)}}.sdm-footer-actions[data-v-8fb16c1e]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.sdm-btn[data-v-8fb16c1e]{border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 1.5);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);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:0}.sdm-btn[data-v-8fb16c1e]:disabled{cursor:not-allowed;opacity:.5}.sdm-btn-primary[data-v-8fb16c1e]{background-color:var(--color-zinc-900,oklch(21% .006 285.885));color:var(--color-white,#fff)}@media(hover:hover){.sdm-btn-primary[data-v-8fb16c1e]:hover{background-color:var(--color-black,#000)}}.sdm-btn-danger[data-v-8fb16c1e]{background-color:var(--color-rose-600,oklch(58.6% .253 17.585));color:var(--color-white,#fff)}@media(hover:hover){.sdm-btn-danger[data-v-8fb16c1e]:hover{background-color:var(--color-rose-700,oklch(51.4% .222 16.935))}}.sdm-btn-secondary[data-v-8fb16c1e]{background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));color:var(--color-zinc-700,oklch(37% .013 285.805))}@media(hover:hover){.sdm-btn-secondary[data-v-8fb16c1e]:hover{background-color:var(--color-zinc-200,oklch(92% .004 286.32))}}@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-c1d170d0],[data-v-c1d170d0]:before,[data-v-c1d170d0]:after,[data-v-c1d170d0]::backdrop{--tw-font-weight:initial;--tw-border-style:solid}}}.skills-hub[data-v-c1d170d0]{width:100%;height:100%;max-width:var(--container-4xl,56rem);gap:calc(var(--spacing,.25rem) * 3);padding:calc(var(--spacing,.25rem) * 3);flex-direction:column;margin-inline:auto;display:flex;overflow-y:auto}@media(min-width:40rem){.skills-hub[data-v-c1d170d0]{gap:calc(var(--spacing,.25rem) * 4);padding:calc(var(--spacing,.25rem) * 6)}}.skills-hub-header[data-v-c1d170d0]{gap:calc(var(--spacing,.25rem) * 1);flex-direction:column;display:flex}.skills-hub-title[data-v-c1d170d0]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-900,oklch(21% .006 285.885))}@media(min-width:40rem){.skills-hub-title[data-v-c1d170d0]{font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,calc(2 / 1.5)))}}.skills-hub-subtitle[data-v-c1d170d0]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.skills-hub-sort[data-v-c1d170d0]{cursor:pointer;border-radius:var(--radius-lg,.5rem);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.5);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);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));flex-shrink:0}@media(hover:hover){.skills-hub-sort[data-v-c1d170d0]:hover{border-color:var(--color-zinc-300,oklch(87.1% .006 286.286));background-color:var(--color-zinc-50,oklch(98.5% 0 0))}}.skills-sync-panel[data-v-c1d170d0]{gap:calc(var(--spacing,.25rem) * 2);border-radius:var(--radius-xl,.75rem);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-50,oklch(98.5% 0 0));padding:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex}.skills-sync-header[data-v-c1d170d0]{align-items:center;gap: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-zinc-700,oklch(37% .013 285.805));flex-wrap:wrap;display:flex}.skills-sync-badge[data-v-c1d170d0]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-300,oklch(87.1% .006 286.286));background-color:var(--color-white,#fff);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * .5);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}.skills-sync-badge-link[data-v-c1d170d0]{color:var(--color-zinc-700,oklch(37% .013 285.805))}@media(hover:hover){.skills-sync-badge-link[data-v-c1d170d0]:hover{border-color:var(--color-zinc-400,oklch(70.5% .015 286.067));color:var(--color-zinc-900,oklch(21% .006 285.885))}}.skills-sync-device[data-v-c1d170d0]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-600,oklch(44.2% .017 285.786));flex-wrap:wrap;display:flex}.skills-sync-meta[data-v-c1d170d0]{align-items:center;gap: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-600,oklch(44.2% .017 285.786));flex-wrap:wrap;display:flex}.skills-sync-error[data-v-c1d170d0]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-rose-200,oklch(89.2% .058 10.001));background-color:var(--color-rose-50,oklch(96.9% .015 12.422));padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-rose-700,oklch(51.4% .222 16.935))}.skills-sync-actions[data-v-c1d170d0]{gap:calc(var(--spacing,.25rem) * 2);flex-wrap:wrap;display:flex}.skills-hub-toast[data-v-c1d170d0]{border-radius:var(--radius-lg,.5rem);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)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}.skills-hub-toast-success[data-v-c1d170d0]{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-emerald-200,oklch(90.5% .093 164.15));background-color:var(--color-emerald-50,oklch(97.9% .021 166.113));color:var(--color-emerald-700,oklch(50.8% .118 165.612))}.skills-hub-toast-error[data-v-c1d170d0]{border-style:var(--tw-border-style);border-width:1px;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))}.skills-hub-section[data-v-c1d170d0]{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}.skills-hub-section-toggle[data-v-c1d170d0]{cursor:pointer;align-items:center;gap:calc(var(--spacing,.25rem) * 1.5);border-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 0);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-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));background-color:#0000;border-width:0;display:flex}@media(hover:hover){.skills-hub-section-toggle[data-v-c1d170d0]:hover{color:var(--color-zinc-900,oklch(21% .006 285.885))}}.skills-hub-section-title[data-v-c1d170d0]{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)}.skills-hub-section-chevron[data-v-c1d170d0]{height:calc(var(--spacing,.25rem) * 3.5);width:calc(var(--spacing,.25rem) * 3.5);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))}.skills-hub-section-chevron.is-open[data-v-c1d170d0]{rotate:90deg}.skills-hub-grid[data-v-c1d170d0]{gap:calc(var(--spacing,.25rem) * 3);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media(min-width:40rem){.skills-hub-grid[data-v-c1d170d0]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.skills-hub-grid[data-v-c1d170d0]{grid-template-columns:repeat(3,minmax(0,1fr))}}.skills-hub-loading[data-v-c1d170d0]{padding-block:calc(var(--spacing,.25rem) * 8);text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.skills-hub-error[data-v-c1d170d0]{border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-rose-200,oklch(89.2% .058 10.001));background-color:var(--color-rose-50,oklch(96.9% .015 12.422));padding-block:calc(var(--spacing,.25rem) * 4);text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-rose-600,oklch(58.6% .253 17.585))}.skills-hub-empty[data-v-c1d170d0]{padding-block:calc(var(--spacing,.25rem) * 8);text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-zinc-400,oklch(70.5% .015 286.067))}/*! tailwindcss v4.2.4 | 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-73b78445],[data-v-73b78445]:before,[data-v-73b78445]:after,[data-v-73b78445]::backdrop{--tw-font-weight:initial;--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-leading:initial}}}.directory-hub[data-v-73b78445]{gap:calc(var(--spacing,.25rem) * 3);width:100%;height:100%;padding:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex;overflow-y:auto}@media(min-width:40rem){.directory-hub[data-v-73b78445]{padding:calc(var(--spacing,.25rem) * 6)}}.directory-header[data-v-73b78445]{width:100%;max-width:var(--container-5xl,64rem);justify-content:space-between;align-items:flex-start;gap:calc(var(--spacing,.25rem) * 3);margin-inline:auto;display:flex}.directory-header-actions[data-v-73b78445]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.directory-title[data-v-73b78445]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-900,oklch(21% .006 285.885))}@media(min-width:40rem){.directory-title[data-v-73b78445]{font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,calc(2 / 1.5)))}}.directory-subtitle[data-v-73b78445]{margin:calc(var(--spacing,.25rem) * 0);margin-top:calc(var(--spacing,.25rem) * 1);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))}.directory-refresh[data-v-73b78445],.directory-action[data-v-73b78445],.directory-action-link[data-v-73b78445],.directory-modal-close[data-v-73b78445]{border-radius:var(--radius-lg,.5rem);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) * 3);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)));--tw-font-weight:var(--font-weight-medium,500);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));flex-shrink:0;text-decoration-line:none}@media(hover:hover){:is(.directory-refresh[data-v-73b78445],.directory-action[data-v-73b78445],.directory-action-link[data-v-73b78445],.directory-modal-close[data-v-73b78445]):hover{border-color:var(--color-zinc-300,oklch(87.1% .006 286.286));background-color:var(--color-zinc-50,oklch(98.5% 0 0))}}:is(.directory-refresh[data-v-73b78445],.directory-action[data-v-73b78445],.directory-action-link[data-v-73b78445],.directory-modal-close[data-v-73b78445]):disabled{cursor:not-allowed;opacity:.5}.directory-action.primary[data-v-73b78445]{border-color:var(--color-zinc-900,oklch(21% .006 285.885));background-color:var(--color-zinc-900,oklch(21% .006 285.885));color:var(--color-white,#fff)}@media(hover:hover){.directory-action.primary[data-v-73b78445]:hover{background-color:var(--color-black,#000)}}.directory-action.danger[data-v-73b78445]{border-color:var(--color-rose-600,oklch(58.6% .253 17.585));background-color:var(--color-rose-600,oklch(58.6% .253 17.585));color:var(--color-white,#fff)}@media(hover:hover){.directory-action.danger[data-v-73b78445]:hover{background-color:var(--color-rose-700,oklch(51.4% .222 16.935))}}.directory-tabs[data-v-73b78445]{width:100%;max-width:var(--container-5xl,64rem);border-radius:var(--radius-lg,.5rem);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-100,oklch(96.7% .001 286.375));padding:calc(var(--spacing,.25rem) * 1);grid-template-columns:repeat(4,minmax(0,1fr));margin-inline:auto;display:grid}.directory-tab[data-v-73b78445]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1.5);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-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,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));background-color:#0000;border-width:0}@media(hover:hover){.directory-tab[data-v-73b78445]:hover{color:var(--color-zinc-800,oklch(27.4% .006 286.033))}}.directory-tab.is-active[data-v-73b78445]{background-color:var(--color-white,#fff);color:var(--color-zinc-900,oklch(21% .006 285.885));--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)}.directory-section[data-v-73b78445]{width:100%;max-width:var(--container-5xl,64rem);gap:calc(var(--spacing,.25rem) * 3);flex-direction:column;margin-inline:auto;display:flex}.directory-section-group[data-v-73b78445]{gap:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex}.skills-embedded-section[data-v-73b78445]{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}.skills-embedded-toggle[data-v-73b78445]{cursor:pointer;align-items:center;gap:calc(var(--spacing,.25rem) * 1.5);border-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 0);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-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));background-color:#0000;border-width:0;display:flex}@media(hover:hover){.skills-embedded-toggle[data-v-73b78445]:hover{color:var(--color-zinc-900,oklch(21% .006 285.885))}}.skills-embedded-title[data-v-73b78445]{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)}.skills-embedded-chevron[data-v-73b78445]{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-leading:1;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));line-height:1;display:inline-block}.skills-embedded-chevron.is-open[data-v-73b78445]{rotate:90deg}.skills-embedded-body[data-v-73b78445]{gap:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex}.mcp-skill-grid[data-v-73b78445]{gap:calc(var(--spacing,.25rem) * 3);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media(min-width:48rem){.mcp-skill-grid[data-v-73b78445]{grid-template-columns:repeat(2,minmax(0,1fr))}}.mcp-skill-card[data-v-73b78445]{cursor:pointer;gap:calc(var(--spacing,.25rem) * 1.5);border-radius:var(--radius-xl,.75rem);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);width:100%;padding:calc(var(--spacing,.25rem) * 3);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));flex-direction:column;display:flex}@media(hover:hover){.mcp-skill-card[data-v-73b78445]:hover{border-color:var(--color-zinc-300,oklch(87.1% .006 286.286));--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)}}.mcp-skill-card-top[data-v-73b78445]{align-items:flex-start;gap:calc(var(--spacing,.25rem) * 2.5);display:flex}.mcp-skill-avatar-fallback[data-v-73b78445]{height:calc(var(--spacing,.25rem) * 8);width:calc(var(--spacing,.25rem) * 8);background-color:var(--color-zinc-200,oklch(92% .004 286.32));font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-500,oklch(55.2% .016 285.938));text-transform:uppercase;border-radius:3.40282e38px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.mcp-skill-info[data-v-73b78445]{min-width:calc(var(--spacing,.25rem) * 0);gap:calc(var(--spacing,.25rem) * .5);flex-direction:column;flex:1;display:flex}.mcp-skill-header[data-v-73b78445]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.mcp-skill-name[data-v-73b78445]{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-900,oklch(21% .006 285.885));overflow:hidden}.mcp-skill-owner[data-v-73b78445]{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.mcp-skill-meta[data-v-73b78445]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.mcp-skill-chevron[data-v-73b78445]{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-leading:1;color:var(--color-zinc-400,oklch(70.5% .015 286.067));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));line-height:1;display:inline-block}.mcp-skill-chevron.is-open[data-v-73b78445]{rotate:90deg}.mcp-skill-badge[data-v-73b78445]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .5);--tw-leading:1;--tw-font-weight:var(--font-weight-medium,500);font-size:10px;line-height:1;font-weight:var(--font-weight-medium,500);border-width:1px;flex-shrink:0}.mcp-skill-badge-ok[data-v-73b78445]{border-color:var(--color-emerald-200,oklch(90.5% .093 164.15));background-color:var(--color-emerald-50,oklch(97.9% .021 166.113));color:var(--color-emerald-700,oklch(50.8% .118 165.612))}.mcp-skill-badge-warning[data-v-73b78445]{border-color:var(--color-amber-200,oklch(92.4% .12 95.746));background-color:var(--color-amber-50,oklch(98.7% .022 95.277));color:var(--color-amber-700,oklch(55.5% .163 48.998))}.mcp-skill-badge-muted[data-v-73b78445]{border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.directory-section-actions[data-v-73b78445]{justify-content:flex-end;display:flex}.directory-toolbar[data-v-73b78445]{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}@media(min-width:40rem){.directory-toolbar[data-v-73b78445]{flex-direction:row;justify-content:space-between;align-items:center}}.directory-search[data-v-73b78445]{min-width:calc(var(--spacing,.25rem) * 0);border-radius:var(--radius-lg,.5rem);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) * 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-zinc-800,oklch(27.4% .006 286.033));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));--tw-outline-style:none;outline-style:none;flex:1}.directory-search[data-v-73b78445]::placeholder{color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.directory-search[data-v-73b78445]:focus{border-color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.directory-sort-group[data-v-73b78445]{border-radius:var(--radius-lg,.5rem);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-100,oklch(96.7% .001 286.375));padding:calc(var(--spacing,.25rem) * 1);display:inline-flex}.directory-sort-button[data-v-73b78445]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);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,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));background-color:#0000;border-width:0}@media(hover:hover){.directory-sort-button[data-v-73b78445]:hover{color:var(--color-zinc-800,oklch(27.4% .006 286.033))}}.directory-sort-button.is-active[data-v-73b78445]{background-color:var(--color-white,#fff);color:var(--color-zinc-900,oklch(21% .006 285.885));--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)}.directory-grid[data-v-73b78445]{gap:calc(var(--spacing,.25rem) * 3);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media(min-width:48rem){.directory-grid[data-v-73b78445]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:80rem){.directory-grid[data-v-73b78445]{grid-template-columns:repeat(3,minmax(0,1fr))}}.directory-list[data-v-73b78445]{gap:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex}.directory-card[data-v-73b78445]{min-height:calc(var(--spacing,.25rem) * 36);gap:calc(var(--spacing,.25rem) * 2);border-radius:var(--radius-xl,.75rem);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:calc(var(--spacing,.25rem) * 3);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));flex-direction:column;display:flex}@media(hover:hover){.directory-card[data-v-73b78445]:hover{border-color:var(--color-zinc-300,oklch(87.1% .006 286.286));--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)}}button.directory-card[data-v-73b78445]{cursor:pointer}.directory-card.is-disabled[data-v-73b78445]{opacity:.6}.directory-card-wide[data-v-73b78445]{min-height:calc(var(--spacing,.25rem) * 0)}.directory-card-top[data-v-73b78445]{min-width:calc(var(--spacing,.25rem) * 0);align-items:flex-start;gap:calc(var(--spacing,.25rem) * 3);display:flex}.directory-card-icon[data-v-73b78445],.directory-card-fallback[data-v-73b78445]{height:calc(var(--spacing,.25rem) * 10);width:calc(var(--spacing,.25rem) * 10);border-radius:var(--radius-xl,.75rem);background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));object-fit:cover;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-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-500,oklch(55.2% .016 285.938));text-transform:uppercase;flex-shrink:0;justify-content:center;align-items:center;display:flex}.directory-card-main[data-v-73b78445]{min-width:calc(var(--spacing,.25rem) * 0);flex:1}.directory-card-title-row[data-v-73b78445]{min-width:calc(var(--spacing,.25rem) * 0);align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.directory-card-title[data-v-73b78445]{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-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-900,oklch(21% .006 285.885));overflow:hidden}.directory-card-meta[data-v-73b78445]{margin-top:calc(var(--spacing,.25rem) * .5);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-400,oklch(70.5% .015 286.067));display:block;overflow:hidden}.directory-card-description[data-v-73b78445]{margin:calc(var(--spacing,.25rem) * 0);-webkit-line-clamp:3;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);color:var(--color-zinc-500,oklch(55.2% .016 285.938));-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.directory-badge[data-v-73b78445]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-emerald-200,oklch(90.5% .093 164.15));background-color:var(--color-emerald-50,oklch(97.9% .021 166.113));padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .5);--tw-leading:1;--tw-font-weight:var(--font-weight-medium,500);font-size:10px;line-height:1;font-weight:var(--font-weight-medium,500);color:var(--color-emerald-700,oklch(50.8% .118 165.612));flex-shrink:0}.directory-badge.is-muted[data-v-73b78445]{border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.directory-chip-row[data-v-73b78445]{gap:calc(var(--spacing,.25rem) * 1.5);flex-wrap:wrap;display:flex}.directory-chip[data-v-73b78445]{border-radius:var(--radius-md,.375rem);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-50,oklch(98.5% 0 0));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))}.directory-card-actions[data-v-73b78445]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);padding-top:calc(var(--spacing,.25rem) * 1);margin-top:auto;display:flex}.directory-loading[data-v-73b78445],.directory-empty[data-v-73b78445],.directory-error[data-v-73b78445]{border-radius:var(--radius-xl,.75rem);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:calc(var(--spacing,.25rem) * 4);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))}.directory-empty-copy[data-v-73b78445]{gap:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex}.directory-empty-text[data-v-73b78445]{margin:calc(var(--spacing,.25rem) * 0)}.directory-error[data-v-73b78445],.directory-toast.is-error[data-v-73b78445],.directory-auth-status.is-error[data-v-73b78445]{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))}.directory-toast[data-v-73b78445]{width:100%;max-width:var(--container-5xl,64rem);border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-emerald-200,oklch(90.5% .093 164.15));background-color:var(--color-emerald-50,oklch(97.9% .021 166.113));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)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-emerald-700,oklch(50.8% .118 165.612));margin-inline:auto}.directory-card-toggle[data-v-73b78445]{justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);border-style:var(--tw-border-style);width:100%;padding:calc(var(--spacing,.25rem) * 0);text-align:left;background-color:#0000;border-width:0;display:flex}.directory-mcp-detail[data-v-73b78445]{gap:calc(var(--spacing,.25rem) * 3);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding-top:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex}.directory-mini-heading[data-v-73b78445],.directory-detail-heading[data-v-73b78445]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-700,oklch(37% .013 285.805))}.directory-mini-list[data-v-73b78445]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.directory-modal-overlay[data-v-73b78445]{inset:calc(var(--spacing,.25rem) * 0);z-index:50;background-color:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed}@supports (color:color-mix(in lab,red,red)){.directory-modal-overlay[data-v-73b78445]{background-color:color-mix(in oklab,var(--color-black,#000) 40%,transparent)}}@media(min-width:40rem){.directory-modal-overlay[data-v-73b78445]{align-items:center}}.directory-modal[data-v-73b78445]{width:100%;max-height:90vh;max-width:var(--container-2xl,42rem);border-top-left-radius:var(--radius-2xl,1rem);border-top-right-radius:var(--radius-2xl,1rem);background-color:var(--color-white,#fff);--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px 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);flex-direction:column;display:flex;overflow:hidden}@media(min-width:40rem){.directory-modal[data-v-73b78445]{border-radius:var(--radius-2xl,1rem);max-height:82vh}}.directory-modal-header[data-v-73b78445],.directory-modal-footer[data-v-73b78445]{justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);padding:calc(var(--spacing,.25rem) * 4);flex-shrink:0;display:flex}@media(min-width:40rem){.directory-modal-header[data-v-73b78445],.directory-modal-footer[data-v-73b78445]{padding:calc(var(--spacing,.25rem) * 5)}}.directory-modal-header[data-v-73b78445]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-zinc-100,oklch(96.7% .001 286.375))}.directory-modal-footer[data-v-73b78445]{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-zinc-100,oklch(96.7% .001 286.375));justify-content:flex-end}.directory-modal-title[data-v-73b78445]{margin:calc(var(--spacing,.25rem) * 0);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-900,oklch(21% .006 285.885));overflow:hidden}.directory-modal-body[data-v-73b78445]{min-height:calc(var(--spacing,.25rem) * 0);gap:calc(var(--spacing,.25rem) * 4);padding:calc(var(--spacing,.25rem) * 4);flex-direction:column;flex:1;display:flex;overflow-y:auto}@media(min-width:40rem){.directory-modal-body[data-v-73b78445]{padding:calc(var(--spacing,.25rem) * 5)}}.directory-detail-description[data-v-73b78445]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);color:var(--color-zinc-600,oklch(44.2% .017 285.786))}.directory-detail-grid[data-v-73b78445]{gap:calc(var(--spacing,.25rem) * 3);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media(min-width:40rem){.directory-detail-grid[data-v-73b78445]{grid-template-columns:repeat(2,minmax(0,1fr))}}.directory-detail-block[data-v-73b78445],.directory-auth-panel[data-v-73b78445]{border-radius:var(--radius-xl,.75rem);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-50,oklch(98.5% 0 0));padding:calc(var(--spacing,.25rem) * 3)}.directory-include-row[data-v-73b78445]{margin-top:calc(var(--spacing,.25rem) * 2);justify-content:space-between;align-items:center;gap: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-600,oklch(44.2% .017 285.786));display:flex}.directory-auth-status[data-v-73b78445]{margin-left:calc(var(--spacing,.25rem) * 2);border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .5);--tw-leading:1;--tw-font-weight:var(--font-weight-medium,500);font-size:10px;line-height:1;font-weight:var(--font-weight-medium,500);border-width:1px;display:inline-flex}.directory-auth-status.is-ok[data-v-73b78445]{border-color:var(--color-emerald-200,oklch(90.5% .093 164.15));background-color:var(--color-emerald-50,oklch(97.9% .021 166.113));color:var(--color-emerald-700,oklch(50.8% .118 165.612))}.directory-auth-status.is-warning[data-v-73b78445]{border-color:var(--color-amber-200,oklch(92.4% .12 95.746));background-color:var(--color-amber-50,oklch(98.7% .022 95.277));color:var(--color-amber-700,oklch(55.5% .163 48.998))}.directory-auth-status.is-muted[data-v-73b78445]{border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-white,#fff);color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.directory-include-row button[data-v-73b78445]{border-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 0);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-blue-600,oklch(54.6% .245 262.881));background-color:#0000;border-width:0}@media(hover:hover){.directory-include-row button[data-v-73b78445]:hover{text-decoration-line:underline}}.directory-screenshots[data-v-73b78445]{gap:calc(var(--spacing,.25rem) * 3);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media(min-width:40rem){.directory-screenshots[data-v-73b78445]{grid-template-columns:repeat(2,minmax(0,1fr))}}.directory-screenshots img[data-v-73b78445]{max-height:calc(var(--spacing,.25rem) * 56);border-radius:var(--radius-xl,.75rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));object-fit:cover;width:100%}.composio-status-card[data-v-73b78445]{min-height:calc(var(--spacing,.25rem) * 0)}.composio-fallback[data-v-73b78445]{background-color:var(--color-sky-100,oklch(95.1% .026 236.824));color:var(--color-sky-700,oklch(50% .134 242.749))}:is(:root.dark){color:var(--color-zinc-100,oklch(96.7% .001 286.375))}:is(:root.dark){color:var(--color-zinc-400,oklch(70.5% .015 286.067))}:is(:root.dark){color:var(--color-zinc-300,oklch(87.1% .006 286.286))}@media(hover:hover){:is(:root.dark):hover{color:var(--color-zinc-100,oklch(96.7% .001 286.375))}}:root.dark{border-color:var(--color-zinc-700,oklch(37% .013 285.805));background-color:var(--color-zinc-900,oklch(21% .006 285.885))}@media(hover:hover){:root.dark{border-color:var(--color-zinc-600,oklch(44.2% .017 285.786))}}.dark{border-color:var(--color-zinc-700,oklch(37% .013 285.805));background-color:var(--color-zinc-900,oklch(21% .006 285.885))}@media(hover:hover){.dark{border-color:var(--color-zinc-600,oklch(44.2% .017 285.786))}}:root.dark{background-color:var(--color-zinc-700,oklch(37% .013 285.805));color:var(--color-zinc-300,oklch(87.1% .006 286.286))}.dark{background-color:var(--color-zinc-700,oklch(37% .013 285.805));color:var(--color-zinc-300,oklch(87.1% .006 286.286))}.dark{color:var(--color-zinc-100,oklch(96.7% .001 286.375))}:root.dark{color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.dark{color:var(--color-zinc-400,oklch(70.5% .015 286.067))}:root.dark{color:var(--color-zinc-300,oklch(87.1% .006 286.286))}.dark{color:var(--color-zinc-300,oklch(87.1% .006 286.286))}.dark{color:var(--color-zinc-500,oklch(55.2% .016 285.938))}@media(prefers-color-scheme:dark){.mcp-skill-card[data-v-73b78445]{border-color:var(--color-zinc-700,oklch(37% .013 285.805));background-color:var(--color-zinc-900,oklch(21% .006 285.885))}@media(hover:hover){.mcp-skill-card[data-v-73b78445]:hover{border-color:var(--color-zinc-600,oklch(44.2% .017 285.786))}}.mcp-skill-avatar-fallback[data-v-73b78445]{background-color:var(--color-zinc-700,oklch(37% .013 285.805));color:var(--color-zinc-300,oklch(87.1% .006 286.286))}.mcp-skill-name[data-v-73b78445]{color:var(--color-zinc-100,oklch(96.7% .001 286.375))}.mcp-skill-owner[data-v-73b78445]{color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.mcp-skill-meta[data-v-73b78445]{color:var(--color-zinc-300,oklch(87.1% .006 286.286))}.mcp-skill-chevron[data-v-73b78445]{color:var(--color-zinc-500,oklch(55.2% .016 285.938))}}:is(:root.dark){border-color:var(--color-zinc-700,oklch(37% .013 285.805));background-color:var(--color-zinc-900,oklch(21% .006 285.885))}:root.dark{color:var(--color-zinc-100,oklch(96.7% .001 286.375))}:root.dark{color:var(--color-zinc-500,oklch(55.2% .016 285.938))}:root.dark{border-color:var(--color-zinc-500,oklch(55.2% .016 285.938))}:root.dark{border-color:var(--color-zinc-700,oklch(37% .013 285.805));background-color:var(--color-zinc-800,oklch(27.4% .006 286.033));color:var(--color-zinc-100,oklch(96.7% .001 286.375))}:root.dark{border-color:var(--color-zinc-700,oklch(37% .013 285.805));background-color:var(--color-zinc-950,oklch(14.1% .005 285.823))}:root.dark{border-color:var(--color-zinc-700,oklch(37% .013 285.805));background-color:var(--color-zinc-900,oklch(21% .006 285.885));color:var(--color-zinc-400,oklch(70.5% .015 286.067))}:root.dark{border-color:#8b083699}@supports (color:color-mix(in lab,red,red)){:root.dark{border-color:color-mix(in oklab,var(--color-rose-900,oklch(41% .159 10.272)) 60%,transparent)}}:root.dark{background-color:#4d021899}@supports (color:color-mix(in lab,red,red)){:root.dark{background-color:color-mix(in oklab,var(--color-rose-950,oklch(27.1% .105 12.094)) 60%,transparent)}}:root.dark{color:var(--color-rose-300,oklch(81% .117 11.638))}:root.dark{background-color:var(--color-sky-950,oklch(29.3% .066 243.157));color:var(--color-sky-300,oklch(82.8% .111 230.318))}@property --tw-font-weight{syntax:"*";inherits:false}@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-leading{syntax:"*";inherits:false}
@@ -1,39 +0,0 @@
1
- import{_ as En,o as r,c as l,a as d,d as qs,u as Ks,r as b,w as Y,n as Ct,b as Gs,e as Zs,t as f,f as k,F as g,g as w,h as C,i as Xs,j as Q,I as Js,k as Ys,l as Qs,m as Pn,p as Ze,q as $t,s as Lt,v as ee,x as An,T as ei,y as L,z as ti,A as ni,B as si}from"./index-Dpl251IF.js";const ii={},oi={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function ai(M,be){return r(),l("svg",oi,[...be[0]||(be[0]=[d("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2zm-4 4a2 2 0 0 1-2-2V8m4 8h10"},null,-1)])])}const ri=En(ii,[["render",ai]]),li={key:0,class:"conversation-loading"},ci={key:1,class:"conversation-empty"},ui={key:0,class:"conversation-load-more"},di=["disabled"],hi=["data-role","data-message-type"],fi={key:0,class:"message-row","data-role":"system"},pi={class:"message-stack","data-role":"system"},mi=["onClick"],vi={class:"cmd-group-label"},ki={class:"cmd-status"},gi={class:"cmd-group-inner"},yi=["onClick"],_i={class:"cmd-label"},wi={class:"cmd-status"},bi={class:"cmd-output-inner"},xi=["textContent"],Ci=["onClick"],$i={class:"cmd-label"},Li={class:"cmd-status"},Ti={class:"cmd-output-inner"},Mi=["textContent"],Si=["data-role","data-message-type"],Ii=["data-role"],Pi=["data-role"],Ai={key:0,class:"file-change-summary-block"},Ei=["onClick"],Bi={class:"file-change-summary-label"},Fi={class:"file-change-summary-status"},Ri=["data-tone"],Hi={class:"file-change-panel-inner"},Wi={class:"file-change-list"},Oi=["data-operation"],zi=["title","onClick"],ji={key:0,class:"file-change-arrow"},Di=["title","onClick"],Vi={key:2,class:"file-change-delta"},Ni=["data-tone"],Ui=["data-role","data-message-type"],qi=["data-role"],Ki=["data-role"],Gi=["data-role"],Zi=["onClick"],Xi=["src","alt"],Ji={key:1,class:"message-file-attachments"},Yi=["href","title"],Qi=["data-role"],eo={key:0,class:"worked-separator-wrap","aria-live":"polite"},to=["onClick"],no={class:"worked-separator-text"},so={key:0,class:"worked-details"},io=["onClick"],oo={class:"cmd-label"},ao={class:"cmd-status"},ro={class:"cmd-output-inner"},lo=["textContent"],co=["data-streaming"],uo={class:"plan-card-header"},ho={key:0,class:"plan-card-badge"},fo=["innerHTML"],po={key:1,class:"plan-step-list"},mo=["data-status"],vo=["data-status"],ko=["innerHTML"],go=["innerHTML"],yo={key:3,class:"plan-card-actions"},_o=["onClick"],wo={key:0,class:"message-text"},bo={key:0},xo={key:1,class:"message-bold-text"},Co={key:2,class:"message-italic-text"},$o={key:3,class:"message-strikethrough-text"},Lo=["href","title"],To=["href","title"],Mo={key:6,class:"message-inline-code"},So={key:0},Io={key:1,class:"message-bold-text"},Po={key:2,class:"message-italic-text"},Ao={key:3,class:"message-strikethrough-text"},Eo=["href","title"],Bo=["href","title"],Fo={key:6,class:"message-inline-code"},Ro={key:2,class:"message-blockquote"},Ho={key:0},Wo={key:1,class:"message-bold-text"},Oo={key:2,class:"message-italic-text"},zo={key:3,class:"message-strikethrough-text"},jo=["href","title"],Do=["href","title"],Vo={key:6,class:"message-inline-code"},No={key:3,class:"message-list message-list-unordered"},Uo=["innerHTML"],qo={key:4,class:"message-list message-task-list"},Ko=["data-checked"],Go={class:"message-list-item-text"},Zo={key:0},Xo={key:1,class:"message-bold-text"},Jo={key:2,class:"message-italic-text"},Yo={key:3,class:"message-strikethrough-text"},Qo=["href","title"],ea=["href","title"],ta={key:6,class:"message-inline-code"},na=["start"],sa=["innerHTML"],ia={key:6,class:"message-table-wrap"},oa={class:"message-table"},aa={key:0},ra={key:1,class:"message-bold-text"},la={key:2,class:"message-italic-text"},ca={key:3,class:"message-strikethrough-text"},ua=["href","title"],da=["href","title"],ha={key:6,class:"message-inline-code"},fa={key:0},pa={key:0},ma={key:1,class:"message-bold-text"},va={key:2,class:"message-italic-text"},ka={key:3,class:"message-strikethrough-text"},ga=["href","title"],ya=["href","title"],_a={key:6,class:"message-inline-code"},wa={key:7,class:"message-code-block"},ba={key:0,class:"message-code-language"},xa={class:"message-code-pre"},Ca=["innerHTML"],$a={key:8,class:"message-divider"},La={key:9,class:"message-text"},Ta=["onClick"],Ma=["src","alt","onError"],Sa={key:3,class:"file-change-summary-block file-change-summary-block-inline"},Ia=["onClick"],Pa={class:"file-change-summary-label"},Aa={class:"file-change-summary-status"},Ea=["data-tone"],Ba={class:"file-change-panel-inner"},Fa={class:"file-change-list"},Ra=["data-operation"],Ha=["title","onClick"],Wa={key:0,class:"file-change-arrow"},Oa=["title","onClick"],za={key:2,class:"file-change-delta"},ja=["data-tone"],Da=["data-role"],Va=["onClick"],Na=["onClick"],Ua=["data-copied","aria-label","title","onClick"],qa={class:"message-copy-label"},Ka={key:1,class:"conversation-item conversation-item-overlay"},Ga={class:"message-row"},Za={class:"message-stack"},Xa={class:"live-overlay-inline","aria-live":"polite"},Ja={class:"live-overlay-label"},Ya={key:0,class:"live-overlay-reasoning"},Qa={key:1,class:"live-overlay-error"},er=["src"],tr={key:0,class:"diff-viewer-sidebar"},nr={class:"diff-viewer-sidebar-header"},sr={class:"diff-viewer-sidebar-count"},ir={class:"diff-viewer-sidebar-list"},or=["data-active","onClick"],ar=["data-operation"],rr={class:"diff-viewer-file-label"},lr={key:0,class:"diff-viewer-file-delta"},cr={class:"diff-viewer-main"},ur={class:"diff-viewer-toolbar"},dr={class:"diff-viewer-title-wrap"},hr={class:"diff-viewer-title"},fr={class:"diff-viewer-subtitle"},pr={key:0},mr={class:"diff-viewer-toolbar-actions"},vr={key:0,class:"diff-viewer-empty"},kr={key:1,class:"diff-viewer-panel"},gr={class:"diff-viewer-meta"},yr={class:"diff-viewer-language"},_r={class:"diff-viewer-lines"},wr=["data-kind"],br={class:"diff-viewer-line-number"},xr={class:"diff-viewer-line-number"},Cr={class:"diff-viewer-line-marker"},$r=["innerHTML"],Lr={class:"diff-viewer-mobile-sheet-header"},Tr={class:"diff-viewer-sidebar-count"},Mr={class:"diff-viewer-mobile-sheet-list"},Sr=["data-active","onClick"],Ir=["data-operation"],Pr={class:"diff-viewer-file-label"},Ar={key:0,class:"diff-viewer-file-delta"},Er=16,Br=300,Fr=1200,Rr=300,Hr=250,Tt=50,Wr=30,Or=200,zr=qs({__name:"ThreadConversation",props:{messages:{},pendingRequests:{},liveOverlay:{},isLoading:{type:Boolean},activeThreadId:{},cwd:{},scrollState:{}},emits:["updateScrollState","forkThread","rollback","implementPlan","respondServerRequest"],setup(M,{expose:be,emit:Bn}){var In;const de=b(new Set),W=b(new Set),he=b(new Set),Xe=b(new Set),fe=b(new Set),Je=b(null),xe=b(""),D=b(!1),Mt=b(null),pe=b(!1),St=b(0),It=b(0),Ye=b(""),Qe=b(""),{isMobile:Ce}=Ks();function Fn(e){var i;const n=e.replace(/\r\n/g,`
2
- `).trim();if(!n)return null;const t=[],s=[];for(const a of n.split(`
3
- `)){const u=a.trim();if(!u){t.length===0&&s.push("");continue}const o=u.match(/^[-*]\s+\[([ xX~>|-])\]\s+(.+)$/);if(o){const h=(o[1]??" ").toLowerCase();let c="pending";h==="x"&&(c="completed"),(h==="~"||h===">"||h==="-")&&(c="inProgress"),t.push({step:((i=o[2])==null?void 0:i.trim())??"",status:c});continue}s.push(u)}return t.length===0?null:{explanation:s.join(`
4
- `).trim(),steps:t.filter(a=>a.step.length>0)}}function et(e){var n;return e.plan&&e.plan.steps.length>0?{explanation:((n=e.plan.explanation)==null?void 0:n.trim())??"",steps:e.plan.steps}:Fn(e.text)}function E(e){return e.messageType==="commandExecution"&&!!e.commandExecution}function tt(e){return e.messageType==="plan"||e.messageType==="plan.live"}function Rn(e){return tt(e)&&e.messageType!=="plan.live"&&e.role==="assistant"&&!!e.turnId}function Hn(e){var t;const n=((t=e.turnId)==null?void 0:t.trim())??"";n&&Pe("implementPlan",{turnId:n})}function nt(e){return e.messageType==="fileChange"&&e.fileChangeStatus==="completed"&&Array.isArray(e.fileChanges)&&e.fileChanges.length>0}function $e(e){return e.role==="assistant"&&!E(e)&&e.messageType!=="worked"&&!(e.messageType??"").endsWith(".live")}const st=L(()=>{var e;for(let n=v.messages.length-1;n>=0;n-=1){const t=v.messages[n];if(t.messageType==="commandExecution"&&((e=t.commandExecution)==null?void 0:e.status)==="inProgress")return t.id}return""}),Pt=L(()=>v.messages.some(e=>e.role==="assistant"&&e.messageType==="agentMessage.live"&&e.text.trim().length>0)),At=L(()=>!!v.liveOverlay||st.value.length>0||Pt.value),it=L(()=>{const e={};for(let n=0;n<v.messages.length;){const t=v.messages[n];if(!E(t)){n+=1;continue}const s=[];for(;n<v.messages.length&&E(v.messages[n]);)s.push(v.messages[n]),n+=1;if(s.length<=1)continue;const i=s[s.length-1];e[i.id]=s.slice(0,-1)}return e}),Wn=L(()=>{const e=new Set;for(const n of Object.values(it.value))for(const t of n)e.add(t.id);return e});function Et(e){var n;return((n=et(e))==null?void 0:n.explanation)??""}function Bt(e){var n;return((n=et(e))==null?void 0:n.steps)??[]}function On(e){switch(e){case"completed":return"✓";case"inProgress":return"•";default:return"○"}}function Ft(e){return!Pt.value&&e.id===st.value}function B(e){return E(e)?de.value.has(e.id)||!W.value.has(e.id)&&Ft(e):!1}function ot(e){return E(e)&&At.value}function at(e){var n;return E(e)&&(At.value||((n=e.commandExecution)==null?void 0:n.status)==="inProgress")}function rt(e){if(!E(e))return;const n=new Set(de.value),t=new Set(W.value),s=Ft(e);n.has(e.id)?(n.delete(e.id),s&&t.add(e.id)):s&&!t.has(e.id)?t.add(e.id):(n.add(e.id),t.delete(e.id)),de.value=n,W.value=t}function Le(e){return it.value[e.id]??[]}function Rt(e){return E(e)?[...Le(e),e]:[]}function zn(e){if(Le(e).length===0)return;const t=new Set(he.value);t.has(e.id)?t.delete(e.id):t.add(e.id),he.value=t}function lt(e){return he.value.has(e.id)}function jn(e){var a,u;const t=Rt(e).length,s=((u=(a=e.commandExecution)==null?void 0:a.command)==null?void 0:u.trim())||"(command)";return`${t===1?"1 command":`${t} commands`} · latest: ${s}`}function Dn(e){return Me(e)}function Vn(e){const n=new Set(Xe.value);n.has(e.id)?n.delete(e.id):n.add(e.id),Xe.value=n}function Ht(e){return Xe.value.has(e.id)}function Wt(e){const n=new Set(fe.value);n.has(e.id)?n.delete(e.id):n.add(e.id),fe.value=n}function te(e){return fe.value.has(e.id)}function T(e){return`${e.path}\0${e.movedToPath??""}`}function Te(e,n){e&&(Je.value=e,xe.value=T(n),D.value=!1)}function Ot(){Je.value=null,xe.value="",D.value=!1}function Nn(){D.value=!D.value}function Un(){D.value=!1}function zt(e){xe.value=T(e),Ce.value&&(D.value=!1)}function Me(e){const n=e.commandExecution;if(!n)return"";const t=ot(e);switch(n.status){case"inProgress":return t?"Running":"⟳ Running";case"completed":return n.exitCode===0?t?"Done":"✓ Completed":`Exit ${n.exitCode??"?"}`;case"failed":return t?"Failed":"✗ Failed";case"declined":return t?"Declined":"⊘ Declined";case"interrupted":return t?"Stopped":"⊘ Interrupted";default:return""}}function Se(e){var t,s;const n=(t=e.commandExecution)==null?void 0:t.status;return n==="inProgress"?"cmd-status-running":n==="completed"&&((s=e.commandExecution)==null?void 0:s.exitCode)===0?"cmd-status-ok":"cmd-status-error"}function Ie(e,n){if(e.size===0)return e;const t=new Set;for(const s of e)n.has(s)&&t.add(s);return t.size===e.size?e:t}function qn(e,n){const t=[];for(let s=n-1;s>=0;s--){const i=e[s];if(i.messageType==="commandExecution")t.unshift(i);else if(i.role==="user"||i.messageType==="worked")break}return t}const v=M,Pe=Bn,V=b(null),jt=b(null),me=b(""),N=b(""),Kn=b(null),O=b(((In=v.scrollState)==null?void 0:In.isAtBottom)!==!1),Dt={js:"javascript",jsx:"jsx",ts:"typescript",tsx:"tsx",py:"python",rb:"ruby",sh:"bash",shell:"bash",zsh:"bash",yml:"yaml",md:"markdown","c++":"cpp","c#":"csharp",ps1:"powershell"};let U=0,A=0,Ae=0,q=null,ve=null;const Vt=new WeakSet,Ee=b(null),ne=b(0),Nt=b(0);let Be=null;const ke=new Map,ge=new Map,se=new Map,ie=new Map;function Fe(e,n,t,s){for(e.has(n)&&e.delete(n),e.set(n,t);e.size>s;){const i=e.keys().next().value;if(i===void 0)break;e.delete(i)}return t}const F=b(0),K=b(!1),Gn=L(()=>v.messages.slice(F.value)),ct=L(()=>F.value>0),Zn=L(()=>!O.value&&(v.messages.length>0||v.pendingRequests.length>0||!!v.liveOverlay));function Xn(){return Ee.value?Promise.resolve():(Be||(Be=ti(()=>import("./common-BeuopZEI.js"),[]).then(e=>{Ee.value=e.default,ie.clear(),se.clear(),ne.value+=1}).finally(()=>{Be=null})),Be)}function Jn(e){if(!e||/[\r\n]/u.test(e)||e.endsWith("/")||e.endsWith("\\")||/^[A-Za-z][A-Za-z0-9+.-]*:\/\//u.test(e))return!1;const n=e.startsWith("/"),t=/^[A-Za-z]:[\\/]/u.test(e),s=e.startsWith("./")||e.startsWith("../")||e.startsWith("~/");return n||t||s||/^[A-Za-z0-9._@() -]+\.[A-Za-z0-9]{1,12}$/u.test(e)?!0:/^[A-Za-z0-9._@() -]+(?:[\\/][A-Za-z0-9._@() -]+)+$/u.test(e)}function Re(e){return e.replace(/\\/gu,"/").split("/").filter(Boolean).pop()||e}function oe(e){return e.replace(/\\/gu,"/")}function Ut(e){if(!e.startsWith("file://"))return e;let n=e.replace(/^file:\/\//u,"");try{n=decodeURIComponent(n)}catch{}return/^\/[A-Za-z]:\//u.test(n)&&(n=n.slice(1)),n}function Yn(e){const n=oe(e),t=n.match(/^\/Users\/([^/]+)/u);if(t)return`/Users/${t[1]}`;const s=n.match(/^\/home\/([^/]+)/u);return s?`/home/${s[1]}`:""}function ae(e){const n=oe(e);if(!n)return n;let t="",s=n;const i=s.match(/^([A-Za-z]:)(\/.*)?$/u);i?(t=`${i[1]}/`,s=(i[2]??"").replace(/^\/+/u,"")):s.startsWith("/")&&(t="/",s=s.slice(1));const a=s.split("/").filter(Boolean),u=[];for(const h of a)if(h!=="."){if(h===".."){u.length>0&&u.pop();continue}u.push(h)}const o=u.join("/");return t?`${t}${o}`.replace(/\/+$/u,"")||t:o||n}function qt(e,n){const t=oe(Ut(e.trim()));if(!t)return"";if(t.startsWith("/")||/^[A-Za-z]:\//u.test(t))return ae(t);if(t.startsWith("~/")){const a=Yn(n);if(a)return ae(`${a}/${t.slice(2)}`)}const i=oe(n.trim());return ae(i?`${i.replace(/\/+$/u,"")}/${t}`:t)}function ye(e){if(!e)return null;let n=e.trim();n=He(n).core.trim();let s=null;const i=n.match(/^(.*)#L(\d+)(?:C\d+)?$/u);if(i)n=i[1],s=Number(i[2]);else{const a=n.match(/^(.*):(\d+)(?::\d+)?$/u);a&&(n=a[1],s=Number(a[2]))}return n=Ut(n),Jn(n)?{path:n,line:s}:null}function He(e){let n=e,t="",s="";const i={"(":")","[":"]","{":"}","<":">",'"':'"',"'":"'","`":"`","“":"”","‘":"’"};for(;n.length>0;){const a=n[0],u=Object.prototype.hasOwnProperty.call(i,a)?i[a]:"";if(!u||!n.endsWith(u))break;t+=a,s+=u,n=n.slice(1,-1)}return{core:n,leading:t,trailing:s}}function ut(e){const n=e.trim();if(!n.startsWith("[")||!n.endsWith(")"))return null;const t=n.indexOf("]");if(t<=1||n[t+1]!=="(")return null;const s=n.slice(1,t).trim(),i=n.slice(t+2,-1).trim();if(s.includes(`
5
- `)||i.includes(`
6
- `))return null;const a=He(s).core.trim()||s,u=He(i).core.trim();return u?{label:a,target:u}:null}function Kt(e){const n=Math.min(6,Math.max(1,Math.trunc(e)));return`h${String(n)}`}function Gt(e){switch(Math.min(6,Math.max(1,Math.trunc(e)))){case 1:return"message-heading-h1";case 2:return"message-heading-h2";case 3:return"message-heading-h3";case 4:return"message-heading-h4";case 5:return"message-heading-h5";default:return"message-heading-h6"}}function Qn(e){switch(e){case"completed":return"[x]";case"inProgress":return"[~]";default:return"[ ]"}}function es(e){var s;const n=et(e);if(!n)return"";const t=[];return(s=n.explanation)!=null&&s.trim()&&t.push(n.explanation.trim()),n.steps.length>0&&t.push(n.steps.map(i=>`- ${Qn(i.status)} ${i.step}`.trim()).join(`
7
- `)),t.join(`
8
-
9
- `).trim()}function ts(e){const n=[],t=e.text.trim()||es(e),s=tt(e)&&t?`Plan
10
- ${t}`:t;s&&n.push(s);const i=(e.fileAttachments??[]).map(u=>u.path.trim()).filter(u=>u.length>0);i.length>0&&n.push(`Files:
11
- ${i.join(`
12
- `)}`);const a=(e.images??[]).map(u=>u.trim()).filter(u=>u.length>0);return a.length>0&&n.push(`Images:
13
- ${a.join(`
14
- `)}`),n.join(`
15
-
16
- `).trim()}const Zt=L(()=>{var t;const e=new Map;for(const s of v.messages){if(!$e(s))continue;const i=ts(s);if(!i)continue;const a=typeof s.turnIndex=="number"?`turn:${s.turnIndex}`:`message:${s.id}`,u=e.get(a);if(u){u.anchorMessageId=s.id,u.parts.push(i);continue}e.set(a,{anchorMessageId:s.id,parts:[i]})}const n={};for(const s of e.values()){const i=s.parts.join(`
17
-
18
- `).trim();i&&(n[s.anchorMessageId]=i)}for(const[s,i]of Object.entries(We.value)){if(i.source!=="metadata")continue;const a=ls(i);if(!a)continue;const u=(t=n[s])==null?void 0:t.trim();n[s]=u?`${u}
19
-
20
- ${a}`:a}return n}),Xt=L(()=>{const e=new Map;for(const t of v.messages){if(!$e(t)||typeof t.turnIndex!="number")continue;const s=`turn:${t.turnIndex}`,i=e.get(s);if(i){i.anchorMessageId=t.id,i.turnIndex=t.turnIndex;continue}e.set(s,{anchorMessageId:t.id,turnIndex:t.turnIndex})}const n={};for(const t of e.values())n[t.anchorMessageId]=t.turnIndex;return n});function Jt(e){return typeof Zt.value[e.id]=="string"}function ns(e){return typeof Xt.value[e.id]=="number"}function ss(e,n){return e?!n||e===n?e:`${e}
21
- ${n}`.trim():n}function is(e,n){const t=e.operation==="add"||n.operation==="add"?"add":e.operation==="delete"||n.operation==="delete"?"delete":"update";return{path:n.path||e.path,operation:t,movedToPath:n.movedToPath??e.movedToPath??null,diff:ss(e.diff,n.diff),addedLineCount:e.addedLineCount+n.addedLineCount,removedLineCount:e.removedLineCount+n.removedLineCount}}function os(e,n){const t=e.operation==="add"?0:e.operation==="update"?1:2,s=n.operation==="add"?0:n.operation==="update"?1:2;if(t!==s)return t-s;const i=`${e.path}\0${e.movedToPath??""}`,a=`${n.path}\0${n.movedToPath??""}`;return i.localeCompare(a)}function dt(e){const n=new Map;for(const t of e){const s=`${t.path}\0${t.movedToPath??""}`,i=n.get(s);n.set(s,i?is(i,t):{...t})}return Array.from(n.values()).sort(os)}const We=L(()=>{const e=new Map,n=new Map,t=new Map;for(const i of v.messages){if($e(i)&&typeof i.turnIndex=="number"&&(e.set(`turn:${i.turnIndex}`,i.id),Array.isArray(i.fileChanges)&&i.fileChanges.length>0&&n.set(i.id,{changes:dt(i.fileChanges),sourceMessageIds:[],source:"assistant"})),!nt(i))continue;const a=typeof i.turnIndex=="number"?`turn:${i.turnIndex}`:`message:${i.id}`,u=t.get(a);u?u.push(i):t.set(a,[i])}const s={};for(const[i,a]of t.entries()){const u=e.get(i);u&&(s[u]={changes:dt(a.flatMap(o=>o.fileChanges??[])),sourceMessageIds:a.map(o=>o.id),source:"metadata"})}for(const[i,a]of n.entries())s[i]||(s[i]=a);return s}),ht=L(()=>{const e=new Map,n=new Map;for(const s of v.messages){if($e(s)&&typeof s.turnIndex=="number"&&e.set(`turn:${s.turnIndex}`,s.id),!nt(s))continue;const i=typeof s.turnIndex=="number"?`turn:${s.turnIndex}`:`message:${s.id}`,a=n.get(i);a?a.push(s):n.set(i,[s])}const t={};for(const[s,i]of n.entries()){if(e.has(s))continue;const a=i[i.length-1];a&&(t[a.id]={changes:dt(i.flatMap(u=>u.fileChanges??[])),sourceMessageIds:i.map(u=>u.id),source:"metadata"})}return t}),as=L(()=>{const e=new Set;for(const n of Object.values(We.value))for(const t of n.sourceMessageIds)e.add(t);for(const[n,t]of Object.entries(ht.value))for(const s of t.sourceMessageIds)s!==n&&e.add(s);return e});function re(e){return We.value[e.id]??null}function le(e){return ht.value[e.id]??null}function ce(e){return e.operation==="update"&&e.movedToPath?e.addedLineCount>0||e.removedLineCount>0?"Moved + edited":"Moved":e.operation==="add"?"Added":e.operation==="delete"?"Deleted":"Edited"}function Oe(e){return e.operation==="update"&&e.movedToPath?"move":e.operation}function G(e){const n=[];return e.addedLineCount>0&&n.push(`+${e.addedLineCount}`),e.removedLineCount>0&&n.push(`-${e.removedLineCount}`),n.join(" ")}function Yt(e,n,t=""){const s=[];return e>0&&s.push({tone:"add",label:`+${e}`}),n>0&&s.push({tone:"remove",label:`-${n}`}),s.length>0?s:t?[{tone:"neutral",label:t}]:[]}function Qt(e){return Yt(e.addedLineCount,e.removedLineCount)}function ze(e){return e===1?"1 file changed":`${e} files changed`}function rs(e){if(!e||e.changes.length===0)return"";let n=0,t=0,s=0,i=0;for(const u of e.changes){if(u.operation==="add"){n+=1;continue}if(u.operation==="delete"){t+=1;continue}if(u.movedToPath){i+=1;continue}s+=1}const a=[];return s>0&&a.push(`${s} edited`),n>0&&a.push(`${n} added`),t>0&&a.push(`${t} deleted`),i>0&&a.push(`${i} moved`),a.join(", ")}function en(e){if(!e||e.changes.length===0)return"Modified files";const n=ze(e.changes.length),t=rs(e);return t?`${n} · ${t}`:n}function tn(e){if(!e||e.changes.length===0)return[];const n=e.changes.reduce((i,a)=>i+a.addedLineCount,0),t=e.changes.reduce((i,a)=>i+a.removedLineCount,0),s=e.changes.some(i=>i.movedToPath)?"Moved":"Ready";return Yt(n,t,s)}function S(e){const n=qt(e,v.cwd),t=ae(oe(v.cwd.trim())),s=ae(oe(n));return t&&s.startsWith(`${t}/`)?s.slice(t.length+1):e}function ls(e){return!e||e.changes.length===0?"":`Modified files:
22
- ${e.changes.map(t=>{const s=S(t.path),i=t.movedToPath?` -> ${S(t.movedToPath)}`:"",a=G(t);return`- ${ce(t)}: ${s}${i}${a?` (${a})`:""}`}).join(`
23
- `)}`.trim()}const ue=L(()=>{var e;return((e=Je.value)==null?void 0:e.changes)??[]}),I=L(()=>{const e=ue.value;return e.length===0?null:e.find(n=>T(n)===xe.value)??e[0]});function cs(e){var s;const t=((s=(e.movedToPath||e.path).split(".").pop())==null?void 0:s.toLowerCase())??"";return Dt[t]??t??""}function us(e){return e.operation==="update"&&/^diff --git |^@@ |^--- |^\+\+\+ |^[ +-]|^\*\*\* (Move to:|End of File)/mu.test(e.diff)}function ds(e){const n=e.diff.replace(/\r\n/g,`
24
- `),t=n.length>0?n.split(`
25
- `):[];return t.length>0&&t[t.length-1]===""&&t.pop(),t.map((s,i)=>({key:`${T(e)}:synthetic:${i}`,kind:e.operation==="delete"?"remove":"add",oldLine:e.operation==="delete"?i+1:null,newLine:e.operation==="delete"?null:i+1,text:s}))}function hs(e){const n=e.diff.replace(/\r\n/g,`
26
- `),t=n.length>0?n.split(`
27
- `):[];t.length>0&&t[t.length-1]===""&&t.pop();const s=[];let i=0,a=0;for(const[u,o]of t.entries()){const h=o.match(/^@@\s+-(\d+)(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s+@@/u);if(h){i=Number(h[1]),a=Number(h[2]),s.push({key:`${T(e)}:hunk:${u}`,kind:"hunk",oldLine:null,newLine:null,text:o});continue}if(o.startsWith("+")&&!o.startsWith("+++")){s.push({key:`${T(e)}:add:${u}`,kind:"add",oldLine:null,newLine:a,text:o.slice(1)}),a+=1;continue}if(o.startsWith("-")&&!o.startsWith("---")){s.push({key:`${T(e)}:remove:${u}`,kind:"remove",oldLine:i,newLine:null,text:o.slice(1)}),i+=1;continue}if(o.startsWith(" ")){s.push({key:`${T(e)}:context:${u}`,kind:"context",oldLine:i,newLine:a,text:o.slice(1)}),i+=1,a+=1;continue}s.push({key:`${T(e)}:meta:${u}`,kind:"meta",oldLine:null,newLine:null,text:o})}return s}function fs(e){return!e||!e.diff.trim()?[]:us(e)?hs(e):ds(e)}const ps=L(()=>fs(I.value));function ms(e){return!!(e!=null&&e.diff.trim())}function vs(e){return e.kind==="add"?"+":e.kind==="remove"?"-":e.kind==="hunk"?"@@":""}function ks(e){if(typeof document>"u")return!1;const n=document.createElement("textarea");n.value=e,n.setAttribute("readonly","true"),n.style.position="fixed",n.style.left="-9999px",n.style.opacity="0",n.style.pointerEvents="none",document.body.appendChild(n),n.focus(),n.select(),n.setSelectionRange(0,e.length);try{return document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(n)}}async function gs(e){var s;const n=Zt.value[e]??"";if(!n)return;let t=!1;if(typeof navigator<"u"&&((s=navigator.clipboard)!=null&&s.writeText))try{await navigator.clipboard.writeText(n),t=!0}catch{t=!1}t||(t=ks(n)),t&&(N.value=e,q&&clearTimeout(q),q=setTimeout(()=>{N.value===e&&(N.value=""),q=null},1800))}function ys(e){const n=Xt.value[e];typeof n=="number"&&v.activeThreadId&&Pe("forkThread",{threadId:v.activeThreadId,turnIndex:n})}const nn=L(()=>{const e={};for(const n of v.messages){if(n.role!=="user"||typeof n.turnIndex!="number")continue;const t=typeof n.turnId=="string"&&n.turnId.length>0?n.turnId:"";!t||n.text.trim().length===0||(e[n.id]=t)}return e});function sn(e){return typeof nn.value[e.id]=="string"}function _s(e){const n=nn.value[e];n&&Pe("rollback",{turnId:n})}function ft(e){const n=[],t=/https?:\/\/[^\s<>"'`,。;:!?、()[\]{}「」『』《》]+|file:\/\/[^\n<>"'`,。;:!?、[\]{}「」『』《》]+|["'](?:[A-Za-z]:[\\/]|~\/|\.{1,2}\/|\/)[^\n"']+["']|`(?:[A-Za-z]:[\\/]|~\/|\.{1,2}\/|\/)[^`\n]+`/gu;let s=0;for(const i of e.matchAll(t)){if(typeof i.index!="number")continue;const a=i.index,u=a+i[0].length;a>s&&n.push({kind:"text",value:e.slice(s,a)});let o=i[0],h="";for(;/[.,;:!?,。;:!?、]$/u.test(o);)h=o.slice(-1)+h,o=o.slice(0,-1);const c=He(o);o=c.core;const m=c.leading,p=c.trailing+h;if(m&&n.push({kind:"text",value:m}),o.startsWith("**")&&o.endsWith("**")&&o.length>4)n.push({kind:"bold",value:o.slice(2,-2)}),p&&n.push({kind:"text",value:p});else if(/^https?:\/\//u.test(o))n.push({kind:"url",value:o,href:o}),p&&n.push({kind:"text",value:p});else{const y=ye(o);y?(n.push({kind:"file",value:o,path:y.path,displayPath:o,downloadName:Re(y.path)}),p&&n.push({kind:"text",value:p})):n.push({kind:"text",value:i[0]})}s=u}return s<e.length&&n.push({kind:"text",value:e.slice(s)}),ws(n)}function pt(e,n){const t=[];let s=!1,i="";const a=u=>{u&&t.push({kind:"text",value:u})};for(const u of e){if(u.kind!=="text"){s&&(a(`${n.marker}${i}`),s=!1,i=""),t.push(u);continue}let o=u.value;for(;o.length>0;){const h=o.indexOf(n.marker);if(h<0){s?i+=o:a(o);break}const c=o.slice(0,h);if(s?i+=c:a(c),o=o.slice(h+n.marker.length),s){const m=i;m.length>0&&(!n.isValidContent||n.isValidContent(m))?t.push({kind:n.kind,value:m}):a(`${n.marker}${m}${n.marker}`),i="",s=!1}else s=!0}}return s&&a(`${n.marker}${i}`),t}function ws(e){const n=s=>s.trim().length>0&&!/^\s/u.test(s)&&!/\s$/u.test(s);let t=pt(e,{marker:"**",kind:"bold",isValidContent:n});return t=pt(t,{marker:"~~",kind:"strikethrough",isValidContent:n}),t=pt(t,{marker:"*",kind:"italic",isValidContent:n}),t}function je(e){const n=[];let t=0,s=0;const i=(a,u)=>{let o=a.indexOf("[",u);for(;o>=0;){const h=a.indexOf("]",o+1);if(h<0)return null;if(a[h+1]!=="("){o=a.indexOf("[",o+1);continue}let c=1,m=h+2,p=!1;for(;m<a.length;){const y=a[m];if(y===`
28
- `){p=!0;break}if(y==="("&&(c+=1),y===")"&&(c-=1,c===0)){const x=a.slice(o,m+1);if(ut(x))return{start:o,end:m+1,token:x};break}m+=1}if(p){o=a.indexOf("[",o+1);continue}o=a.indexOf("[",o+1)}return null};for(;s<e.length;){const a=i(e,s);if(!a)break;const{start:u,end:o,token:h}=a;u>t&&n.push(...ft(e.slice(t,u)));const c=ut(h);if(!c){n.push(...ft(e.slice(u,o))),t=o,s=o;continue}const m=c.label,p=c.target;if(/^https?:\/\//u.test(p))n.push({kind:"url",value:m||p,href:p});else{const y=ye(p);y?n.push({kind:"file",value:p,path:y.path,displayPath:m||p,downloadName:Re(y.path)}):n.push({kind:"text",value:h})}t=o,s=o}return t<e.length&&n.push(...ft(e.slice(t))),n}function bs(e){if(e.includes("](")){const i=je(e);if(i.some(a=>a.kind==="file"||a.kind==="url")&&!e.includes("`"))return i}if(!e.includes("`"))return je(e);const n=[];let t=0,s=0;for(;t<e.length;){if(e[t]!=="`"){t+=1;continue}let i=1;for(;t+i<e.length&&e[t+i]==="`";)i+=1;const a="`".repeat(i);let u=t+i,o=-1;for(;u<e.length;){const c=e.indexOf(a,u);if(c<0)break;const m=c>0&&e[c-1]==="`",p=c+i<e.length&&e[c+i]==="`",y=e.slice(t+i,c).includes(`
29
- `);if(!m&&!p&&!y){o=c;break}u=c+1}if(o<0){t+=i;continue}t>s&&n.push(...je(e.slice(s,t)));const h=e.slice(t+i,o);if(h.length>0){const c=ut(h);if(c)if(/^https?:\/\//u.test(c.target))n.push({kind:"url",value:c.label||c.target,href:c.target});else{const m=ye(c.target);m?n.push({kind:"file",value:c.target,path:m.path,displayPath:c.label||c.target,downloadName:Re(m.path)}):n.push({kind:"code",value:h})}else if(/^https?:\/\/[^\s]+$/u.test(h))n.push({kind:"url",value:h,href:h});else{const m=ye(h);if(m){const p=m.line?`${m.path}:${String(m.line)}`:m.path;n.push({kind:"file",value:h,path:m.path,displayPath:p,downloadName:Re(m.path)})}else n.push({kind:"code",value:h})}}else n.push({kind:"text",value:`${a}${a}`});t=o+i,s=t}return s<e.length&&n.push(...je(e.slice(s))),n}function Z(e){const n=ge.get(e);return n?(ge.delete(e),ge.set(e,n),n):Fe(ge,e,bs(e),Fr)}function xs(e){const n=e.trim();if(!n)return"";if(n.startsWith("data:")||n.startsWith("blob:")||n.startsWith("http://")||n.startsWith("https://")||n.startsWith("/codex-local-image?"))return n;if(n.startsWith("file://"))return`/codex-local-image?path=${encodeURIComponent(n)}`;const t=n.startsWith("/"),s=/^[A-Za-z]:[\\/]/u.test(n);return t||s?`/codex-local-image?path=${encodeURIComponent(n)}`:n}function z(e){const n=e.trim();if(!n)return"#";const t=u=>u.startsWith("/")||/^[A-Za-z]:[\\/]/u.test(u),s=ye(n),i=(s==null?void 0:s.path)??n,a=qt(i,v.cwd);if(t(a)){const u=a.startsWith("/")?a:`/${a}`;return`/codex-local-browse${encodeURI(u)}`}return"#"}const Cs=L(()=>({left:`${String(St.value)}px`,top:`${String(It.value)}px`}));function $s(e){const n=e.trim();if(!n)return"";try{const t=new URL(n,window.location.href);return t.pathname.startsWith("/codex-local-browse")?`${`/codex-local-edit${t.pathname.slice(19)}`}${t.search}${t.hash}`:""}catch{return""}}function Ls(e){const n=e.target;if(!(n instanceof Element))return;const t=n.closest("a.message-file-link");if(!(t instanceof HTMLAnchorElement))return;const s=(t.getAttribute("href")??"").trim();!s||s==="#"||(e.preventDefault(),e.stopPropagation(),Ye.value=s,Qe.value=$s(s),St.value=e.clientX,It.value=e.clientY,pe.value=!0)}function X(){pe.value&&(pe.value=!1)}function Ts(){const e=Ye.value;X(),!(!e||e==="#")&&window.open(e,"_blank","noopener,noreferrer")}function Ms(){const e=Qe.value;X(),!(!e||e==="#")&&window.open(e,"_blank","noopener,noreferrer")}async function Ss(){const e=Ye.value;if(X(),!(!e||e==="#"))try{await navigator.clipboard.writeText(e)}catch{const n=document.createElement("textarea");n.value=e,n.setAttribute("readonly","true"),n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}}function on(e){if(!pe.value)return;const n=Mt.value;if(!n){X();return}const t=e.target;t instanceof Node&&n.contains(t)||X()}function an(){X()}function rn(e){e.key==="Escape"&&X()}function ln(e){return e.replace(/\r\n/gu,`
30
- `)}function R(e){var t;return(((t=e.match(/^\s*/u))==null?void 0:t[0])??"").replace(/\t/gu," ").length}function cn(e,n){if(n<=0)return e.trimStart();let t=0,s=0;for(;t<e.length&&s<n;){const i=e[t];s+=i===" "?4:1,t+=1}return e.slice(t)}function H(e){return e.trim().length===0}function mt(e){const n=e.match(/^\s{0,3}(#{1,6})\s+(.+)$/u);return n?{level:n[1].length,value:n[2].trim()}:null}function De(e){const n=e.match(/^\s{0,3}>\s?(.*)$/u);return n?n[1]??"":null}function _e(e){var t;const n=e.match(/^\s*[-*+]\s+(.+)$/u);return((t=n==null?void 0:n[1])==null?void 0:t.trim())??null}function Is(e){var t;const n=e.match(/^(\s*)[-*+]\s+(.+)$/u);return n?{indent:R(n[1]??""),text:((t=n[2])==null?void 0:t.trim())??""}:null}function we(e){var t;const n=e.match(/^\s*[-*+]\s+\[([ xX])\]\s+(.+)$/u);return n?{checked:(n[1]??" ").toLowerCase()==="x",text:((t=n[2])==null?void 0:t.trim())??""}:null}function un(e){var t;const n=e.match(/^(\s*)[-*+]\s+\[([ xX])\]\s+(.+)$/u);return n?{indent:R(n[1]??""),item:{checked:(n[2]??" ").toLowerCase()==="x",text:((t=n[3])==null?void 0:t.trim())??""}}:null}function dn(e){var t;const n=e.match(/^(\s*)(\d+)[.)]\s+(.+)$/u);return n?{indent:R(n[1]??""),start:Number.parseInt(n[2]??"1",10)||1,text:((t=n[3])==null?void 0:t.trim())??""}:null}function vt(e){var n;return((n=dn(e))==null?void 0:n.text)??null}function hn(e){return dn(e)}function kt(e){const n=e.trim();if(!n.includes("|"))return null;let t=n;t.startsWith("|")&&(t=t.slice(1)),t.endsWith("|")&&(t=t.slice(0,-1));const s=[];let i="",a=0;for(let u=0;u<t.length;u+=1){const o=t[u];if(o==="\\"&&t[u+1]==="|"){i+="|",u+=1;continue}if(o==="`"){let h=1;for(;t[u+h]==="`";)h+=1;i+=t.slice(u,u+h),a===0?a=h:a===h&&(a=0),u+=h-1;continue}if(o==="|"&&a===0){s.push(i.trim()),i="";continue}i+=o}return s.push(i.trim()),s.some(u=>u.length>0)?s:null}function Ps(e){const n=kt(e);if(!n||n.length===0)return null;const t=n.map(s=>{const i=s.replace(/\s+/gu,"");if(!/^:?-{3,}:?$/u.test(i))return null;const a=i.startsWith(":"),u=i.endsWith(":");return a&&u?"center":u?"right":a?"left":null});return t.every((s,i)=>s!==null||/^-+$/u.test(n[i].replace(/\s+/gu,"")))?t:null}function fn(e,n){return e.length===n?e:e.length>n?e.slice(0,n):[...e,...Array.from({length:n-e.length},()=>"")]}function pn(e,n){var m;if(n+1>=e.length)return null;const t=e[n],s=e[n+1],i=kt(t),a=Ps(s);if(!i||!a||i.length!==a.length)return null;const u=t.trim();if(!u.startsWith("|")&&(((m=u.match(/\|/gu))==null?void 0:m.length)??0)<2)return null;const o=i.length,h=[];let c=n+2;for(;c<e.length&&!H(e[c]);){const p=kt(e[c]);if(!p)break;h.push(fn(p,o)),c+=1}return{kind:"table",headers:fn(i,o),rows:h,alignments:a}}function As(e){return H(e)||Ve(e)!==null||gt(e)||mt(e)!==null||De(e)!==null||we(e)!==null||_e(e)!==null||vt(e)!==null}function Es(e,n,t=-1){const s=[];let i=n;for(;i<e.length&&!(As(e[i])||t>=0&&R(e[i])<=t);)s.push(t>=0?cn(e[i],t+1):e[i]),i+=1;const a=s.join(`
31
- `).trim();return a?{value:a,nextIndex:i}:null}function mn(e,n){for(let t=n;t<e.length;t+=1)if(!H(e[t]))return t;return-1}function Bs(e,n,t,s=null,i=!1){const a=[];let u=n;for(;u<e.length;){const o=e[u];if(H(o)){const p=mn(e,u+1);if(p===-1){a.push(""),u=e.length;break}const y=s==null?void 0:s(e[p]);if(y&&y.indent===t||R(e[p])<=t)break;a.push(""),u+=1;continue}const h=s==null?void 0:s(o);if(h&&h.indent===t)break;const c=R(o),m=i&&(we(o)!==null||_e(o)!==null);if(c<=t&&!m)break;a.push(c>t?cn(o,t+1):o.trimStart()),u+=1}for(;a.length>0&&H(a[0]);)a.shift();for(;a.length>0&&H(a[a.length-1]);)a.pop();return a.length===0?null:{blocks:Ne(a.join(`
32
- `)),nextIndex:u}}function vn(e,n,t,s=!1){const i=[];let a=n;const u=t(e[n]);if(!u)return null;const o=u.indent;for(;a<e.length;){const h=t(e[a]);if(h===null||h.indent!==o)break;const c=[h.text],m=[];for(a+=1;a<e.length;){if(H(e[a])){const _=mn(e,a+1);if(_===-1){a=e.length;break}const P=t(e[_]);if(P&&P.indent===o){a=_;break}if(R(e[_])<=o){a=_;break}a+=1;continue}const p=t(e[a]);if(p&&p.indent===o)break;const y=R(e[a])>o,x=s&&(we(e[a])!==null||_e(e[a])!==null);if(y||x){const _=Bs(e,a,o,t,s);if(_){m.push(..._.blocks),a=_.nextIndex;continue}}if(R(e[a])<=o)break;const j=Es(e,a,o);if(!j)break;c.push(j.value),a=j.nextIndex}i.push(m.length>0?{paragraphs:c,children:m}:{paragraphs:c})}return i.length>0?{items:i,nextIndex:a}:null}function gt(e){return/^\s{0,3}(?:-{3,}|\*{3,}|_{3,})\s*$/u.test(e.trim())}function Ve(e){const n=e.match(/^\s{0,3}(```+|~~~+)\s*([^\s`~][^`]*)?\s*$/u);return n?{marker:n[1],language:(n[2]??"").trim()}:null}function Ne(e){var a;const t=ln(e).split(`
33
- `),s=[];let i=0;for(;i<t.length;){if(H(t[i])){i+=1;continue}const u=Ve(t[i]);if(u){i+=1;const _=[];for(;i<t.length;){if(t[i].trim()===u.marker){i+=1;break}_.push(t[i]),i+=1}s.push({kind:"codeBlock",language:u.language,value:_.join(`
34
- `)});continue}if(gt(t[i])){s.push({kind:"thematicBreak"}),i+=1;continue}const o=mt(t[i]);if(o){s.push({kind:"heading",level:o.level,value:o.value}),i+=1;continue}if(De(t[i])!==null){const _=[];for(;i<t.length;){const P=De(t[i]);if(P===null)break;_.push(P),i+=1}s.push({kind:"blockquote",value:_.join(`
35
- `).trim()});continue}const c=pn(t,i);if(c){s.push(c),i+=2+c.rows.length;continue}if(we(t[i])!==null){const _=[],P=((a=un(t[i]))==null?void 0:a.indent)??0;for(;i<t.length;){const xt=un(t[i]);if(xt===null||xt.indent!==P)break;_.push(xt.item),i+=1}if(_.length>0){s.push({kind:"taskList",items:_});continue}}const p=_e(t[i]);if(p!==null){const _=vn(t,i,Is);if(_){s.push({kind:"unorderedList",items:_.items}),i=_.nextIndex;continue}if(p.length>0){s.push({kind:"unorderedList",items:[{paragraphs:[p]}]}),i+=1;continue}}const y=vt(t[i]);if(y!==null){const _=hn(t[i]),P=vn(t,i,hn,!0);if(P){s.push({kind:"orderedList",items:P.items,start:(_==null?void 0:_.start)??1}),i=P.nextIndex;continue}if(y.length>0){s.push({kind:"orderedList",items:[{paragraphs:[y]}],start:(_==null?void 0:_.start)??1}),i+=1;continue}}const x=[];for(;i<t.length&&!(H(t[i])||Ve(t[i])||gt(t[i])||mt(t[i])||pn(t,i)||De(t[i])!==null||we(t[i])!==null||_e(t[i])!==null||vt(t[i])!==null);)x.push(t[i]),i+=1;const j=x.join(`
36
- `).trim();j&&s.push({kind:"paragraph",value:j})}return s}function Fs(e){if(!e.includes("![")||!e.includes("]("))return Ne(e);const n=[],t=/!\[([^\]]*)\]\(([^)\n]+)\)/gu;let s=0;for(const i of e.matchAll(t)){const[a,u,o]=i;if(typeof i.index!="number")continue;const h=i.index,c=h+a.length,m=xs(o.trim());m&&(h>s&&n.push(...Ne(e.slice(s,h))),n.push({kind:"image",url:m,alt:u.trim(),markdown:a}),s=c)}return s<e.length&&n.push(...Ne(e.slice(s))),n}function kn(e){const t=ln(e).split(`
37
- `),s=[];let i=0,a=0;const u=o=>{if(o<=a)return;const h=t.slice(a,o).join(`
38
- `);s.push(...Fs(h))};for(;i<t.length;){const o=Ve(t[i]);if(!o){i+=1;continue}u(i),i+=1;const h=[];for(;i<t.length;){if(t[i].trim()===o.marker){i+=1;break}h.push(t[i]),i+=1}s.push({kind:"codeBlock",language:o.language,value:h.join(`
39
- `)}),a=i}return u(t.length),s.length>0?s:[{kind:"paragraph",value:e}]}function Rs(e){const n=ke.get(e.id);if(n&&n.text===e.text&&n.cwd===v.cwd)return ke.delete(e.id),ke.set(e.id,n),n.blocks;const t=kn(e.text);return Fe(ke,e.id,{text:e.text,cwd:v.cwd,blocks:t},Br).blocks}function $(e){return e.replace(/&/gu,"&amp;").replace(/</gu,"&lt;").replace(/>/gu,"&gt;").replace(/"/gu,"&quot;").replace(/'/gu,"&#39;")}function gn(e){var t;const n=((t=e.trim().split(/\s+/u)[0])==null?void 0:t.toLowerCase())??"";return n?Dt[n]??n:""}function Hs(e,n){const t=gn(e);if(!t)return $(n);const s=Ee.value;if(!s)return $(n);try{if(s.getLanguage(t))return s.highlight(n,{language:t,ignoreIllegals:!0}).value}catch{}return $(n)}function yn(e,n){const t=`${ne.value}\0${gn(e)}\0${e}\0${n}`,s=ie.get(t);return s!==void 0?(ie.delete(t),ie.set(t,s),s):Fe(ie,t,Hs(e,n),Hr)}function J(e){return Z(e).map(n=>n.kind==="text"?$(n.value):n.kind==="bold"?`<strong class="message-bold-text">${$(n.value)}</strong>`:n.kind==="italic"?`<em class="message-italic-text">${$(n.value)}</em>`:n.kind==="strikethrough"?`<s class="message-strikethrough-text">${$(n.value)}</s>`:n.kind==="file"?`<a class="message-file-link" href="${$(z(n.path))}" target="_blank" rel="noopener noreferrer" title="${$(n.path)}">${$(n.displayPath)}</a>`:n.kind==="url"?`<a class="message-file-link" href="${$(n.href)}" target="_blank" rel="noopener noreferrer" title="${$(n.href)}">${$(n.value)}</a>`:`<code class="message-inline-code">${$(n.value)}</code>`).join("")}function Ws(e){return e.paragraphs.map(n=>`<div class="message-list-item-text message-list-item-paragraph">${J(n)}</div>`).join("")}function Ue(e){var s;const n=Ws(e),t=((s=e.children)==null?void 0:s.map(i=>wn(i)).join(""))??"";return n+t}function _n(e){return e?` style="text-align:${e}"`:""}function wn(e){if(e.kind==="paragraph")return`<p class="message-text">${J(e.value)}</p>`;if(e.kind==="heading"){const n=Math.min(6,Math.max(1,Math.trunc(e.level))),t=Kt(n),s=`message-heading ${Gt(n)}`;return`<${t} class="${s}">${J(e.value)}</${t}>`}if(e.kind==="blockquote")return`<blockquote class="message-blockquote">${J(e.value)}</blockquote>`;if(e.kind==="unorderedList")return`<ul class="message-list message-list-unordered">${e.items.map(t=>`<li class="message-list-item"><div class="message-list-item-content">${Ue(t)}</div></li>`).join("")}</ul>`;if(e.kind==="taskList")return`<ul class="message-list message-task-list">${e.items.map(t=>`<li class="message-task-item"><span class="message-task-checkbox" data-checked="${t.checked?"true":"false"}">${t.checked?"☑":"☐"}</span><div class="message-list-item-text">${J(t.text)}</div></li>`).join("")}</ul>`;if(e.kind==="orderedList"){const n=e.items.map(t=>`<li class="message-list-item"><div class="message-list-item-content">${Ue(t)}</div></li>`).join("");return`<ol class="message-list message-list-ordered" start="${e.start}">${n}</ol>`}if(e.kind==="table"){const n=e.headers.map((i,a)=>`<th class="message-table-head-cell"${_n(e.alignments[a]??null)}>${J(i)}</th>`).join(""),t=e.rows.map(i=>'<tr class="message-table-body-row">'+i.map((a,u)=>`<td class="message-table-cell"${_n(e.alignments[u]??null)}>${J(a)}</td>`).join("")+"</tr>").join(""),s=t?`<tbody>${t}</tbody>`:"";return`<div class="message-table-wrap"><table class="message-table"><thead><tr>${n}</tr></thead>${s}</table></div>`}return e.kind==="codeBlock"?`<div class="message-code-block">${e.language?`<div class="message-code-language">${$(e.language)}</div>`:""}<pre class="message-code-pre"><code class="hljs">${yn(e.language,e.value)}</code></pre></div>`:e.kind==="thematicBreak"?'<hr class="message-divider">':`<img class="message-image-preview message-markdown-image" src="${$(e.url)}" alt="${$(e.alt||"Embedded message image")}" loading="lazy">`}function yt(e){const n=`${v.cwd}\0${ne.value}\0${e}`,t=se.get(n);if(t&&t.text===e&&t.cwd===v.cwd&&t.highlightVersion===ne.value)return se.delete(n),se.set(n,t),t.html;const s=kn(e).map(i=>wn(i)).join("");return Fe(se,n,{text:e,cwd:v.cwd,highlightVersion:ne.value,html:s},Rr).html}function Os(){const e=V.value,n=jt.value;!e||!n||(e.scrollTop=e.scrollHeight,n.scrollIntoView({block:"end"}))}function bn(e){return e.scrollHeight-(e.scrollTop+e.clientHeight)<=Er}function qe(e){if(!v.activeThreadId)return;const n=Math.max(e.scrollHeight-e.clientHeight,0),t=n>0?Math.min(Math.max(e.scrollTop/n,0),1):1;Pe("updateScrollState",{threadId:v.activeThreadId,state:{scrollTop:e.scrollTop,isAtBottom:bn(e),scrollRatio:t}})}function zs(){const e=V.value;if(!e)return;if(O.value){Ke();return}const n=v.scrollState;if(!n||n.isAtBottom){qe(e);return}const t=Math.max(e.scrollHeight-e.clientHeight,0),s=n.scrollTop;e.scrollTop=Math.min(Math.max(s,0),t),qe(e)}function Ke(){const e=V.value;e&&(Os(),qe(e))}function _t(){return O.value}function xn(){if(!_t()){Ae=0,A=0;return}if(Ke(),Ae-=1,Ae<=0){A=0;return}A=requestAnimationFrame(xn)}function Ge(e=6){_t()&&(A&&(cancelAnimationFrame(A),A=0),Ae=Math.max(e,1),A=requestAnimationFrame(xn))}function Cn(){Ge(3)}function $n(){O.value=!0,Ke(),Ge(4)}async function Ln(){const e=V.value;if(!e||!ct.value||K.value)return;K.value=!0;const n=v.activeThreadId,t=e.scrollHeight,s=e.scrollTop;F.value=Math.max(0,F.value-Wr),await Ct(),v.activeThreadId===n&&(e.scrollTop=s+(e.scrollHeight-t),K.value=!1)}be({jumpToLatest:$n});function js(){if(!_t())return;const e=V.value;if(!e)return;const n=e.querySelectorAll("img.message-image-preview");for(const t of n)t.complete||Vt.has(t)||(Vt.add(t),t.addEventListener("load",Cn,{once:!0}),t.addEventListener("error",Cn,{once:!0}))}async function wt(){return ve||(ve=Ct().then(()=>new Promise(e=>{U&&cancelAnimationFrame(U),U=requestAnimationFrame(()=>{U=0,ve=null,zs(),js(),Ge(),e()})})),ve)}function Ds(){ke.clear(),ge.clear(),se.clear(),ie.clear()}Y(()=>v.messages,async e=>{if(v.isLoading)return;const n=new Set(e.filter(t=>t.messageType==="commandExecution"&&t.commandExecution).map(t=>t.id));de.value=Ie(de.value,n),W.value=Ie(W.value,n),he.value=Ie(he.value,new Set(Object.keys(it.value))),fe.value=Ie(fe.value,new Set([...Object.keys(We.value),...Object.keys(ht.value)])),O.value?F.value=Math.max(0,e.length-Tt):F.value=Math.min(F.value,Math.max(0,e.length-1)),await wt()}),Y(()=>v.messages.some(e=>e.text.includes("```")),e=>{!e||Ee.value||Xn()},{immediate:!0}),Y(st,(e,n)=>{if(!n||n===e||!W.value.has(n))return;const t=new Set(W.value);t.delete(n),W.value=t}),Y(()=>v.pendingRequests,async()=>{v.isLoading||await wt()},{deep:!0}),Y(()=>v.liveOverlay,async e=>{e&&O.value&&(await Ct(),Ke(),Ge(8))},{deep:!0}),Y(()=>v.isLoading,async e=>{e||(F.value=Math.max(0,v.messages.length-Tt),await wt())}),Y(()=>v.activeThreadId,()=>{Kn.value=null,O.value=!0,me.value="",K.value=!1,F.value=Math.max(0,v.messages.length-Tt)},{flush:"post"});function Vs(){const e=V.value;!e||v.isLoading||(O.value=bn(e),qe(e),ct.value&&!K.value&&e.scrollTop<Or&&Ln())}const bt=b(new Set);function Tn(e,n){return`${e}:${n}`}function Ns(e,n){return bt.value.has(Tn(e,n))}function Us(e,n){const t=new Set(bt.value);t.add(Tn(e,n)),bt.value=t,Nt.value+=1}function Mn(e){me.value=e}function Sn(){me.value=""}return Gs(()=>{window.addEventListener("pointerdown",on),window.addEventListener("blur",an),window.addEventListener("keydown",rn)}),Zs(()=>{Ds(),U&&(cancelAnimationFrame(U),U=0),A&&(cancelAnimationFrame(A),A=0),q&&(clearTimeout(q),q=null),window.removeEventListener("pointerdown",on),window.removeEventListener("blur",an),window.removeEventListener("keydown",rn)}),(e,n)=>(r(),l("section",{class:"conversation-root",onContextmenuCapture:Ls},[M.isLoading?(r(),l("p",li,"Loading messages...")):M.messages.length===0&&M.pendingRequests.length===0&&!M.liveOverlay?(r(),l("p",ci," No messages in this thread yet. ")):(r(),l("ul",{key:2,ref_key:"conversationListRef",ref:V,class:"conversation-list",onScroll:Vs},[ct.value?(r(),l("li",ui,[d("button",{type:"button",class:"load-more-button",disabled:K.value,onClick:Ln},f(K.value?"Loading…":"Load earlier messages"),9,di)])):k("",!0),(r(!0),l(g,null,w(Gn.value,t=>{var s,i,a,u;return r(),l(g,{key:t.id},[!Wn.value.has(t.id)&&!as.value.has(t.id)?(r(),l("li",{key:0,class:"conversation-item","data-role":t.role,"data-message-type":t.messageType||""},[E(t)?(r(),l("div",fi,[d("div",pi,[Le(t).length>0?(r(),l("button",{key:0,type:"button",class:C(["cmd-row cmd-row-group cmd-compact",[Se(t),{"cmd-expanded":lt(t)}]]),onClick:o=>zn(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":lt(t)}])},"▶",2),d("span",vi,f(jn(t)),1),d("span",ki,f(Dn(t)),1)],10,mi)):k("",!0),Le(t).length>0?(r(),l("div",{key:1,class:C(["cmd-group-wrap",{"cmd-group-visible":lt(t)}])},[d("div",gi,[(r(!0),l(g,null,w(Rt(t),o=>{var h,c;return r(),l("div",{key:`grouped-cmd-${o.id}`,class:"worked-cmd-item"},[d("button",{type:"button",class:C(["cmd-row",[Se(o),{"cmd-expanded":B(o),"cmd-compact":!0}]]),onClick:m=>rt(o)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":B(o)}])},"▶",2),d("code",_i,f(((h=o.commandExecution)==null?void 0:h.command)||"(command)"),1),d("span",wi,f(Me(o)),1)],10,yi),d("div",{class:C(["cmd-output-wrap",{"cmd-output-visible":B(o)}])},[d("div",bi,[d("pre",{class:C(["cmd-output",{"cmd-output-condensed":at(o)}]),textContent:f(((c=o.commandExecution)==null?void 0:c.aggregatedOutput)||"(no output)")},null,10,xi)])],2)])}),128))])],2)):(r(),l(g,{key:2},[d("button",{type:"button",class:C(["cmd-row",[Se(t),{"cmd-expanded":B(t),"cmd-compact":ot(t)}]]),onClick:o=>rt(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":B(t)}])},"▶",2),d("code",$i,f(((s=t.commandExecution)==null?void 0:s.command)||"(command)"),1),d("span",Li,f(Me(t)),1)],10,Ci),d("div",{class:C(["cmd-output-wrap",{"cmd-output-visible":B(t)}])},[d("div",Ti,[d("pre",{class:C(["cmd-output",{"cmd-output-condensed":at(t)}]),textContent:f(((i=t.commandExecution)==null?void 0:i.aggregatedOutput)||"(no output)")},null,10,Mi)])],2)],64))])])):nt(t)?(r(),l("div",{key:1,class:"message-row","data-role":t.role,"data-message-type":t.messageType||""},[d("div",{class:"message-stack","data-role":t.role},[d("article",{class:"message-body","data-role":t.role},[le(t)?(r(),l("section",Ai,[d("button",{type:"button",class:C(["cmd-row cmd-row-group cmd-compact file-change-summary-row",{"cmd-expanded":te(t)}]),onClick:o=>Wt(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":te(t)}])},"▶",2),d("span",Bi,f(en(le(t))),1),d("span",Fi,[(r(!0),l(g,null,w(tn(le(t)),o=>(r(),l("span",{key:`summary-status:${t.id}:${o.tone}:${o.label}`,class:"file-change-signed-count","data-tone":o.tone},f(o.label),9,Ri))),128))])],10,Ei),d("div",{class:C(["cmd-group-wrap",{"cmd-group-visible":te(t)}])},[d("div",Hi,[d("ul",Wi,[(r(!0),l(g,null,w(((a=le(t))==null?void 0:a.changes)??[],o=>(r(),l("li",{key:`file-change:${t.id}:${o.path}:${o.movedToPath||""}`,class:"file-change-item"},[d("span",{class:"file-change-badge","data-operation":Oe(o)},f(ce(o)),9,Oi),d("button",{type:"button",class:"file-change-path-button",title:o.path,onClick:h=>Te(le(t),o)},f(S(o.path)),9,zi),o.movedToPath?(r(),l("span",ji,"→")):k("",!0),o.movedToPath?(r(),l("button",{key:1,type:"button",class:"file-change-path-button",title:o.movedToPath,onClick:h=>Te(le(t),o)},f(S(o.movedToPath)),9,Di)):k("",!0),o.addedLineCount>0||o.removedLineCount>0?(r(),l("span",Vi,[(r(!0),l(g,null,w(Qt(o),h=>(r(),l("span",{key:`change-delta:${t.id}:${o.path}:${h.tone}:${h.label}`,class:"file-change-signed-count","data-tone":h.tone},f(h.label),9,Ni))),128))])):k("",!0)]))),128))])])],2)])):k("",!0)],8,Pi)],8,Ii)],8,Si)):(r(),l("div",{key:2,class:"message-row","data-role":t.role,"data-message-type":t.messageType||""},[d("div",{class:"message-stack","data-role":t.role},[d("article",{class:"message-body","data-role":t.role},[t.images&&t.images.length>0?(r(),l("ul",{key:0,class:C(["message-image-list",{"message-generated-image-list":t.messageType==="imageView"}]),"data-role":t.role},[(r(!0),l(g,null,w(t.images,o=>(r(),l("li",{key:o,class:"message-image-item"},[d("button",{class:"message-image-button",type:"button",onClick:h=>Mn(o)},[d("img",{class:C(["message-image-preview",{"message-generated-image-preview":t.messageType==="imageView"}]),src:o,alt:t.messageType==="imageView"?"Generated image":"Message image preview",loading:"lazy"},null,10,Xi)],8,Zi)]))),128))],10,Gi)):k("",!0),t.fileAttachments&&t.fileAttachments.length>0?(r(),l("div",Ji,[(r(!0),l(g,null,w(t.fileAttachments,o=>(r(),l("span",{key:`${t.id}:${o.path}`,class:"message-file-chip"},[n[5]||(n[5]=d("span",{class:"message-file-chip-icon"},"📄",-1)),d("a",{class:"message-file-link message-file-chip-name",href:z(o.path),target:"_blank",rel:"noopener noreferrer",title:o.path},f(o.label),9,Yi)]))),128))])):k("",!0),t.text.length>0?(r(),l("article",{key:2,class:"message-card","data-role":t.role},[t.messageType==="worked"?(r(),l("div",eo,[d("button",{type:"button",class:"worked-separator",onClick:o=>Vn(t)},[n[6]||(n[6]=d("span",{class:"worked-separator-line","aria-hidden":"true"},null,-1)),d("span",{class:C(["worked-chevron",{"worked-chevron-open":Ht(t)}])},"▶",2),d("p",no,f(t.text),1),n[7]||(n[7]=d("span",{class:"worked-separator-line","aria-hidden":"true"},null,-1))],8,to),Ht(t)?(r(),l("div",so,[(r(!0),l(g,null,w(qn(M.messages,M.messages.indexOf(t)),o=>{var h,c;return r(),l("div",{key:`worked-cmd-${o.id}`,class:"worked-cmd-item"},[d("button",{type:"button",class:C(["cmd-row",[Se(o),{"cmd-expanded":B(o),"cmd-compact":ot(o)}]]),onClick:m=>rt(o)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":B(o)}])},"▶",2),d("code",oo,f(((h=o.commandExecution)==null?void 0:h.command)||"(command)"),1),d("span",ao,f(Me(o)),1)],10,io),d("div",{class:C(["cmd-output-wrap",{"cmd-output-visible":B(o)}])},[d("div",ro,[d("pre",{class:C(["cmd-output",{"cmd-output-condensed":at(o)}]),textContent:f(((c=o.commandExecution)==null?void 0:c.aggregatedOutput)||"(no output)")},null,10,lo)])],2)])}),128))])):k("",!0)])):tt(t)?(r(),l("div",{key:1,class:"plan-card","data-streaming":t.messageType==="plan.live"},[d("div",uo,[n[8]||(n[8]=d("p",{class:"plan-card-title"},"Plan",-1)),t.messageType==="plan.live"?(r(),l("span",ho,"Updating")):k("",!0)]),Et(t)?(r(),l("div",{key:0,class:"plan-card-explanation plan-card-markdown",innerHTML:yt(Et(t))},null,8,fo)):k("",!0),Bt(t).length>0?(r(),l("ol",po,[(r(!0),l(g,null,w(Bt(t),(o,h)=>(r(),l("li",{key:`${t.id}:plan-step:${h}`,class:"plan-step-item","data-status":o.status},[d("span",{class:"plan-step-status","data-status":o.status},f(On(o.status)),9,vo),d("div",{class:"plan-step-text plan-card-markdown",innerHTML:yt(o.step)},null,8,ko)],8,mo))),128))])):(r(),l("div",{key:2,class:"plan-card-markdown",innerHTML:yt(t.text)},null,8,go)),Rn(t)?(r(),l("div",yo,[d("button",{type:"button",class:"plan-card-implement-button",onClick:o=>Hn(t)}," Implement plan ",8,_o)])):k("",!0)],8,co)):Xs([t.id,t.text,v.cwd,ne.value,Nt.value],()=>(r(),l("div",{key:2,class:"message-text-flow"},[(r(!0),l(g,null,w(Rs(t),(o,h)=>(r(),l(g,{key:`block-${h}`},[o.kind==="paragraph"?(r(),l("p",wo,[(r(!0),l(g,null,w(Z(o.value),(c,m)=>(r(),l(g,{key:`seg-${h}-${m}`},[c.kind==="text"?(r(),l("span",bo,f(c.value),1)):c.kind==="bold"?(r(),l("strong",xo,f(c.value),1)):c.kind==="italic"?(r(),l("em",Co,f(c.value),1)):c.kind==="strikethrough"?(r(),l("s",$o,f(c.value),1)):c.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(c.path),target:"_blank",rel:"noopener noreferrer",title:c.path},f(c.displayPath),9,Lo)):c.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:c.href,target:"_blank",rel:"noopener noreferrer",title:c.href},f(c.value),9,To)):(r(),l("code",Mo,f(c.value),1))],64))),128))])):o.kind==="heading"?(r(),ni(si(Kt(o.level)),{key:1,class:C(["message-heading",Gt(o.level)])},{default:An(()=>[(r(!0),l(g,null,w(Z(o.value),(c,m)=>(r(),l(g,{key:`heading-seg-${h}-${m}`},[c.kind==="text"?(r(),l("span",So,f(c.value),1)):c.kind==="bold"?(r(),l("strong",Io,f(c.value),1)):c.kind==="italic"?(r(),l("em",Po,f(c.value),1)):c.kind==="strikethrough"?(r(),l("s",Ao,f(c.value),1)):c.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(c.path),target:"_blank",rel:"noopener noreferrer",title:c.path},f(c.displayPath),9,Eo)):c.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:c.href,target:"_blank",rel:"noopener noreferrer",title:c.href},f(c.value),9,Bo)):(r(),l("code",Fo,f(c.value),1))],64))),128))]),_:2},1032,["class"])):o.kind==="blockquote"?(r(),l("blockquote",Ro,[(r(!0),l(g,null,w(Z(o.value),(c,m)=>(r(),l(g,{key:`quote-seg-${h}-${m}`},[c.kind==="text"?(r(),l("span",Ho,f(c.value),1)):c.kind==="bold"?(r(),l("strong",Wo,f(c.value),1)):c.kind==="italic"?(r(),l("em",Oo,f(c.value),1)):c.kind==="strikethrough"?(r(),l("s",zo,f(c.value),1)):c.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(c.path),target:"_blank",rel:"noopener noreferrer",title:c.path},f(c.displayPath),9,jo)):c.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:c.href,target:"_blank",rel:"noopener noreferrer",title:c.href},f(c.value),9,Do)):(r(),l("code",Vo,f(c.value),1))],64))),128))])):o.kind==="unorderedList"?(r(),l("ul",No,[(r(!0),l(g,null,w(o.items,(c,m)=>(r(),l("li",{key:`ul-${h}-${m}`,class:"message-list-item"},[d("div",{class:"message-list-item-content",innerHTML:Ue(c)},null,8,Uo)]))),128))])):o.kind==="taskList"?(r(),l("ul",qo,[(r(!0),l(g,null,w(o.items,(c,m)=>(r(),l("li",{key:`task-${h}-${m}`,class:"message-task-item"},[d("span",{class:"message-task-checkbox","data-checked":c.checked},f(c.checked?"☑":"☐"),9,Ko),d("div",Go,[(r(!0),l(g,null,w(Z(c.text),(p,y)=>(r(),l(g,{key:`task-seg-${h}-${m}-${y}`},[p.kind==="text"?(r(),l("span",Zo,f(p.value),1)):p.kind==="bold"?(r(),l("strong",Xo,f(p.value),1)):p.kind==="italic"?(r(),l("em",Jo,f(p.value),1)):p.kind==="strikethrough"?(r(),l("s",Yo,f(p.value),1)):p.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(p.path),target:"_blank",rel:"noopener noreferrer",title:p.path},f(p.displayPath),9,Qo)):p.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:p.href,target:"_blank",rel:"noopener noreferrer",title:p.href},f(p.value),9,ea)):(r(),l("code",ta,f(p.value),1))],64))),128))])]))),128))])):o.kind==="orderedList"?(r(),l("ol",{key:5,class:"message-list message-list-ordered",start:o.start},[(r(!0),l(g,null,w(o.items,(c,m)=>(r(),l("li",{key:`ol-${h}-${m}`,class:"message-list-item"},[d("div",{class:"message-list-item-content",innerHTML:Ue(c)},null,8,sa)]))),128))],8,na)):o.kind==="table"?(r(),l("div",ia,[d("table",oa,[d("thead",null,[d("tr",null,[(r(!0),l(g,null,w(o.headers,(c,m)=>(r(),l("th",{key:`th-${h}-${m}`,class:"message-table-head-cell",style:$t({textAlign:o.alignments[m]??"left"})},[(r(!0),l(g,null,w(Z(c),(p,y)=>(r(),l(g,{key:`th-seg-${h}-${m}-${y}`},[p.kind==="text"?(r(),l("span",aa,f(p.value),1)):p.kind==="bold"?(r(),l("strong",ra,f(p.value),1)):p.kind==="italic"?(r(),l("em",la,f(p.value),1)):p.kind==="strikethrough"?(r(),l("s",ca,f(p.value),1)):p.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(p.path),target:"_blank",rel:"noopener noreferrer",title:p.path},f(p.displayPath),9,ua)):p.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:p.href,target:"_blank",rel:"noopener noreferrer",title:p.href},f(p.value),9,da)):(r(),l("code",ha,f(p.value),1))],64))),128))],4))),128))])]),o.rows.length>0?(r(),l("tbody",fa,[(r(!0),l(g,null,w(o.rows,(c,m)=>(r(),l("tr",{key:`tr-${h}-${m}`,class:"message-table-body-row"},[(r(!0),l(g,null,w(c,(p,y)=>(r(),l("td",{key:`td-${h}-${m}-${y}`,class:"message-table-cell",style:$t({textAlign:o.alignments[y]??"left"})},[(r(!0),l(g,null,w(Z(p),(x,j)=>(r(),l(g,{key:`td-seg-${h}-${m}-${y}-${j}`},[x.kind==="text"?(r(),l("span",pa,f(x.value),1)):x.kind==="bold"?(r(),l("strong",ma,f(x.value),1)):x.kind==="italic"?(r(),l("em",va,f(x.value),1)):x.kind==="strikethrough"?(r(),l("s",ka,f(x.value),1)):x.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(x.path),target:"_blank",rel:"noopener noreferrer",title:x.path},f(x.displayPath),9,ga)):x.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:x.href,target:"_blank",rel:"noopener noreferrer",title:x.href},f(x.value),9,ya)):(r(),l("code",_a,f(x.value),1))],64))),128))],4))),128))]))),128))])):k("",!0)])])):o.kind==="codeBlock"?(r(),l("div",wa,[o.language?(r(),l("div",ba,f(o.language),1)):k("",!0),d("pre",xa,[d("code",{class:"hljs",innerHTML:yn(o.language,o.value)},null,8,Ca)])])):o.kind==="thematicBreak"?(r(),l("hr",$a)):Ns(t.id,h)?(r(),l("p",La,f(o.markdown),1)):(r(),l("button",{key:10,class:"message-image-button",type:"button",onClick:c=>Mn(o.url)},[d("img",{class:"message-image-preview message-markdown-image",src:o.url,alt:o.alt||"Embedded message image",loading:"lazy",onError:c=>Us(t.id,h)},null,40,Ma)],8,Ta))],64))),128))])),n,0)],8,Qi)):k("",!0),re(t)?(r(),l("section",Sa,[d("button",{type:"button",class:C(["cmd-row cmd-row-group cmd-compact file-change-summary-row",{"cmd-expanded":te(t)}]),onClick:o=>Wt(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":te(t)}])},"▶",2),d("span",Pa,f(en(re(t))),1),d("span",Aa,[(r(!0),l(g,null,w(tn(re(t)),o=>(r(),l("span",{key:`summary-status:${t.id}:${o.tone}:${o.label}`,class:"file-change-signed-count","data-tone":o.tone},f(o.label),9,Ea))),128))])],10,Ia),d("div",{class:C(["cmd-group-wrap",{"cmd-group-visible":te(t)}])},[d("div",Ba,[d("ul",Fa,[(r(!0),l(g,null,w(((u=re(t))==null?void 0:u.changes)??[],o=>(r(),l("li",{key:`file-change:inline:${t.id}:${o.path}:${o.movedToPath||""}`,class:"file-change-item"},[d("span",{class:"file-change-badge","data-operation":Oe(o)},f(ce(o)),9,Ra),d("button",{type:"button",class:"file-change-path-button",title:o.path,onClick:h=>Te(re(t),o)},f(S(o.path)),9,Ha),o.movedToPath?(r(),l("span",Wa,"→")):k("",!0),o.movedToPath?(r(),l("button",{key:1,type:"button",class:"file-change-path-button",title:o.movedToPath,onClick:h=>Te(re(t),o)},f(S(o.movedToPath)),9,Oa)):k("",!0),o.addedLineCount>0||o.removedLineCount>0?(r(),l("span",za,[(r(!0),l(g,null,w(Qt(o),h=>(r(),l("span",{key:`change-delta:inline:${t.id}:${o.path}:${h.tone}:${h.label}`,class:"file-change-signed-count","data-tone":h.tone},f(h.label),9,ja))),128))])):k("",!0)]))),128))])])],2)])):k("",!0),Jt(t)||sn(t)?(r(),l("div",{key:4,class:"message-toolbar","data-role":t.role},[sn(t)?(r(),l("button",{key:0,type:"button",class:"message-edit-button","aria-label":"Edit this message",title:"Edit this message",onClick:o=>_s(t.id)},[Q(Js,{class:"icon-svg message-edit-icon"}),n[9]||(n[9]=d("span",{class:"message-edit-label"},"Edit message",-1))],8,Va)):k("",!0),ns(t)?(r(),l("button",{key:1,type:"button",class:"message-fork-button","aria-label":"Fork thread from this response",title:"Fork thread from this response",onClick:o=>ys(t.id)},[Q(Ys,{class:"icon-svg message-fork-icon"}),n[10]||(n[10]=d("span",{class:"message-fork-label"},"Fork",-1))],8,Na)):k("",!0),Jt(t)?(r(),l("button",{key:2,type:"button",class:"message-copy-button","data-copied":N.value===t.id,"aria-label":N.value===t.id?"Response copied":"Copy response",title:N.value===t.id?"Response copied":"Copy response",onClick:o=>gs(t.id)},[Q(ri,{class:"icon-svg message-copy-icon"}),d("span",qa,f(N.value===t.id?"Copied":"Copy"),1)],8,Ua)):k("",!0)],8,Da)):k("",!0)],8,Ki)],8,qi)],8,Ui))],8,hi)):k("",!0)],64)}),128)),M.liveOverlay?(r(),l("li",Ka,[d("div",Ga,[d("div",Za,[d("article",Xa,[d("p",Ja,f(M.liveOverlay.activityLabel),1),M.liveOverlay.reasoningText?(r(),l("p",Ya,f(M.liveOverlay.reasoningText),1)):k("",!0),M.liveOverlay.errorText?(r(),l("p",Qa,f(M.liveOverlay.errorText),1)):k("",!0)])])])])):k("",!0),d("li",{ref_key:"bottomAnchorRef",ref:jt,class:"conversation-bottom-anchor"},null,512)],544)),Zn.value?(r(),l("button",{key:3,type:"button",class:"jump-to-latest-button",title:"Jump to latest","aria-label":"Jump to latest output",onClick:$n},[Q(Qs,{class:"icon-svg jump-to-latest-icon"})])):k("",!0),me.value.length>0?(r(),l("div",{key:4,class:"image-modal-backdrop",onClick:Sn},[d("div",{class:"image-modal-content",onClick:n[1]||(n[1]=Ze(()=>{},["stop"]))},[d("button",{class:"image-modal-close",type:"button","aria-label":"Close image preview",onClick:Sn},[Q(Pn,{class:"icon-svg"})]),d("img",{class:"image-modal-image",src:me.value,alt:"Expanded message image"},null,8,er)])])):k("",!0),pe.value?(r(),l("div",{key:5,ref_key:"fileLinkContextMenuRef",ref:Mt,class:"file-link-context-menu",style:$t(Cs.value),onClick:n[2]||(n[2]=Ze(()=>{},["stop"]))},[d("button",{type:"button",class:"file-link-context-menu-item",onClick:Ts}," Open link "),d("button",{type:"button",class:"file-link-context-menu-item",onClick:Ss}," Copy link "),Qe.value?(r(),l("button",{key:0,type:"button",class:"file-link-context-menu-item",onClick:Ms}," Edit file ")):k("",!0)],4)):k("",!0),I.value?(r(),l("div",{key:6,class:"diff-viewer-backdrop",onClick:Ot},[d("div",{class:"diff-viewer-shell",onClick:n[4]||(n[4]=Ze(()=>{},["stop"]))},[Lt(Ce)?k("",!0):(r(),l("aside",tr,[d("div",nr,[n[11]||(n[11]=d("p",{class:"diff-viewer-sidebar-title"},"Changed files",-1)),d("p",sr,f(ze(ue.value.length)),1)]),d("div",ir,[(r(!0),l(g,null,w(ue.value,t=>(r(),l("button",{key:`diff-viewer:${T(t)}`,type:"button",class:"diff-viewer-file-button","data-active":T(t)===T(I.value),onClick:s=>zt(t)},[d("span",{class:"file-change-badge","data-operation":Oe(t)},f(ce(t)),9,ar),d("span",rr,[ee(f(S(t.path))+" ",1),t.movedToPath?(r(),l(g,{key:0},[ee(" → "+f(S(t.movedToPath)),1)],64)):k("",!0)]),G(t)?(r(),l("span",lr,f(G(t)),1)):k("",!0)],8,or))),128))])])),d("section",cr,[d("div",ur,[d("div",dr,[d("p",hr,[ee(f(S(I.value.path))+" ",1),I.value.movedToPath?(r(),l(g,{key:0},[ee(" → "+f(S(I.value.movedToPath)),1)],64)):k("",!0)]),d("p",fr,[ee(f(ce(I.value))+" ",1),G(I.value)?(r(),l("span",pr," · "+f(G(I.value)),1)):k("",!0)])]),d("div",mr,[Lt(Ce)?(r(),l("button",{key:0,type:"button",class:"diff-viewer-mobile-files-button",onClick:Nn},f(ze(ue.value.length)),1)):k("",!0),d("button",{class:"image-modal-close diff-viewer-close",type:"button","aria-label":"Close diff viewer",onClick:Ot},[Q(Pn,{class:"icon-svg"})])])]),ms(I.value)?(r(),l("div",kr,[d("div",gr,[d("span",yr,f(cs(I.value)||"diff"),1)]),d("div",_r,[(r(!0),l(g,null,w(ps.value,t=>(r(),l("div",{key:t.key,class:"diff-viewer-line","data-kind":t.kind},[d("span",br,f(t.oldLine??""),1),d("span",xr,f(t.newLine??""),1),d("span",Cr,f(vs(t)),1),d("code",{class:"diff-viewer-line-code",innerHTML:$(t.text)||" "},null,8,$r)],8,wr))),128))])])):(r(),l("div",vr,[...n[12]||(n[12]=[d("p",{class:"diff-viewer-empty-title"},"No diff available",-1),d("p",{class:"diff-viewer-empty-text"},"This summary was restored from the final answer text, but the thread history does not include patch diff content for this file.",-1)])]))]),Q(ei,{name:"diff-viewer-sheet"},{default:An(()=>[Lt(Ce)&&D.value?(r(),l("div",{key:0,class:"diff-viewer-mobile-sheet-backdrop",onClick:Un},[d("div",{class:"diff-viewer-mobile-sheet",onClick:n[3]||(n[3]=Ze(()=>{},["stop"]))},[n[14]||(n[14]=d("div",{class:"diff-viewer-mobile-sheet-handle","aria-hidden":"true"},null,-1)),d("div",Lr,[n[13]||(n[13]=d("p",{class:"diff-viewer-sidebar-title"},"Changed files",-1)),d("p",Tr,f(ze(ue.value.length)),1)]),d("div",Mr,[(r(!0),l(g,null,w(ue.value,t=>(r(),l("button",{key:`diff-viewer-sheet:${T(t)}`,type:"button",class:"diff-viewer-file-button","data-active":T(t)===T(I.value),onClick:s=>zt(t)},[d("span",{class:"file-change-badge","data-operation":Oe(t)},f(ce(t)),9,Ir),d("span",Pr,[ee(f(S(t.path))+" ",1),t.movedToPath?(r(),l(g,{key:0},[ee(" → "+f(S(t.movedToPath)),1)],64)):k("",!0)]),G(t)?(r(),l("span",Ar,f(G(t)),1)):k("",!0)],8,Sr))),128))])])])):k("",!0)]),_:1})])])):k("",!0)],32))}}),Dr=En(zr,[["__scopeId","data-v-94e77282"]]);export{Dr as default};