@easbot/skills 0.3.9 → 0.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import {a,d,c,e,k as k$1,h,i,j,b as b$1}from'./chunk-ZEMGS5WR.mjs';import {join,dirname,resolve,normalize,sep,relative,basename,isAbsolute,extname}from'path';import Di from'simple-git';import {mkdtemp,rm,readFile,writeFile,readdir,mkdir,cp,access,stat,lstat,realpath,readlink,symlink}from'fs/promises';import {homedir,tmpdir,platform}from'os';import {execFile,execSync,spawn,spawnSync}from'child_process';import {promisify,stripVTControlCharacters}from'util';import {createHash}from'crypto';import {xdgConfig,xdgState,xdgData,xdgCache}from'xdg-basedir';import {existsSync,readdirSync,readFileSync,mkdirSync,writeFileSync}from'fs';import {determineAgent}from'@vercel/detect-agent';import {gunzipSync,inflateRawSync}from'zlib';import k from'picocolors';import*as y from'@clack/prompts';import*as ps from'readline';import {Writable}from'stream';import {Log,resolveLocaleLang}from'@easbot/utils';import {fileURLToPath}from'url';function Xe(t){if(t.type==="local")return null;let e=t.url.match(/^git@[^:]+:(.+)$/);if(e){let s=e[1];return s=s.replace(/\.git$/,""),s.includes("/")?s:null}if(t.url.startsWith("ssh://"))try{let n=new URL(t.url).pathname.slice(1);return n=n.replace(/\.git$/,""),n.includes("/")?n:null}catch{return null}if(!t.url.startsWith("http://")&&!t.url.startsWith("https://"))return null;try{let n=new URL(t.url).pathname.slice(1);if(n=n.replace(/\.git$/,""),n.includes("/"))return n}catch{}return null}function Xt(t){let e=t.match(/^([^/]+)\/([^/]+)$/);return e?{owner:e[1],repo:e[2]}:null}async function Et(t,e){try{let s=await fetch(`https://api.github.com/repos/${t}/${e}`);return s.ok?(await s.json()).private===!0:null}catch{return null}}function Ps(t){let s=t.replace(/\\/g,"/").split("/");for(let n of s)if(n==="..")throw new Error(`Unsafe subpath: "${t}" contains path traversal segments. Subpaths must not contain ".." components.`);return t}function Ai(t){return isAbsolute(t)||t.startsWith("./")||t.startsWith("../")||t==="."||t===".."||/^[a-zA-Z]:[/\\]/.test(t)}var Ii={"coinbase/agentWallet":"coinbase/agentic-wallet-skills"};function Ts(t){try{return decodeURIComponent(t)}catch{return t}}function Li(t){if(t.startsWith("github:")||t.startsWith("gitlab:")||t.startsWith("git@")||/^ssh:\/\/.+\.git(?:$|[/?])/i.test(t))return true;if(t.startsWith("http://")||t.startsWith("https://"))try{let e=new URL(t),s=e.pathname;if(e.hostname==="github.com")return /^\/[^/]+\/[^/]+(?:\.git)?(?:\/tree\/[^/]+(?:\/.*)?)?\/?$/.test(s);if(e.hostname==="gitlab.com")return /^\/.+?\/[^/]+(?:\.git)?(?:\/-\/tree\/[^/]+(?:\/.*)?)?\/?$/.test(s)}catch{}return /^https?:\/\/.+\.git(?:$|[/?])/i.test(t)?true:!t.includes(":")&&!t.startsWith(".")&&!t.startsWith("/")&&/^([^/]+)\/([^/]+)(?:\/(.+)|@(.+))?$/.test(t)}function Pi(t){let e=t.indexOf("#");if(e<0)return {inputWithoutFragment:t};let s=t.slice(0,e),n=t.slice(e+1);if(!n||!Li(s))return {inputWithoutFragment:t};let l=n.indexOf("@");if(l===-1)return {inputWithoutFragment:s,ref:Ts(n)};let o=n.slice(0,l),i=n.slice(l+1);return {inputWithoutFragment:s,ref:o?Ts(o):void 0,skillFilter:i?Ts(i):void 0}}function $n(t,e,s){return e?`${t}#${e}${s?`@${s}`:""}`:t}function gt(t){if(Ai(t)){let f=resolve(t);return {type:"local",url:f,localPath:f}}let{inputWithoutFragment:e,ref:s,skillFilter:n}=Pi(t);t=e;let l=Ii[t];l&&(t=l);let o=t.match(/^github:(.+)$/);if(o)return gt($n(o[1],s,n));let i=t.match(/^gitlab:(.+)$/);if(i)return gt($n(`https://gitlab.com/${i[1]}`,s,n));let a=t.match(/github\.com\/([^/]+)\/([^/]+)\/tree\/([^/]+)\/(.+)/);if(a){let[,f,x,A,S]=a;return {type:"github",url:`https://github.com/${f}/${x}.git`,ref:A||s,subpath:S&&Ps(S)}}let r=t.match(/github\.com\/([^/]+)\/([^/]+)\/tree\/([^/]+)$/);if(r){let[,f,x,A]=r;return {type:"github",url:`https://github.com/${f}/${x}.git`,ref:A||s}}let h=t.match(/github\.com\/([^/]+)\/([^/]+)/);if(h){let[,f,x]=h,A=x.replace(/\.git$/,"");return {type:"github",url:`https://github.com/${f}/${A}.git`,...s?{ref:s}:{}}}let u=t.match(/^(https?):\/\/([^/]+)\/(.+?)\/-\/tree\/([^/]+)\/(.+)/);if(u){let[,f,x,A,S,E]=u;if(x!=="github.com"&&A)return {type:"gitlab",url:`${f}://${x}/${A.replace(/\.git$/,"")}.git`,ref:S||s,subpath:E&&Ps(E)}}let m=t.match(/^(https?):\/\/([^/]+)\/(.+?)\/-\/tree\/([^/]+)$/);if(m){let[,f,x,A,S]=m;if(x!=="github.com"&&A)return {type:"gitlab",url:`${f}://${x}/${A.replace(/\.git$/,"")}.git`,ref:S||s}}let d=t.match(/gitlab\.com\/(.+?)(?:\.git)?\/?$/);if(d){let f=d[1];if(f.includes("/"))return {type:"gitlab",url:`https://gitlab.com/${f}.git`,...s?{ref:s}:{}}}let p=t.match(/^([^/]+)\/([^/@]+)@(.+)$/);if(p&&!t.includes(":")&&!t.startsWith(".")&&!t.startsWith("/")){let[,f,x,A]=p;return {type:"github",url:`https://github.com/${f}/${x}.git`,...s?{ref:s}:{},skillFilter:n||A}}let c=t.match(/^([^/]+)\/([^/]+)(?:\/(.+?))?\/?$/);if(c&&!t.includes(":")&&!t.startsWith(".")&&!t.startsWith("/")){let[,f,x,A]=c;return {type:"github",url:`https://github.com/${f}/${x}.git`,...s?{ref:s}:{},subpath:A&&Ps(A),...n?{skillFilter:n}:{}}}return Ti(t)?{type:"well-known",url:t}:{type:"git",url:t,...s?{ref:s}:{}}}function Ti(t){if(!t.startsWith("http://")&&!t.startsWith("https://"))return false;try{let e=new URL(t);return !(["github.com","gitlab.com","raw.githubusercontent.com"].includes(e.hostname)||t.endsWith(".git"))}catch{return false}}var xn=3e5,Ds=(()=>{let t=process.env.SKILLS_CLONE_TIMEOUT_MS;if(!t)return xn;let e=Number.parseInt(t,10);return Number.isFinite(e)&&e>0?e:xn})(),An=promisify(execFile),Ke=class extends Error{constructor(s,n,l=false,o=false){super(s);a(this,"url");a(this,"isTimeout");a(this,"isAuthError");this.name="GitCloneError",this.url=n,this.isTimeout=l,this.isAuthError=o;}};function ji(t){let e=t.match(/^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/i);if(e){let s=e[1],n=e[2];return {owner:s,repo:n,slug:`${s}/${n}`,sshUrl:`git@github.com:${s}/${n}.git`}}try{let s=new URL(t);if(s.hostname!=="github.com")return null;let n=s.pathname.match(/^\/([^/]+)\/([^/]+?)(?:\.git)?\/?$/);if(!n)return null;let l=n[1],o=n[2];return {owner:l,repo:o,slug:`${l}/${o}`,sshUrl:`git@github.com:${l}/${o}.git`}}catch{return null}}function Oi(t){try{let e=new URL(t);return e.protocol==="https:"&&e.hostname==="github.com"}catch{return false}}function Tn(t){let e=t.toLowerCase();return e.includes("saml sso")||e.includes("enforced sso")||e.includes("enabled or enforced saml")||e.includes("re-authorize the oauth application")}function Fi(t){return t.includes("Authentication failed")||t.includes("could not read Username")||t.includes("Permission denied")||t.includes("Repository not found")||t.includes("requested URL returned error: 403")||Tn(t)}function In(t){let e={...process.env,GIT_TERMINAL_PROMPT:"0",GIT_LFS_SKIP_SMUDGE:"1",...t};return Di({timeout:{block:Ds},config:["filter.lfs.required=false","filter.lfs.smudge=","filter.lfs.clean=","filter.lfs.process="]}).env(e)}async function Ln(t){try{await rm(t,{recursive:!0,force:!0});}catch{}await mkdir(t,{recursive:true});}async function Mi(t,e,s){let n=t.slug;try{let{stdout:o,stderr:i}=await An("gh",["auth","status","-h","github.com"],{timeout:5e3,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}}),a=`${o}${i}`;/Git operations protocol:\s+ssh/i.test(a)&&(n=t.sshUrl);}catch{return false}return await An("gh",["repo","clone",n,e,"--",...s?["--depth=1","--branch",s]:["--depth=1"]],{timeout:Ds,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}}),true}function Wi(t,e,s){return e&&Tn(s)?`GitHub blocked HTTPS access to ${t} because the organization enforces SAML SSO.
1
+ import {a,d,c,e,k as k$1,h,i,j,b as b$1}from'./chunk-ZEMGS5WR.mjs';import {join,dirname,resolve,normalize,sep,relative,basename,isAbsolute,extname}from'path';import Di from'simple-git';import {mkdtemp,rm,readFile,writeFile,readdir,mkdir,cp,access,stat,lstat,realpath,readlink,symlink}from'fs/promises';import {homedir,tmpdir,platform}from'os';import {execFile,execSync,spawn,spawnSync}from'child_process';import {promisify,stripVTControlCharacters}from'util';import {createHash}from'crypto';import {xdgConfig,xdgState,xdgData,xdgCache}from'xdg-basedir';import {existsSync,readdirSync,readFileSync,mkdirSync,writeFileSync}from'fs';import {determineAgent}from'@vercel/detect-agent';import {gunzipSync,inflateRawSync}from'zlib';import k from'picocolors';import*as y from'@clack/prompts';import*as ps from'readline';import {Writable}from'stream';import {Log,resolveLocaleLang}from'@easbot/utils';import {fileURLToPath}from'url';function Xe(t){if(t.type==="local")return null;let e=t.url.match(/^git@[^:]+:(.+)$/);if(e){let s=e[1];return s=s.replace(/\.git$/,""),s.includes("/")?s:null}if(t.url.startsWith("ssh://"))try{let n=new URL(t.url).pathname.slice(1);return n=n.replace(/\.git$/,""),n.includes("/")?n:null}catch{return null}if(!t.url.startsWith("http://")&&!t.url.startsWith("https://"))return null;try{let n=new URL(t.url).pathname.slice(1);if(n=n.replace(/\.git$/,""),n.includes("/"))return n}catch{}return null}function Xt(t){let e=t.match(/^([^/]+)\/([^/]+)$/);return e?{owner:e[1],repo:e[2]}:null}async function Et(t,e){try{let s=await fetch(`https://api.github.com/repos/${t}/${e}`);return s.ok?(await s.json()).private===!0:null}catch{return null}}function Ps(t){let s=t.replace(/\\/g,"/").split("/");for(let n of s)if(n==="..")throw new Error(`Unsafe subpath: "${t}" contains path traversal segments. Subpaths must not contain ".." components.`);return t}function Ai(t){return isAbsolute(t)||t.startsWith("./")||t.startsWith("../")||t==="."||t===".."||/^[a-zA-Z]:[/\\]/.test(t)}var Ii={"coinbase/agentWallet":"coinbase/agentic-wallet-skills"};function Ts(t){try{return decodeURIComponent(t)}catch{return t}}function Li(t){if(t.startsWith("github:")||t.startsWith("gitlab:")||t.startsWith("git@")||/^ssh:\/\/.+\.git(?:$|[/?])/i.test(t))return true;if(t.startsWith("http://")||t.startsWith("https://"))try{let e=new URL(t),s=e.pathname;if(e.hostname==="github.com")return /^\/[^/]+\/[^/]+(?:\.git)?(?:\/tree\/[^/]+(?:\/.*)?)?\/?$/.test(s);if(e.hostname==="gitlab.com")return /^\/.+?\/[^/]+(?:\.git)?(?:\/-\/tree\/[^/]+(?:\/.*)?)?\/?$/.test(s)}catch{}return /^https?:\/\/.+\.git(?:$|[/?])/i.test(t)?true:!t.includes(":")&&!t.startsWith(".")&&!t.startsWith("/")&&/^([^/]+)\/([^/]+)(?:\/(.+)|@(.+))?$/.test(t)}function Pi(t){let e=t.indexOf("#");if(e<0)return {inputWithoutFragment:t};let s=t.slice(0,e),n=t.slice(e+1);if(!n||!Li(s))return {inputWithoutFragment:t};let l=n.indexOf("@");if(l===-1)return {inputWithoutFragment:s,ref:Ts(n)};let o=n.slice(0,l),i=n.slice(l+1);return {inputWithoutFragment:s,ref:o?Ts(o):void 0,skillFilter:i?Ts(i):void 0}}function $n(t,e,s){return e?`${t}#${e}${s?`@${s}`:""}`:t}function gt(t){if(Ai(t)){let f=resolve(t);return {type:"local",url:f,localPath:f}}let{inputWithoutFragment:e,ref:s,skillFilter:n}=Pi(t);t=e;let l=Ii[t];l&&(t=l);let o=t.match(/^github:(.+)$/);if(o)return gt($n(o[1],s,n));let i=t.match(/^gitlab:(.+)$/);if(i)return gt($n(`https://gitlab.com/${i[1]}`,s,n));let a=t.match(/github\.com\/([^/]+)\/([^/]+)\/tree\/([^/]+)\/(.+)/);if(a){let[,f,x,A,S]=a;return {type:"github",url:`https://github.com/${f}/${x}.git`,ref:A||s,subpath:S&&Ps(S)}}let r=t.match(/github\.com\/([^/]+)\/([^/]+)\/tree\/([^/]+)$/);if(r){let[,f,x,A]=r;return {type:"github",url:`https://github.com/${f}/${x}.git`,ref:A||s}}let h=t.match(/github\.com\/([^/]+)\/([^/]+)/);if(h){let[,f,x]=h,A=x.replace(/\.git$/,"");return {type:"github",url:`https://github.com/${f}/${A}.git`,...s?{ref:s}:{}}}let u=t.match(/^(https?):\/\/([^/]+)\/(.+?)\/-\/tree\/([^/]+)\/(.+)/);if(u){let[,f,x,A,S,E]=u;if(x!=="github.com"&&A)return {type:"gitlab",url:`${f}://${x}/${A.replace(/\.git$/,"")}.git`,ref:S||s,subpath:E&&Ps(E)}}let m=t.match(/^(https?):\/\/([^/]+)\/(.+?)\/-\/tree\/([^/]+)$/);if(m){let[,f,x,A,S]=m;if(x!=="github.com"&&A)return {type:"gitlab",url:`${f}://${x}/${A.replace(/\.git$/,"")}.git`,ref:S||s}}let d=t.match(/gitlab\.com\/(.+?)(?:\.git)?\/?$/);if(d){let f=d[1];if(f.includes("/"))return {type:"gitlab",url:`https://gitlab.com/${f}.git`,...s?{ref:s}:{}}}let p=t.match(/^([^/]+)\/([^/@]+)@(.+)$/);if(p&&!t.includes(":")&&!t.startsWith(".")&&!t.startsWith("/")){let[,f,x,A]=p;return {type:"github",url:`https://github.com/${f}/${x}.git`,...s?{ref:s}:{},skillFilter:n||A}}let c=t.match(/^([^/]+)\/([^/]+)(?:\/(.+?))?\/?$/);if(c&&!t.includes(":")&&!t.startsWith(".")&&!t.startsWith("/")){let[,f,x,A]=c;return {type:"github",url:`https://github.com/${f}/${x}.git`,...s?{ref:s}:{},subpath:A&&Ps(A),...n?{skillFilter:n}:{}}}return Ti(t)?{type:"well-known",url:t}:{type:"git",url:t,...s?{ref:s}:{}}}function Ti(t){if(!t.startsWith("http://")&&!t.startsWith("https://"))return false;try{let e=new URL(t);return !(["github.com","gitlab.com","raw.githubusercontent.com"].includes(e.hostname)||t.endsWith(".git"))}catch{return false}}var xn=3e5,Ds=(()=>{let t=process.env.SKILLS_CLONE_TIMEOUT;if(!t)return xn;let e=Number.parseInt(t,10);return Number.isFinite(e)&&e>0?e:xn})(),An=promisify(execFile),Ke=class extends Error{constructor(s,n,l=false,o=false){super(s);a(this,"url");a(this,"isTimeout");a(this,"isAuthError");this.name="GitCloneError",this.url=n,this.isTimeout=l,this.isAuthError=o;}};function ji(t){let e=t.match(/^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/i);if(e){let s=e[1],n=e[2];return {owner:s,repo:n,slug:`${s}/${n}`,sshUrl:`git@github.com:${s}/${n}.git`}}try{let s=new URL(t);if(s.hostname!=="github.com")return null;let n=s.pathname.match(/^\/([^/]+)\/([^/]+?)(?:\.git)?\/?$/);if(!n)return null;let l=n[1],o=n[2];return {owner:l,repo:o,slug:`${l}/${o}`,sshUrl:`git@github.com:${l}/${o}.git`}}catch{return null}}function Oi(t){try{let e=new URL(t);return e.protocol==="https:"&&e.hostname==="github.com"}catch{return false}}function Tn(t){let e=t.toLowerCase();return e.includes("saml sso")||e.includes("enforced sso")||e.includes("enabled or enforced saml")||e.includes("re-authorize the oauth application")}function Fi(t){return t.includes("Authentication failed")||t.includes("could not read Username")||t.includes("Permission denied")||t.includes("Repository not found")||t.includes("requested URL returned error: 403")||Tn(t)}function In(t){let e={...process.env,GIT_TERMINAL_PROMPT:"0",GIT_LFS_SKIP_SMUDGE:"1",...t};return Di({timeout:{block:Ds},config:["filter.lfs.required=false","filter.lfs.smudge=","filter.lfs.clean=","filter.lfs.process="]}).env(e)}async function Ln(t){try{await rm(t,{recursive:!0,force:!0});}catch{}await mkdir(t,{recursive:true});}async function Mi(t,e,s){let n=t.slug;try{let{stdout:o,stderr:i}=await An("gh",["auth","status","-h","github.com"],{timeout:5e3,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}}),a=`${o}${i}`;/Git operations protocol:\s+ssh/i.test(a)&&(n=t.sshUrl);}catch{return false}return await An("gh",["repo","clone",n,e,"--",...s?["--depth=1","--branch",s]:["--depth=1"]],{timeout:Ds,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}}),true}function Wi(t,e,s){return e&&Tn(s)?`GitHub blocked HTTPS access to ${t} because the organization enforces SAML SSO.
2
2
  skills tried your existing git credentials and available fallbacks, but none succeeded.
3
3
  - Re-authorize your GitHub credentials/app for that org's SSO policy
4
4
  - Or rerun with SSH: easbot skills add ${e.sshUrl}
@@ -9,7 +9,7 @@ import {a,d,c,e,k as k$1,h,i,j,b as b$1}from'./chunk-ZEMGS5WR.mjs';import {join,
9
9
  - For private repos, ensure you have access
10
10
  - For SSH: Check your keys with 'ssh -T git@github.com'
11
11
  - For HTTPS: Run 'gh auth login' or configure git credentials`}async function ze(t,e){let s=await mkdtemp(join(tmpdir(),"skills-")),n=e?["--depth","1","--branch",e]:["--depth","1"],l=ji(t);try{return await In().clone(t,s,n),s}catch(o){let i=o instanceof Error?o.message:String(o),a=i.includes("block timeout")||i.includes("timed out"),r=Fi(i);if(a){try{await rm(s,{recursive:!0,force:!0});}catch{}let h=Math.round(Ds/1e3);throw new Ke(`Clone timed out after ${h}s. Common causes:
12
- - Large repository: raise the timeout with SKILLS_CLONE_TIMEOUT_MS=600000 (10m)
12
+ - Large repository: raise the timeout with SKILLS_CLONE_TIMEOUT=600000 (10m)
13
13
  - Slow network: retry, or clone manually and pass the local path to 'skills add'
14
14
  - Private repo without credentials: ensure auth is configured
15
15
  - For SSH: ssh-add -l (to check loaded keys)
@@ -22,7 +22,7 @@ ${s.replace(/^\r?\n/u,"")}`}async function ns(t,e,s){await mkdir(e,{recursive:tr
22
22
  ${k.yellow("\u2502")} ${k.dim(`Tip: set ${k.cyan("GITHUB_TOKEN")} to avoid this prompt, or use ${k.cyan("--full-depth")} to clone instead.
23
23
  `)}`),en=true);try{let t=execSync("gh auth token",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim();if(t)return t}catch{}return null}async function Du(t,e,s,n){let{fetchRepoTree:l,getSkillFolderHashFromTree:o}=await import('./blob-3ZTTX2CZ.mjs'),i=await l(t,n,s??void 0);return i?o(i,e):null}async function tn(t,e){let s=await Ne(),n=new Date().toISOString(),l=s.skills[t];s.skills[t]={...e,installedAt:l?.installedAt??n,updatedAt:n},await gs(s);}async function ml(t){let e=await Ne();return t in e.skills?(delete e.skills[t],await gs(e),true):false}async function fl(t){return (await Ne()).skills[t]??null}async function hl(){return (await Ne()).skills}async function Nu(){let t=await Ne(),e=new Map;for(let[s,n]of Object.entries(t.skills)){let l=e.get(n.source);l?l.skills.push(s):e.set(n.source,{skills:[s],entry:n});}return e}function Qs(){return {version:gl,skills:{},dismissed:{}}}async function kl(t){return (await Ne()).dismissed?.[t]===true}async function zt(t){let e=await Ne();e.dismissed||(e.dismissed={}),e.dismissed[t]=true,await gs(e);}async function sn(){return (await Ne()).lastSelectedAgents}async function nn(t){let e=await Ne();e.lastSelectedAgents=t,await gs(e);}var Jo=new Writable({write(t,e,s){s();}}),Xo=k.green("\u25C6"),Yo=k.red("\u25A0"),Zo=k.green("\u25C7"),Qo=k.green("\u25CF"),er=k.dim("\u25CB");k.green("\u2713");var tr=k.green("\u2022"),ue=k.dim("\u2502"),wt=k.dim("\u2500"),sr=Symbol("cancel");function nr(t){let e=0;for(let s of t){let n=s.codePointAt(0);if(n===0)continue;let l=n>=4352&&n<=4447||n>=8986&&n<=8987||n>=9001&&n<=9002||n>=9193&&n<=9196||n===9200||n===9203||n>=9725&&n<=9726||n>=9748&&n<=9749||n>=9800&&n<=9811||n>=9855&&n<=9855||n>=9875&&n<=9875||n>=9889&&n<=9889||n>=9898&&n<=9899||n>=9917&&n<=9918||n>=9924&&n<=9925||n>=9934&&n<=9934||n>=9940&&n<=9940||n>=9962&&n<=9962||n>=9970&&n<=9971||n>=9973&&n<=9973||n>=9978&&n<=9978||n>=9981&&n<=9981||n>=9989&&n<=9989||n>=9994&&n<=9995||n>=10024&&n<=10024||n>=10060&&n<=10060||n>=10062&&n<=10062||n>=10067&&n<=10069||n>=10071&&n<=10071||n>=10133&&n<=10135||n>=10160&&n<=10160||n>=10175&&n<=10175||n>=11035&&n<=11036||n>=11088&&n<=11088||n>=11093&&n<=11093||n>=11904&&n<=42191&&n!==12351||n>=43360&&n<=43388||n>=44032&&n<=55203||n>=63744&&n<=64255||n>=65040&&n<=65049||n>=65072&&n<=65135||n>=65280&&n<=65376||n>=65504&&n<=65510||n>=126976&&n<=129535;e+=l?2:1;}return e}function lr(t,e){let s=stripVTControlCharacters(t),n=Math.max(1,e),l=nr(s);return Math.max(1,Math.ceil(l/n))}function ir(t,e){let s=e!==void 0&&e>0?e:process.stdout.columns&&process.stdout.columns>0?process.stdout.columns:80;return t.reduce((n,l)=>n+lr(l,s),0)}async function $t(t){let{message:e,items:s,maxVisible:n=8,initialSelected:l=[],required:o=false,lockedSection:i}=t;return new Promise(a=>{let r=ps.createInterface({input:process.stdin,output:Jo,terminal:false});process.stdin.isTTY&&process.stdin.setRawMode(true),ps.emitKeypressEvents(process.stdin,r);let h="",u=0,m=new Set(l),d=0,p=i?i.items.map(C=>C.value):[],c=(C,I)=>{if(!I)return true;let w=I.toLowerCase();return C.label.toLowerCase().includes(w)||String(C.value).toLowerCase().includes(w)},f=()=>s.filter(C=>c(C,h)),x=()=>{if(d>0){process.stdout.write(`\x1B[${d}A`);for(let C=0;C<d;C++)process.stdout.write("\x1B[2K\x1B[1B");process.stdout.write(`\x1B[${d}A`);}},A=(C="active")=>{x();let I=[],w=f(),N=C==="active"?Xo:C==="cancel"?Yo:Zo;if(I.push(`${N} ${k.bold(e)}`),C==="active"){if(i&&i.items.length>0){I.push(`${ue}`);let te=`${k.bold(i.title)} ${k.dim("\u2500\u2500 always included")}`;I.push(`${ue} ${wt}${wt} ${te} ${wt.repeat(12)}`);for(let we of i.items)I.push(`${ue} ${tr} ${k.bold(we.label)}`);i.hiddenCount&&i.hiddenCount>0&&I.push(`${ue} ${k.dim(`...and ${i.hiddenCount} more`)}`),I.push(`${ue}`),I.push(`${ue} ${wt}${wt} ${k.bold("Additional agents")} ${wt.repeat(29)}`);}let U=`${ue} ${k.dim("Search:")} ${h}${k.inverse(" ")}`;I.push(U),I.push(`${ue} ${k.dim("\u2191\u2193 move, space select, enter confirm")}`),I.push(`${ue}`);let M=Math.max(0,Math.min(u-Math.floor(n/2),w.length-n)),G=Math.min(w.length,M+n),ge=w.slice(M,G);if(w.length===0)I.push(`${ue} ${k.dim("No matches found")}`);else {for(let pe=0;pe<ge.length;pe++){let Ae=ge[pe],Me=M+pe,Tt=m.has(Ae.value),Ee=Me===u,Ce=Tt?Qo:er,Vt=Ee?k.underline(Ae.label):Ae.label,$=Ae.hint?k.dim(` (${Ae.hint})`):"",_=Ee?k.cyan("\u276F"):" ";I.push(`${ue} ${_} ${Ce} ${Vt}${$}`);}let te=M,we=w.length-G;if(te>0||we>0){let pe=[];te>0&&pe.push(`\u2191 ${te} more`),we>0&&pe.push(`\u2193 ${we} more`),I.push(`${ue} ${k.dim(pe.join(" "))}`);}}I.push(`${ue}`);let se=[...i?i.items.map(te=>te.label):[],...s.filter(te=>m.has(te.value)).map(te=>te.label)];if(se.length===0)I.push(`${ue} ${k.dim("Selected: (none)")}`);else {let te=se.length<=3?se.join(", "):`${se.slice(0,3).join(", ")} +${se.length-3} more`;I.push(`${ue} ${k.green("Selected:")} ${te}`);}I.push(`${k.dim("\u2514")}`);}else if(C==="submit"){let U=[...i?i.items.map(M=>M.label):[],...s.filter(M=>m.has(M.value)).map(M=>M.label)];I.push(`${ue} ${k.dim(U.join(", "))}`);}else C==="cancel"&&I.push(`${ue} ${k.strikethrough(k.dim("Cancelled"))}`);process.stdout.write(I.join(`
24
24
  `)+`
25
- `),d=ir(I,process.stdout.columns);},S=()=>{process.stdin.removeListener("keypress",O),process.stdin.isTTY&&process.stdin.setRawMode(false),r.close();},E=()=>{o&&m.size===0&&p.length===0||(A("submit"),S(),a([...p,...Array.from(m)]));},T=()=>{A("cancel"),S(),a(sr);},O=(C,I)=>{if(!I)return;let w=f();if(I.name==="return"){E();return}if(I.name==="escape"||I.ctrl&&I.name==="c"){T();return}if(I.name==="up"){u=Math.max(0,u-1),A();return}if(I.name==="down"){u=Math.min(w.length-1,u+1),A();return}if(I.name==="space"){let N=w[u];N&&(m.has(N.value)?m.delete(N.value):m.add(N.value)),A();return}if(I.name==="backspace"){h=h.slice(0,-1),u=0,A();return}if(I.sequence&&!I.ctrl&&!I.meta&&I.sequence.length===1){h+=I.sequence,u=0,A();return}};process.stdin.on("keypress",O),A();})}var yl={version:"0.3.9"};var $l=t=>typeof t=="symbol",Sl="eve agent";async function gr(t){let e=Xt(t);return e?Et(e.owner,e.repo):false}function pr(t,e){return t.startsWith("git@")||t.startsWith("ssh://")?t:e}function vl(t){Js(t);}function bl(t){switch(t){case "critical":return k.red(k.bold("Critical Risk"));case "high":return k.red("High Risk");case "medium":return k.yellow("Med Risk");case "low":return k.green("Low Risk");case "safe":return k.green("Safe");default:return k.dim("--")}}function mr(t){if(!t)return k.dim("--");let e=t.alerts??0;return e>0?k.red(`${e} alert${e!==1?"s":""}`):k.green("0 alerts")}function St(t,e){let s=b$1(t),n=Math.max(0,e-s.length);return t+" ".repeat(n)}function fr(t,e,s){if(!t)return [];if(!e.some(a=>{let r=t[a.slug];return r&&Object.keys(r).length>0}))return [];let l=Math.min(Math.max(...e.map(a=>a.displayName.length)),36),o=[],i=St("",l+2)+St(k.dim("Gen"),18)+St(k.dim("Socket"),18)+k.dim("Snyk");o.push(i);for(let a of e){let r=t[a.slug],h=a.displayName.length>l?a.displayName.slice(0,l-1)+"\u2026":a.displayName,u=r?.ath?bl(r.ath.risk):k.dim("--"),m=r?.socket?mr(r.socket):k.dim("--"),d=r?.snyk?bl(r.snyk.risk):k.dim("--");o.push(St(k.cyan(h),l+2)+St(u,18)+St(m,18)+d);}return o.push(""),o.push(`${k.dim("Details:")} ${k.dim(`https://skills.sh/${s}`)}`),o}function vt(t,e){let s=homedir();return t===s||t.startsWith(s+sep)?"~"+t.slice(s.length):t===e||t.startsWith(e+sep)?"."+t.slice(e.length):t}function hr(t){let e=createHash("sha256");return e.update("SKILL.md"),e.update(t),e.digest("hex")}function me(t,e=5){if(t.length<=e)return t.join(", ");let s=t.slice(0,e),n=t.length-e;return `${s.join(", ")} +${n} more`}function kr(t){let e=t.map(n=>k.cyan(le(n))),s=me(e,3);return b$1(s).length<=80?s:`${t.length} selected skills`}function yr(t){return `Detected an eve project. Install ${kr(t)} for your ${Sl} to use?`}function rn(t){let e=[],s=[];for(let n of t)$e(n)?e.push(D[n].displayName):s.push(D[n].displayName);return {universal:e,symlinked:s}}function br(t,e){let s=[],{universal:n,symlinked:l}=rn(t);if(e==="symlink")n.length>0&&s.push(` ${k.green("universal:")} ${me(n)}`),l.length>0&&s.push(` ${k.dim("symlink \u2192")} ${me(l)}`);else {let o=t.map(i=>D[i].displayName);s.push(` ${k.dim("copy \u2192")} ${me(o)}`);}return s}function fs(t){let e=D[t.agent].displayName;return t.subagent?`${e} (${t.subagent})`:e}function wl(t){return t.subagent?`${t.agent}:${t.subagent}`:t.agent}function wr(t,e){let s=[];for(let n of t)if(n==="eve")for(let l of e)s.push({agent:n,subagent:l});else s.push({agent:n});return s}function $r(t,e){let s=[],n=t.filter(a=>!a.subagent).map(a=>a.agent),l=t.filter(a=>a.subagent).map(fs),{universal:o,symlinked:i}=rn(n);if(e==="symlink")o.length>0&&s.push(` ${k.green("universal:")} ${me(o)}`),i.length>0&&s.push(` ${k.dim("symlink \u2192")} ${me(i)}`),l.length>0&&s.push(` ${k.dim("copy \u2192")} ${me(l)}`);else {let a=t.map(fs);s.push(` ${k.dim("copy \u2192")} ${me(a)}`);}return s}function ln(t){let e=Ye(),s=[...t];for(let n of e)s.includes(n)||s.push(n);return s}function xl(t,e){let s=[],{universal:n}=rn(e),o=t.filter(a=>!a.symlinkFailed&&!a.skipped&&!n.includes(a.agent)).map(a=>a.agent),i=t.filter(a=>a.symlinkFailed&&!a.skipped).map(a=>a.agent);return n.length>0&&s.push(` ${k.green("universal:")} ${me(n)}`),o.length>0&&s.push(` ${k.dim("symlinked:")} ${me(o)}`),i.length>0&&s.push(` ${k.yellow("copied:")} ${me(i)}`),s}function Al(t){return y.multiselect({...t,options:t.options,message:`${t.message} ${k.dim("(space to toggle)")}`})}async function Il(t,e){let s;try{s=await sn();}catch{}let n=e.map(r=>r.value),o=["claude-code","opencode","codex"].filter(r=>n.includes(r)),i=[];s&&s.length>0&&(i=s.filter(r=>n.includes(r))),i.length===0&&(i=o);let a=await $t({message:t,items:e,initialSelected:i,required:true});if(!$l(a))try{await nn(a);}catch{}return a}async function on(t){let e=u=>!t.global||D[u].globalSkillsDir,s=Ye().filter(e),n=ss().filter(e),l=Mt().filter(u=>u!=="eve"&&e(u)),o={title:"Universal (.agents/skills)",items:n.map(u=>({value:u,label:D[u].displayName})),hiddenCount:s.length-n.length},i=l.map(u=>({value:u,label:D[u].displayName,hint:t.global?D[u].globalSkillsDir:D[u].skillsDir})),a;try{a=await sn();}catch{}let r=a?a.filter(u=>l.includes(u)&&!s.includes(u)):[],h=await $t({message:"Which agents do you want to install to?",items:i,initialSelected:r,lockedSection:o});if(!$l(h))try{await nn(h);}catch{}return h}var Sr=yl.version;Js(Sr);async function vr(t,e,s,n){n.start("Discovering skills from well-known endpoint...");let l=await bt.fetchAllSkills(e);l.length===0&&(n.stop(k.red("No skills found")),y.outro(k.red("No skills found at this URL. Make sure the server has a /.well-known/agent-skills/index.json or /.well-known/skills/index.json file.")),process.exit(1)),n.stop(`Found ${k.green(l.length)} skill${l.length>1?"s":""}`);for(let w of l)y.log.info(`Skill: ${k.cyan(w.installName)}`),y.log.message(k.dim(w.description)),w.files.size>1&&y.log.message(k.dim(` Files: ${Array.from(w.files.keys()).join(", ")}`));if(s.list){console.log(),y.log.step(k.bold("Available Skills"));for(let w of l)y.log.message(` ${k.cyan(w.installName)}`),y.log.message(` ${k.dim(w.description)}`),w.files.size>1&&y.log.message(` ${k.dim(`Files: ${w.files.size}`)}`);console.log(),y.outro("Run without --list to install"),process.exit(0);}let o;if(s.skill?.includes("*"))o=l,y.log.info(`Installing all ${l.length} skills`);else if(s.skill&&s.skill.length>0){if(o=l.filter(w=>s.skill.some(N=>w.installName.toLowerCase()===N.toLowerCase()||w.name.toLowerCase()===N.toLowerCase())),o.length===0){y.log.error(`No matching skills found for: ${s.skill.join(", ")}`),y.log.info("Available skills:");for(let w of l)y.log.message(` - ${w.installName}`);process.exit(1);}}else if(l.length===1){o=l;let w=l[0];y.log.info(`Skill: ${k.cyan(w.installName)}`);}else if(s.yes)o=l,y.log.info(`Installing all ${l.length} skills`);else {let w=l.map(U=>({value:U,label:U.installName,hint:U.description.length>60?U.description.slice(0,57)+"...":U.description})),N=await Al({message:"Select skills to install",options:w,required:true});y.isCancel(N)&&(y.cancel("Installation cancelled"),process.exit(0)),o=N;}let i,a=Object.keys(D);if(s.agent?.includes("*"))i=a,y.log.info(`Installing to all ${i.length} agents`);else if(s.agent&&s.agent.length>0){let w=s.agent.filter(N=>!a.includes(N));w.length>0&&(y.log.error(`Invalid agents: ${w.join(", ")}`),y.log.info(`Valid agents: ${a.join(", ")}`),process.exit(1)),i=s.agent;}else {n.start("Loading agents...");let w=await Be(),N=Object.keys(D).length;if(n.stop(`${N} agents`),w.length===0)if(s.yes)i=a,y.log.info("Installing to all agents");else {y.log.info("Select agents to install skills to");let U=Object.entries(D).map(([G,ge])=>({value:G,label:ge.displayName})),M=await Il("Which agents do you want to install to?",U);y.isCancel(M)&&(y.cancel("Installation cancelled"),process.exit(0)),i=M;}else if(w.length===1||s.yes)if(i=ln(w),w.length===1){let U=w[0];y.log.info(`Installing to: ${k.cyan(D[U].displayName)}`);}else y.log.info(`Installing to: ${w.map(U=>k.cyan(D[U].displayName)).join(", ")}`);else {let U=await on({global:s.global});y.isCancel(U)&&(y.cancel("Installation cancelled"),process.exit(0)),i=U;}}let r=s.global??false,h=i.some(w=>D[w].globalSkillsDir!==void 0);if(s.global===void 0&&!s.yes&&h){let w=await y.select({message:"Installation scope",options:[{value:false,label:"Project",hint:"Install in current directory (committed with your project)"},{value:true,label:"Global",hint:"Install in home directory (available across all projects)"}]});y.isCancel(w)&&(y.cancel("Installation cancelled"),process.exit(0)),r=w;}let u=s.copy?"copy":"symlink",m=new Set(i.map(w=>D[w].skillsDir));if(!s.copy&&!s.yes&&m.size>1){let w=await y.select({message:"Installation method",options:[{value:"symlink",label:"Symlink (Recommended)",hint:"Single source of truth, easy updates"},{value:"copy",label:"Copy to all agents",hint:"Independent copies for each agent"}]});y.isCancel(w)&&(y.cancel("Installation cancelled"),process.exit(0)),u=w;}else m.size<=1&&(u="copy");let d=process.cwd(),p=[];i.map(w=>D[w].displayName);let f=await Promise.all(o.flatMap(w=>i.map(async N=>({skillName:w.installName,agent:N,installed:await rs(w.installName,N,{global:r})})))),x=new Map;for(let{skillName:w,agent:N,installed:U}of f)x.has(w)||x.set(w,new Map),x.get(w).set(N,U);for(let w of o){p.length>0&&p.push("");let N=Qe(w.installName,{global:r}),U=vt(N,d);p.push(`${k.cyan(U)}`),p.push(...br(i,u)),w.files.size>1&&p.push(` ${k.dim("files:")} ${w.files.size}`);let M=x.get(w.installName),G=i.filter(ge=>M?.get(ge)).map(ge=>D[ge].displayName);G.length>0&&p.push(` ${k.yellow("overwrites:")} ${me(G)}`);}if(console.log(),y.note(p.join(`
25
+ `),d=ir(I,process.stdout.columns);},S=()=>{process.stdin.removeListener("keypress",O),process.stdin.isTTY&&process.stdin.setRawMode(false),r.close();},E=()=>{o&&m.size===0&&p.length===0||(A("submit"),S(),a([...p,...Array.from(m)]));},T=()=>{A("cancel"),S(),a(sr);},O=(C,I)=>{if(!I)return;let w=f();if(I.name==="return"){E();return}if(I.name==="escape"||I.ctrl&&I.name==="c"){T();return}if(I.name==="up"){u=Math.max(0,u-1),A();return}if(I.name==="down"){u=Math.min(w.length-1,u+1),A();return}if(I.name==="space"){let N=w[u];N&&(m.has(N.value)?m.delete(N.value):m.add(N.value)),A();return}if(I.name==="backspace"){h=h.slice(0,-1),u=0,A();return}if(I.sequence&&!I.ctrl&&!I.meta&&I.sequence.length===1){h+=I.sequence,u=0,A();return}};process.stdin.on("keypress",O),A();})}var yl={version:"0.3.10"};var $l=t=>typeof t=="symbol",Sl="eve agent";async function gr(t){let e=Xt(t);return e?Et(e.owner,e.repo):false}function pr(t,e){return t.startsWith("git@")||t.startsWith("ssh://")?t:e}function vl(t){Js(t);}function bl(t){switch(t){case "critical":return k.red(k.bold("Critical Risk"));case "high":return k.red("High Risk");case "medium":return k.yellow("Med Risk");case "low":return k.green("Low Risk");case "safe":return k.green("Safe");default:return k.dim("--")}}function mr(t){if(!t)return k.dim("--");let e=t.alerts??0;return e>0?k.red(`${e} alert${e!==1?"s":""}`):k.green("0 alerts")}function St(t,e){let s=b$1(t),n=Math.max(0,e-s.length);return t+" ".repeat(n)}function fr(t,e,s){if(!t)return [];if(!e.some(a=>{let r=t[a.slug];return r&&Object.keys(r).length>0}))return [];let l=Math.min(Math.max(...e.map(a=>a.displayName.length)),36),o=[],i=St("",l+2)+St(k.dim("Gen"),18)+St(k.dim("Socket"),18)+k.dim("Snyk");o.push(i);for(let a of e){let r=t[a.slug],h=a.displayName.length>l?a.displayName.slice(0,l-1)+"\u2026":a.displayName,u=r?.ath?bl(r.ath.risk):k.dim("--"),m=r?.socket?mr(r.socket):k.dim("--"),d=r?.snyk?bl(r.snyk.risk):k.dim("--");o.push(St(k.cyan(h),l+2)+St(u,18)+St(m,18)+d);}return o.push(""),o.push(`${k.dim("Details:")} ${k.dim(`https://skills.sh/${s}`)}`),o}function vt(t,e){let s=homedir();return t===s||t.startsWith(s+sep)?"~"+t.slice(s.length):t===e||t.startsWith(e+sep)?"."+t.slice(e.length):t}function hr(t){let e=createHash("sha256");return e.update("SKILL.md"),e.update(t),e.digest("hex")}function me(t,e=5){if(t.length<=e)return t.join(", ");let s=t.slice(0,e),n=t.length-e;return `${s.join(", ")} +${n} more`}function kr(t){let e=t.map(n=>k.cyan(le(n))),s=me(e,3);return b$1(s).length<=80?s:`${t.length} selected skills`}function yr(t){return `Detected an eve project. Install ${kr(t)} for your ${Sl} to use?`}function rn(t){let e=[],s=[];for(let n of t)$e(n)?e.push(D[n].displayName):s.push(D[n].displayName);return {universal:e,symlinked:s}}function br(t,e){let s=[],{universal:n,symlinked:l}=rn(t);if(e==="symlink")n.length>0&&s.push(` ${k.green("universal:")} ${me(n)}`),l.length>0&&s.push(` ${k.dim("symlink \u2192")} ${me(l)}`);else {let o=t.map(i=>D[i].displayName);s.push(` ${k.dim("copy \u2192")} ${me(o)}`);}return s}function fs(t){let e=D[t.agent].displayName;return t.subagent?`${e} (${t.subagent})`:e}function wl(t){return t.subagent?`${t.agent}:${t.subagent}`:t.agent}function wr(t,e){let s=[];for(let n of t)if(n==="eve")for(let l of e)s.push({agent:n,subagent:l});else s.push({agent:n});return s}function $r(t,e){let s=[],n=t.filter(a=>!a.subagent).map(a=>a.agent),l=t.filter(a=>a.subagent).map(fs),{universal:o,symlinked:i}=rn(n);if(e==="symlink")o.length>0&&s.push(` ${k.green("universal:")} ${me(o)}`),i.length>0&&s.push(` ${k.dim("symlink \u2192")} ${me(i)}`),l.length>0&&s.push(` ${k.dim("copy \u2192")} ${me(l)}`);else {let a=t.map(fs);s.push(` ${k.dim("copy \u2192")} ${me(a)}`);}return s}function ln(t){let e=Ye(),s=[...t];for(let n of e)s.includes(n)||s.push(n);return s}function xl(t,e){let s=[],{universal:n}=rn(e),o=t.filter(a=>!a.symlinkFailed&&!a.skipped&&!n.includes(a.agent)).map(a=>a.agent),i=t.filter(a=>a.symlinkFailed&&!a.skipped).map(a=>a.agent);return n.length>0&&s.push(` ${k.green("universal:")} ${me(n)}`),o.length>0&&s.push(` ${k.dim("symlinked:")} ${me(o)}`),i.length>0&&s.push(` ${k.yellow("copied:")} ${me(i)}`),s}function Al(t){return y.multiselect({...t,options:t.options,message:`${t.message} ${k.dim("(space to toggle)")}`})}async function Il(t,e){let s;try{s=await sn();}catch{}let n=e.map(r=>r.value),o=["claude-code","opencode","codex"].filter(r=>n.includes(r)),i=[];s&&s.length>0&&(i=s.filter(r=>n.includes(r))),i.length===0&&(i=o);let a=await $t({message:t,items:e,initialSelected:i,required:true});if(!$l(a))try{await nn(a);}catch{}return a}async function on(t){let e=u=>!t.global||D[u].globalSkillsDir,s=Ye().filter(e),n=ss().filter(e),l=Mt().filter(u=>u!=="eve"&&e(u)),o={title:"Universal (.agents/skills)",items:n.map(u=>({value:u,label:D[u].displayName})),hiddenCount:s.length-n.length},i=l.map(u=>({value:u,label:D[u].displayName,hint:t.global?D[u].globalSkillsDir:D[u].skillsDir})),a;try{a=await sn();}catch{}let r=a?a.filter(u=>l.includes(u)&&!s.includes(u)):[],h=await $t({message:"Which agents do you want to install to?",items:i,initialSelected:r,lockedSection:o});if(!$l(h))try{await nn(h);}catch{}return h}var Sr=yl.version;Js(Sr);async function vr(t,e,s,n){n.start("Discovering skills from well-known endpoint...");let l=await bt.fetchAllSkills(e);l.length===0&&(n.stop(k.red("No skills found")),y.outro(k.red("No skills found at this URL. Make sure the server has a /.well-known/agent-skills/index.json or /.well-known/skills/index.json file.")),process.exit(1)),n.stop(`Found ${k.green(l.length)} skill${l.length>1?"s":""}`);for(let w of l)y.log.info(`Skill: ${k.cyan(w.installName)}`),y.log.message(k.dim(w.description)),w.files.size>1&&y.log.message(k.dim(` Files: ${Array.from(w.files.keys()).join(", ")}`));if(s.list){console.log(),y.log.step(k.bold("Available Skills"));for(let w of l)y.log.message(` ${k.cyan(w.installName)}`),y.log.message(` ${k.dim(w.description)}`),w.files.size>1&&y.log.message(` ${k.dim(`Files: ${w.files.size}`)}`);console.log(),y.outro("Run without --list to install"),process.exit(0);}let o;if(s.skill?.includes("*"))o=l,y.log.info(`Installing all ${l.length} skills`);else if(s.skill&&s.skill.length>0){if(o=l.filter(w=>s.skill.some(N=>w.installName.toLowerCase()===N.toLowerCase()||w.name.toLowerCase()===N.toLowerCase())),o.length===0){y.log.error(`No matching skills found for: ${s.skill.join(", ")}`),y.log.info("Available skills:");for(let w of l)y.log.message(` - ${w.installName}`);process.exit(1);}}else if(l.length===1){o=l;let w=l[0];y.log.info(`Skill: ${k.cyan(w.installName)}`);}else if(s.yes)o=l,y.log.info(`Installing all ${l.length} skills`);else {let w=l.map(U=>({value:U,label:U.installName,hint:U.description.length>60?U.description.slice(0,57)+"...":U.description})),N=await Al({message:"Select skills to install",options:w,required:true});y.isCancel(N)&&(y.cancel("Installation cancelled"),process.exit(0)),o=N;}let i,a=Object.keys(D);if(s.agent?.includes("*"))i=a,y.log.info(`Installing to all ${i.length} agents`);else if(s.agent&&s.agent.length>0){let w=s.agent.filter(N=>!a.includes(N));w.length>0&&(y.log.error(`Invalid agents: ${w.join(", ")}`),y.log.info(`Valid agents: ${a.join(", ")}`),process.exit(1)),i=s.agent;}else {n.start("Loading agents...");let w=await Be(),N=Object.keys(D).length;if(n.stop(`${N} agents`),w.length===0)if(s.yes)i=a,y.log.info("Installing to all agents");else {y.log.info("Select agents to install skills to");let U=Object.entries(D).map(([G,ge])=>({value:G,label:ge.displayName})),M=await Il("Which agents do you want to install to?",U);y.isCancel(M)&&(y.cancel("Installation cancelled"),process.exit(0)),i=M;}else if(w.length===1||s.yes)if(i=ln(w),w.length===1){let U=w[0];y.log.info(`Installing to: ${k.cyan(D[U].displayName)}`);}else y.log.info(`Installing to: ${w.map(U=>k.cyan(D[U].displayName)).join(", ")}`);else {let U=await on({global:s.global});y.isCancel(U)&&(y.cancel("Installation cancelled"),process.exit(0)),i=U;}}let r=s.global??false,h=i.some(w=>D[w].globalSkillsDir!==void 0);if(s.global===void 0&&!s.yes&&h){let w=await y.select({message:"Installation scope",options:[{value:false,label:"Project",hint:"Install in current directory (committed with your project)"},{value:true,label:"Global",hint:"Install in home directory (available across all projects)"}]});y.isCancel(w)&&(y.cancel("Installation cancelled"),process.exit(0)),r=w;}let u=s.copy?"copy":"symlink",m=new Set(i.map(w=>D[w].skillsDir));if(!s.copy&&!s.yes&&m.size>1){let w=await y.select({message:"Installation method",options:[{value:"symlink",label:"Symlink (Recommended)",hint:"Single source of truth, easy updates"},{value:"copy",label:"Copy to all agents",hint:"Independent copies for each agent"}]});y.isCancel(w)&&(y.cancel("Installation cancelled"),process.exit(0)),u=w;}else m.size<=1&&(u="copy");let d=process.cwd(),p=[];i.map(w=>D[w].displayName);let f=await Promise.all(o.flatMap(w=>i.map(async N=>({skillName:w.installName,agent:N,installed:await rs(w.installName,N,{global:r})})))),x=new Map;for(let{skillName:w,agent:N,installed:U}of f)x.has(w)||x.set(w,new Map),x.get(w).set(N,U);for(let w of o){p.length>0&&p.push("");let N=Qe(w.installName,{global:r}),U=vt(N,d);p.push(`${k.cyan(U)}`),p.push(...br(i,u)),w.files.size>1&&p.push(` ${k.dim("files:")} ${w.files.size}`);let M=x.get(w.installName),G=i.filter(ge=>M?.get(ge)).map(ge=>D[ge].displayName);G.length>0&&p.push(` ${k.yellow("overwrites:")} ${me(G)}`);}if(console.log(),y.note(p.join(`
26
26
  `),"Installation Summary"),!s.yes){let w=await y.confirm({message:"Proceed with installation?"});(y.isCancel(w)||!w)&&(y.cancel("Installation cancelled"),process.exit(0));}let A=bt.getSourceIdentifier(e),S=gr(A).catch(()=>null);n.start("Installing skills...");let E=[];for(let w of o)for(let N of i){let U=await rl(w,N,{global:r,mode:u});E.push({skill:w.installName,agent:D[N].displayName,...U});}n.stop("Installation complete"),console.log();let T=E.filter(w=>w.success),O=E.filter(w=>!w.success),C={};for(let w of o)C[w.installName]=w.sourceUrl;if(await S!==true&&be({event:"install",source:A,skills:o.map(w=>w.installName).join(","),agents:i.join(","),...r&&{global:"1"},skillFiles:JSON.stringify(C),sourceType:"well-known"}),T.length>0&&r){let w=new Set(T.map(N=>N.skill));for(let N of o)if(w.has(N.installName))try{await tn(N.installName,{source:A,sourceType:"well-known",sourceUrl:N.sourceUrl,skillFolderHash:""});}catch{}}if(T.length>0&&!r){let w=new Set(T.map(N=>N.skill));for(let N of o)if(w.has(N.installName))try{let U=T.find(G=>G.skill===N.installName),M=U?.canonicalPath||U?.path;if(M){let G=await He(M);await Ct(N.installName,{source:A,sourceType:"well-known",computedHash:G},d);}}catch{}}if(T.length>0){let w=new Map;for(let se of T){let te=w.get(se.skill)||[];te.push(se),w.set(se.skill,te);}let N=w.size,U=T.filter(se=>se.mode==="symlink"&&se.symlinkFailed),M=U.map(se=>se.agent),G=[];for(let[se,te]of w){let we=te[0];if(we.mode==="copy"){G.push(`${k.green("\u2713")} ${se} ${k.dim("(copied)")}`);for(let pe of te){let Ae=vt(pe.path,d);G.push(` ${k.dim("\u2192")} ${Ae}`);}}else {if(we.canonicalPath){let pe=vt(we.canonicalPath,d);G.push(`${k.green("\u2713")} ${pe}`);}else G.push(`${k.green("\u2713")} ${se}`);G.push(...xl(te,i));}}let ge=k.green(`Installed ${N} skill${N!==1?"s":""}`);y.note(G.join(`
27
27
  `),ge),U.length>0&&(y.log.warn(k.yellow(`Symlinks failed for: ${me(M)}`)),y.log.message(k.dim(" Files were copied instead. On Windows, enable Developer Mode for symlink support.")));}if(O.length>0){console.log(),y.log.error(k.red(`Failed to install ${O.length}`));for(let w of O)y.log.message(` ${k.red("\u2717")} ${w.skill} \u2192 ${w.agent}: ${k.dim(w.error)}`);}console.log(),y.outro(k.green("Done!")+k.dim(" Review skills before use; they run with full agent permissions.")),await Ll(s,i);}async function at(t,e$1={}){let s=t[0],n=false,l=()=>{n||(y.log.message(k.dim("Tip: use the --yes (-y) and --global (-g) flags to install without prompts.")),n=true);};s||(console.log(),console.log(k.bgRed(k.white(k.bold(" ERROR ")))+" "+k.red("Missing required argument: source")),console.log(),console.log(k.dim(" Usage:")),console.log(` ${k.cyan("easbot skills add")} ${k.yellow("<source>")} ${k.dim("[options]")}`),console.log(),console.log(k.dim(" Example:")),console.log(` ${k.cyan("easbot skills add")} ${k.yellow("houjallen/agent-skills")}`),console.log(),process.exit(1)),e$1.all&&(e$1.skill=["*"],e$1.agent=["*"],e$1.yes=true);let o=await et();if(o.isAgent&&(e$1.yes=true,!e$1.agent||e$1.agent.length===0)){let a=cs(o.agent.name);a&&(e$1.agent=ln([a]));}console.log(),o.isAgent||y.intro(k.bgCyan(k.black(" skills "))),o.isAgent?y.log.info(k.bgCyan(k.black(k.bold(` ${o.agent.name} `)))+" Agent detected \u2014 installing non-interactively"):process.stdin.isTTY||l();let i$1=null;try{let a=y.spinner();a.start("Parsing source...");let r=gt(s);a.stop(`Source: ${r.type==="local"?r.localPath:r.url}${r.ref?` @ ${k.yellow(r.ref)}`:""}${r.subpath?` (${r.subpath})`:""}${r.skillFilter?` ${k.dim("@")}${k.cyan(r.skillFilter)}`:""}`);let h$1=Xe(r),u=(()=>{if(!h$1)return Promise.resolve(null);let $=Xt(h$1);return $?Et($.owner,$.repo).catch(()=>null):Promise.resolve(null)})();if(r.type==="well-known"){await vr(s,r.url,e$1,a);return}r.skillFilter&&(e$1.skill=e$1.skill||[],e$1.skill.includes(r.skillFilter)||e$1.skill.push(r.skillFilter));let m=!!(e$1.skill&&e$1.skill.length>0),d,p=null;if(r.type==="local")a.start("Validating local path..."),existsSync(r.localPath)||(a.stop(k.red("Path not found")),y.outro(k.red(`Local path does not exist: ${r.localPath}`)),process.exit(1)),a.stop("Local path validated"),a.start("Discovering skills..."),d=await Pe(r.localPath,r.subpath,{includeInternal:m,fullDepth:e$1.fullDepth});else if(r.type==="github"&&!e$1.fullDepth){let $=["vercel","houjallen","heygen-com"],_=Xe(r),j=_?.split("/")[0]?.toLowerCase(),R=!!_&&Object.hasOwn(e,_.toLowerCase());_&&j&&(R||$.includes(j))&&(a.start("Fetching skills..."),p=await k$1(_,{subpath:r.subpath,skillFilter:r.skillFilter,ref:r.ref,getToken:rt,includeInternal:m}),p||a.stop(k.dim("Falling back to clone..."))),p?(d=p.skills,a.stop(`Found ${k.green(d.length)} skill${d.length>1?"s":""}`)):(a.start("Cloning repository..."),i$1=await ze(r.url,r.ref),a.stop("Repository cloned"),a.start("Discovering skills..."),d=await Pe(i$1,r.subpath,{includeInternal:m,fullDepth:e$1.fullDepth}));}else a.start("Cloning repository..."),i$1=await ze(r.url,r.ref),a.stop("Repository cloned"),a.start("Discovering skills..."),d=await Pe(i$1,r.subpath,{includeInternal:m,fullDepth:e$1.fullDepth});if(d.length===0&&(a.stop(k.red("No skills found")),y.outro(k.red("No valid skills found. Skills require a SKILL.md with name and description.")),await ke(i$1),process.exit(1)),p||a.stop(`Found ${k.green(d.length)} skill${d.length>1?"s":""}`),e$1.list){console.log(),y.log.step(k.bold("Available Skills"));let $={},_=[];for(let R of d)if(R.pluginName){let K=R.pluginName;$[K]||($[K]=[]),$[K].push(R);}else _.push(R);let j=Object.keys($).sort();for(let R of j){let K=R.split("-").map(z=>z.charAt(0).toUpperCase()+z.slice(1)).join(" ");console.log(k.bold(K));for(let z of $[R])y.log.message(` ${k.cyan(le(z))}`),y.log.message(` ${k.dim(z.description)}`);console.log();}if(_.length>0){j.length>0&&console.log(k.bold("General"));for(let R of _)y.log.message(` ${k.cyan(le(R))}`),y.log.message(` ${k.dim(R.description)}`);}console.log(),y.outro("Use --skill <name> to install specific skills"),await ke(i$1),process.exit(0);}let c;if(e$1.skill?.includes("*"))c=d,y.log.info(`Installing all ${d.length} skills`);else if(e$1.skill&&e$1.skill.length>0){if(c=es(d,e$1.skill),c.length===0){y.log.error(`No matching skills found for: ${e$1.skill.join(", ")}`),y.log.info("Available skills:");for(let $ of d)y.log.message(` - ${le($)}`);await ke(i$1),process.exit(1);}y.log.info(`Selected ${c.length} skill${c.length!==1?"s":""}: ${c.map($=>k.cyan(le($))).join(", ")}`);}else if(d.length===1){c=d;let $=d[0];y.log.info(`Skill: ${k.cyan(le($))}`),y.log.message(k.dim($.description));}else if(e$1.yes)c=d,y.log.info(`Installing all ${d.length} skills`);else {let $=[...d].sort((R,K)=>R.pluginName&&!K.pluginName?-1:!R.pluginName&&K.pluginName?1:R.pluginName&&K.pluginName&&R.pluginName!==K.pluginName?R.pluginName.localeCompare(K.pluginName):le(R).localeCompare(le(K))),_=$.some(R=>R.pluginName),j;if(_){let R=z=>z.split("-").map(V=>V.charAt(0).toUpperCase()+V.slice(1)).join(" "),K={};for(let z of $){let V=z.pluginName?R(z.pluginName):"Other";K[V]||(K[V]=[]),K[V].push({value:z,label:le(z),hint:z.description.length>60?z.description.slice(0,57)+"...":z.description});}j=await y.groupMultiselect({message:`Select skills to install ${k.dim("(space to toggle)")}`,options:K,required:!0});}else {let R=$.map(K=>({value:K,label:le(K),hint:K.description.length>60?K.description.slice(0,57)+"...":K.description}));j=await Al({message:"Select skills to install",options:R,required:!0});}y.isCancel(j)&&(y.cancel("Installation cancelled"),await ke(i$1),process.exit(0)),c=j;}let f=Xe(r),x=f?ul(f,c.map($=>le($))):Promise.resolve(null),A,S=Object.keys(D);if(e$1.agent?.includes("*"))A=S,y.log.info(`Installing to all ${A.length} agents`);else if(e$1.agent&&e$1.agent.length>0){let $=e$1.agent.filter(_=>!S.includes(_));$.length>0&&(y.log.error(`Invalid agents: ${$.join(", ")}`),y.log.info(`Valid agents: ${S.join(", ")}`),await ke(i$1),process.exit(1)),A=e$1.agent;}else {a.start("Loading agents...");let $=await Be(),_=Object.keys(D).length;if(a.stop(`${_} agents`),$.includes("eve")&&(e$1.yes||!o.isAgent)){let j=e$1.yes?!0:await y.confirm({message:yr(c),initialValue:!0});if(y.isCancel(j)&&(y.cancel("Installation cancelled"),await ke(i$1),process.exit(0)),j)A=["eve"],y.log.info(`Installing to: ${k.cyan(Sl)}`);else {let R=await on({global:e$1.global});y.isCancel(R)&&(y.cancel("Installation cancelled"),await ke(i$1),process.exit(0)),A=R;}}else if($.length===0)if(e$1.yes)A=S,y.log.info("Installing to all agents");else {y.log.info("Select agents to install skills to");let j=Object.entries(D).filter(([K])=>K!=="eve").map(([K,z])=>({value:K,label:z.displayName})),R=await Il("Which agents do you want to install to?",j);y.isCancel(R)&&(y.cancel("Installation cancelled"),await ke(i$1),process.exit(0)),A=R;}else if($.length===1||e$1.yes)if(A=ln($),$.length===1){let j=$[0];y.log.info(`Installing to: ${k.cyan(D[j].displayName)}`);}else y.log.info(`Installing to: ${$.map(j=>k.cyan(D[j].displayName)).join(", ")}`);else {let j=await on({global:e$1.global});y.isCancel(j)&&(y.cancel("Installation cancelled"),await ke(i$1),process.exit(0)),A=j;}}e$1.subagent&&e$1.subagent.length>0&&!A.includes("eve")&&(A=[...A,"eve"]);let E=[void 0];if(A.includes("eve")){let $=lt(process.cwd());if(e$1.subagent&&e$1.subagent.length>0)E=e$1.subagent.map(_=>_==="root"||_==="."?void 0:_);else if($.length>0&&!e$1.yes){let _=[{value:"",label:"Root agent",hint:"agent/skills"},...$.map(R=>({value:R,label:R,hint:`agent/subagents/${R}/skills`}))],j=await y.multiselect({message:"Where should Eve skills be installed?",options:_,initialValues:[""],required:!0});y.isCancel(j)&&(y.cancel("Installation cancelled"),await ke(i$1),process.exit(0)),E=j.map(R=>R===""?void 0:R);}}let T=wr(A,E),O=e$1.global??!1,C=A.some($=>D[$].globalSkillsDir!==void 0);if(e$1.global===void 0&&!e$1.yes&&C){let $=await y.select({message:"Installation scope",options:[{value:!1,label:"Project",hint:"Install in current directory (committed with your project)"},{value:!0,label:"Global",hint:"Install in home directory (available across all projects)"}]});y.isCancel($)&&(y.cancel("Installation cancelled"),await ke(i$1),process.exit(0)),O=$;}let I=e$1.copy?"copy":"symlink",w=T.every($=>$.agent==="eve"),N=new Set(T.map($=>$.subagent?`eve:subagent:${$.subagent}`:D[$.agent].skillsDir));if(!e$1.copy&&!e$1.yes&&N.size>1&&!w){let $=await y.select({message:"Installation method",options:[{value:"symlink",label:"Symlink (Recommended)",hint:"Single source of truth, easy updates"},{value:"copy",label:"Copy to all agents",hint:"Independent copies for each agent"}]});y.isCancel($)&&(y.cancel("Installation cancelled"),await ke(i$1),process.exit(0)),I=$;}else (N.size<=1||w)&&(I="copy");let U=process.cwd(),M=[],G=await Promise.all(c.flatMap($=>T.map(async _=>({skillName:$.name,target:_,installed:await rs($.name,_.agent,{global:O,eveSubagent:_.subagent})})))),ge=new Map;for(let{skillName:$,target:_,installed:j}of G)ge.has($)||ge.set($,new Map),ge.get($).set(wl(_),j);let se={},te=[];for(let $ of c)if($.pluginName){let _=$.pluginName;se[_]||(se[_]=[]),se[_].push($);}else te.push($);let we=$=>{for(let _ of $){M.length>0&&M.push("");let j=T.length===1?Qe(_.name,{global:O,agent:T[0].agent,eveSubagent:T[0].subagent}):Qe(_.name,{global:O}),R=vt(j,U);M.push(`${k.cyan(R)}`),M.push(...$r(T,I));let K=ge.get(_.name),z=T.filter(V=>K?.get(wl(V))).map(fs);z.length>0&&M.push(` ${k.yellow("overwrites:")} ${me(z)}`);}},pe=Object.keys(se).sort();for(let $ of pe){let _=$.split("-").map(j=>j.charAt(0).toUpperCase()+j.slice(1)).join(" ");M.push(""),M.push(k.bold(_)),we(se[$]);}te.length>0&&(pe.length>0&&(M.push(""),M.push(k.bold("General"))),we(te)),console.log(),y.note(M.join(`
28
28
  `),"Installation Summary");try{let $=await x;if($&&f){let _=fr($,c.map(j=>({slug:le(j),displayName:le(j)})),f);_.length>0&&y.note(_.join(`
@@ -1,4 +1,4 @@
1
- 'use strict';var chunkXDSGBJHO_cjs=require('./chunk-XDSGBJHO.cjs'),path=require('path'),Ti=require('simple-git'),promises=require('fs/promises'),os$1=require('os'),child_process=require('child_process'),util=require('util'),crypto=require('crypto'),xdgBasedir=require('xdg-basedir'),fs$1=require('fs'),detectAgent=require('@vercel/detect-agent'),zlib=require('zlib'),k=require('picocolors'),y=require('@clack/prompts'),gs=require('readline'),stream=require('stream'),utils=require('@easbot/utils'),url=require('url');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Ti__default=/*#__PURE__*/_interopDefault(Ti);var k__default=/*#__PURE__*/_interopDefault(k);var y__namespace=/*#__PURE__*/_interopNamespace(y);var gs__namespace=/*#__PURE__*/_interopNamespace(gs);function Je(t){if(t.type==="local")return null;let e=t.url.match(/^git@[^:]+:(.+)$/);if(e){let s=e[1];return s=s.replace(/\.git$/,""),s.includes("/")?s:null}if(t.url.startsWith("ssh://"))try{let n=new URL(t.url).pathname.slice(1);return n=n.replace(/\.git$/,""),n.includes("/")?n:null}catch{return null}if(!t.url.startsWith("http://")&&!t.url.startsWith("https://"))return null;try{let n=new URL(t.url).pathname.slice(1);if(n=n.replace(/\.git$/,""),n.includes("/"))return n}catch{}return null}function Jt(t){let e=t.match(/^([^/]+)\/([^/]+)$/);return e?{owner:e[1],repo:e[2]}:null}async function Nt(t,e){try{let s=await fetch(`https://api.github.com/repos/${t}/${e}`);return s.ok?(await s.json()).private===!0:null}catch{return null}}function Ls(t){let s=t.replace(/\\/g,"/").split("/");for(let n of s)if(n==="..")throw new Error(`Unsafe subpath: "${t}" contains path traversal segments. Subpaths must not contain ".." components.`);return t}function xi(t){return path.isAbsolute(t)||t.startsWith("./")||t.startsWith("../")||t==="."||t===".."||/^[a-zA-Z]:[/\\]/.test(t)}var Ai={"coinbase/agentWallet":"coinbase/agentic-wallet-skills"};function Ps(t){try{return decodeURIComponent(t)}catch{return t}}function Ii(t){if(t.startsWith("github:")||t.startsWith("gitlab:")||t.startsWith("git@")||/^ssh:\/\/.+\.git(?:$|[/?])/i.test(t))return true;if(t.startsWith("http://")||t.startsWith("https://"))try{let e=new URL(t),s=e.pathname;if(e.hostname==="github.com")return /^\/[^/]+\/[^/]+(?:\.git)?(?:\/tree\/[^/]+(?:\/.*)?)?\/?$/.test(s);if(e.hostname==="gitlab.com")return /^\/.+?\/[^/]+(?:\.git)?(?:\/-\/tree\/[^/]+(?:\/.*)?)?\/?$/.test(s)}catch{}return /^https?:\/\/.+\.git(?:$|[/?])/i.test(t)?true:!t.includes(":")&&!t.startsWith(".")&&!t.startsWith("/")&&/^([^/]+)\/([^/]+)(?:\/(.+)|@(.+))?$/.test(t)}function Li(t){let e=t.indexOf("#");if(e<0)return {inputWithoutFragment:t};let s=t.slice(0,e),n=t.slice(e+1);if(!n||!Ii(s))return {inputWithoutFragment:t};let l=n.indexOf("@");if(l===-1)return {inputWithoutFragment:s,ref:Ps(n)};let o=n.slice(0,l),i=n.slice(l+1);return {inputWithoutFragment:s,ref:o?Ps(o):void 0,skillFilter:i?Ps(i):void 0}}function wn(t,e,s){return e?`${t}#${e}${s?`@${s}`:""}`:t}function dt(t){if(xi(t)){let f=path.resolve(t);return {type:"local",url:f,localPath:f}}let{inputWithoutFragment:e,ref:s,skillFilter:n}=Li(t);t=e;let l=Ai[t];l&&(t=l);let o=t.match(/^github:(.+)$/);if(o)return dt(wn(o[1],s,n));let i=t.match(/^gitlab:(.+)$/);if(i)return dt(wn(`https://gitlab.com/${i[1]}`,s,n));let a=t.match(/github\.com\/([^/]+)\/([^/]+)\/tree\/([^/]+)\/(.+)/);if(a){let[,f,x,A,S]=a;return {type:"github",url:`https://github.com/${f}/${x}.git`,ref:A||s,subpath:S&&Ls(S)}}let r=t.match(/github\.com\/([^/]+)\/([^/]+)\/tree\/([^/]+)$/);if(r){let[,f,x,A]=r;return {type:"github",url:`https://github.com/${f}/${x}.git`,ref:A||s}}let h=t.match(/github\.com\/([^/]+)\/([^/]+)/);if(h){let[,f,x]=h,A=x.replace(/\.git$/,"");return {type:"github",url:`https://github.com/${f}/${A}.git`,...s?{ref:s}:{}}}let u=t.match(/^(https?):\/\/([^/]+)\/(.+?)\/-\/tree\/([^/]+)\/(.+)/);if(u){let[,f,x,A,S,E]=u;if(x!=="github.com"&&A)return {type:"gitlab",url:`${f}://${x}/${A.replace(/\.git$/,"")}.git`,ref:S||s,subpath:E&&Ls(E)}}let m=t.match(/^(https?):\/\/([^/]+)\/(.+?)\/-\/tree\/([^/]+)$/);if(m){let[,f,x,A,S]=m;if(x!=="github.com"&&A)return {type:"gitlab",url:`${f}://${x}/${A.replace(/\.git$/,"")}.git`,ref:S||s}}let d=t.match(/gitlab\.com\/(.+?)(?:\.git)?\/?$/);if(d){let f=d[1];if(f.includes("/"))return {type:"gitlab",url:`https://gitlab.com/${f}.git`,...s?{ref:s}:{}}}let p=t.match(/^([^/]+)\/([^/@]+)@(.+)$/);if(p&&!t.includes(":")&&!t.startsWith(".")&&!t.startsWith("/")){let[,f,x,A]=p;return {type:"github",url:`https://github.com/${f}/${x}.git`,...s?{ref:s}:{},skillFilter:n||A}}let c=t.match(/^([^/]+)\/([^/]+)(?:\/(.+?))?\/?$/);if(c&&!t.includes(":")&&!t.startsWith(".")&&!t.startsWith("/")){let[,f,x,A]=c;return {type:"github",url:`https://github.com/${f}/${x}.git`,...s?{ref:s}:{},subpath:A&&Ls(A),...n?{skillFilter:n}:{}}}return Pi(t)?{type:"well-known",url:t}:{type:"git",url:t,...s?{ref:s}:{}}}function Pi(t){if(!t.startsWith("http://")&&!t.startsWith("https://"))return false;try{let e=new URL(t);return !(["github.com","gitlab.com","raw.githubusercontent.com"].includes(e.hostname)||t.endsWith(".git"))}catch{return false}}var vn=3e5,Ts=(()=>{let t=process.env.SKILLS_CLONE_TIMEOUT_MS;if(!t)return vn;let e=Number.parseInt(t,10);return Number.isFinite(e)&&e>0?e:vn})(),xn=util.promisify(child_process.execFile),We=class extends Error{constructor(s,n,l=false,o=false){super(s);chunkXDSGBJHO_cjs.a(this,"url");chunkXDSGBJHO_cjs.a(this,"isTimeout");chunkXDSGBJHO_cjs.a(this,"isAuthError");this.name="GitCloneError",this.url=n,this.isTimeout=l,this.isAuthError=o;}};function Ui(t){let e=t.match(/^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/i);if(e){let s=e[1],n=e[2];return {owner:s,repo:n,slug:`${s}/${n}`,sshUrl:`git@github.com:${s}/${n}.git`}}try{let s=new URL(t);if(s.hostname!=="github.com")return null;let n=s.pathname.match(/^\/([^/]+)\/([^/]+?)(?:\.git)?\/?$/);if(!n)return null;let l=n[1],o=n[2];return {owner:l,repo:o,slug:`${l}/${o}`,sshUrl:`git@github.com:${l}/${o}.git`}}catch{return null}}function ji(t){try{let e=new URL(t);return e.protocol==="https:"&&e.hostname==="github.com"}catch{return false}}function Pn(t){let e=t.toLowerCase();return e.includes("saml sso")||e.includes("enforced sso")||e.includes("enabled or enforced saml")||e.includes("re-authorize the oauth application")}function Oi(t){return t.includes("Authentication failed")||t.includes("could not read Username")||t.includes("Permission denied")||t.includes("Repository not found")||t.includes("requested URL returned error: 403")||Pn(t)}function An(t){let e={...process.env,GIT_TERMINAL_PROMPT:"0",GIT_LFS_SKIP_SMUDGE:"1",...t};return Ti__default.default({timeout:{block:Ts},config:["filter.lfs.required=false","filter.lfs.smudge=","filter.lfs.clean=","filter.lfs.process="]}).env(e)}async function In(t){try{await promises.rm(t,{recursive:!0,force:!0});}catch{}await promises.mkdir(t,{recursive:true});}async function Fi(t,e,s){let n=t.slug;try{let{stdout:o,stderr:i}=await xn("gh",["auth","status","-h","github.com"],{timeout:5e3,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}}),a=`${o}${i}`;/Git operations protocol:\s+ssh/i.test(a)&&(n=t.sshUrl);}catch{return false}return await xn("gh",["repo","clone",n,e,"--",...s?["--depth=1","--branch",s]:["--depth=1"]],{timeout:Ts,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}}),true}function Mi(t,e,s){return e&&Pn(s)?`GitHub blocked HTTPS access to ${t} because the organization enforces SAML SSO.
1
+ 'use strict';var chunkXDSGBJHO_cjs=require('./chunk-XDSGBJHO.cjs'),path=require('path'),Ti=require('simple-git'),promises=require('fs/promises'),os$1=require('os'),child_process=require('child_process'),util=require('util'),crypto=require('crypto'),xdgBasedir=require('xdg-basedir'),fs$1=require('fs'),detectAgent=require('@vercel/detect-agent'),zlib=require('zlib'),k=require('picocolors'),y=require('@clack/prompts'),gs=require('readline'),stream=require('stream'),utils=require('@easbot/utils'),url=require('url');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Ti__default=/*#__PURE__*/_interopDefault(Ti);var k__default=/*#__PURE__*/_interopDefault(k);var y__namespace=/*#__PURE__*/_interopNamespace(y);var gs__namespace=/*#__PURE__*/_interopNamespace(gs);function Je(t){if(t.type==="local")return null;let e=t.url.match(/^git@[^:]+:(.+)$/);if(e){let s=e[1];return s=s.replace(/\.git$/,""),s.includes("/")?s:null}if(t.url.startsWith("ssh://"))try{let n=new URL(t.url).pathname.slice(1);return n=n.replace(/\.git$/,""),n.includes("/")?n:null}catch{return null}if(!t.url.startsWith("http://")&&!t.url.startsWith("https://"))return null;try{let n=new URL(t.url).pathname.slice(1);if(n=n.replace(/\.git$/,""),n.includes("/"))return n}catch{}return null}function Jt(t){let e=t.match(/^([^/]+)\/([^/]+)$/);return e?{owner:e[1],repo:e[2]}:null}async function Nt(t,e){try{let s=await fetch(`https://api.github.com/repos/${t}/${e}`);return s.ok?(await s.json()).private===!0:null}catch{return null}}function Ls(t){let s=t.replace(/\\/g,"/").split("/");for(let n of s)if(n==="..")throw new Error(`Unsafe subpath: "${t}" contains path traversal segments. Subpaths must not contain ".." components.`);return t}function xi(t){return path.isAbsolute(t)||t.startsWith("./")||t.startsWith("../")||t==="."||t===".."||/^[a-zA-Z]:[/\\]/.test(t)}var Ai={"coinbase/agentWallet":"coinbase/agentic-wallet-skills"};function Ps(t){try{return decodeURIComponent(t)}catch{return t}}function Ii(t){if(t.startsWith("github:")||t.startsWith("gitlab:")||t.startsWith("git@")||/^ssh:\/\/.+\.git(?:$|[/?])/i.test(t))return true;if(t.startsWith("http://")||t.startsWith("https://"))try{let e=new URL(t),s=e.pathname;if(e.hostname==="github.com")return /^\/[^/]+\/[^/]+(?:\.git)?(?:\/tree\/[^/]+(?:\/.*)?)?\/?$/.test(s);if(e.hostname==="gitlab.com")return /^\/.+?\/[^/]+(?:\.git)?(?:\/-\/tree\/[^/]+(?:\/.*)?)?\/?$/.test(s)}catch{}return /^https?:\/\/.+\.git(?:$|[/?])/i.test(t)?true:!t.includes(":")&&!t.startsWith(".")&&!t.startsWith("/")&&/^([^/]+)\/([^/]+)(?:\/(.+)|@(.+))?$/.test(t)}function Li(t){let e=t.indexOf("#");if(e<0)return {inputWithoutFragment:t};let s=t.slice(0,e),n=t.slice(e+1);if(!n||!Ii(s))return {inputWithoutFragment:t};let l=n.indexOf("@");if(l===-1)return {inputWithoutFragment:s,ref:Ps(n)};let o=n.slice(0,l),i=n.slice(l+1);return {inputWithoutFragment:s,ref:o?Ps(o):void 0,skillFilter:i?Ps(i):void 0}}function wn(t,e,s){return e?`${t}#${e}${s?`@${s}`:""}`:t}function dt(t){if(xi(t)){let f=path.resolve(t);return {type:"local",url:f,localPath:f}}let{inputWithoutFragment:e,ref:s,skillFilter:n}=Li(t);t=e;let l=Ai[t];l&&(t=l);let o=t.match(/^github:(.+)$/);if(o)return dt(wn(o[1],s,n));let i=t.match(/^gitlab:(.+)$/);if(i)return dt(wn(`https://gitlab.com/${i[1]}`,s,n));let a=t.match(/github\.com\/([^/]+)\/([^/]+)\/tree\/([^/]+)\/(.+)/);if(a){let[,f,x,A,S]=a;return {type:"github",url:`https://github.com/${f}/${x}.git`,ref:A||s,subpath:S&&Ls(S)}}let r=t.match(/github\.com\/([^/]+)\/([^/]+)\/tree\/([^/]+)$/);if(r){let[,f,x,A]=r;return {type:"github",url:`https://github.com/${f}/${x}.git`,ref:A||s}}let h=t.match(/github\.com\/([^/]+)\/([^/]+)/);if(h){let[,f,x]=h,A=x.replace(/\.git$/,"");return {type:"github",url:`https://github.com/${f}/${A}.git`,...s?{ref:s}:{}}}let u=t.match(/^(https?):\/\/([^/]+)\/(.+?)\/-\/tree\/([^/]+)\/(.+)/);if(u){let[,f,x,A,S,E]=u;if(x!=="github.com"&&A)return {type:"gitlab",url:`${f}://${x}/${A.replace(/\.git$/,"")}.git`,ref:S||s,subpath:E&&Ls(E)}}let m=t.match(/^(https?):\/\/([^/]+)\/(.+?)\/-\/tree\/([^/]+)$/);if(m){let[,f,x,A,S]=m;if(x!=="github.com"&&A)return {type:"gitlab",url:`${f}://${x}/${A.replace(/\.git$/,"")}.git`,ref:S||s}}let d=t.match(/gitlab\.com\/(.+?)(?:\.git)?\/?$/);if(d){let f=d[1];if(f.includes("/"))return {type:"gitlab",url:`https://gitlab.com/${f}.git`,...s?{ref:s}:{}}}let p=t.match(/^([^/]+)\/([^/@]+)@(.+)$/);if(p&&!t.includes(":")&&!t.startsWith(".")&&!t.startsWith("/")){let[,f,x,A]=p;return {type:"github",url:`https://github.com/${f}/${x}.git`,...s?{ref:s}:{},skillFilter:n||A}}let c=t.match(/^([^/]+)\/([^/]+)(?:\/(.+?))?\/?$/);if(c&&!t.includes(":")&&!t.startsWith(".")&&!t.startsWith("/")){let[,f,x,A]=c;return {type:"github",url:`https://github.com/${f}/${x}.git`,...s?{ref:s}:{},subpath:A&&Ls(A),...n?{skillFilter:n}:{}}}return Pi(t)?{type:"well-known",url:t}:{type:"git",url:t,...s?{ref:s}:{}}}function Pi(t){if(!t.startsWith("http://")&&!t.startsWith("https://"))return false;try{let e=new URL(t);return !(["github.com","gitlab.com","raw.githubusercontent.com"].includes(e.hostname)||t.endsWith(".git"))}catch{return false}}var vn=3e5,Ts=(()=>{let t=process.env.SKILLS_CLONE_TIMEOUT;if(!t)return vn;let e=Number.parseInt(t,10);return Number.isFinite(e)&&e>0?e:vn})(),xn=util.promisify(child_process.execFile),We=class extends Error{constructor(s,n,l=false,o=false){super(s);chunkXDSGBJHO_cjs.a(this,"url");chunkXDSGBJHO_cjs.a(this,"isTimeout");chunkXDSGBJHO_cjs.a(this,"isAuthError");this.name="GitCloneError",this.url=n,this.isTimeout=l,this.isAuthError=o;}};function Ui(t){let e=t.match(/^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/i);if(e){let s=e[1],n=e[2];return {owner:s,repo:n,slug:`${s}/${n}`,sshUrl:`git@github.com:${s}/${n}.git`}}try{let s=new URL(t);if(s.hostname!=="github.com")return null;let n=s.pathname.match(/^\/([^/]+)\/([^/]+?)(?:\.git)?\/?$/);if(!n)return null;let l=n[1],o=n[2];return {owner:l,repo:o,slug:`${l}/${o}`,sshUrl:`git@github.com:${l}/${o}.git`}}catch{return null}}function ji(t){try{let e=new URL(t);return e.protocol==="https:"&&e.hostname==="github.com"}catch{return false}}function Pn(t){let e=t.toLowerCase();return e.includes("saml sso")||e.includes("enforced sso")||e.includes("enabled or enforced saml")||e.includes("re-authorize the oauth application")}function Oi(t){return t.includes("Authentication failed")||t.includes("could not read Username")||t.includes("Permission denied")||t.includes("Repository not found")||t.includes("requested URL returned error: 403")||Pn(t)}function An(t){let e={...process.env,GIT_TERMINAL_PROMPT:"0",GIT_LFS_SKIP_SMUDGE:"1",...t};return Ti__default.default({timeout:{block:Ts},config:["filter.lfs.required=false","filter.lfs.smudge=","filter.lfs.clean=","filter.lfs.process="]}).env(e)}async function In(t){try{await promises.rm(t,{recursive:!0,force:!0});}catch{}await promises.mkdir(t,{recursive:true});}async function Fi(t,e,s){let n=t.slug;try{let{stdout:o,stderr:i}=await xn("gh",["auth","status","-h","github.com"],{timeout:5e3,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}}),a=`${o}${i}`;/Git operations protocol:\s+ssh/i.test(a)&&(n=t.sshUrl);}catch{return false}return await xn("gh",["repo","clone",n,e,"--",...s?["--depth=1","--branch",s]:["--depth=1"]],{timeout:Ts,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}}),true}function Mi(t,e,s){return e&&Pn(s)?`GitHub blocked HTTPS access to ${t} because the organization enforces SAML SSO.
2
2
  skills tried your existing git credentials and available fallbacks, but none succeeded.
3
3
  - Re-authorize your GitHub credentials/app for that org's SSO policy
4
4
  - Or rerun with SSH: easbot skills add ${e.sshUrl}
@@ -9,7 +9,7 @@
9
9
  - For private repos, ensure you have access
10
10
  - For SSH: Check your keys with 'ssh -T git@github.com'
11
11
  - For HTTPS: Run 'gh auth login' or configure git credentials`}async function Ke(t,e){let s=await promises.mkdtemp(path.join(os$1.tmpdir(),"skills-")),n=e?["--depth","1","--branch",e]:["--depth","1"],l=Ui(t);try{return await An().clone(t,s,n),s}catch(o){let i=o instanceof Error?o.message:String(o),a=i.includes("block timeout")||i.includes("timed out"),r=Oi(i);if(a){try{await promises.rm(s,{recursive:!0,force:!0});}catch{}let h=Math.round(Ts/1e3);throw new We(`Clone timed out after ${h}s. Common causes:
12
- - Large repository: raise the timeout with SKILLS_CLONE_TIMEOUT_MS=600000 (10m)
12
+ - Large repository: raise the timeout with SKILLS_CLONE_TIMEOUT=600000 (10m)
13
13
  - Slow network: retry, or clone manually and pass the local path to 'skills add'
14
14
  - Private repo without credentials: ensure auth is configured
15
15
  - For SSH: ssh-add -l (to check loaded keys)
@@ -22,7 +22,7 @@ ${s.replace(/^\r?\n/u,"")}`}async function ss(t,e,s){await promises.mkdir(e,{rec
22
22
  ${k__default.default.yellow("\u2502")} ${k__default.default.dim(`Tip: set ${k__default.default.cyan("GITHUB_TOKEN")} to avoid this prompt, or use ${k__default.default.cyan("--full-depth")} to clone instead.
23
23
  `)}`),Qs=true);try{let t=child_process.execSync("gh auth token",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim();if(t)return t}catch{}return null}async function Tu(t,e,s,n){let{fetchRepoTree:l,getSkillFolderHashFromTree:o}=await import('./blob-UAS6F4BG.cjs'),i=await l(t,n,s??void 0);return i?o(i,e):null}async function en(t,e){let s=await De(),n=new Date().toISOString(),l=s.skills[t];s.skills[t]={...e,installedAt:l?.installedAt??n,updatedAt:n},await ds(s);}async function pl(t){let e=await De();return t in e.skills?(delete e.skills[t],await ds(e),true):false}async function ml(t){return (await De()).skills[t]??null}async function fl(){return (await De()).skills}async function Du(){let t=await De(),e=new Map;for(let[s,n]of Object.entries(t.skills)){let l=e.get(n.source);l?l.skills.push(s):e.set(n.source,{skills:[s],entry:n});}return e}function Zs(){return {version:dl,skills:{},dismissed:{}}}async function hl(t){return (await De()).dismissed?.[t]===true}async function Kt(t){let e=await De();e.dismissed||(e.dismissed={}),e.dismissed[t]=true,await ds(e);}async function tn(){return (await De()).lastSelectedAgents}async function sn(t){let e=await De();e.lastSelectedAgents=t,await ds(e);}var qo=new stream.Writable({write(t,e,s){s();}}),Jo=k__default.default.green("\u25C6"),Xo=k__default.default.red("\u25A0"),Yo=k__default.default.green("\u25C7"),Zo=k__default.default.green("\u25CF"),Qo=k__default.default.dim("\u25CB");k__default.default.green("\u2713");var er=k__default.default.green("\u2022"),ce=k__default.default.dim("\u2502"),bt=k__default.default.dim("\u2500"),tr=Symbol("cancel");function sr(t){let e=0;for(let s of t){let n=s.codePointAt(0);if(n===0)continue;let l=n>=4352&&n<=4447||n>=8986&&n<=8987||n>=9001&&n<=9002||n>=9193&&n<=9196||n===9200||n===9203||n>=9725&&n<=9726||n>=9748&&n<=9749||n>=9800&&n<=9811||n>=9855&&n<=9855||n>=9875&&n<=9875||n>=9889&&n<=9889||n>=9898&&n<=9899||n>=9917&&n<=9918||n>=9924&&n<=9925||n>=9934&&n<=9934||n>=9940&&n<=9940||n>=9962&&n<=9962||n>=9970&&n<=9971||n>=9973&&n<=9973||n>=9978&&n<=9978||n>=9981&&n<=9981||n>=9989&&n<=9989||n>=9994&&n<=9995||n>=10024&&n<=10024||n>=10060&&n<=10060||n>=10062&&n<=10062||n>=10067&&n<=10069||n>=10071&&n<=10071||n>=10133&&n<=10135||n>=10160&&n<=10160||n>=10175&&n<=10175||n>=11035&&n<=11036||n>=11088&&n<=11088||n>=11093&&n<=11093||n>=11904&&n<=42191&&n!==12351||n>=43360&&n<=43388||n>=44032&&n<=55203||n>=63744&&n<=64255||n>=65040&&n<=65049||n>=65072&&n<=65135||n>=65280&&n<=65376||n>=65504&&n<=65510||n>=126976&&n<=129535;e+=l?2:1;}return e}function nr(t,e){let s=util.stripVTControlCharacters(t),n=Math.max(1,e),l=sr(s);return Math.max(1,Math.ceil(l/n))}function lr(t,e){let s=e!==void 0&&e>0?e:process.stdout.columns&&process.stdout.columns>0?process.stdout.columns:80;return t.reduce((n,l)=>n+nr(l,s),0)}async function wt(t){let{message:e,items:s,maxVisible:n=8,initialSelected:l=[],required:o=false,lockedSection:i}=t;return new Promise(a=>{let r=gs__namespace.createInterface({input:process.stdin,output:qo,terminal:false});process.stdin.isTTY&&process.stdin.setRawMode(true),gs__namespace.emitKeypressEvents(process.stdin,r);let h="",u=0,m=new Set(l),d=0,p=i?i.items.map(C=>C.value):[],c=(C,I)=>{if(!I)return true;let w=I.toLowerCase();return C.label.toLowerCase().includes(w)||String(C.value).toLowerCase().includes(w)},f=()=>s.filter(C=>c(C,h)),x=()=>{if(d>0){process.stdout.write(`\x1B[${d}A`);for(let C=0;C<d;C++)process.stdout.write("\x1B[2K\x1B[1B");process.stdout.write(`\x1B[${d}A`);}},A=(C="active")=>{x();let I=[],w=f(),N=C==="active"?Jo:C==="cancel"?Xo:Yo;if(I.push(`${N} ${k__default.default.bold(e)}`),C==="active"){if(i&&i.items.length>0){I.push(`${ce}`);let ee=`${k__default.default.bold(i.title)} ${k__default.default.dim("\u2500\u2500 always included")}`;I.push(`${ce} ${bt}${bt} ${ee} ${bt.repeat(12)}`);for(let be of i.items)I.push(`${ce} ${er} ${k__default.default.bold(be.label)}`);i.hiddenCount&&i.hiddenCount>0&&I.push(`${ce} ${k__default.default.dim(`...and ${i.hiddenCount} more`)}`),I.push(`${ce}`),I.push(`${ce} ${bt}${bt} ${k__default.default.bold("Additional agents")} ${bt.repeat(29)}`);}let U=`${ce} ${k__default.default.dim("Search:")} ${h}${k__default.default.inverse(" ")}`;I.push(U),I.push(`${ce} ${k__default.default.dim("\u2191\u2193 move, space select, enter confirm")}`),I.push(`${ce}`);let M=Math.max(0,Math.min(u-Math.floor(n/2),w.length-n)),G=Math.min(w.length,M+n),de=w.slice(M,G);if(w.length===0)I.push(`${ce} ${k__default.default.dim("No matches found")}`);else {for(let ge=0;ge<de.length;ge++){let xe=de[ge],Fe=M+ge,Pt=m.has(xe.value),Ne=Fe===u,Ee=Pt?Zo:Qo,Bt=Ne?k__default.default.underline(xe.label):xe.label,$=xe.hint?k__default.default.dim(` (${xe.hint})`):"",_=Ne?k__default.default.cyan("\u276F"):" ";I.push(`${ce} ${_} ${Ee} ${Bt}${$}`);}let ee=M,be=w.length-G;if(ee>0||be>0){let ge=[];ee>0&&ge.push(`\u2191 ${ee} more`),be>0&&ge.push(`\u2193 ${be} more`),I.push(`${ce} ${k__default.default.dim(ge.join(" "))}`);}}I.push(`${ce}`);let te=[...i?i.items.map(ee=>ee.label):[],...s.filter(ee=>m.has(ee.value)).map(ee=>ee.label)];if(te.length===0)I.push(`${ce} ${k__default.default.dim("Selected: (none)")}`);else {let ee=te.length<=3?te.join(", "):`${te.slice(0,3).join(", ")} +${te.length-3} more`;I.push(`${ce} ${k__default.default.green("Selected:")} ${ee}`);}I.push(`${k__default.default.dim("\u2514")}`);}else if(C==="submit"){let U=[...i?i.items.map(M=>M.label):[],...s.filter(M=>m.has(M.value)).map(M=>M.label)];I.push(`${ce} ${k__default.default.dim(U.join(", "))}`);}else C==="cancel"&&I.push(`${ce} ${k__default.default.strikethrough(k__default.default.dim("Cancelled"))}`);process.stdout.write(I.join(`
24
24
  `)+`
25
- `),d=lr(I,process.stdout.columns);},S=()=>{process.stdin.removeListener("keypress",O),process.stdin.isTTY&&process.stdin.setRawMode(false),r.close();},E=()=>{o&&m.size===0&&p.length===0||(A("submit"),S(),a([...p,...Array.from(m)]));},T=()=>{A("cancel"),S(),a(tr);},O=(C,I)=>{if(!I)return;let w=f();if(I.name==="return"){E();return}if(I.name==="escape"||I.ctrl&&I.name==="c"){T();return}if(I.name==="up"){u=Math.max(0,u-1),A();return}if(I.name==="down"){u=Math.min(w.length-1,u+1),A();return}if(I.name==="space"){let N=w[u];N&&(m.has(N.value)?m.delete(N.value):m.add(N.value)),A();return}if(I.name==="backspace"){h=h.slice(0,-1),u=0,A();return}if(I.sequence&&!I.ctrl&&!I.meta&&I.sequence.length===1){h+=I.sequence,u=0,A();return}};process.stdin.on("keypress",O),A();})}var kl={version:"0.3.9"};var wl=t=>typeof t=="symbol",$l="eve agent";async function dr(t){let e=Jt(t);return e?Nt(e.owner,e.repo):false}function gr(t,e){return t.startsWith("git@")||t.startsWith("ssh://")?t:e}function Sl(t){qs(t);}function yl(t){switch(t){case "critical":return k__default.default.red(k__default.default.bold("Critical Risk"));case "high":return k__default.default.red("High Risk");case "medium":return k__default.default.yellow("Med Risk");case "low":return k__default.default.green("Low Risk");case "safe":return k__default.default.green("Safe");default:return k__default.default.dim("--")}}function pr(t){if(!t)return k__default.default.dim("--");let e=t.alerts??0;return e>0?k__default.default.red(`${e} alert${e!==1?"s":""}`):k__default.default.green("0 alerts")}function $t(t,e){let s=chunkXDSGBJHO_cjs.c(t),n=Math.max(0,e-s.length);return t+" ".repeat(n)}function mr(t,e,s){if(!t)return [];if(!e.some(a=>{let r=t[a.slug];return r&&Object.keys(r).length>0}))return [];let l=Math.min(Math.max(...e.map(a=>a.displayName.length)),36),o=[],i=$t("",l+2)+$t(k__default.default.dim("Gen"),18)+$t(k__default.default.dim("Socket"),18)+k__default.default.dim("Snyk");o.push(i);for(let a of e){let r=t[a.slug],h=a.displayName.length>l?a.displayName.slice(0,l-1)+"\u2026":a.displayName,u=r?.ath?yl(r.ath.risk):k__default.default.dim("--"),m=r?.socket?pr(r.socket):k__default.default.dim("--"),d=r?.snyk?yl(r.snyk.risk):k__default.default.dim("--");o.push($t(k__default.default.cyan(h),l+2)+$t(u,18)+$t(m,18)+d);}return o.push(""),o.push(`${k__default.default.dim("Details:")} ${k__default.default.dim(`https://skills.sh/${s}`)}`),o}function St(t,e){let s=os$1.homedir();return t===s||t.startsWith(s+path.sep)?"~"+t.slice(s.length):t===e||t.startsWith(e+path.sep)?"."+t.slice(e.length):t}function fr(t){let e=crypto.createHash("sha256");return e.update("SKILL.md"),e.update(t),e.digest("hex")}function pe(t,e=5){if(t.length<=e)return t.join(", ");let s=t.slice(0,e),n=t.length-e;return `${s.join(", ")} +${n} more`}function hr(t){let e=t.map(n=>k__default.default.cyan(ne(n))),s=pe(e,3);return chunkXDSGBJHO_cjs.c(s).length<=80?s:`${t.length} selected skills`}function kr(t){return `Detected an eve project. Install ${hr(t)} for your ${$l} to use?`}function on(t){let e=[],s=[];for(let n of t)we(n)?e.push(D[n].displayName):s.push(D[n].displayName);return {universal:e,symlinked:s}}function yr(t,e){let s=[],{universal:n,symlinked:l}=on(t);if(e==="symlink")n.length>0&&s.push(` ${k__default.default.green("universal:")} ${pe(n)}`),l.length>0&&s.push(` ${k__default.default.dim("symlink \u2192")} ${pe(l)}`);else {let o=t.map(i=>D[i].displayName);s.push(` ${k__default.default.dim("copy \u2192")} ${pe(o)}`);}return s}function ms(t){let e=D[t.agent].displayName;return t.subagent?`${e} (${t.subagent})`:e}function bl(t){return t.subagent?`${t.agent}:${t.subagent}`:t.agent}function br(t,e){let s=[];for(let n of t)if(n==="eve")for(let l of e)s.push({agent:n,subagent:l});else s.push({agent:n});return s}function wr(t,e){let s=[],n=t.filter(a=>!a.subagent).map(a=>a.agent),l=t.filter(a=>a.subagent).map(ms),{universal:o,symlinked:i}=on(n);if(e==="symlink")o.length>0&&s.push(` ${k__default.default.green("universal:")} ${pe(o)}`),i.length>0&&s.push(` ${k__default.default.dim("symlink \u2192")} ${pe(i)}`),l.length>0&&s.push(` ${k__default.default.dim("copy \u2192")} ${pe(l)}`);else {let a=t.map(ms);s.push(` ${k__default.default.dim("copy \u2192")} ${pe(a)}`);}return s}function nn(t){let e=Xe(),s=[...t];for(let n of e)s.includes(n)||s.push(n);return s}function vl(t,e){let s=[],{universal:n}=on(e),o=t.filter(a=>!a.symlinkFailed&&!a.skipped&&!n.includes(a.agent)).map(a=>a.agent),i=t.filter(a=>a.symlinkFailed&&!a.skipped).map(a=>a.agent);return n.length>0&&s.push(` ${k__default.default.green("universal:")} ${pe(n)}`),o.length>0&&s.push(` ${k__default.default.dim("symlinked:")} ${pe(o)}`),i.length>0&&s.push(` ${k__default.default.yellow("copied:")} ${pe(i)}`),s}function xl(t){return y__namespace.multiselect({...t,options:t.options,message:`${t.message} ${k__default.default.dim("(space to toggle)")}`})}async function Al(t,e){let s;try{s=await tn();}catch{}let n=e.map(r=>r.value),o=["claude-code","opencode","codex"].filter(r=>n.includes(r)),i=[];s&&s.length>0&&(i=s.filter(r=>n.includes(r))),i.length===0&&(i=o);let a=await wt({message:t,items:e,initialSelected:i,required:true});if(!wl(a))try{await sn(a);}catch{}return a}async function ln(t){let e=u=>!t.global||D[u].globalSkillsDir,s=Xe().filter(e),n=ts().filter(e),l=Ft().filter(u=>u!=="eve"&&e(u)),o={title:"Universal (.agents/skills)",items:n.map(u=>({value:u,label:D[u].displayName})),hiddenCount:s.length-n.length},i=l.map(u=>({value:u,label:D[u].displayName,hint:t.global?D[u].globalSkillsDir:D[u].skillsDir})),a;try{a=await tn();}catch{}let r=a?a.filter(u=>l.includes(u)&&!s.includes(u)):[],h=await wt({message:"Which agents do you want to install to?",items:i,initialSelected:r,lockedSection:o});if(!wl(h))try{await sn(h);}catch{}return h}var $r=kl.version;qs($r);async function Sr(t,e,s,n){n.start("Discovering skills from well-known endpoint...");let l=await yt.fetchAllSkills(e);l.length===0&&(n.stop(k__default.default.red("No skills found")),y__namespace.outro(k__default.default.red("No skills found at this URL. Make sure the server has a /.well-known/agent-skills/index.json or /.well-known/skills/index.json file.")),process.exit(1)),n.stop(`Found ${k__default.default.green(l.length)} skill${l.length>1?"s":""}`);for(let w of l)y__namespace.log.info(`Skill: ${k__default.default.cyan(w.installName)}`),y__namespace.log.message(k__default.default.dim(w.description)),w.files.size>1&&y__namespace.log.message(k__default.default.dim(` Files: ${Array.from(w.files.keys()).join(", ")}`));if(s.list){console.log(),y__namespace.log.step(k__default.default.bold("Available Skills"));for(let w of l)y__namespace.log.message(` ${k__default.default.cyan(w.installName)}`),y__namespace.log.message(` ${k__default.default.dim(w.description)}`),w.files.size>1&&y__namespace.log.message(` ${k__default.default.dim(`Files: ${w.files.size}`)}`);console.log(),y__namespace.outro("Run without --list to install"),process.exit(0);}let o;if(s.skill?.includes("*"))o=l,y__namespace.log.info(`Installing all ${l.length} skills`);else if(s.skill&&s.skill.length>0){if(o=l.filter(w=>s.skill.some(N=>w.installName.toLowerCase()===N.toLowerCase()||w.name.toLowerCase()===N.toLowerCase())),o.length===0){y__namespace.log.error(`No matching skills found for: ${s.skill.join(", ")}`),y__namespace.log.info("Available skills:");for(let w of l)y__namespace.log.message(` - ${w.installName}`);process.exit(1);}}else if(l.length===1){o=l;let w=l[0];y__namespace.log.info(`Skill: ${k__default.default.cyan(w.installName)}`);}else if(s.yes)o=l,y__namespace.log.info(`Installing all ${l.length} skills`);else {let w=l.map(U=>({value:U,label:U.installName,hint:U.description.length>60?U.description.slice(0,57)+"...":U.description})),N=await xl({message:"Select skills to install",options:w,required:true});y__namespace.isCancel(N)&&(y__namespace.cancel("Installation cancelled"),process.exit(0)),o=N;}let i,a=Object.keys(D);if(s.agent?.includes("*"))i=a,y__namespace.log.info(`Installing to all ${i.length} agents`);else if(s.agent&&s.agent.length>0){let w=s.agent.filter(N=>!a.includes(N));w.length>0&&(y__namespace.log.error(`Invalid agents: ${w.join(", ")}`),y__namespace.log.info(`Valid agents: ${a.join(", ")}`),process.exit(1)),i=s.agent;}else {n.start("Loading agents...");let w=await Ge(),N=Object.keys(D).length;if(n.stop(`${N} agents`),w.length===0)if(s.yes)i=a,y__namespace.log.info("Installing to all agents");else {y__namespace.log.info("Select agents to install skills to");let U=Object.entries(D).map(([G,de])=>({value:G,label:de.displayName})),M=await Al("Which agents do you want to install to?",U);y__namespace.isCancel(M)&&(y__namespace.cancel("Installation cancelled"),process.exit(0)),i=M;}else if(w.length===1||s.yes)if(i=nn(w),w.length===1){let U=w[0];y__namespace.log.info(`Installing to: ${k__default.default.cyan(D[U].displayName)}`);}else y__namespace.log.info(`Installing to: ${w.map(U=>k__default.default.cyan(D[U].displayName)).join(", ")}`);else {let U=await ln({global:s.global});y__namespace.isCancel(U)&&(y__namespace.cancel("Installation cancelled"),process.exit(0)),i=U;}}let r=s.global??false,h=i.some(w=>D[w].globalSkillsDir!==void 0);if(s.global===void 0&&!s.yes&&h){let w=await y__namespace.select({message:"Installation scope",options:[{value:false,label:"Project",hint:"Install in current directory (committed with your project)"},{value:true,label:"Global",hint:"Install in home directory (available across all projects)"}]});y__namespace.isCancel(w)&&(y__namespace.cancel("Installation cancelled"),process.exit(0)),r=w;}let u=s.copy?"copy":"symlink",m=new Set(i.map(w=>D[w].skillsDir));if(!s.copy&&!s.yes&&m.size>1){let w=await y__namespace.select({message:"Installation method",options:[{value:"symlink",label:"Symlink (Recommended)",hint:"Single source of truth, easy updates"},{value:"copy",label:"Copy to all agents",hint:"Independent copies for each agent"}]});y__namespace.isCancel(w)&&(y__namespace.cancel("Installation cancelled"),process.exit(0)),u=w;}else m.size<=1&&(u="copy");let d=process.cwd(),p=[];i.map(w=>D[w].displayName);let f=await Promise.all(o.flatMap(w=>i.map(async N=>({skillName:w.installName,agent:N,installed:await os(w.installName,N,{global:r})})))),x=new Map;for(let{skillName:w,agent:N,installed:U}of f)x.has(w)||x.set(w,new Map),x.get(w).set(N,U);for(let w of o){p.length>0&&p.push("");let N=Ze(w.installName,{global:r}),U=St(N,d);p.push(`${k__default.default.cyan(U)}`),p.push(...yr(i,u)),w.files.size>1&&p.push(` ${k__default.default.dim("files:")} ${w.files.size}`);let M=x.get(w.installName),G=i.filter(de=>M?.get(de)).map(de=>D[de].displayName);G.length>0&&p.push(` ${k__default.default.yellow("overwrites:")} ${pe(G)}`);}if(console.log(),y__namespace.note(p.join(`
25
+ `),d=lr(I,process.stdout.columns);},S=()=>{process.stdin.removeListener("keypress",O),process.stdin.isTTY&&process.stdin.setRawMode(false),r.close();},E=()=>{o&&m.size===0&&p.length===0||(A("submit"),S(),a([...p,...Array.from(m)]));},T=()=>{A("cancel"),S(),a(tr);},O=(C,I)=>{if(!I)return;let w=f();if(I.name==="return"){E();return}if(I.name==="escape"||I.ctrl&&I.name==="c"){T();return}if(I.name==="up"){u=Math.max(0,u-1),A();return}if(I.name==="down"){u=Math.min(w.length-1,u+1),A();return}if(I.name==="space"){let N=w[u];N&&(m.has(N.value)?m.delete(N.value):m.add(N.value)),A();return}if(I.name==="backspace"){h=h.slice(0,-1),u=0,A();return}if(I.sequence&&!I.ctrl&&!I.meta&&I.sequence.length===1){h+=I.sequence,u=0,A();return}};process.stdin.on("keypress",O),A();})}var kl={version:"0.3.10"};var wl=t=>typeof t=="symbol",$l="eve agent";async function dr(t){let e=Jt(t);return e?Nt(e.owner,e.repo):false}function gr(t,e){return t.startsWith("git@")||t.startsWith("ssh://")?t:e}function Sl(t){qs(t);}function yl(t){switch(t){case "critical":return k__default.default.red(k__default.default.bold("Critical Risk"));case "high":return k__default.default.red("High Risk");case "medium":return k__default.default.yellow("Med Risk");case "low":return k__default.default.green("Low Risk");case "safe":return k__default.default.green("Safe");default:return k__default.default.dim("--")}}function pr(t){if(!t)return k__default.default.dim("--");let e=t.alerts??0;return e>0?k__default.default.red(`${e} alert${e!==1?"s":""}`):k__default.default.green("0 alerts")}function $t(t,e){let s=chunkXDSGBJHO_cjs.c(t),n=Math.max(0,e-s.length);return t+" ".repeat(n)}function mr(t,e,s){if(!t)return [];if(!e.some(a=>{let r=t[a.slug];return r&&Object.keys(r).length>0}))return [];let l=Math.min(Math.max(...e.map(a=>a.displayName.length)),36),o=[],i=$t("",l+2)+$t(k__default.default.dim("Gen"),18)+$t(k__default.default.dim("Socket"),18)+k__default.default.dim("Snyk");o.push(i);for(let a of e){let r=t[a.slug],h=a.displayName.length>l?a.displayName.slice(0,l-1)+"\u2026":a.displayName,u=r?.ath?yl(r.ath.risk):k__default.default.dim("--"),m=r?.socket?pr(r.socket):k__default.default.dim("--"),d=r?.snyk?yl(r.snyk.risk):k__default.default.dim("--");o.push($t(k__default.default.cyan(h),l+2)+$t(u,18)+$t(m,18)+d);}return o.push(""),o.push(`${k__default.default.dim("Details:")} ${k__default.default.dim(`https://skills.sh/${s}`)}`),o}function St(t,e){let s=os$1.homedir();return t===s||t.startsWith(s+path.sep)?"~"+t.slice(s.length):t===e||t.startsWith(e+path.sep)?"."+t.slice(e.length):t}function fr(t){let e=crypto.createHash("sha256");return e.update("SKILL.md"),e.update(t),e.digest("hex")}function pe(t,e=5){if(t.length<=e)return t.join(", ");let s=t.slice(0,e),n=t.length-e;return `${s.join(", ")} +${n} more`}function hr(t){let e=t.map(n=>k__default.default.cyan(ne(n))),s=pe(e,3);return chunkXDSGBJHO_cjs.c(s).length<=80?s:`${t.length} selected skills`}function kr(t){return `Detected an eve project. Install ${hr(t)} for your ${$l} to use?`}function on(t){let e=[],s=[];for(let n of t)we(n)?e.push(D[n].displayName):s.push(D[n].displayName);return {universal:e,symlinked:s}}function yr(t,e){let s=[],{universal:n,symlinked:l}=on(t);if(e==="symlink")n.length>0&&s.push(` ${k__default.default.green("universal:")} ${pe(n)}`),l.length>0&&s.push(` ${k__default.default.dim("symlink \u2192")} ${pe(l)}`);else {let o=t.map(i=>D[i].displayName);s.push(` ${k__default.default.dim("copy \u2192")} ${pe(o)}`);}return s}function ms(t){let e=D[t.agent].displayName;return t.subagent?`${e} (${t.subagent})`:e}function bl(t){return t.subagent?`${t.agent}:${t.subagent}`:t.agent}function br(t,e){let s=[];for(let n of t)if(n==="eve")for(let l of e)s.push({agent:n,subagent:l});else s.push({agent:n});return s}function wr(t,e){let s=[],n=t.filter(a=>!a.subagent).map(a=>a.agent),l=t.filter(a=>a.subagent).map(ms),{universal:o,symlinked:i}=on(n);if(e==="symlink")o.length>0&&s.push(` ${k__default.default.green("universal:")} ${pe(o)}`),i.length>0&&s.push(` ${k__default.default.dim("symlink \u2192")} ${pe(i)}`),l.length>0&&s.push(` ${k__default.default.dim("copy \u2192")} ${pe(l)}`);else {let a=t.map(ms);s.push(` ${k__default.default.dim("copy \u2192")} ${pe(a)}`);}return s}function nn(t){let e=Xe(),s=[...t];for(let n of e)s.includes(n)||s.push(n);return s}function vl(t,e){let s=[],{universal:n}=on(e),o=t.filter(a=>!a.symlinkFailed&&!a.skipped&&!n.includes(a.agent)).map(a=>a.agent),i=t.filter(a=>a.symlinkFailed&&!a.skipped).map(a=>a.agent);return n.length>0&&s.push(` ${k__default.default.green("universal:")} ${pe(n)}`),o.length>0&&s.push(` ${k__default.default.dim("symlinked:")} ${pe(o)}`),i.length>0&&s.push(` ${k__default.default.yellow("copied:")} ${pe(i)}`),s}function xl(t){return y__namespace.multiselect({...t,options:t.options,message:`${t.message} ${k__default.default.dim("(space to toggle)")}`})}async function Al(t,e){let s;try{s=await tn();}catch{}let n=e.map(r=>r.value),o=["claude-code","opencode","codex"].filter(r=>n.includes(r)),i=[];s&&s.length>0&&(i=s.filter(r=>n.includes(r))),i.length===0&&(i=o);let a=await wt({message:t,items:e,initialSelected:i,required:true});if(!wl(a))try{await sn(a);}catch{}return a}async function ln(t){let e=u=>!t.global||D[u].globalSkillsDir,s=Xe().filter(e),n=ts().filter(e),l=Ft().filter(u=>u!=="eve"&&e(u)),o={title:"Universal (.agents/skills)",items:n.map(u=>({value:u,label:D[u].displayName})),hiddenCount:s.length-n.length},i=l.map(u=>({value:u,label:D[u].displayName,hint:t.global?D[u].globalSkillsDir:D[u].skillsDir})),a;try{a=await tn();}catch{}let r=a?a.filter(u=>l.includes(u)&&!s.includes(u)):[],h=await wt({message:"Which agents do you want to install to?",items:i,initialSelected:r,lockedSection:o});if(!wl(h))try{await sn(h);}catch{}return h}var $r=kl.version;qs($r);async function Sr(t,e,s,n){n.start("Discovering skills from well-known endpoint...");let l=await yt.fetchAllSkills(e);l.length===0&&(n.stop(k__default.default.red("No skills found")),y__namespace.outro(k__default.default.red("No skills found at this URL. Make sure the server has a /.well-known/agent-skills/index.json or /.well-known/skills/index.json file.")),process.exit(1)),n.stop(`Found ${k__default.default.green(l.length)} skill${l.length>1?"s":""}`);for(let w of l)y__namespace.log.info(`Skill: ${k__default.default.cyan(w.installName)}`),y__namespace.log.message(k__default.default.dim(w.description)),w.files.size>1&&y__namespace.log.message(k__default.default.dim(` Files: ${Array.from(w.files.keys()).join(", ")}`));if(s.list){console.log(),y__namespace.log.step(k__default.default.bold("Available Skills"));for(let w of l)y__namespace.log.message(` ${k__default.default.cyan(w.installName)}`),y__namespace.log.message(` ${k__default.default.dim(w.description)}`),w.files.size>1&&y__namespace.log.message(` ${k__default.default.dim(`Files: ${w.files.size}`)}`);console.log(),y__namespace.outro("Run without --list to install"),process.exit(0);}let o;if(s.skill?.includes("*"))o=l,y__namespace.log.info(`Installing all ${l.length} skills`);else if(s.skill&&s.skill.length>0){if(o=l.filter(w=>s.skill.some(N=>w.installName.toLowerCase()===N.toLowerCase()||w.name.toLowerCase()===N.toLowerCase())),o.length===0){y__namespace.log.error(`No matching skills found for: ${s.skill.join(", ")}`),y__namespace.log.info("Available skills:");for(let w of l)y__namespace.log.message(` - ${w.installName}`);process.exit(1);}}else if(l.length===1){o=l;let w=l[0];y__namespace.log.info(`Skill: ${k__default.default.cyan(w.installName)}`);}else if(s.yes)o=l,y__namespace.log.info(`Installing all ${l.length} skills`);else {let w=l.map(U=>({value:U,label:U.installName,hint:U.description.length>60?U.description.slice(0,57)+"...":U.description})),N=await xl({message:"Select skills to install",options:w,required:true});y__namespace.isCancel(N)&&(y__namespace.cancel("Installation cancelled"),process.exit(0)),o=N;}let i,a=Object.keys(D);if(s.agent?.includes("*"))i=a,y__namespace.log.info(`Installing to all ${i.length} agents`);else if(s.agent&&s.agent.length>0){let w=s.agent.filter(N=>!a.includes(N));w.length>0&&(y__namespace.log.error(`Invalid agents: ${w.join(", ")}`),y__namespace.log.info(`Valid agents: ${a.join(", ")}`),process.exit(1)),i=s.agent;}else {n.start("Loading agents...");let w=await Ge(),N=Object.keys(D).length;if(n.stop(`${N} agents`),w.length===0)if(s.yes)i=a,y__namespace.log.info("Installing to all agents");else {y__namespace.log.info("Select agents to install skills to");let U=Object.entries(D).map(([G,de])=>({value:G,label:de.displayName})),M=await Al("Which agents do you want to install to?",U);y__namespace.isCancel(M)&&(y__namespace.cancel("Installation cancelled"),process.exit(0)),i=M;}else if(w.length===1||s.yes)if(i=nn(w),w.length===1){let U=w[0];y__namespace.log.info(`Installing to: ${k__default.default.cyan(D[U].displayName)}`);}else y__namespace.log.info(`Installing to: ${w.map(U=>k__default.default.cyan(D[U].displayName)).join(", ")}`);else {let U=await ln({global:s.global});y__namespace.isCancel(U)&&(y__namespace.cancel("Installation cancelled"),process.exit(0)),i=U;}}let r=s.global??false,h=i.some(w=>D[w].globalSkillsDir!==void 0);if(s.global===void 0&&!s.yes&&h){let w=await y__namespace.select({message:"Installation scope",options:[{value:false,label:"Project",hint:"Install in current directory (committed with your project)"},{value:true,label:"Global",hint:"Install in home directory (available across all projects)"}]});y__namespace.isCancel(w)&&(y__namespace.cancel("Installation cancelled"),process.exit(0)),r=w;}let u=s.copy?"copy":"symlink",m=new Set(i.map(w=>D[w].skillsDir));if(!s.copy&&!s.yes&&m.size>1){let w=await y__namespace.select({message:"Installation method",options:[{value:"symlink",label:"Symlink (Recommended)",hint:"Single source of truth, easy updates"},{value:"copy",label:"Copy to all agents",hint:"Independent copies for each agent"}]});y__namespace.isCancel(w)&&(y__namespace.cancel("Installation cancelled"),process.exit(0)),u=w;}else m.size<=1&&(u="copy");let d=process.cwd(),p=[];i.map(w=>D[w].displayName);let f=await Promise.all(o.flatMap(w=>i.map(async N=>({skillName:w.installName,agent:N,installed:await os(w.installName,N,{global:r})})))),x=new Map;for(let{skillName:w,agent:N,installed:U}of f)x.has(w)||x.set(w,new Map),x.get(w).set(N,U);for(let w of o){p.length>0&&p.push("");let N=Ze(w.installName,{global:r}),U=St(N,d);p.push(`${k__default.default.cyan(U)}`),p.push(...yr(i,u)),w.files.size>1&&p.push(` ${k__default.default.dim("files:")} ${w.files.size}`);let M=x.get(w.installName),G=i.filter(de=>M?.get(de)).map(de=>D[de].displayName);G.length>0&&p.push(` ${k__default.default.yellow("overwrites:")} ${pe(G)}`);}if(console.log(),y__namespace.note(p.join(`
26
26
  `),"Installation Summary"),!s.yes){let w=await y__namespace.confirm({message:"Proceed with installation?"});(y__namespace.isCancel(w)||!w)&&(y__namespace.cancel("Installation cancelled"),process.exit(0));}let A=yt.getSourceIdentifier(e),S=dr(A).catch(()=>null);n.start("Installing skills...");let E=[];for(let w of o)for(let N of i){let U=await ol(w,N,{global:r,mode:u});E.push({skill:w.installName,agent:D[N].displayName,...U});}n.stop("Installation complete"),console.log();let T=E.filter(w=>w.success),O=E.filter(w=>!w.success),C={};for(let w of o)C[w.installName]=w.sourceUrl;if(await S!==true&&ye({event:"install",source:A,skills:o.map(w=>w.installName).join(","),agents:i.join(","),...r&&{global:"1"},skillFiles:JSON.stringify(C),sourceType:"well-known"}),T.length>0&&r){let w=new Set(T.map(N=>N.skill));for(let N of o)if(w.has(N.installName))try{await en(N.installName,{source:A,sourceType:"well-known",sourceUrl:N.sourceUrl,skillFolderHash:""});}catch{}}if(T.length>0&&!r){let w=new Set(T.map(N=>N.skill));for(let N of o)if(w.has(N.installName))try{let U=T.find(G=>G.skill===N.installName),M=U?.canonicalPath||U?.path;if(M){let G=await ze(M);await Et(N.installName,{source:A,sourceType:"well-known",computedHash:G},d);}}catch{}}if(T.length>0){let w=new Map;for(let te of T){let ee=w.get(te.skill)||[];ee.push(te),w.set(te.skill,ee);}let N=w.size,U=T.filter(te=>te.mode==="symlink"&&te.symlinkFailed),M=U.map(te=>te.agent),G=[];for(let[te,ee]of w){let be=ee[0];if(be.mode==="copy"){G.push(`${k__default.default.green("\u2713")} ${te} ${k__default.default.dim("(copied)")}`);for(let ge of ee){let xe=St(ge.path,d);G.push(` ${k__default.default.dim("\u2192")} ${xe}`);}}else {if(be.canonicalPath){let ge=St(be.canonicalPath,d);G.push(`${k__default.default.green("\u2713")} ${ge}`);}else G.push(`${k__default.default.green("\u2713")} ${te}`);G.push(...vl(ee,i));}}let de=k__default.default.green(`Installed ${N} skill${N!==1?"s":""}`);y__namespace.note(G.join(`
27
27
  `),de),U.length>0&&(y__namespace.log.warn(k__default.default.yellow(`Symlinks failed for: ${pe(M)}`)),y__namespace.log.message(k__default.default.dim(" Files were copied instead. On Windows, enable Developer Mode for symlink support.")));}if(O.length>0){console.log(),y__namespace.log.error(k__default.default.red(`Failed to install ${O.length}`));for(let w of O)y__namespace.log.message(` ${k__default.default.red("\u2717")} ${w.skill} \u2192 ${w.agent}: ${k__default.default.dim(w.error)}`);}console.log(),y__namespace.outro(k__default.default.green("Done!")+k__default.default.dim(" Review skills before use; they run with full agent permissions.")),await Il(s,i);}async function rt(t,e={}){let s=t[0],n=false,l=()=>{n||(y__namespace.log.message(k__default.default.dim("Tip: use the --yes (-y) and --global (-g) flags to install without prompts.")),n=true);};s||(console.log(),console.log(k__default.default.bgRed(k__default.default.white(k__default.default.bold(" ERROR ")))+" "+k__default.default.red("Missing required argument: source")),console.log(),console.log(k__default.default.dim(" Usage:")),console.log(` ${k__default.default.cyan("easbot skills add")} ${k__default.default.yellow("<source>")} ${k__default.default.dim("[options]")}`),console.log(),console.log(k__default.default.dim(" Example:")),console.log(` ${k__default.default.cyan("easbot skills add")} ${k__default.default.yellow("houjallen/agent-skills")}`),console.log(),process.exit(1)),e.all&&(e.skill=["*"],e.agent=["*"],e.yes=true);let o=await Qe();if(o.isAgent&&(e.yes=true,!e.agent||e.agent.length===0)){let a=as(o.agent.name);a&&(e.agent=nn([a]));}console.log(),o.isAgent||y__namespace.intro(k__default.default.bgCyan(k__default.default.black(" skills "))),o.isAgent?y__namespace.log.info(k__default.default.bgCyan(k__default.default.black(k__default.default.bold(` ${o.agent.name} `)))+" Agent detected \u2014 installing non-interactively"):process.stdin.isTTY||l();let i=null;try{let a=y__namespace.spinner();a.start("Parsing source...");let r=dt(s);a.stop(`Source: ${r.type==="local"?r.localPath:r.url}${r.ref?` @ ${k__default.default.yellow(r.ref)}`:""}${r.subpath?` (${r.subpath})`:""}${r.skillFilter?` ${k__default.default.dim("@")}${k__default.default.cyan(r.skillFilter)}`:""}`);let h=Je(r),u=(()=>{if(!h)return Promise.resolve(null);let $=Jt(h);return $?Nt($.owner,$.repo).catch(()=>null):Promise.resolve(null)})();if(r.type==="well-known"){await Sr(s,r.url,e,a);return}r.skillFilter&&(e.skill=e.skill||[],e.skill.includes(r.skillFilter)||e.skill.push(r.skillFilter));let m=!!(e.skill&&e.skill.length>0),d,p=null;if(r.type==="local")a.start("Validating local path..."),fs$1.existsSync(r.localPath)||(a.stop(k__default.default.red("Path not found")),y__namespace.outro(k__default.default.red(`Local path does not exist: ${r.localPath}`)),process.exit(1)),a.stop("Local path validated"),a.start("Discovering skills..."),d=await Le(r.localPath,r.subpath,{includeInternal:m,fullDepth:e.fullDepth});else if(r.type==="github"&&!e.fullDepth){let $=["vercel","houjallen","heygen-com"],_=Je(r),j=_?.split("/")[0]?.toLowerCase(),R=!!_&&Object.hasOwn(chunkXDSGBJHO_cjs.f,_.toLowerCase());_&&j&&(R||$.includes(j))&&(a.start("Fetching skills..."),p=await chunkXDSGBJHO_cjs.l(_,{subpath:r.subpath,skillFilter:r.skillFilter,ref:r.ref,getToken:ot,includeInternal:m}),p||a.stop(k__default.default.dim("Falling back to clone..."))),p?(d=p.skills,a.stop(`Found ${k__default.default.green(d.length)} skill${d.length>1?"s":""}`)):(a.start("Cloning repository..."),i=await Ke(r.url,r.ref),a.stop("Repository cloned"),a.start("Discovering skills..."),d=await Le(i,r.subpath,{includeInternal:m,fullDepth:e.fullDepth}));}else a.start("Cloning repository..."),i=await Ke(r.url,r.ref),a.stop("Repository cloned"),a.start("Discovering skills..."),d=await Le(i,r.subpath,{includeInternal:m,fullDepth:e.fullDepth});if(d.length===0&&(a.stop(k__default.default.red("No skills found")),y__namespace.outro(k__default.default.red("No valid skills found. Skills require a SKILL.md with name and description.")),await he(i),process.exit(1)),p||a.stop(`Found ${k__default.default.green(d.length)} skill${d.length>1?"s":""}`),e.list){console.log(),y__namespace.log.step(k__default.default.bold("Available Skills"));let $={},_=[];for(let R of d)if(R.pluginName){let K=R.pluginName;$[K]||($[K]=[]),$[K].push(R);}else _.push(R);let j=Object.keys($).sort();for(let R of j){let K=R.split("-").map(z=>z.charAt(0).toUpperCase()+z.slice(1)).join(" ");console.log(k__default.default.bold(K));for(let z of $[R])y__namespace.log.message(` ${k__default.default.cyan(ne(z))}`),y__namespace.log.message(` ${k__default.default.dim(z.description)}`);console.log();}if(_.length>0){j.length>0&&console.log(k__default.default.bold("General"));for(let R of _)y__namespace.log.message(` ${k__default.default.cyan(ne(R))}`),y__namespace.log.message(` ${k__default.default.dim(R.description)}`);}console.log(),y__namespace.outro("Use --skill <name> to install specific skills"),await he(i),process.exit(0);}let c;if(e.skill?.includes("*"))c=d,y__namespace.log.info(`Installing all ${d.length} skills`);else if(e.skill&&e.skill.length>0){if(c=Qt(d,e.skill),c.length===0){y__namespace.log.error(`No matching skills found for: ${e.skill.join(", ")}`),y__namespace.log.info("Available skills:");for(let $ of d)y__namespace.log.message(` - ${ne($)}`);await he(i),process.exit(1);}y__namespace.log.info(`Selected ${c.length} skill${c.length!==1?"s":""}: ${c.map($=>k__default.default.cyan(ne($))).join(", ")}`);}else if(d.length===1){c=d;let $=d[0];y__namespace.log.info(`Skill: ${k__default.default.cyan(ne($))}`),y__namespace.log.message(k__default.default.dim($.description));}else if(e.yes)c=d,y__namespace.log.info(`Installing all ${d.length} skills`);else {let $=[...d].sort((R,K)=>R.pluginName&&!K.pluginName?-1:!R.pluginName&&K.pluginName?1:R.pluginName&&K.pluginName&&R.pluginName!==K.pluginName?R.pluginName.localeCompare(K.pluginName):ne(R).localeCompare(ne(K))),_=$.some(R=>R.pluginName),j;if(_){let R=z=>z.split("-").map(q=>q.charAt(0).toUpperCase()+q.slice(1)).join(" "),K={};for(let z of $){let q=z.pluginName?R(z.pluginName):"Other";K[q]||(K[q]=[]),K[q].push({value:z,label:ne(z),hint:z.description.length>60?z.description.slice(0,57)+"...":z.description});}j=await y__namespace.groupMultiselect({message:`Select skills to install ${k__default.default.dim("(space to toggle)")}`,options:K,required:!0});}else {let R=$.map(K=>({value:K,label:ne(K),hint:K.description.length>60?K.description.slice(0,57)+"...":K.description}));j=await xl({message:"Select skills to install",options:R,required:!0});}y__namespace.isCancel(j)&&(y__namespace.cancel("Installation cancelled"),await he(i),process.exit(0)),c=j;}let f=Je(r),x=f?cl(f,c.map($=>ne($))):Promise.resolve(null),A,S=Object.keys(D);if(e.agent?.includes("*"))A=S,y__namespace.log.info(`Installing to all ${A.length} agents`);else if(e.agent&&e.agent.length>0){let $=e.agent.filter(_=>!S.includes(_));$.length>0&&(y__namespace.log.error(`Invalid agents: ${$.join(", ")}`),y__namespace.log.info(`Valid agents: ${S.join(", ")}`),await he(i),process.exit(1)),A=e.agent;}else {a.start("Loading agents...");let $=await Ge(),_=Object.keys(D).length;if(a.stop(`${_} agents`),$.includes("eve")&&(e.yes||!o.isAgent)){let j=e.yes?!0:await y__namespace.confirm({message:kr(c),initialValue:!0});if(y__namespace.isCancel(j)&&(y__namespace.cancel("Installation cancelled"),await he(i),process.exit(0)),j)A=["eve"],y__namespace.log.info(`Installing to: ${k__default.default.cyan($l)}`);else {let R=await ln({global:e.global});y__namespace.isCancel(R)&&(y__namespace.cancel("Installation cancelled"),await he(i),process.exit(0)),A=R;}}else if($.length===0)if(e.yes)A=S,y__namespace.log.info("Installing to all agents");else {y__namespace.log.info("Select agents to install skills to");let j=Object.entries(D).filter(([K])=>K!=="eve").map(([K,z])=>({value:K,label:z.displayName})),R=await Al("Which agents do you want to install to?",j);y__namespace.isCancel(R)&&(y__namespace.cancel("Installation cancelled"),await he(i),process.exit(0)),A=R;}else if($.length===1||e.yes)if(A=nn($),$.length===1){let j=$[0];y__namespace.log.info(`Installing to: ${k__default.default.cyan(D[j].displayName)}`);}else y__namespace.log.info(`Installing to: ${$.map(j=>k__default.default.cyan(D[j].displayName)).join(", ")}`);else {let j=await ln({global:e.global});y__namespace.isCancel(j)&&(y__namespace.cancel("Installation cancelled"),await he(i),process.exit(0)),A=j;}}e.subagent&&e.subagent.length>0&&!A.includes("eve")&&(A=[...A,"eve"]);let E=[void 0];if(A.includes("eve")){let $=nt(process.cwd());if(e.subagent&&e.subagent.length>0)E=e.subagent.map(_=>_==="root"||_==="."?void 0:_);else if($.length>0&&!e.yes){let _=[{value:"",label:"Root agent",hint:"agent/skills"},...$.map(R=>({value:R,label:R,hint:`agent/subagents/${R}/skills`}))],j=await y__namespace.multiselect({message:"Where should Eve skills be installed?",options:_,initialValues:[""],required:!0});y__namespace.isCancel(j)&&(y__namespace.cancel("Installation cancelled"),await he(i),process.exit(0)),E=j.map(R=>R===""?void 0:R);}}let T=br(A,E),O=e.global??!1,C=A.some($=>D[$].globalSkillsDir!==void 0);if(e.global===void 0&&!e.yes&&C){let $=await y__namespace.select({message:"Installation scope",options:[{value:!1,label:"Project",hint:"Install in current directory (committed with your project)"},{value:!0,label:"Global",hint:"Install in home directory (available across all projects)"}]});y__namespace.isCancel($)&&(y__namespace.cancel("Installation cancelled"),await he(i),process.exit(0)),O=$;}let I=e.copy?"copy":"symlink",w=T.every($=>$.agent==="eve"),N=new Set(T.map($=>$.subagent?`eve:subagent:${$.subagent}`:D[$.agent].skillsDir));if(!e.copy&&!e.yes&&N.size>1&&!w){let $=await y__namespace.select({message:"Installation method",options:[{value:"symlink",label:"Symlink (Recommended)",hint:"Single source of truth, easy updates"},{value:"copy",label:"Copy to all agents",hint:"Independent copies for each agent"}]});y__namespace.isCancel($)&&(y__namespace.cancel("Installation cancelled"),await he(i),process.exit(0)),I=$;}else (N.size<=1||w)&&(I="copy");let U=process.cwd(),M=[],G=await Promise.all(c.flatMap($=>T.map(async _=>({skillName:$.name,target:_,installed:await os($.name,_.agent,{global:O,eveSubagent:_.subagent})})))),de=new Map;for(let{skillName:$,target:_,installed:j}of G)de.has($)||de.set($,new Map),de.get($).set(bl(_),j);let te={},ee=[];for(let $ of c)if($.pluginName){let _=$.pluginName;te[_]||(te[_]=[]),te[_].push($);}else ee.push($);let be=$=>{for(let _ of $){M.length>0&&M.push("");let j=T.length===1?Ze(_.name,{global:O,agent:T[0].agent,eveSubagent:T[0].subagent}):Ze(_.name,{global:O}),R=St(j,U);M.push(`${k__default.default.cyan(R)}`),M.push(...wr(T,I));let K=de.get(_.name),z=T.filter(q=>K?.get(bl(q))).map(ms);z.length>0&&M.push(` ${k__default.default.yellow("overwrites:")} ${pe(z)}`);}},ge=Object.keys(te).sort();for(let $ of ge){let _=$.split("-").map(j=>j.charAt(0).toUpperCase()+j.slice(1)).join(" ");M.push(""),M.push(k__default.default.bold(_)),be(te[$]);}ee.length>0&&(ge.length>0&&(M.push(""),M.push(k__default.default.bold("General"))),be(ee)),console.log(),y__namespace.note(M.join(`
28
28
  `),"Installation Summary");try{let $=await x;if($&&f){let _=mr($,c.map(j=>({slug:ne(j),displayName:ne(j)})),f);_.length>0&&y__namespace.note(_.join(`
package/dist/cli.cjs CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- 'use strict';var chunkX5DHWONF_cjs=require('./chunks/chunk-X5DHWONF.cjs'),chunkXDSGBJHO_cjs=require('./chunks/chunk-XDSGBJHO.cjs'),fs=require('fs'),path=require('path'),url=require('url');var m=path.dirname(url.fileURLToPath(chunkXDSGBJHO_cjs.b));function d(){try{let e=path.join(m,"..","package.json");return JSON.parse(fs.readFileSync(e,"utf-8")).version}catch{return "0.0.0"}}async function u(){let e=process.argv.slice(2),r=d();if(process.env.EASBOT_LANG||(process.env.EASBOT_LANG="en-US"),e.length===0){chunkX5DHWONF_cjs.lb();return}if(e[0]==="--help"||e[0]==="-h"){chunkX5DHWONF_cjs.mb();return}if(e[0]==="--version"||e[0]==="-v"){console.log(r);return}let o=await chunkX5DHWONF_cjs.nb(e,{version:r});o.code!==0&&(process.exitCode=o.code);}u().catch(e=>{console.error(e),process.exitCode=1;}).finally(()=>{chunkX5DHWONF_cjs.pa().then(()=>process.exit(process.exitCode??0));});
2
+ 'use strict';var chunkDLDPJGDD_cjs=require('./chunks/chunk-DLDPJGDD.cjs'),chunkXDSGBJHO_cjs=require('./chunks/chunk-XDSGBJHO.cjs'),fs=require('fs'),path=require('path'),url=require('url');var m=path.dirname(url.fileURLToPath(chunkXDSGBJHO_cjs.b));function d(){try{let e=path.join(m,"..","package.json");return JSON.parse(fs.readFileSync(e,"utf-8")).version}catch{return "0.0.0"}}async function u(){let e=process.argv.slice(2),r=d();if(process.env.EASBOT_LANG||(process.env.EASBOT_LANG="en-US"),e.length===0){chunkDLDPJGDD_cjs.lb();return}if(e[0]==="--help"||e[0]==="-h"){chunkDLDPJGDD_cjs.mb();return}if(e[0]==="--version"||e[0]==="-v"){console.log(r);return}let o=await chunkDLDPJGDD_cjs.nb(e,{version:r});o.code!==0&&(process.exitCode=o.code);}u().catch(e=>{console.error(e),process.exitCode=1;}).finally(()=>{chunkDLDPJGDD_cjs.pa().then(()=>process.exit(process.exitCode??0));});
package/dist/cli.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import {pa,lb,mb,nb}from'./chunks/chunk-RGCRYSZ6.mjs';import'./chunks/chunk-ZEMGS5WR.mjs';import {readFileSync}from'fs';import {dirname,join}from'path';import {fileURLToPath}from'url';var m=dirname(fileURLToPath(import.meta.url));function f(){try{let e=join(m,"..","package.json");return JSON.parse(readFileSync(e,"utf-8")).version}catch{return "0.0.0"}}async function d(){let e=process.argv.slice(2),r=f();if(process.env.EASBOT_LANG||(process.env.EASBOT_LANG="en-US"),e.length===0){lb();return}if(e[0]==="--help"||e[0]==="-h"){mb();return}if(e[0]==="--version"||e[0]==="-v"){console.log(r);return}let o=await nb(e,{version:r});o.code!==0&&(process.exitCode=o.code);}d().catch(e=>{console.error(e),process.exitCode=1;}).finally(()=>{pa().then(()=>process.exit(process.exitCode??0));});
2
+ import {pa,lb,mb,nb}from'./chunks/chunk-645XWVJB.mjs';import'./chunks/chunk-ZEMGS5WR.mjs';import {readFileSync}from'fs';import {dirname,join}from'path';import {fileURLToPath}from'url';var m=dirname(fileURLToPath(import.meta.url));function f(){try{let e=join(m,"..","package.json");return JSON.parse(readFileSync(e,"utf-8")).version}catch{return "0.0.0"}}async function d(){let e=process.argv.slice(2),r=f();if(process.env.EASBOT_LANG||(process.env.EASBOT_LANG="en-US"),e.length===0){lb();return}if(e[0]==="--help"||e[0]==="-h"){mb();return}if(e[0]==="--version"||e[0]==="-v"){console.log(r);return}let o=await nb(e,{version:r});o.code!==0&&(process.exitCode=o.code);}d().catch(e=>{console.error(e),process.exitCode=1;}).finally(()=>{pa().then(()=>process.exit(process.exitCode??0));});
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var chunkX5DHWONF_cjs=require('./chunks/chunk-X5DHWONF.cjs'),chunkXDSGBJHO_cjs=require('./chunks/chunk-XDSGBJHO.cjs');Object.defineProperty(exports,"AGENTS_DIR",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Y}});Object.defineProperty(exports,"DEFAULT_CLONE_TIMEOUT_MS",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.f}});Object.defineProperty(exports,"EVE_SUBAGENTS_DIR",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.S}});Object.defineProperty(exports,"GitCloneError",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.g}});Object.defineProperty(exports,"SKILLS_SUBDIR",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Z}});Object.defineProperty(exports,"UNIVERSAL_SKILLS_DIR",{enumerable:true,get:function(){return chunkX5DHWONF_cjs._}});Object.defineProperty(exports,"WellKnownProvider",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.ya}});Object.defineProperty(exports,"addSkillToLocalLock",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.q}});Object.defineProperty(exports,"addSkillToLock",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Ha}});Object.defineProperty(exports,"agents",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.P}});Object.defineProperty(exports,"buildUsePrompt",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.hb}});Object.defineProperty(exports,"cleanupTempDir",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.l}});Object.defineProperty(exports,"cloneRepo",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.k}});Object.defineProperty(exports,"computeContentHash",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Da}});Object.defineProperty(exports,"computeSkillFolderHash",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.p}});Object.defineProperty(exports,"detectAgent",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.qa}});Object.defineProperty(exports,"detectInstalledAgents",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Q}});Object.defineProperty(exports,"discoverSkills",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.v}});Object.defineProperty(exports,"dismissPrompt",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Na}});Object.defineProperty(exports,"fetchAuditData",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.na}});Object.defineProperty(exports,"fetchSkillFolderHash",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Ga}});Object.defineProperty(exports,"filterSkills",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.x}});Object.defineProperty(exports,"findProvider",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.wa}});Object.defineProperty(exports,"flushTelemetry",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.pa}});Object.defineProperty(exports,"getAgentAdapter",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.F}});Object.defineProperty(exports,"getAgentBaseDir",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.ca}});Object.defineProperty(exports,"getAgentConfig",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.R}});Object.defineProperty(exports,"getAgentName",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.sa}});Object.defineProperty(exports,"getAgentType",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.ta}});Object.defineProperty(exports,"getAllLockedSkills",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Ka}});Object.defineProperty(exports,"getCanonicalPath",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.ga}});Object.defineProperty(exports,"getCanonicalSkillsDir",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.aa}});Object.defineProperty(exports,"getEveSubagentSkillsDir",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.ba}});Object.defineProperty(exports,"getEveSubagents",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.T}});Object.defineProperty(exports,"getGitHubToken",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Fa}});Object.defineProperty(exports,"getGlobal",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.A}});Object.defineProperty(exports,"getHomeDir",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.I}});Object.defineProperty(exports,"getInstallPath",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.fa}});Object.defineProperty(exports,"getInstance",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.D}});Object.defineProperty(exports,"getLastSelectedAgents",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Oa}});Object.defineProperty(exports,"getLocalLockPath",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.m}});Object.defineProperty(exports,"getNonUniversalAgents",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.W}});Object.defineProperty(exports,"getOpenClawGlobalSkillsDir",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.O}});Object.defineProperty(exports,"getOwnerRepo",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.a}});Object.defineProperty(exports,"getProjectDirectory",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.N}});Object.defineProperty(exports,"getProviders",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.xa}});Object.defineProperty(exports,"getSkillDisplayName",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.w}});Object.defineProperty(exports,"getSkillFromLock",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Ja}});Object.defineProperty(exports,"getSkillLockPath",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Aa}});Object.defineProperty(exports,"getSkillsBySource",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.La}});Object.defineProperty(exports,"getUniversalAgents",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.U}});Object.defineProperty(exports,"getVisibleUniversalAgents",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.V}});Object.defineProperty(exports,"getXdgCache",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.M}});Object.defineProperty(exports,"getXdgConfig",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.J}});Object.defineProperty(exports,"getXdgData",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.K}});Object.defineProperty(exports,"getXdgState",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.L}});Object.defineProperty(exports,"handleSkillsCli",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.nb}});Object.defineProperty(exports,"hasAgentAdapter",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.G}});Object.defineProperty(exports,"hasProjectSkills",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.cb}});Object.defineProperty(exports,"initTelemetry",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Qa}});Object.defineProperty(exports,"installBlobSkillForAgent",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.ja}});Object.defineProperty(exports,"installRemoteSkillForAgent",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.ha}});Object.defineProperty(exports,"installSkillForAgent",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.da}});Object.defineProperty(exports,"installWellKnownSkillForAgent",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.ia}});Object.defineProperty(exports,"isGitHubHttpsCloneUrl",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.i}});Object.defineProperty(exports,"isGitHubSsoAuthError",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.j}});Object.defineProperty(exports,"isPromptDismissed",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Ma}});Object.defineProperty(exports,"isRepoPrivate",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.c}});Object.defineProperty(exports,"isRunningInAgent",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.ra}});Object.defineProperty(exports,"isSkillInstalled",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.ea}});Object.defineProperty(exports,"isSubpathSafe",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.u}});Object.defineProperty(exports,"isUniversalAgent",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.X}});Object.defineProperty(exports,"launchAgentInteractively",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.kb}});Object.defineProperty(exports,"listInstalledSkills",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.ka}});Object.defineProperty(exports,"matchesSkillFilter",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.eb}});Object.defineProperty(exports,"materializeUseSkill",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.ib}});Object.defineProperty(exports,"parseAddOptions",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Sa}});Object.defineProperty(exports,"parseFindOptions",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Ta}});Object.defineProperty(exports,"parseGitHubRepoUrl",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.h}});Object.defineProperty(exports,"parseListOptions",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Za}});Object.defineProperty(exports,"parseOwnerRepo",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.b}});Object.defineProperty(exports,"parseRemoveOptions",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.ab}});Object.defineProperty(exports,"parseSkillMd",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.t}});Object.defineProperty(exports,"parseSource",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.e}});Object.defineProperty(exports,"parseSyncOptions",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Xa}});Object.defineProperty(exports,"parseUpdateOptions",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.bb}});Object.defineProperty(exports,"parseUseOptions",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.gb}});Object.defineProperty(exports,"readLocalLock",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.n}});Object.defineProperty(exports,"readSkillLock",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Ba}});Object.defineProperty(exports,"registerProvider",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.va}});Object.defineProperty(exports,"registry",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.ua}});Object.defineProperty(exports,"removeCommand",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.$a}});Object.defineProperty(exports,"removeSkillFromLocalLock",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.r}});Object.defineProperty(exports,"removeSkillFromLock",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Ia}});Object.defineProperty(exports,"renderBanner",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.lb}});Object.defineProperty(exports,"renderHelp",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.mb}});Object.defineProperty(exports,"requireAgentAdapter",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.H}});Object.defineProperty(exports,"resetGhAuthWarning",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Ea}});Object.defineProperty(exports,"resetGlobalAdapter",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.z}});Object.defineProperty(exports,"resetInstanceAdapter",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.C}});Object.defineProperty(exports,"resolveUpdateScope",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.db}});Object.defineProperty(exports,"runAdd",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Ra}});Object.defineProperty(exports,"runFind",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Va}});Object.defineProperty(exports,"runInstallFromLock",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Ya}});Object.defineProperty(exports,"runList",{enumerable:true,get:function(){return chunkX5DHWONF_cjs._a}});Object.defineProperty(exports,"runSync",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Wa}});Object.defineProperty(exports,"runUpdate",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.fb}});Object.defineProperty(exports,"runUse",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.jb}});Object.defineProperty(exports,"sanitizeName",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.$}});Object.defineProperty(exports,"sanitizeSubpath",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.d}});Object.defineProperty(exports,"saveSelectedAgents",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Pa}});Object.defineProperty(exports,"searchSkillsAPI",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Ua}});Object.defineProperty(exports,"setAgentAdapter",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.E}});Object.defineProperty(exports,"setDetectedAgent",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.la}});Object.defineProperty(exports,"setGlobalAdapter",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.y}});Object.defineProperty(exports,"setInstanceAdapter",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.B}});Object.defineProperty(exports,"setVersion",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.ma}});Object.defineProperty(exports,"shouldInstallInternalSkills",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.s}});Object.defineProperty(exports,"track",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.oa}});Object.defineProperty(exports,"wellKnownProvider",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.za}});Object.defineProperty(exports,"writeLocalLock",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.o}});Object.defineProperty(exports,"writeSkillLock",{enumerable:true,get:function(){return chunkX5DHWONF_cjs.Ca}});Object.defineProperty(exports,"BLOB_ALLOWED_REPOS",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.f}});Object.defineProperty(exports,"fetchRepoTree",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.i}});Object.defineProperty(exports,"findSkillMdPaths",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.k}});Object.defineProperty(exports,"getSkillFolderHashFromTree",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.j}});Object.defineProperty(exports,"parseFrontmatter",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.e}});Object.defineProperty(exports,"resetRepoTreeAuthState",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.h}});Object.defineProperty(exports,"sanitizeMetadata",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.d}});Object.defineProperty(exports,"stripTerminalEscapes",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.c}});Object.defineProperty(exports,"toSkillSlug",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.g}});Object.defineProperty(exports,"tryBlobInstall",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.l}});
1
+ 'use strict';var chunkDLDPJGDD_cjs=require('./chunks/chunk-DLDPJGDD.cjs'),chunkXDSGBJHO_cjs=require('./chunks/chunk-XDSGBJHO.cjs');Object.defineProperty(exports,"AGENTS_DIR",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Y}});Object.defineProperty(exports,"DEFAULT_CLONE_TIMEOUT",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.f}});Object.defineProperty(exports,"EVE_SUBAGENTS_DIR",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.S}});Object.defineProperty(exports,"GitCloneError",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.g}});Object.defineProperty(exports,"SKILLS_SUBDIR",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Z}});Object.defineProperty(exports,"UNIVERSAL_SKILLS_DIR",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs._}});Object.defineProperty(exports,"WellKnownProvider",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.ya}});Object.defineProperty(exports,"addSkillToLocalLock",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.q}});Object.defineProperty(exports,"addSkillToLock",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Ha}});Object.defineProperty(exports,"agents",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.P}});Object.defineProperty(exports,"buildUsePrompt",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.hb}});Object.defineProperty(exports,"cleanupTempDir",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.l}});Object.defineProperty(exports,"cloneRepo",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.k}});Object.defineProperty(exports,"computeContentHash",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Da}});Object.defineProperty(exports,"computeSkillFolderHash",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.p}});Object.defineProperty(exports,"detectAgent",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.qa}});Object.defineProperty(exports,"detectInstalledAgents",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Q}});Object.defineProperty(exports,"discoverSkills",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.v}});Object.defineProperty(exports,"dismissPrompt",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Na}});Object.defineProperty(exports,"fetchAuditData",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.na}});Object.defineProperty(exports,"fetchSkillFolderHash",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Ga}});Object.defineProperty(exports,"filterSkills",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.x}});Object.defineProperty(exports,"findProvider",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.wa}});Object.defineProperty(exports,"flushTelemetry",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.pa}});Object.defineProperty(exports,"getAgentAdapter",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.F}});Object.defineProperty(exports,"getAgentBaseDir",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.ca}});Object.defineProperty(exports,"getAgentConfig",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.R}});Object.defineProperty(exports,"getAgentName",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.sa}});Object.defineProperty(exports,"getAgentType",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.ta}});Object.defineProperty(exports,"getAllLockedSkills",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Ka}});Object.defineProperty(exports,"getCanonicalPath",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.ga}});Object.defineProperty(exports,"getCanonicalSkillsDir",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.aa}});Object.defineProperty(exports,"getEveSubagentSkillsDir",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.ba}});Object.defineProperty(exports,"getEveSubagents",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.T}});Object.defineProperty(exports,"getGitHubToken",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Fa}});Object.defineProperty(exports,"getGlobal",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.A}});Object.defineProperty(exports,"getHomeDir",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.I}});Object.defineProperty(exports,"getInstallPath",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.fa}});Object.defineProperty(exports,"getInstance",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.D}});Object.defineProperty(exports,"getLastSelectedAgents",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Oa}});Object.defineProperty(exports,"getLocalLockPath",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.m}});Object.defineProperty(exports,"getNonUniversalAgents",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.W}});Object.defineProperty(exports,"getOpenClawGlobalSkillsDir",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.O}});Object.defineProperty(exports,"getOwnerRepo",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.a}});Object.defineProperty(exports,"getProjectDirectory",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.N}});Object.defineProperty(exports,"getProviders",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.xa}});Object.defineProperty(exports,"getSkillDisplayName",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.w}});Object.defineProperty(exports,"getSkillFromLock",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Ja}});Object.defineProperty(exports,"getSkillLockPath",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Aa}});Object.defineProperty(exports,"getSkillsBySource",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.La}});Object.defineProperty(exports,"getUniversalAgents",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.U}});Object.defineProperty(exports,"getVisibleUniversalAgents",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.V}});Object.defineProperty(exports,"getXdgCache",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.M}});Object.defineProperty(exports,"getXdgConfig",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.J}});Object.defineProperty(exports,"getXdgData",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.K}});Object.defineProperty(exports,"getXdgState",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.L}});Object.defineProperty(exports,"handleSkillsCli",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.nb}});Object.defineProperty(exports,"hasAgentAdapter",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.G}});Object.defineProperty(exports,"hasProjectSkills",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.cb}});Object.defineProperty(exports,"initTelemetry",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Qa}});Object.defineProperty(exports,"installBlobSkillForAgent",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.ja}});Object.defineProperty(exports,"installRemoteSkillForAgent",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.ha}});Object.defineProperty(exports,"installSkillForAgent",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.da}});Object.defineProperty(exports,"installWellKnownSkillForAgent",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.ia}});Object.defineProperty(exports,"isGitHubHttpsCloneUrl",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.i}});Object.defineProperty(exports,"isGitHubSsoAuthError",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.j}});Object.defineProperty(exports,"isPromptDismissed",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Ma}});Object.defineProperty(exports,"isRepoPrivate",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.c}});Object.defineProperty(exports,"isRunningInAgent",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.ra}});Object.defineProperty(exports,"isSkillInstalled",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.ea}});Object.defineProperty(exports,"isSubpathSafe",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.u}});Object.defineProperty(exports,"isUniversalAgent",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.X}});Object.defineProperty(exports,"launchAgentInteractively",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.kb}});Object.defineProperty(exports,"listInstalledSkills",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.ka}});Object.defineProperty(exports,"matchesSkillFilter",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.eb}});Object.defineProperty(exports,"materializeUseSkill",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.ib}});Object.defineProperty(exports,"parseAddOptions",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Sa}});Object.defineProperty(exports,"parseFindOptions",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Ta}});Object.defineProperty(exports,"parseGitHubRepoUrl",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.h}});Object.defineProperty(exports,"parseListOptions",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Za}});Object.defineProperty(exports,"parseOwnerRepo",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.b}});Object.defineProperty(exports,"parseRemoveOptions",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.ab}});Object.defineProperty(exports,"parseSkillMd",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.t}});Object.defineProperty(exports,"parseSource",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.e}});Object.defineProperty(exports,"parseSyncOptions",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Xa}});Object.defineProperty(exports,"parseUpdateOptions",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.bb}});Object.defineProperty(exports,"parseUseOptions",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.gb}});Object.defineProperty(exports,"readLocalLock",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.n}});Object.defineProperty(exports,"readSkillLock",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Ba}});Object.defineProperty(exports,"registerProvider",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.va}});Object.defineProperty(exports,"registry",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.ua}});Object.defineProperty(exports,"removeCommand",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.$a}});Object.defineProperty(exports,"removeSkillFromLocalLock",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.r}});Object.defineProperty(exports,"removeSkillFromLock",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Ia}});Object.defineProperty(exports,"renderBanner",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.lb}});Object.defineProperty(exports,"renderHelp",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.mb}});Object.defineProperty(exports,"requireAgentAdapter",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.H}});Object.defineProperty(exports,"resetGhAuthWarning",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Ea}});Object.defineProperty(exports,"resetGlobalAdapter",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.z}});Object.defineProperty(exports,"resetInstanceAdapter",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.C}});Object.defineProperty(exports,"resolveUpdateScope",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.db}});Object.defineProperty(exports,"runAdd",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Ra}});Object.defineProperty(exports,"runFind",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Va}});Object.defineProperty(exports,"runInstallFromLock",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Ya}});Object.defineProperty(exports,"runList",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs._a}});Object.defineProperty(exports,"runSync",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Wa}});Object.defineProperty(exports,"runUpdate",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.fb}});Object.defineProperty(exports,"runUse",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.jb}});Object.defineProperty(exports,"sanitizeName",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.$}});Object.defineProperty(exports,"sanitizeSubpath",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.d}});Object.defineProperty(exports,"saveSelectedAgents",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Pa}});Object.defineProperty(exports,"searchSkillsAPI",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Ua}});Object.defineProperty(exports,"setAgentAdapter",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.E}});Object.defineProperty(exports,"setDetectedAgent",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.la}});Object.defineProperty(exports,"setGlobalAdapter",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.y}});Object.defineProperty(exports,"setInstanceAdapter",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.B}});Object.defineProperty(exports,"setVersion",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.ma}});Object.defineProperty(exports,"shouldInstallInternalSkills",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.s}});Object.defineProperty(exports,"track",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.oa}});Object.defineProperty(exports,"wellKnownProvider",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.za}});Object.defineProperty(exports,"writeLocalLock",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.o}});Object.defineProperty(exports,"writeSkillLock",{enumerable:true,get:function(){return chunkDLDPJGDD_cjs.Ca}});Object.defineProperty(exports,"BLOB_ALLOWED_REPOS",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.f}});Object.defineProperty(exports,"fetchRepoTree",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.i}});Object.defineProperty(exports,"findSkillMdPaths",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.k}});Object.defineProperty(exports,"getSkillFolderHashFromTree",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.j}});Object.defineProperty(exports,"parseFrontmatter",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.e}});Object.defineProperty(exports,"resetRepoTreeAuthState",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.h}});Object.defineProperty(exports,"sanitizeMetadata",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.d}});Object.defineProperty(exports,"stripTerminalEscapes",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.c}});Object.defineProperty(exports,"toSkillSlug",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.g}});Object.defineProperty(exports,"tryBlobInstall",{enumerable:true,get:function(){return chunkXDSGBJHO_cjs.l}});
package/dist/index.d.cts CHANGED
@@ -453,7 +453,7 @@ declare function materializeUseSkill(skill: UseSkill): Promise<MaterializedUseSk
453
453
  declare function runUse(sourceArgs: string[], options?: UseOptions, parseErrors?: string[]): Promise<void>;
