@easbot/skills 0.3.9 → 0.3.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +0,0 @@
1
- 'use strict';var crypto=require('crypto'),yaml=require('yaml');var C=Object.defineProperty;var y=(n,t,e)=>t in n?C(n,t,{enumerable:true,configurable:true,writable:true,value:e}):n[t]=e;var N=(n,t,e)=>y(n,typeof t!="symbol"?t+"":t,e);var P=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?document.currentScript.src:new URL("main.js",document.baseURI).href,S=P();function b(n){let t=n.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);return t?{data:yaml.parse(t[1])??{},content:t[2]??""}:{data:{},content:n}}var I=/\x1b\[[\x30-\x3f]*[\x20-\x2f]*[\x40-\x7e]/g,E=/\x1b\][\s\S]*?(?:\x07|\x1b\\)/g,T=/\x1b[P^_][\s\S]*?(?:\x1b\\)/g,F=/\x1b[\x20-\x7e]/g,U=/[\x80-\x9f]/g,$=/[\x00-\x06\x07\x08\x0b\x0c\x0d-\x1a\x1c-\x1f\x7f]/g;function A(n){return n.replace(E,"").replace(T,"").replace(I,"").replace(F,"").replace(U,"").replace($,"")}function x(n){return A(n).replace(/[\r\n]+/g," ").trim()}var B=process.env.SKILLS_DOWNLOAD_URL||"https://skills.sh",D={"zapier/connectors":{downloadUrl:n=>`https://connectors-skills.zapier.com/download/${encodeURIComponent(n)}/snapshot.json`}},L=1e4;function m(n){return n.toLowerCase().replace(/[\s_]+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,"")}var R=false;function et(){R=false;}async function w(n,t,e){try{let i=`https://api.github.com/repos/${n}/git/trees/${encodeURIComponent(t)}?recursive=1`,l={Accept:"application/vnd.github.v3+json","User-Agent":"skills-cli"};e&&(l.Authorization=`Bearer ${e}`);let a=await fetch(i,{headers:l,signal:AbortSignal.timeout(L)});if(a.ok){let c=await a.json();return {tree:{sha:c.sha,branch:t,tree:c.tree},rateLimited:!1}}return {tree:null,rateLimited:a.status===403&&a.headers.get("x-ratelimit-remaining")==="0"}}catch{return {tree:null,rateLimited:false}}}async function O(n,t,e){let i=t?[t]:["HEAD","main","master"];if(R&&e){let o=e();if(!o)return null;for(let c of i){let h=await w(n,c,o);if(h.tree)return h.tree}return null}let l=false;for(let o of i){let c=await w(n,o,null);if(c.tree)return c.tree;if(c.rateLimited){l=true;break}}if(!l||!e)return null;R=true;let a=e();if(!a)return null;for(let o of i){let c=await w(n,o,a);if(c.tree)return c.tree}return null}function nt(n,t){let e=t.replace(/\\/g,"/");return e.toLowerCase().endsWith("/skill.md")?e=e.slice(0,-9):e.toLowerCase().endsWith("skill.md")&&(e=e.slice(0,-8)),e.endsWith("/")&&(e=e.slice(0,-1)),e?n.tree.find(l=>l.type==="tree"&&l.path===e)?.sha??null:n.sha}var W=["","skills/","skills/.curated/","skills/.experimental/","skills/.system/",".agents/skills/",".claude/skills/",".cline/skills/",".codebuddy/skills/",".codex/skills/",".commandcode/skills/",".continue/skills/",".github/skills/",".goose/skills/",".iflow/skills/",".junie/skills/",".kilocode/skills/",".kiro/skills/",".mux/skills/",".neovate/skills/",".opencode/skills/",".openhands/skills/",".pi/skills/",".qoder/skills/",".roo/skills/",".trae/skills/",".windsurf/skills/",".zencoder/skills/"];function H(n,t){let e=n.tree.filter(d=>d.type==="blob"&&d.path.toLowerCase().endsWith("skill.md")).map(d=>d.path),i=t?t.endsWith("/")?t:t+"/":"",l=i?e.filter(d=>d.startsWith(i)||d===i+"SKILL.md"):e;if(l.length===0)return [];let a=[],o=new Set,c=new Set(["node_modules",".git","dist","build","__pycache__"]),h=new Set(l.map(d=>d.toLowerCase()));for(let d of W){let g=i+d,r=d!=="";for(let s of l){if(!s.startsWith(g))continue;let u=s.slice(g.length);if(u.toLowerCase()==="skill.md"){o.has(s)||(a.push(s),o.add(s));continue}let f=u.split("/");if(f.length===2&&f[1].toLowerCase()==="skill.md"){o.has(s)||(a.push(s),o.add(s));continue}if(r&&f.length===3&&f[2].toLowerCase()==="skill.md"&&!c.has(f[0])&&!c.has(f[1])){let p=`${g}${f[0]}/SKILL.md`.toLowerCase();!h.has(p)&&!o.has(s)&&(a.push(s),o.add(s));}}}return a.length>0?a:l.filter(d=>d.split("/").length<=6)}async function z(n,t,e){try{let i=`https://raw.githubusercontent.com/${n}/${t}/${e}`,l=await fetch(i,{signal:AbortSignal.timeout(L)});return l.ok?await l.text():null}catch{return null}}async function v(n,t){try{let[e,i]=n.split("/"),l=`${B}/api/download/${encodeURIComponent(e)}/${encodeURIComponent(i)}/${encodeURIComponent(t)}`,o=D[n.toLowerCase()]?.downloadUrl(t)??l,c=await fetch(o,{signal:AbortSignal.timeout(L)});return c.ok?await c.json():null}catch{return null}}function j(n){let t=crypto.createHash("sha256");for(let e of [...n].sort((i,l)=>i.path.localeCompare(l.path)))t.update(e.path),t.update(e.contents);return t.digest("hex")}async function st(n,t={}){let e=await O(n,t.ref,t.getToken);if(!e)return null;let i=H(e,t.subpath);if(i.length===0)return null;if(t.skillFilter){let r=m(t.skillFilter),s=i.filter(u=>{let f=u.split("/");if(f.length<2)return false;let p=f[f.length-2];return m(p)===r});s.length>0&&(i=s);}let l=await Promise.all(i.map(async r=>{let s=await z(n,e.branch,r);return {mdPath:r,content:s}})),a=[];for(let{mdPath:r,content:s}of l){if(!s)continue;let{data:u}=b(s);if(!u.name||!u.description||typeof u.name!="string"||typeof u.description!="string"||u.metadata?.internal===true&&!t.includeInternal)continue;let p=x(u.name),k=x(u.description);a.push({mdPath:r,name:p,description:k,content:s,slug:m(p),metadata:u.metadata});}if(a.length===0)return null;let o=a;if(t.skillFilter){let r=m(t.skillFilter),s=a.filter(u=>u.slug===r);if(s.length>0&&(o=s),o.length===0)return null}let c=n.toLowerCase(),h=await Promise.all(o.map(async r=>{let s=await v(c,r.slug);return {skill:r,download:s}}));return h.every(r=>r.download!==null)?{skills:h.map(({skill:r,download:s})=>{let u=r.mdPath.toLowerCase(),p=(u.endsWith("/skill.md")?r.mdPath.slice(0,-9):u==="skill.md"?"":r.mdPath.slice(0,-9))?s.files:s.files.filter(k=>k.path.toLowerCase()==="skill.md");return {name:r.name,description:r.description,path:"",rawContent:r.content,metadata:r.metadata,files:p,snapshotHash:p.length===s.files.length?s.hash:j(p),repoPath:r.mdPath}}),tree:e}:null}
2
- exports.a=N;exports.b=S;exports.c=A;exports.d=x;exports.e=b;exports.f=D;exports.g=m;exports.h=et;exports.i=O;exports.j=nt;exports.k=H;exports.l=st;
@@ -1,2 +0,0 @@
1
- import {createHash}from'crypto';import {parse}from'yaml';var C=Object.defineProperty;var P=(n,t,e)=>t in n?C(n,t,{enumerable:true,configurable:true,writable:true,value:e}):n[t]=e;var K=(n,t,e)=>P(n,typeof t!="symbol"?t+"":t,e);function y(n){let t=n.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);return t?{data:parse(t[1])??{},content:t[2]??""}:{data:{},content:n}}var I=/\x1b\[[\x30-\x3f]*[\x20-\x2f]*[\x40-\x7e]/g,E=/\x1b\][\s\S]*?(?:\x07|\x1b\\)/g,F=/\x1b[P^_][\s\S]*?(?:\x1b\\)/g,T=/\x1b[\x20-\x7e]/g,$=/[\x80-\x9f]/g,A=/[\x00-\x06\x07\x08\x0b\x0c\x0d-\x1a\x1c-\x1f\x7f]/g;function B(n){return n.replace(E,"").replace(F,"").replace(I,"").replace(T,"").replace($,"").replace(A,"")}function S(n){return B(n).replace(/[\r\n]+/g," ").trim()}var U=process.env.SKILLS_DOWNLOAD_URL||"https://skills.sh",M={"zapier/connectors":{downloadUrl:n=>`https://connectors-skills.zapier.com/download/${encodeURIComponent(n)}/snapshot.json`}},L=1e4;function m(n){return n.toLowerCase().replace(/[\s_]+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,"")}var w=false;function tt(){w=false;}async function x(n,t,e){try{let l=`https://api.github.com/repos/${n}/git/trees/${encodeURIComponent(t)}?recursive=1`,i={Accept:"application/vnd.github.v3+json","User-Agent":"skills-cli"};e&&(i.Authorization=`Bearer ${e}`);let a=await fetch(l,{headers:i,signal:AbortSignal.timeout(L)});if(a.ok){let c=await a.json();return {tree:{sha:c.sha,branch:t,tree:c.tree},rateLimited:!1}}return {tree:null,rateLimited:a.status===403&&a.headers.get("x-ratelimit-remaining")==="0"}}catch{return {tree:null,rateLimited:false}}}async function O(n,t,e){let l=t?[t]:["HEAD","main","master"];if(w&&e){let o=e();if(!o)return null;for(let c of l){let p=await x(n,c,o);if(p.tree)return p.tree}return null}let i=false;for(let o of l){let c=await x(n,o,null);if(c.tree)return c.tree;if(c.rateLimited){i=true;break}}if(!i||!e)return null;w=true;let a=e();if(!a)return null;for(let o of l){let c=await x(n,o,a);if(c.tree)return c.tree}return null}function et(n,t){let e=t.replace(/\\/g,"/");return e.toLowerCase().endsWith("/skill.md")?e=e.slice(0,-9):e.toLowerCase().endsWith("skill.md")&&(e=e.slice(0,-8)),e.endsWith("/")&&(e=e.slice(0,-1)),e?n.tree.find(i=>i.type==="tree"&&i.path===e)?.sha??null:n.sha}var W=["","skills/","skills/.curated/","skills/.experimental/","skills/.system/",".agents/skills/",".claude/skills/",".cline/skills/",".codebuddy/skills/",".codex/skills/",".commandcode/skills/",".continue/skills/",".github/skills/",".goose/skills/",".iflow/skills/",".junie/skills/",".kilocode/skills/",".kiro/skills/",".mux/skills/",".neovate/skills/",".opencode/skills/",".openhands/skills/",".pi/skills/",".qoder/skills/",".roo/skills/",".trae/skills/",".windsurf/skills/",".zencoder/skills/"];function H(n,t){let e=n.tree.filter(d=>d.type==="blob"&&d.path.toLowerCase().endsWith("skill.md")).map(d=>d.path),l=t?t.endsWith("/")?t:t+"/":"",i=l?e.filter(d=>d.startsWith(l)||d===l+"SKILL.md"):e;if(i.length===0)return [];let a=[],o=new Set,c=new Set(["node_modules",".git","dist","build","__pycache__"]),p=new Set(i.map(d=>d.toLowerCase()));for(let d of W){let g=l+d,r=d!=="";for(let s of i){if(!s.startsWith(g))continue;let u=s.slice(g.length);if(u.toLowerCase()==="skill.md"){o.has(s)||(a.push(s),o.add(s));continue}let f=u.split("/");if(f.length===2&&f[1].toLowerCase()==="skill.md"){o.has(s)||(a.push(s),o.add(s));continue}if(r&&f.length===3&&f[2].toLowerCase()==="skill.md"&&!c.has(f[0])&&!c.has(f[1])){let h=`${g}${f[0]}/SKILL.md`.toLowerCase();!p.has(h)&&!o.has(s)&&(a.push(s),o.add(s));}}}return a.length>0?a:i.filter(d=>d.split("/").length<=6)}async function z(n,t,e){try{let l=`https://raw.githubusercontent.com/${n}/${t}/${e}`,i=await fetch(l,{signal:AbortSignal.timeout(L)});return i.ok?await i.text():null}catch{return null}}async function v(n,t){try{let[e,l]=n.split("/"),i=`${U}/api/download/${encodeURIComponent(e)}/${encodeURIComponent(l)}/${encodeURIComponent(t)}`,o=M[n.toLowerCase()]?.downloadUrl(t)??i,c=await fetch(o,{signal:AbortSignal.timeout(L)});return c.ok?await c.json():null}catch{return null}}function j(n){let t=createHash("sha256");for(let e of [...n].sort((l,i)=>l.path.localeCompare(i.path)))t.update(e.path),t.update(e.contents);return t.digest("hex")}async function nt(n,t={}){let e=await O(n,t.ref,t.getToken);if(!e)return null;let l=H(e,t.subpath);if(l.length===0)return null;if(t.skillFilter){let r=m(t.skillFilter),s=l.filter(u=>{let f=u.split("/");if(f.length<2)return false;let h=f[f.length-2];return m(h)===r});s.length>0&&(l=s);}let i=await Promise.all(l.map(async r=>{let s=await z(n,e.branch,r);return {mdPath:r,content:s}})),a=[];for(let{mdPath:r,content:s}of i){if(!s)continue;let{data:u}=y(s);if(!u.name||!u.description||typeof u.name!="string"||typeof u.description!="string"||u.metadata?.internal===true&&!t.includeInternal)continue;let h=S(u.name),k=S(u.description);a.push({mdPath:r,name:h,description:k,content:s,slug:m(h),metadata:u.metadata});}if(a.length===0)return null;let o=a;if(t.skillFilter){let r=m(t.skillFilter),s=a.filter(u=>u.slug===r);if(s.length>0&&(o=s),o.length===0)return null}let c=n.toLowerCase(),p=await Promise.all(o.map(async r=>{let s=await v(c,r.slug);return {skill:r,download:s}}));return p.every(r=>r.download!==null)?{skills:p.map(({skill:r,download:s})=>{let u=r.mdPath.toLowerCase(),h=(u.endsWith("/skill.md")?r.mdPath.slice(0,-9):u==="skill.md"?"":r.mdPath.slice(0,-9))?s.files:s.files.filter(k=>k.path.toLowerCase()==="skill.md");return {name:r.name,description:r.description,path:"",rawContent:r.content,metadata:r.metadata,files:h,snapshotHash:h.length===s.files.length?s.hash:j(h),repoPath:r.mdPath}}),tree:e}:null}
2
- export{K as a,B as b,S as c,y as d,M as e,m as f,tt as g,O as h,et as i,H as j,nt as k};