@easbot/skills 0.3.7 → 0.3.9
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.
|
@@ -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.
|
|
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(`
|
|
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(`
|
|
@@ -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.7"};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.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(`
|
|
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
|
|
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));});
|
package/dist/cli.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {pa,lb,mb,nb}from'./chunks/chunk-
|
|
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));});
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var chunk5KSKQBRP_cjs=require('./chunks/chunk-5KSKQBRP.cjs'),chunkXDSGBJHO_cjs=require('./chunks/chunk-XDSGBJHO.cjs');Object.defineProperty(exports,"AGENTS_DIR",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Y}});Object.defineProperty(exports,"DEFAULT_CLONE_TIMEOUT_MS",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.f}});Object.defineProperty(exports,"EVE_SUBAGENTS_DIR",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.S}});Object.defineProperty(exports,"GitCloneError",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.g}});Object.defineProperty(exports,"SKILLS_SUBDIR",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Z}});Object.defineProperty(exports,"UNIVERSAL_SKILLS_DIR",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs._}});Object.defineProperty(exports,"WellKnownProvider",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.ya}});Object.defineProperty(exports,"addSkillToLocalLock",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.q}});Object.defineProperty(exports,"addSkillToLock",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Ha}});Object.defineProperty(exports,"agents",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.P}});Object.defineProperty(exports,"buildUsePrompt",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.hb}});Object.defineProperty(exports,"cleanupTempDir",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.l}});Object.defineProperty(exports,"cloneRepo",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.k}});Object.defineProperty(exports,"computeContentHash",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Da}});Object.defineProperty(exports,"computeSkillFolderHash",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.p}});Object.defineProperty(exports,"detectAgent",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.qa}});Object.defineProperty(exports,"detectInstalledAgents",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Q}});Object.defineProperty(exports,"discoverSkills",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.v}});Object.defineProperty(exports,"dismissPrompt",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Na}});Object.defineProperty(exports,"fetchAuditData",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.na}});Object.defineProperty(exports,"fetchSkillFolderHash",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Ga}});Object.defineProperty(exports,"filterSkills",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.x}});Object.defineProperty(exports,"findProvider",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.wa}});Object.defineProperty(exports,"flushTelemetry",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.pa}});Object.defineProperty(exports,"getAgentAdapter",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.F}});Object.defineProperty(exports,"getAgentBaseDir",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.ca}});Object.defineProperty(exports,"getAgentConfig",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.R}});Object.defineProperty(exports,"getAgentName",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.sa}});Object.defineProperty(exports,"getAgentType",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.ta}});Object.defineProperty(exports,"getAllLockedSkills",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Ka}});Object.defineProperty(exports,"getCanonicalPath",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.ga}});Object.defineProperty(exports,"getCanonicalSkillsDir",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.aa}});Object.defineProperty(exports,"getEveSubagentSkillsDir",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.ba}});Object.defineProperty(exports,"getEveSubagents",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.T}});Object.defineProperty(exports,"getGitHubToken",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Fa}});Object.defineProperty(exports,"getGlobal",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.A}});Object.defineProperty(exports,"getHomeDir",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.I}});Object.defineProperty(exports,"getInstallPath",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.fa}});Object.defineProperty(exports,"getInstance",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.D}});Object.defineProperty(exports,"getLastSelectedAgents",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Oa}});Object.defineProperty(exports,"getLocalLockPath",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.m}});Object.defineProperty(exports,"getNonUniversalAgents",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.W}});Object.defineProperty(exports,"getOpenClawGlobalSkillsDir",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.O}});Object.defineProperty(exports,"getOwnerRepo",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.a}});Object.defineProperty(exports,"getProjectDirectory",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.N}});Object.defineProperty(exports,"getProviders",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.xa}});Object.defineProperty(exports,"getSkillDisplayName",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.w}});Object.defineProperty(exports,"getSkillFromLock",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Ja}});Object.defineProperty(exports,"getSkillLockPath",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Aa}});Object.defineProperty(exports,"getSkillsBySource",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.La}});Object.defineProperty(exports,"getUniversalAgents",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.U}});Object.defineProperty(exports,"getVisibleUniversalAgents",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.V}});Object.defineProperty(exports,"getXdgCache",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.M}});Object.defineProperty(exports,"getXdgConfig",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.J}});Object.defineProperty(exports,"getXdgData",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.K}});Object.defineProperty(exports,"getXdgState",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.L}});Object.defineProperty(exports,"handleSkillsCli",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.nb}});Object.defineProperty(exports,"hasAgentAdapter",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.G}});Object.defineProperty(exports,"hasProjectSkills",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.cb}});Object.defineProperty(exports,"initTelemetry",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Qa}});Object.defineProperty(exports,"installBlobSkillForAgent",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.ja}});Object.defineProperty(exports,"installRemoteSkillForAgent",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.ha}});Object.defineProperty(exports,"installSkillForAgent",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.da}});Object.defineProperty(exports,"installWellKnownSkillForAgent",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.ia}});Object.defineProperty(exports,"isGitHubHttpsCloneUrl",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.i}});Object.defineProperty(exports,"isGitHubSsoAuthError",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.j}});Object.defineProperty(exports,"isPromptDismissed",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Ma}});Object.defineProperty(exports,"isRepoPrivate",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.c}});Object.defineProperty(exports,"isRunningInAgent",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.ra}});Object.defineProperty(exports,"isSkillInstalled",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.ea}});Object.defineProperty(exports,"isSubpathSafe",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.u}});Object.defineProperty(exports,"isUniversalAgent",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.X}});Object.defineProperty(exports,"launchAgentInteractively",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.kb}});Object.defineProperty(exports,"listInstalledSkills",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.ka}});Object.defineProperty(exports,"matchesSkillFilter",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.eb}});Object.defineProperty(exports,"materializeUseSkill",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.ib}});Object.defineProperty(exports,"parseAddOptions",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Sa}});Object.defineProperty(exports,"parseFindOptions",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Ta}});Object.defineProperty(exports,"parseGitHubRepoUrl",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.h}});Object.defineProperty(exports,"parseListOptions",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Za}});Object.defineProperty(exports,"parseOwnerRepo",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.b}});Object.defineProperty(exports,"parseRemoveOptions",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.ab}});Object.defineProperty(exports,"parseSkillMd",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.t}});Object.defineProperty(exports,"parseSource",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.e}});Object.defineProperty(exports,"parseSyncOptions",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Xa}});Object.defineProperty(exports,"parseUpdateOptions",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.bb}});Object.defineProperty(exports,"parseUseOptions",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.gb}});Object.defineProperty(exports,"readLocalLock",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.n}});Object.defineProperty(exports,"readSkillLock",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Ba}});Object.defineProperty(exports,"registerProvider",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.va}});Object.defineProperty(exports,"registry",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.ua}});Object.defineProperty(exports,"removeCommand",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.$a}});Object.defineProperty(exports,"removeSkillFromLocalLock",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.r}});Object.defineProperty(exports,"removeSkillFromLock",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Ia}});Object.defineProperty(exports,"renderBanner",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.lb}});Object.defineProperty(exports,"renderHelp",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.mb}});Object.defineProperty(exports,"requireAgentAdapter",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.H}});Object.defineProperty(exports,"resetGhAuthWarning",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Ea}});Object.defineProperty(exports,"resetGlobalAdapter",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.z}});Object.defineProperty(exports,"resetInstanceAdapter",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.C}});Object.defineProperty(exports,"resolveUpdateScope",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.db}});Object.defineProperty(exports,"runAdd",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Ra}});Object.defineProperty(exports,"runFind",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Va}});Object.defineProperty(exports,"runInstallFromLock",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Ya}});Object.defineProperty(exports,"runList",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs._a}});Object.defineProperty(exports,"runSync",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Wa}});Object.defineProperty(exports,"runUpdate",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.fb}});Object.defineProperty(exports,"runUse",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.jb}});Object.defineProperty(exports,"sanitizeName",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.$}});Object.defineProperty(exports,"sanitizeSubpath",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.d}});Object.defineProperty(exports,"saveSelectedAgents",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Pa}});Object.defineProperty(exports,"searchSkillsAPI",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.Ua}});Object.defineProperty(exports,"setAgentAdapter",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.E}});Object.defineProperty(exports,"setDetectedAgent",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.la}});Object.defineProperty(exports,"setGlobalAdapter",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.y}});Object.defineProperty(exports,"setInstanceAdapter",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.B}});Object.defineProperty(exports,"setVersion",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.ma}});Object.defineProperty(exports,"shouldInstallInternalSkills",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.s}});Object.defineProperty(exports,"track",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.oa}});Object.defineProperty(exports,"wellKnownProvider",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.za}});Object.defineProperty(exports,"writeLocalLock",{enumerable:true,get:function(){return chunk5KSKQBRP_cjs.o}});Object.defineProperty(exports,"writeSkillLock",{enumerable:true,get:function(){return chunk5KSKQBRP_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 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}});
|
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-
|
|
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';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@easbot/skills",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.9",
|
|
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.
|
|
58
|
-
"@easbot/types": "0.3.
|
|
59
|
-
"@easbot/mcp": "0.3.
|
|
57
|
+
"@easbot/utils": "0.3.9",
|
|
58
|
+
"@easbot/types": "0.3.9",
|
|
59
|
+
"@easbot/mcp": "0.3.9"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@biomejs/biome": "^2.4.14",
|