454
454
  declare function launchAgentInteractively(agent: AgentType, prompt: string, spawnImpl?: AgentSpawn): Promise<number>;
455
455
 
456
- declare const DEFAULT_CLONE_TIMEOUT_MS = 300000;
456
+ declare const DEFAULT_CLONE_TIMEOUT = 300000;
457
457
  interface GitHubRepoInfo {
458
458
  owner: string;
459
459
  repo: string;
@@ -645,4 +645,4 @@ declare function getXdgState(): string;
645
645
  declare function getXdgCache(): string;
646
646
  declare function getProjectDirectory(): string;
647
647
 
648
- export { AGENTS_DIR, type AddOptions, type AgentConfig, type AgentProcess, type AgentSpawn, type AgentType, type AuditResponse, BLOB_ALLOWED_REPOS, type BlobInstallResult, type BlobSkill, DEFAULT_CLONE_TIMEOUT_MS, type DiscoverSkillsOptions, type DismissedPrompts, EVE_SUBAGENTS_DIR, type FindOptions, GitCloneError, type HostProvider, type InstallMode, type InstalledSkill, type LocalSkillLockEntry, type LocalSkillLockFile, type MaterializedUseSkill, type ParseFindOptionsResult, type ParseUseOptionsResult, type ParsedSource, type PartnerAudit, type ProviderMatch, type ProviderRegistry, type RemoteSkill as ProviderRemoteSkill, type RemoteSkill$1 as RemoteSkill, type RemoveOptions, type RepoTree, SKILLS_SUBDIR, type SearchSkill, type Skill, type SkillAuditData, type SkillDownloadResponse, type SkillLockEntry, type SkillLockFile, type SkillSnapshotFile, type SkillsAgentAdapter, type SkillsCliDeps, type SkillsCliResult, type SyncOptions, type TreeEntry, UNIVERSAL_SKILLS_DIR, type UpdateCheckOptions, type UpdateScope, type UseOptions, type UseSkill, type WellKnownFileContent, type WellKnownIndex, type WellKnownIndexV1, type WellKnownIndexV2, WellKnownProvider, type WellKnownSkill, type WellKnownSkillEntry, type WellKnownSkillEntryV1, type WellKnownSkillEntryV2, addSkillToLocalLock, addSkillToLock, agents, buildUsePrompt, cleanupTempDir, cloneRepo, computeContentHash, computeSkillFolderHash, detectAgent, detectInstalledAgents, discoverSkills, dismissPrompt, fetchAuditData, fetchRepoTree, fetchSkillFolderHash, filterSkills, findProvider, findSkillMdPaths, flushTelemetry, getAgentAdapter, getAgentBaseDir, getAgentConfig, getAgentName, getAgentType, getAllLockedSkills, getCanonicalPath, getCanonicalSkillsDir, getEveSubagentSkillsDir, getEveSubagents, getGitHubToken, getGlobal, getHomeDir, getInstallPath, getInstance, getLastSelectedAgents, getLocalLockPath, getNonUniversalAgents, getOpenClawGlobalSkillsDir, getOwnerRepo, getProjectDirectory, getProviders, getSkillDisplayName, getSkillFolderHashFromTree, getSkillFromLock, getSkillLockPath, getSkillsBySource, getUniversalAgents, getVisibleUniversalAgents, getXdgCache, getXdgConfig, getXdgData, getXdgState, handleSkillsCli, hasAgentAdapter, hasProjectSkills, initTelemetry, installBlobSkillForAgent, installRemoteSkillForAgent, installSkillForAgent, installWellKnownSkillForAgent, isGitHubHttpsCloneUrl, isGitHubSsoAuthError, isPromptDismissed, isRepoPrivate, isRunningInAgent, isSkillInstalled, isSubpathSafe, isUniversalAgent, launchAgentInteractively, listInstalledSkills, matchesSkillFilter, materializeUseSkill, parseAddOptions, parseFindOptions, parseFrontmatter, parseGitHubRepoUrl, parseListOptions, parseOwnerRepo, parseRemoveOptions, parseSkillMd, parseSource, parseSyncOptions, parseUpdateOptions, parseUseOptions, readLocalLock, readSkillLock, registerProvider, registry, removeCommand, removeSkillFromLocalLock, removeSkillFromLock, renderBanner, renderHelp, requireAgentAdapter, resetGhAuthWarning, resetGlobalAdapter, resetInstanceAdapter, resetRepoTreeAuthState, resolveUpdateScope, runAdd, runFind, runInstallFromLock, runList, runSync, runUpdate, runUse, sanitizeMetadata, sanitizeName, sanitizeSubpath, saveSelectedAgents, searchSkillsAPI, setAgentAdapter, setDetectedAgent, setGlobalAdapter, setInstanceAdapter, setVersion, shouldInstallInternalSkills, stripTerminalEscapes, toSkillSlug, track, tryBlobInstall, wellKnownProvider, writeLocalLock, writeSkillLock };
648
+ export { AGENTS_DIR, type AddOptions, type AgentConfig, type AgentProcess, type AgentSpawn, type AgentType, type AuditResponse, BLOB_ALLOWED_REPOS, type BlobInstallResult, type BlobSkill, DEFAULT_CLONE_TIMEOUT, type DiscoverSkillsOptions, type DismissedPrompts, EVE_SUBAGENTS_DIR, type FindOptions, GitCloneError, type HostProvider, type InstallMode, type InstalledSkill, type LocalSkillLockEntry, type LocalSkillLockFile, type MaterializedUseSkill, type ParseFindOptionsResult, type ParseUseOptionsResult, type ParsedSource, type PartnerAudit, type ProviderMatch, type ProviderRegistry, type RemoteSkill as ProviderRemoteSkill, type RemoteSkill$1 as RemoteSkill, type RemoveOptions, type RepoTree, SKILLS_SUBDIR, type SearchSkill, type Skill, type SkillAuditData, type SkillDownloadResponse, type SkillLockEntry, type SkillLockFile, type SkillSnapshotFile, type SkillsAgentAdapter, type SkillsCliDeps, type SkillsCliResult, type SyncOptions, type TreeEntry, UNIVERSAL_SKILLS_DIR, type UpdateCheckOptions, type UpdateScope, type UseOptions, type UseSkill, type WellKnownFileContent, type WellKnownIndex, type WellKnownIndexV1, type WellKnownIndexV2, WellKnownProvider, type WellKnownSkill, type WellKnownSkillEntry, type WellKnownSkillEntryV1, type WellKnownSkillEntryV2, addSkillToLocalLock, addSkillToLock, agents, buildUsePrompt, cleanupTempDir, cloneRepo, computeContentHash, computeSkillFolderHash, detectAgent, detectInstalledAgents, discoverSkills, dismissPrompt, fetchAuditData, fetchRepoTree, fetchSkillFolderHash, filterSkills, findProvider, findSkillMdPaths, flushTelemetry, getAgentAdapter, getAgentBaseDir, getAgentConfig, getAgentName, getAgentType, getAllLockedSkills, getCanonicalPath, getCanonicalSkillsDir, getEveSubagentSkillsDir, getEveSubagents, getGitHubToken, getGlobal, getHomeDir, getInstallPath, getInstance, getLastSelectedAgents, getLocalLockPath, getNonUniversalAgents, getOpenClawGlobalSkillsDir, getOwnerRepo, getProjectDirectory, getProviders, getSkillDisplayName, getSkillFolderHashFromTree, getSkillFromLock, getSkillLockPath, getSkillsBySource, getUniversalAgents, getVisibleUniversalAgents, getXdgCache, getXdgConfig, getXdgData, getXdgState, handleSkillsCli, hasAgentAdapter, hasProjectSkills, initTelemetry, installBlobSkillForAgent, installRemoteSkillForAgent, installSkillForAgent, installWellKnownSkillForAgent, isGitHubHttpsCloneUrl, isGitHubSsoAuthError, isPromptDismissed, isRepoPrivate, isRunningInAgent, isSkillInstalled, isSubpathSafe, isUniversalAgent, launchAgentInteractively, listInstalledSkills, matchesSkillFilter, materializeUseSkill, parseAddOptions, parseFindOptions, parseFrontmatter, parseGitHubRepoUrl, parseListOptions, parseOwnerRepo, parseRemoveOptions, parseSkillMd, parseSource, parseSyncOptions, parseUpdateOptions, parseUseOptions, readLocalLock, readSkillLock, registerProvider, registry, removeCommand, removeSkillFromLocalLock, removeSkillFromLock, renderBanner, renderHelp, requireAgentAdapter, resetGhAuthWarning, resetGlobalAdapter, resetInstanceAdapter, resetRepoTreeAuthState, resolveUpdateScope, runAdd, runFind, runInstallFromLock, runList, runSync, runUpdate, runUse, sanitizeMetadata, sanitizeName, sanitizeSubpath, saveSelectedAgents, searchSkillsAPI, setAgentAdapter, setDetectedAgent, setGlobalAdapter, setInstanceAdapter, setVersion, shouldInstallInternalSkills, stripTerminalEscapes, toSkillSlug, track, tryBlobInstall, wellKnownProvider, writeLocalLock, writeSkillLock };
package/dist/index.d.ts CHANGED
@@ -453,7 +453,7 @@ declare function materializeUseSkill(skill: UseSkill): Promise<MaterializedUseSk
453
453
  declare function runUse(sourceArgs: string[], options?: UseOptions, parseErrors?: string[]): Promise<void>;
454
454
  declare function launchAgentInteractively(agent: AgentType, prompt: string, spawnImpl?: AgentSpawn): Promise<number>;
455
455
 
456
- declare const DEFAULT_CLONE_TIMEOUT_MS = 300000;
456
+ declare const DEFAULT_CLONE_TIMEOUT = 300000;
457
457
  interface GitHubRepoInfo {
458
458
  owner: string;
459
459
  repo: string;
@@ -645,4 +645,4 @@ declare function getXdgState(): string;
645
645
  declare function getXdgCache(): string;
646
646
  declare function getProjectDirectory(): string;
647
647
 
648
- export { AGENTS_DIR, type AddOptions, type AgentConfig, type AgentProcess, type AgentSpawn, type AgentType, type AuditResponse, BLOB_ALLOWED_REPOS, type BlobInstallResult, type BlobSkill, DEFAULT_CLONE_TIMEOUT_MS, type DiscoverSkillsOptions, type DismissedPrompts, EVE_SUBAGENTS_DIR, type FindOptions, GitCloneError, type HostProvider, type InstallMode, type InstalledSkill, type LocalSkillLockEntry, type LocalSkillLockFile, type MaterializedUseSkill, type ParseFindOptionsResult, type ParseUseOptionsResult, type ParsedSource, type PartnerAudit, type ProviderMatch, type ProviderRegistry, type RemoteSkill as ProviderRemoteSkill, type RemoteSkill$1 as RemoteSkill, type RemoveOptions, type RepoTree, SKILLS_SUBDIR, type SearchSkill, type Skill, type SkillAuditData, type SkillDownloadResponse, type SkillLockEntry, type SkillLockFile, type SkillSnapshotFile, type SkillsAgentAdapter, type SkillsCliDeps, type SkillsCliResult, type SyncOptions, type TreeEntry, UNIVERSAL_SKILLS_DIR, type UpdateCheckOptions, type UpdateScope, type UseOptions, type UseSkill, type WellKnownFileContent, type WellKnownIndex, type WellKnownIndexV1, type WellKnownIndexV2, WellKnownProvider, type WellKnownSkill, type WellKnownSkillEntry, type WellKnownSkillEntryV1, type WellKnownSkillEntryV2, addSkillToLocalLock, addSkillToLock, agents, buildUsePrompt, cleanupTempDir, cloneRepo, computeContentHash, computeSkillFolderHash, detectAgent, detectInstalledAgents, discoverSkills, dismissPrompt, fetchAuditData, fetchRepoTree, fetchSkillFolderHash, filterSkills, findProvider, findSkillMdPaths, flushTelemetry, getAgentAdapter, getAgentBaseDir, getAgentConfig, getAgentName, getAgentType, getAllLockedSkills, getCanonicalPath, getCanonicalSkillsDir, getEveSubagentSkillsDir, getEveSubagents, getGitHubToken, getGlobal, getHomeDir, getInstallPath, getInstance, getLastSelectedAgents, getLocalLockPath, getNonUniversalAgents, getOpenClawGlobalSkillsDir, getOwnerRepo, getProjectDirectory, getProviders, getSkillDisplayName, getSkillFolderHashFromTree, getSkillFromLock, getSkillLockPath, getSkillsBySource, getUniversalAgents, getVisibleUniversalAgents, getXdgCache, getXdgConfig, getXdgData, getXdgState, handleSkillsCli, hasAgentAdapter, hasProjectSkills, initTelemetry, installBlobSkillForAgent, installRemoteSkillForAgent, installSkillForAgent, installWellKnownSkillForAgent, isGitHubHttpsCloneUrl, isGitHubSsoAuthError, isPromptDismissed, isRepoPrivate, isRunningInAgent, isSkillInstalled, isSubpathSafe, isUniversalAgent, launchAgentInteractively, listInstalledSkills, matchesSkillFilter, materializeUseSkill, parseAddOptions, parseFindOptions, parseFrontmatter, parseGitHubRepoUrl, parseListOptions, parseOwnerRepo, parseRemoveOptions, parseSkillMd, parseSource, parseSyncOptions, parseUpdateOptions, parseUseOptions, readLocalLock, readSkillLock, registerProvider, registry, removeCommand, removeSkillFromLocalLock, removeSkillFromLock, renderBanner, renderHelp, requireAgentAdapter, resetGhAuthWarning, resetGlobalAdapter, resetInstanceAdapter, resetRepoTreeAuthState, resolveUpdateScope, runAdd, runFind, runInstallFromLock, runList, runSync, runUpdate, runUse, sanitizeMetadata, sanitizeName, sanitizeSubpath, saveSelectedAgents, searchSkillsAPI, setAgentAdapter, setDetectedAgent, setGlobalAdapter, setInstanceAdapter, setVersion, shouldInstallInternalSkills, stripTerminalEscapes, toSkillSlug, track, tryBlobInstall, wellKnownProvider, writeLocalLock, writeSkillLock };
648
+ export { AGENTS_DIR, type AddOptions, type AgentConfig, type AgentProcess, type AgentSpawn, type AgentType, type AuditResponse, BLOB_ALLOWED_REPOS, type BlobInstallResult, type BlobSkill, DEFAULT_CLONE_TIMEOUT, type DiscoverSkillsOptions, type DismissedPrompts, EVE_SUBAGENTS_DIR, type FindOptions, GitCloneError, type HostProvider, type InstallMode, type InstalledSkill, type LocalSkillLockEntry, type LocalSkillLockFile, type MaterializedUseSkill, type ParseFindOptionsResult, type ParseUseOptionsResult, type ParsedSource, type PartnerAudit, type ProviderMatch, type ProviderRegistry, type RemoteSkill as ProviderRemoteSkill, type RemoteSkill$1 as RemoteSkill, type RemoveOptions, type RepoTree, SKILLS_SUBDIR, type SearchSkill, type Skill, type SkillAuditData, type SkillDownloadResponse, type SkillLockEntry, type SkillLockFile, type SkillSnapshotFile, type SkillsAgentAdapter, type SkillsCliDeps, type SkillsCliResult, type SyncOptions, type TreeEntry, UNIVERSAL_SKILLS_DIR, type UpdateCheckOptions, type UpdateScope, type UseOptions, type UseSkill, type WellKnownFileContent, type WellKnownIndex, type WellKnownIndexV1, type WellKnownIndexV2, WellKnownProvider, type WellKnownSkill, type WellKnownSkillEntry, type WellKnownSkillEntryV1, type WellKnownSkillEntryV2, addSkillToLocalLock, addSkillToLock, agents, buildUsePrompt, cleanupTempDir, cloneRepo, computeContentHash, computeSkillFolderHash, detectAgent, detectInstalledAgents, discoverSkills, dismissPrompt, fetchAuditData, fetchRepoTree, fetchSkillFolderHash, filterSkills, findProvider, findSkillMdPaths, flushTelemetry, getAgentAdapter, getAgentBaseDir, getAgentConfig, getAgentName, getAgentType, getAllLockedSkills, getCanonicalPath, getCanonicalSkillsDir, getEveSubagentSkillsDir, getEveSubagents, getGitHubToken, getGlobal, getHomeDir, getInstallPath, getInstance, getLastSelectedAgents, getLocalLockPath, getNonUniversalAgents, getOpenClawGlobalSkillsDir, getOwnerRepo, getProjectDirectory, getProviders, getSkillDisplayName, getSkillFolderHashFromTree, getSkillFromLock, getSkillLockPath, getSkillsBySource, getUniversalAgents, getVisibleUniversalAgents, getXdgCache, getXdgConfig, getXdgData, getXdgState, handleSkillsCli, hasAgentAdapter, hasProjectSkills, initTelemetry, installBlobSkillForAgent, installRemoteSkillForAgent, installSkillForAgent, installWellKnownSkillForAgent, isGitHubHttpsCloneUrl, isGitHubSsoAuthError, isPromptDismissed, isRepoPrivate, isRunningInAgent, isSkillInstalled, isSubpathSafe, isUniversalAgent, launchAgentInteractively, listInstalledSkills, matchesSkillFilter, materializeUseSkill, parseAddOptions, parseFindOptions, parseFrontmatter, parseGitHubRepoUrl, parseListOptions, parseOwnerRepo, parseRemoveOptions, parseSkillMd, parseSource, parseSyncOptions, parseUpdateOptions, parseUseOptions, readLocalLock, readSkillLock, registerProvider, registry, removeCommand, removeSkillFromLocalLock, removeSkillFromLock, renderBanner, renderHelp, requireAgentAdapter, resetGhAuthWarning, resetGlobalAdapter, resetInstanceAdapter, resetRepoTreeAuthState, resolveUpdateScope, runAdd, runFind, runInstallFromLock, runList, runSync, runUpdate, runUse, sanitizeMetadata, sanitizeName, sanitizeSubpath, saveSelectedAgents, searchSkillsAPI, setAgentAdapter, setDetectedAgent, setGlobalAdapter, setInstanceAdapter, setVersion, shouldInstallInternalSkills, stripTerminalEscapes, toSkillSlug, track, tryBlobInstall, wellKnownProvider, writeLocalLock, writeSkillLock };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- export{Y as AGENTS_DIR,f as DEFAULT_CLONE_TIMEOUT_MS,S as EVE_SUBAGENTS_DIR,g as GitCloneError,Z as SKILLS_SUBDIR,_ as UNIVERSAL_SKILLS_DIR,ya as WellKnownProvider,q as addSkillToLocalLock,Ha as addSkillToLock,P as agents,hb as buildUsePrompt,l as cleanupTempDir,k as cloneRepo,Da as computeContentHash,p as computeSkillFolderHash,qa as detectAgent,Q as detectInstalledAgents,v as discoverSkills,Na as dismissPrompt,na as fetchAuditData,Ga as fetchSkillFolderHash,x as filterSkills,wa as findProvider,pa as flushTelemetry,F as getAgentAdapter,ca as getAgentBaseDir,R as getAgentConfig,sa as getAgentName,ta as getAgentType,Ka as getAllLockedSkills,ga as getCanonicalPath,aa as getCanonicalSkillsDir,ba as getEveSubagentSkillsDir,T as getEveSubagents,Fa as getGitHubToken,A as getGlobal,I as getHomeDir,fa as getInstallPath,D as getInstance,Oa as getLastSelectedAgents,m as getLocalLockPath,W as getNonUniversalAgents,O as getOpenClawGlobalSkillsDir,a as getOwnerRepo,N as getProjectDirectory,xa as getProviders,w as getSkillDisplayName,Ja as getSkillFromLock,Aa as getSkillLockPath,La as getSkillsBySource,U as getUniversalAgents,V as getVisibleUniversalAgents,M as getXdgCache,J as getXdgConfig,K as getXdgData,L as getXdgState,nb as handleSkillsCli,G as hasAgentAdapter,cb as hasProjectSkills,Qa as initTelemetry,ja as installBlobSkillForAgent,ha as installRemoteSkillForAgent,da as installSkillForAgent,ia as installWellKnownSkillForAgent,i as isGitHubHttpsCloneUrl,j as isGitHubSsoAuthError,Ma as isPromptDismissed,c as isRepoPrivate,ra as isRunningInAgent,ea as isSkillInstalled,u as isSubpathSafe,X as isUniversalAgent,kb as launchAgentInteractively,ka as listInstalledSkills,eb as matchesSkillFilter,ib as materializeUseSkill,Sa as parseAddOptions,Ta as parseFindOptions,h as parseGitHubRepoUrl,Za as parseListOptions,b as parseOwnerRepo,ab as parseRemoveOptions,t as parseSkillMd,e as parseSource,Xa as parseSyncOptions,bb as parseUpdateOptions,gb as parseUseOptions,n as readLocalLock,Ba as readSkillLock,va as registerProvider,ua as registry,$a as removeCommand,r as removeSkillFromLocalLock,Ia as removeSkillFromLock,lb as renderBanner,mb as renderHelp,H as requireAgentAdapter,Ea as resetGhAuthWarning,z as resetGlobalAdapter,C as resetInstanceAdapter,db as resolveUpdateScope,Ra as runAdd,Va as runFind,Ya as runInstallFromLock,_a as runList,Wa as runSync,fb as runUpdate,jb as runUse,$ as sanitizeName,d as sanitizeSubpath,Pa as saveSelectedAgents,Ua as searchSkillsAPI,E as setAgentAdapter,la as setDetectedAgent,y as setGlobalAdapter,B as setInstanceAdapter,ma as setVersion,s as shouldInstallInternalSkills,oa as track,za as wellKnownProvider,o as writeLocalLock,Ca as writeSkillLock}from'./chunks/chunk-RGCRYSZ6.mjs';export{e as BLOB_ALLOWED_REPOS,h as fetchRepoTree,j as findSkillMdPaths,i as getSkillFolderHashFromTree,d as parseFrontmatter,g as resetRepoTreeAuthState,c as sanitizeMetadata,b as stripTerminalEscapes,f as toSkillSlug,k as tryBlobInstall}from'./chunks/chunk-ZEMGS5WR.mjs';
1
+ export{Y as AGENTS_DIR,f as DEFAULT_CLONE_TIMEOUT,S as EVE_SUBAGENTS_DIR,g as GitCloneError,Z as SKILLS_SUBDIR,_ as UNIVERSAL_SKILLS_DIR,ya as WellKnownProvider,q as addSkillToLocalLock,Ha as addSkillToLock,P as agents,hb as buildUsePrompt,l as cleanupTempDir,k as cloneRepo,Da as computeContentHash,p as computeSkillFolderHash,qa as detectAgent,Q as detectInstalledAgents,v as discoverSkills,Na as dismissPrompt,na as fetchAuditData,Ga as fetchSkillFolderHash,x as filterSkills,wa as findProvider,pa as flushTelemetry,F as getAgentAdapter,ca as getAgentBaseDir,R as getAgentConfig,sa as getAgentName,ta as getAgentType,Ka as getAllLockedSkills,ga as getCanonicalPath,aa as getCanonicalSkillsDir,ba as getEveSubagentSkillsDir,T as getEveSubagents,Fa as getGitHubToken,A as getGlobal,I as getHomeDir,fa as getInstallPath,D as getInstance,Oa as getLastSelectedAgents,m as getLocalLockPath,W as getNonUniversalAgents,O as getOpenClawGlobalSkillsDir,a as getOwnerRepo,N as getProjectDirectory,xa as getProviders,w as getSkillDisplayName,Ja as getSkillFromLock,Aa as getSkillLockPath,La as getSkillsBySource,U as getUniversalAgents,V as getVisibleUniversalAgents,M as getXdgCache,J as getXdgConfig,K as getXdgData,L as getXdgState,nb as handleSkillsCli,G as hasAgentAdapter,cb as hasProjectSkills,Qa as initTelemetry,ja as installBlobSkillForAgent,ha as installRemoteSkillForAgent,da as installSkillForAgent,ia as installWellKnownSkillForAgent,i as isGitHubHttpsCloneUrl,j as isGitHubSsoAuthError,Ma as isPromptDismissed,c as isRepoPrivate,ra as isRunningInAgent,ea as isSkillInstalled,u as isSubpathSafe,X as isUniversalAgent,kb as launchAgentInteractively,ka as listInstalledSkills,eb as matchesSkillFilter,ib as materializeUseSkill,Sa as parseAddOptions,Ta as parseFindOptions,h as parseGitHubRepoUrl,Za as parseListOptions,b as parseOwnerRepo,ab as parseRemoveOptions,t as parseSkillMd,e as parseSource,Xa as parseSyncOptions,bb as parseUpdateOptions,gb as parseUseOptions,n as readLocalLock,Ba as readSkillLock,va as registerProvider,ua as registry,$a as removeCommand,r as removeSkillFromLocalLock,Ia as removeSkillFromLock,lb as renderBanner,mb as renderHelp,H as requireAgentAdapter,Ea as resetGhAuthWarning,z as resetGlobalAdapter,C as resetInstanceAdapter,db as resolveUpdateScope,Ra as runAdd,Va as runFind,Ya as runInstallFromLock,_a as runList,Wa as runSync,fb as runUpdate,jb as runUse,$ as sanitizeName,d as sanitizeSubpath,Pa as saveSelectedAgents,Ua as searchSkillsAPI,E as setAgentAdapter,la as setDetectedAgent,y as setGlobalAdapter,B as setInstanceAdapter,ma as setVersion,s as shouldInstallInternalSkills,oa as track,za as wellKnownProvider,o as writeLocalLock,Ca as writeSkillLock}from'./chunks/chunk-645XWVJB.mjs';export{e as BLOB_ALLOWED_REPOS,h as fetchRepoTree,j as findSkillMdPaths,i as getSkillFolderHashFromTree,d as parseFrontmatter,g as resetRepoTreeAuthState,c as sanitizeMetadata,b as stripTerminalEscapes,f as toSkillSlug,k as tryBlobInstall}from'./chunks/chunk-ZEMGS5WR.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easbot/skills",
3
- "version": "0.3.9",
3
+ "version": "0.3.10",
4
4
  "description": "Skills management system for EAS Agent ecosystem (add / remove / list / find / update / sync / use)",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -54,9 +54,9 @@
54
54
  "xdg-basedir": "^5.1.0",
55
55
  "yaml": "^2.9.0",
56
56
  "zod": "^4.4.3",
57
- "@easbot/utils": "0.3.9",
58
- "@easbot/types": "0.3.9",
59
- "@easbot/mcp": "0.3.9"
57
+ "@easbot/utils": "0.3.10",
58
+ "@easbot/types": "0.3.10",
59
+ "@easbot/mcp": "0.3.10"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@biomejs/biome": "^2.4.14",