agent-skill-manager 2.17.0 → 2.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -33
- package/data/bundles/content-writing.json +9 -9
- package/data/bundles/frontend-dev.json +6 -6
- package/data/bundles/game-dev.json +60 -0
- package/data/bundles/ios-release.json +1 -1
- package/data/bundles/marketing.json +40 -0
- package/data/bundles/software-dev.json +40 -0
- package/data/repo-stars.json +80 -0
- package/data/skill-index/Affitor_affiliate-skills.json +692 -226
- package/data/skill-index/AvdLee_Core-Data-Agent-Skill.json +7 -5
- package/data/skill-index/AvdLee_Swift-Concurrency-Agent-Skill.json +7 -5
- package/data/skill-index/AvdLee_Swift-Testing-Agent-Skill.json +7 -5
- package/data/skill-index/AvdLee_SwiftUI-Agent-Skill.json +53 -13
- package/data/skill-index/AvdLee_Xcode-Build-Optimization-Agent-Skill.json +102 -30
- package/data/skill-index/ComposioHQ_awesome-claude-skills.json +155207 -0
- package/data/skill-index/DietrichGebert_ponytail.json +1307 -0
- package/data/skill-index/Dimillian_Skills.json +182 -72
- package/data/skill-index/Egonex-AI_Understand-Anything.json +64 -46
- package/data/skill-index/Eronred_aso-skills.json +443 -177
- package/data/skill-index/GPTomics_bioSkills.json +3618 -2494
- package/data/skill-index/Galaxy-Dawn_claude-scholar.json +313 -203
- package/data/skill-index/Imbad0202_academic-research-skills.json +42 -34
- package/data/skill-index/JuliusBrussee_caveman.json +3887 -0
- package/data/skill-index/K-Dense-AI_claude-scientific-skills.json +2473 -2643
- package/data/skill-index/Leonxlnx_taste-skill.json +86 -60
- package/data/skill-index/Master-cai_Research-Paper-Writing-Skills.json +7 -5
- package/data/skill-index/MiniMax-AI_skills.json +186 -104
- package/data/skill-index/Nutlope_hallmark.json +187 -0
- package/data/skill-index/Paramchoudhary_ResumeSkills.json +140 -96
- package/data/skill-index/ParthJadhav_app-store-screenshots.json +7 -5
- package/data/skill-index/addyosmani_agent-skills.json +572 -257
- package/data/skill-index/affaan-m_ECC.json +54685 -0
- package/data/skill-index/affaan-m_everything-claude-code.json +1903 -1248
- package/data/skill-index/alirezarezvani_claude-skills.json +14453 -8549
- package/data/skill-index/anthropics_skills.json +138 -98
- package/data/skill-index/antithesishq_antithesis-skills.json +173 -149
- package/data/skill-index/antonbabenko_terraform-skill.json +7 -5
- package/data/skill-index/ayghri_i-have-adhd.json +187 -0
- package/data/skill-index/badlogic_pi-skills.json +55 -39
- package/data/skill-index/blader_humanizer.json +187 -0
- package/data/skill-index/briiirussell_cybersecurity-skills.json +212 -343
- package/data/skill-index/bytedance_deer-flow.json +180 -126
- package/data/skill-index/cathrynlavery_diagram-design.json +187 -0
- package/data/skill-index/charlie947_answer-first.json +187 -0
- package/data/skill-index/charlie947_voiceprint.json +187 -0
- package/data/skill-index/cloudai-x_threejs-skills.json +149 -45
- package/data/skill-index/coreyhaines31_marketingskills.json +802 -467
- package/data/skill-index/davidondrej_skills.json +4580 -1075
- package/data/skill-index/emilkowalski_skills.json +353 -52
- package/data/skill-index/entireio_skills.json +185 -101
- package/data/skill-index/garrytan_gstack.json +968 -600
- package/data/skill-index/github_awesome-copilot.json +9624 -7636
- package/data/skill-index/google-labs-code_design.md.json +899 -0
- package/data/skill-index/google_skills.json +7013 -2434
- package/data/skill-index/hardikpandya_stop-slop.json +187 -0
- package/data/skill-index/heygen-com_hyperframes.json +191 -139
- package/data/skill-index/himself65_finance-skills.json +175 -340
- package/data/skill-index/ivan-magda_uikit-expert-skill.json +7 -5
- package/data/skill-index/kemiljk_fluid-design.json +7 -5
- package/data/skill-index/kepano_obsidian-skills.json +34 -24
- package/data/skill-index/luongnv89_asm.json +307 -219
- package/data/skill-index/luongnv89_idd.json +121 -107
- package/data/skill-index/luongnv89_skills.json +1503 -599
- package/data/skill-index/majidmanzarpour_threejs-game-skills.json +2024 -0
- package/data/skill-index/mattpocock_skills.json +596 -154
- package/data/skill-index/multica-ai_andrej-karpathy-skills.json +187 -0
- package/data/skill-index/mvanhorn_last30days-skill.json +16 -20
- package/data/skill-index/nextlevelbuilder_ui-ux-pro-max-skill.json +84 -70
- package/data/skill-index/obra_superpowers.json +95 -67
- package/data/skill-index/oliver-zehentleitner_keep-the-why.json +28 -26
- package/data/skill-index/openai_skills.json +8816 -0
- package/data/skill-index/pbakaus_impeccable.json +187 -0
- package/data/skill-index/romainsimon_paperasse.json +44 -32
- package/data/skill-index/rudrankriyam_app-store-connect-cli-skills.json +319 -119
- package/data/skill-index/santifer_career-ops.json +1009 -14
- package/data/skill-index/sickn33_antigravity-awesome-skills.json +63856 -42252
- package/data/skill-index/slavingia_skills.json +68 -48
- package/data/skill-index/tt-a1i_archify.json +187 -0
- package/data/skill-index/twostraws_Swift-Concurrency-Agent-Skill.json +7 -5
- package/data/skill-index/twostraws_Swift-Testing-Agent-Skill.json +7 -5
- package/data/skill-index/twostraws_SwiftData-Agent-Skill.json +7 -5
- package/data/skill-index/twostraws_SwiftUI-Agent-Skill.json +7 -5
- package/data/skill-index/warpdotdev_oz-skills.json +101 -71
- package/data/skill-index/zarazhangrui_follow-builders.json +7 -5
- package/data/skill-index/zarazhangrui_frontend-slides.json +187 -0
- package/data/skill-index-resources.json +172 -10
- package/dist/agent-skill-manager.js +486 -538
- package/dist/{chunk-LH2C3PE7.js → chunk-3KGAHUVB.js} +1 -1
- package/dist/chunk-CBDNF2SR.js +166 -0
- package/dist/chunk-ESKBKSXS.js +2 -0
- package/dist/chunk-KWWFXT5F.js +3 -0
- package/dist/config-JPFUVYBM.js +2 -0
- package/dist/{lock-NN2MADX7.js → lock-UEL3CMOV.js} +1 -1
- package/dist/spawn-JDSII5L3.js +2 -0
- package/dist/src-ORQ3FXUL.js +119 -0
- package/package.json +1 -1
- package/dist/chunk-BQ4RW237.js +0 -20
- package/dist/chunk-LS24FFOX.js +0 -3
- package/dist/config-AZYQEQOQ.js +0 -2
- package/dist/src-BD3KFE5H.js +0 -119
package/package.json
CHANGED
package/dist/chunk-BQ4RW237.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
|
|
2
|
-
import{b as k,o as R}from"./chunk-LS24FFOX.js";import{readdir as A,stat as D,lstat as we,readlink as Qe,readFile as J,realpath as fe}from"fs/promises";import{join as x,resolve as de,basename as Ze}from"path";import{homedir as Y}from"os";function se(e){let t={},n=e.split(`
|
|
3
|
-
`),o=!1,r=!1,i=null,a=[],l="none",s=-1,c=null;function d(){if(i){let u=a.join(" ").trim();u&&(t[i]=u),i=null,a=[],l="none",s=-1}}for(let u of n){if(u.trim()==="---")if(r){d();break}else{r=!0,o=!0;continue}if(!o)continue;if(l!=="none"&&i){let f=u.replace(/^\s*/,""),m=u.length-f.length;if(m>0&&f.length>0){s===-1&&(s=m),a.push(f);continue}else{if(f.length===0)continue;d()}}if(c!==null){let f=u.match(/^\s+(\w[\w-]*):\s*(.*?)\s*$/);if(f){let m=f[1],b=f[2].replace(/^["']|["']$/g,"");b&&(t[`${c}.${m}`]=b);continue}if(u.trim().length>0)c=null;else continue}let h=u.match(/^(\w[\w-]*):\s*(.*?)\s*$/);if(h){d();let f=h[1],m=h[2];if(m==="|"||m===">")i=f,a=[],l=m==="|"?"literal":"folded";else if(m==="|+"||m===">+"||m==="|-"||m===">-")i=f,a=[],l=m.startsWith("|")?"literal":"folded";else{let g=m.replace(/^["']|["']$/g,"");g?t[f]=g:c=f}}}return d(),t}function ae(e){return e["metadata.version"]||e.version||"0.0.0"}function le(e){let t=e["allowed-tools"]||"";return t.trim()?t.split(/[\s,]+/).map(n=>n.trim()).filter(Boolean):[]}function Se(e){return(e||"").trim().toLowerCase()}function Ye(e){let t=Se(e);return t==="true"||t==="yes"||t==="1"}function Xe(e){let t=Se(e);return t==="false"||t==="no"||t==="0"}function ce(e){return!Ye(e["disable-model-invocation"])}function ue(e){return"user-invocable"in e?!Xe(e["user-invocable"]):!0}function O(e,t){let n=e!==!1,o=t!==!1;return n&&o?"both":n?"model":o?"user":"none"}function Xt(e,t){let n=e.modelInvocable!==!1,o=e.userInvocable!==!1;return!(t.modelInvocable&&!n||t.userInvocable&&!o)}function U(e){if(!e)return 0;let t=e.split(/\s+/).map(o=>o.trim()).filter(Boolean).length,n=0;for(let o=0;o<e.length;o++)e.charCodeAt(o)===32&&n++;return t+n}function H(e){return!Number.isFinite(e)||e<0?"~0 tokens":e<1e3?`~${e} tokens`:e<1e4?`~${(e/1e3).toFixed(1).replace(/\.0$/,"")}k tokens`:e<1e6?`~${Math.round(e/1e3)}k tokens`:`~${(e/1e6).toFixed(1).replace(/\.0$/,"")}M tokens`}function Zt(e){return U(e.description??"")}function en(e){let t=e.tokenCount;return typeof t=="number"&&Number.isFinite(t)&&t>0?t:0}var et=x(Y(),".claude","plugins","marketplaces"),tt=x(Y(),".codex","plugins","cache"),nt=x(Y(),".codex","config.toml"),un=x(Y(),".agents","plugins","marketplace.json"),xe=16,ot=xe-1,F=[],N=0,pe=0;function ke(){for(;pe<xe&&N<F.length;){let e=F[N++];pe++,e()}N===F.length?(F.length=0,N=0):N>=1024&&N*2>=F.length&&(F.splice(0,N),N=0)}function rt(e){return new Promise((t,n)=>{F.push(()=>{Promise.resolve().then(e).finally(()=>{pe--,ke()}).then(t,n)}),ke()})}function it(){let e=[],t=0,n=0,o=()=>{for(;t<ot;){let r;for(let l=0;l<e.length;l++){let s=e[n];if(n=(n+1)%e.length,s.nextIndex<s.entries.length){r=s;break}}if(!r)return;let i=r.nextIndex++,a=r.entries[i];r.inFlight++,t++,rt(()=>r.task(a,i)).then(l=>{l&&r.results.push([i,l])},()=>{}).finally(()=>{if(t--,r.inFlight--,r.nextIndex===r.entries.length&&r.inFlight===0){let l=e.indexOf(r);e.splice(l,1),e.length===0?n=0:(l<n&&n--,n%=e.length),r.results.sort(([s],[c])=>s-c),r.resolve(r.results.map(([,s])=>s))}o()})}};return{run(r,i){return r.length===0?Promise.resolve([]):new Promise(a=>{e.push({entries:r,nextIndex:0,inFlight:0,results:[],task:i,resolve:a}),o()})}}}function st(e,t){let n=[];for(let o of e.providers){if(!o.enabled){k(`scan: skipping disabled provider "${o.name}"`);continue}if(t==="global"||t==="both"){let r=R(o.global);k(`scan: adding location ${r} (${o.label}, global)`),n.push({dir:r,location:`global-${o.name}`,scope:"global",providerName:o.name,providerLabel:o.label})}if(t==="project"||t==="both"){let r=R(o.project);k(`scan: adding location ${r} (${o.label}, project)`),n.push({dir:r,location:`project-${o.name}`,scope:"project",providerName:o.name,providerLabel:o.label})}}for(let o of e.customPaths)if(t===o.scope||t==="both"){let r=R(o.path);k(`scan: adding custom location ${r} (${o.label}, ${o.scope})`),n.push({dir:r,location:`${o.scope}-custom`,scope:o.scope,providerName:"custom",providerLabel:o.label})}return n}async function me(e){try{return(await A(e,{recursive:!0})).length}catch{return 0}}function Pe(e,t){Object.defineProperty(e,"_skillMdContent",{value:t,writable:!0,configurable:!0})}async function at(e,t){k(`scanning: ${e.dir} (${e.location})`);let n;try{n=await A(e.dir)}catch{return k(`scanning: ${e.dir} \u2014 not found, skipping`),[]}let o=await t.run(n,async r=>{try{let i=x(e.dir,r);try{if(!(await D(i)).isDirectory()){k(` skip: "${r}" \u2014 not a directory`);return}}catch{k(` skip: "${r}" \u2014 stat failed`);return}let a=x(i,"SKILL.md"),l;try{l=await J(a,"utf-8")}catch{k(` skip: "${r}" \u2014 no SKILL.md`);return}let s=se(l),c=!1,d=null;try{(await we(i)).isSymbolicLink()&&(c=!0,d=await Qe(i))}catch{}let u=de(i),h;try{h=await fe(i)}catch{h=u}let f={name:s.name||r,version:ae(s),description:(s.description||"").replace(/\s*\n\s*/g," ").trim(),creator:s["metadata.creator"]||"",license:(s.license||"").trim(),compatibility:(s.compatibility||"").trim(),allowedTools:le(s),modelInvocable:ce(s),userInvocable:ue(s),effort:s.effort||s["metadata.effort"]||void 0,dirName:r,path:u,originalPath:i,location:e.location,scope:e.scope,provider:e.providerName,providerLabel:e.providerLabel,isSymlink:c,symlinkTarget:d,realPath:h,tokenCount:U(l)};return Pe(f,l),f}catch{k(` skip: "${r}" \u2014 scan failed`);return}});return k(`found ${o.length} skill(s) in ${e.dir}`),o}async function Ie(e){let t=[],n;try{n=await A(e)}catch{return t}for(let o of n){let r=x(e,o),i;try{i=await we(r)}catch{continue}if(!i.isSymbolicLink()&&i.isDirectory()){let a=x(r,"SKILL.md");try{await D(a),t.push(r)}catch{let l=await Ie(r);t.push(...l)}}}return t}async function lt(e){let t=e??et,n=[];k(`scan: checking plugin marketplaces at ${t}`);let o;try{o=await A(t)}catch{return k("scan: plugin marketplaces dir not found, skipping"),n}for(let r of o){let i=x(t,r),a;try{a=await D(i)}catch{continue}if(!a.isDirectory())continue;k(`scan: scanning marketplace "${r}"`);let l=await Ie(i);for(let s of l){let c=x(s,"SKILL.md"),d;try{d=await J(c,"utf-8")}catch{continue}let u=se(d),h=Ze(s),f=de(s),m;try{m=await fe(s)}catch{m=f}let g={name:u.name||h,version:ae(u),description:(u.description||"").replace(/\s*\n\s*/g," ").trim(),creator:u["metadata.creator"]||"",license:(u.license||"").trim(),compatibility:(u.compatibility||"").trim(),allowedTools:le(u),modelInvocable:ce(u),userInvocable:ue(u),effort:u.effort||u["metadata.effort"]||void 0,dirName:h,path:f,originalPath:s,location:`global-plugin-${r}`,scope:"global",provider:"plugin",providerLabel:`Plugin (${r})`,isSymlink:!1,symlinkTarget:null,realPath:m,marketplace:r,tokenCount:U(d)};Pe(g,d),n.push(g)}}return k(`scan: found ${n.length} plugin marketplace skill(s)`),n}function ct(e){let t=new Map,n=null;for(let o of e.split(`
|
|
4
|
-
`)){let r=o.trim(),i=r.match(/^\[plugins\.([^\]]+)\]$/);if(i){n=i[1].trim().replace(/^["']|["']$/g,"");continue}if(r.startsWith("[")){n=null;continue}if(n&&r.startsWith("enabled")){let a=r.match(/^enabled\s*=\s*(true|false)/i);a&&t.set(n,a[1].toLowerCase()==="true")}}return t}async function ut(e){let t=e??nt;try{let n=await J(t,"utf-8");return ct(n)}catch{return k(`codex: config.toml not found at ${t}, skipping enabled check`),new Map}}async function pt(e,t){let n=e??tt,o=[];k(`codex: checking plugin cache at ${n}`);let r;try{r=await A(n)}catch{return k("codex: plugin cache dir not found, skipping"),o}let i=await ut(t);for(let a of r){let l=x(n,a),s;try{s=await D(l)}catch{continue}if(!s.isDirectory())continue;let c;try{c=await A(l)}catch{continue}for(let d of c){let u=x(l,d),h;try{h=await D(u)}catch{continue}if(!h.isDirectory())continue;let f;try{f=await A(u)}catch{continue}let m=(await Promise.all(f.map(async $=>{try{return(await D(x(u,$))).isDirectory()?$:null}catch{return null}}))).filter($=>$!==null);if(m.length===0)continue;let g=m.sort(Ce).at(-1),b=x(u,g),y=x(b,".codex-plugin","plugin.json"),w;try{let $=await J(y,"utf-8");w=JSON.parse($)}catch{k(`codex: no valid plugin.json at ${y}, skipping`);continue}let I=de(b),C;try{C=await fe(b)}catch{C=I}let E=w.interface?.displayName||w.name||d,G=w.version||g,B=(w.description||"").replace(/\s*\n\s*/g," ").trim(),V=i.has(d)?i.get(d):!0;o.push({name:E,version:G,description:B,creator:"",license:"",compatibility:"",allowedTools:[],dirName:d,path:I,originalPath:b,location:`global-codex-plugin-${a}`,scope:"global",provider:"codex-plugin",providerLabel:`Codex Plugin (${a})`,isSymlink:!1,symlinkTarget:null,realPath:C,marketplace:a,codexPlugin:{category:w.interface?.category,hasMcpConfig:w.mcp!=null&&Object.keys(w.mcp).length>0,pluginName:d,pluginVersion:g,enabled:V}})}}return k(`codex: found ${o.length} plugin(s) in cache`),o}async function pn(e,t,n,o){let r=st(e,t),i=t==="global"||t==="both",a=it(),[l,s,c]=await Promise.all([Promise.all(r.map(f=>at(f,a))),i?lt(n):Promise.resolve([]),i?pt(o):Promise.resolve([])]),d=l.flat(),u=new Set(d.map(f=>f.realPath)),h=new Set(d.map(f=>f.name.toLowerCase()));for(let f of s)!u.has(f.realPath)&&!h.has(f.name.toLowerCase())&&(d.push(f),u.add(f.realPath),h.add(f.name.toLowerCase()));for(let f of c)!u.has(f.realPath)&&!h.has(f.name.toLowerCase())&&(d.push(f),u.add(f.realPath),h.add(f.name.toLowerCase()));return d}function fn(e,t){if(!t.trim())return e;let n=t.toLowerCase();return e.filter(o=>o.name.toLowerCase().includes(n)||o.description.toLowerCase().includes(n)||o.creator.toLowerCase().includes(n)||o.effort&&o.effort.toLowerCase().includes(n)||o.location.toLowerCase().includes(n)||o.providerLabel.toLowerCase().includes(n))}function Ce(e,t){let n=e.split("."),o=t.split("."),r=Math.max(n.length,o.length);for(let i=0;i<r;i++){let a=parseInt(n[i]??"0",10),l=parseInt(o[i]??"0",10);if(isNaN(a)||isNaN(l))return e.localeCompare(t);if(a!==l)return a-l}return 0}function dn(e,t){let n=[...e];switch(t){case"name":n.sort((o,r)=>o.name.localeCompare(r.name));break;case"version":n.sort((o,r)=>Ce(o.version,r.version));break;case"location":n.sort((o,r)=>o.location.localeCompare(r.location));break}return n}import{rm as T,readFile as Me,writeFile as yt,access as St,lstat as kt,rename as wt,readdir as xt,mkdir as Ne,unlink as Te}from"fs/promises";import{join as X,resolve as P,dirname as _,relative as Le}from"path";import{homedir as Pt}from"os";import{readdir as ft,readFile as dt,stat as mt,symlink as Ee}from"fs/promises";import{dirname as gt,join as ht,resolve as vt}from"path";async function ge(e,t){process.platform==="win32"?await Ee(vt(gt(t),e),t,"junction"):await Ee(e,t,"dir")}function vn(e){return e.split("\\").join("/")}var bt=new Set([".png",".jpg",".jpeg",".gif",".ico",".bmp",".webp",".mp3",".mp4",".wav",".avi",".mov",".zip",".tar",".gz",".bz2",".7z",".exe",".dll",".so",".dylib",".woff",".woff2",".ttf",".eot",".pdf",".doc",".docx"]),$t=512*1024;async function bn(e){let t=[];async function n(o,r){let i;try{i=await ft(o)}catch{return}for(let a of i){if(a===".git"||a==="node_modules")continue;let l=ht(o,a),s=r?`${r}/${a}`:a;try{let c=await mt(l);if(c.isDirectory())await n(l,s);else if(c.isFile()){let d=a.includes(".")?`.${a.split(".").pop().toLowerCase()}`:"";if(bt.has(d)||c.size>$t)continue;try{let u=await dt(l,"utf-8");t.push({relPath:s,content:u,lineCount:u.split(`
|
|
5
|
-
`).length})}catch{}}}catch{continue}}}return await n(e,""),t}var Re=Pt();function It(e,t){let n={directories:[],ruleFiles:[],agentsBlocks:[]};n.directories.push({path:e.originalPath,isSymlink:e.isSymlink});let o=e.dirName;if(e.scope==="project"&&(n.ruleFiles.push(P(".cursor","rules",`${o}.mdc`),P(".windsurf","rules",`${o}.md`),P(".github","instructions",`${o}.instructions.md`)),n.agentsBlocks.push({file:P("AGENTS.md"),skillName:o})),e.scope==="global"){for(let a of t.providers){if(!a.enabled)continue;let l=R(a.global),s=X(_(l),"AGENTS.md");n.agentsBlocks.push({file:s,skillName:o})}let r=X(Re,".codex","AGENTS.md");n.agentsBlocks.some(a=>a.file===r)||n.agentsBlocks.push({file:r,skillName:o})}return n}function Pn(e,t,n,o){let r=t.filter(h=>h.dirName===e),i=r;if(o?.providerFilter&&(i=i.filter(h=>h.provider===o.providerFilter)),o?.scopeFilter&&(i=i.filter(h=>h.scope===o.scopeFilter)),i.length===0)return{directories:[],ruleFiles:[],agentsBlocks:[]};let a=new Set(r.filter(h=>!i.includes(h)).map(h=>`${h.provider}::${h.scope}`));function l(h){if(h===P("AGENTS.md")){let f=Array.from(a).find(m=>m.endsWith("::project"));return f?{provider:f.split("::")[0],scope:"project"}:null}for(let f of n.providers){let m=R(f.global),g=X(_(m),"AGENTS.md");if(h===g)return{provider:f.name,scope:"global"}}return h===X(Re,".codex","AGENTS.md")?{provider:"codex",scope:"global"}:null}let s={directories:[],ruleFiles:[],agentsBlocks:[]},c=new Set,d=new Set,u=new Set;for(let h of i){let f=It(h,n);for(let m of f.directories)c.has(m.path)||(c.add(m.path),s.directories.push(m));for(let m of f.ruleFiles)d.has(m)||(d.add(m),s.ruleFiles.push(m));for(let m of f.agentsBlocks){let g=`${m.file}::${m.skillName}`;if(u.has(g))continue;let b=l(m.file);if(b){let y=`${b.provider}::${b.scope}`;if(a.has(y))continue}u.add(g),s.agentsBlocks.push(m)}}return s}async function q(e){try{return await St(e),!0}catch{return!1}}async function Ct(e,t){if(!await q(e))return;let n=await Me(e,"utf-8"),o=!1;for(let r of["agent-skill-manager","skill-manager","pskills"]){let i=`<!-- ${r}: ${t} -->`,a=`<!-- /${r}: ${t} -->`,l=n.indexOf(i),s=n.indexOf(a);if(l===-1||s===-1)continue;let c=l;c>0&&n[c-1]===`
|
|
6
|
-
`&&c--;let u=s+a.length;u<n.length&&n[u]===`
|
|
7
|
-
`&&u++,n=n.slice(0,c)+n.slice(u),o=!0}o&&await yt(e,n,"utf-8")}function Et(e,t){let n=e.filter(r=>r.provider!==t);if(n.length===0)return null;let o=n.find(r=>!r.isSymlink);return o?{path:o.originalPath,provider:o.provider}:{path:n[0].originalPath,provider:n[0].provider}}function In(e,t,n){if(!e.directories.some(c=>!c.isSymlink))return null;let r=t.filter(c=>c.provider!==n);if(r.length===0)return null;let i=Et(t,n);if(!i)return null;let a=e.directories.find(c=>!c.isSymlink),l=r.map(c=>c.originalPath).filter(c=>c!==i.path),s=r.find(c=>c.originalPath===i.path);return s&&!s.isSymlink?l.length===0?null:{needed:!0,fromProvider:n,fromPath:a?.path||"",toProvider:i.provider,toPath:i.path,repointPaths:l,repointOnly:!0}:{needed:!0,fromProvider:n,fromPath:a?.path||"",toProvider:i.provider,toPath:i.path,repointPaths:l}}async function Nt(e){let t=[],n=new Set;for(let o of e){let r=_(o);if(!n.has(r)){n.add(r);try{(await xt(r)).filter(l=>l!==".DS_Store").length===0&&(await T(r,{recursive:!0,force:!0}),t.push(r))}catch{}}}return t}async function Cn(e,t,n){let o=[];if(n?.needed){if(!n.repointOnly)try{let a=_(n.toPath);await Ne(a,{recursive:!0});try{await Te(n.toPath)}catch(l){(!(l instanceof Error)||!("code"in l)||l.code!=="ENOENT")&&await T(n.toPath,{recursive:!0,force:!0})}try{await wt(n.fromPath,n.toPath)}catch(l){if(l instanceof Error&&"code"in l&&l.code==="EXDEV"){let{cp:s}=await import("fs/promises");try{await s(n.fromPath,n.toPath,{recursive:!0,preserveTimestamps:!0})}catch(c){try{await T(n.toPath,{recursive:!0,force:!0})}catch(d){let u=d instanceof Error?d.message:String(d);o.push(`Failed to clean up partial copy at ${n.toPath}: ${u}`)}throw c}await T(n.fromPath,{recursive:!0,force:!0})}else throw l}o.push(`Relocated real folder: ${n.fromPath} -> ${n.toPath}`)}catch(a){let l=a instanceof Error?a.message:String(a);o.push(`Failed to relocate real folder: ${l}`);let s=new Error(`Failed to relocate real folder: ${l}`);throw s.log=o,s}for(let a of n.repointPaths||[]){let l=_(a),s=Le(l,n.toPath);try{try{await Te(a)}catch(c){(!(c instanceof Error)||!("code"in c)||c.code!=="ENOENT")&&await T(a,{recursive:!0,force:!0})}await Ne(l,{recursive:!0}),await ge(s,a),o.push(`Repointed symlink: ${a} -> ${s}`)}catch(c){let d=c instanceof Error?c.message:String(c);o.push(`Failed to repoint symlink ${a} -> ${s}: ${d}. To fix manually: ln -sfn ${n.toPath} ${a}`)}}}for(let a of e.directories)try{if(n?.needed&&!n.repointOnly&&P(a.path)===P(n.fromPath))continue;if(t&&P(a.path)===P(t)){o.push(`Skipped same-path removal: ${a.path}`);continue}if(a.isSymlink?(await T(a.path),o.push(`Removed symlink: ${a.path}`)):(await T(a.path,{recursive:!0,force:!0}),o.push(`Removed directory: ${a.path}`)),!n?.needed&&t&&P(a.path)!==P(t)){let l=_(a.path),s=Le(l,t);await ge(s,a.path),o.push(`Created symlink: ${a.path} -> ${s}`)}}catch(l){let s=l instanceof Error?l.message:String(l);o.push(`Failed to remove ${a.path}: ${s}`)}let r=e.directories.map(a=>a.path),i=await Nt(r);for(let a of i)o.push(`Removed empty parent directory: ${a}`);for(let a of e.ruleFiles)if(await q(a))try{await T(a),o.push(`Removed rule file: ${a}`)}catch(l){let s=l instanceof Error?l.message:String(l);o.push(`Failed to remove ${a}: ${s}`)}for(let a of e.agentsBlocks)try{await Ct(a.file,a.skillName),o.push(`Cleaned AGENTS.md block in: ${a.file}`)}catch(l){let s=l instanceof Error?l.message:String(l);o.push(`Failed to clean AGENTS.md block: ${s}`)}return o}async function En(e){let t=[];for(let n of e.directories)if(await q(n.path)){let r=(await kt(n.path)).isSymbolicLink()?"symlink":"directory";t.push(`${n.path} (${r})`)}for(let n of e.ruleFiles)await q(n)&&t.push(n);for(let n of e.agentsBlocks)if(await q(n.file)){let o=await Me(n.file,"utf-8");(o.includes(`<!-- agent-skill-manager: ${n.skillName} -->`)||o.includes(`<!-- skill-manager: ${n.skillName} -->`)||o.includes(`<!-- pskills: ${n.skillName} -->`))&&t.push(`${n.file} (AGENTS.md block)`)}return t}var v=()=>!(process.env.NO_COLOR!==void 0||globalThis.__CLI_NO_COLOR||!process.stdout.isTTY),p={bold:e=>v()?`\x1B[1m${e}\x1B[0m`:e,cyan:e=>v()?`\x1B[36m${e}\x1B[0m`:e,green:e=>v()?`\x1B[32m${e}\x1B[0m`:e,yellow:e=>v()?`\x1B[33m${e}\x1B[0m`:e,dim:e=>v()?`\x1B[2m${e}\x1B[0m`:e,white:e=>v()?`\x1B[37m${e}\x1B[0m`:e,red:e=>v()?`\x1B[31m${e}\x1B[0m`:e,blue:e=>v()?`\x1B[34m${e}\x1B[0m`:e,blueBold:e=>v()?`\x1B[34;1m${e}\x1B[0m`:e,magenta:e=>v()?`\x1B[35m${e}\x1B[0m`:e,bgDim:e=>v()?`\x1B[48;5;236m${e}\x1B[0m`:e,bgRed:e=>v()?`\x1B[41m\x1B[37m\x1B[1m${e}\x1B[0m`:e,bgYellow:e=>v()?`\x1B[43m\x1B[30m\x1B[1m${e}\x1B[0m`:e,bgGreen:e=>v()?`\x1B[42m\x1B[30m\x1B[1m${e}\x1B[0m`:e,bgCyan:e=>v()?`\x1B[46m\x1B[30m\x1B[1m${e}\x1B[0m`:e};function j(e){if(!e)return"";switch(e.toLowerCase()){case"low":return p.green(e);case"medium":return p.yellow(e);case"high":return p.red(e);case"max":return p.magenta(e);default:return e}}var Fe={claude:p.blueBold,codex:p.cyan,"codex-plugin":p.cyan,openclaw:p.yellow,agents:p.green,custom:p.magenta,cursor:p.blue,windsurf:p.cyan,cline:p.green,roocode:p.magenta,continue:p.yellow,copilot:p.white,aider:p.red,opencode:p.cyan,zed:p.blue,augment:p.green,amp:p.yellow};function W(e,t){return(Fe[e]||p.dim)(t)}function K(e,t){return v()?(Fe[e]||p.dim)(`[${t}]`):`[${t}]`}function L(e){let t=process.env.HOME||process.env.USERPROFILE||"";return t&&e.startsWith(t)?"~"+e.slice(t.length):e}function Tt(e){if(e.length===0)return"No skills found.";let t=["Name","Version","Creator","Effort","Invoke","Tool","Scope","Type","Path"],n=e.map(s=>[s.disabled?`${s.name} [disabled]`:s.name,s.version,s.creator||"\u2014",s.effort||"\u2014",O(s.modelInvocable,s.userInvocable),s.providerLabel,s.scope,s.isSymlink?"symlink":"directory",L(s.path)]),o=t.map((s,c)=>Math.max(s.length,...n.map(d=>d[c].length))),r=(s,c)=>s.padEnd(c),i=t.map((s,c)=>r(s,o[c])).join(" "),a=o.map(s=>"-".repeat(s)).join("--"),l=n.map((s,c)=>{let d=s.map((u,h)=>r(u,o[h])).join(" ");return e[c].disabled?p.dim(d):d});return[v()?p.bold(i):i,a,...l].join(`
|
|
8
|
-
`)}function z(e){let t=new Map;for(let o of e){let r=`${o.dirName}||${o.scope}||${o.disabled?"off":"on"}`,i=t.get(r)??[];i.push(o),t.set(r,i)}let n=[];for(let[,o]of t){let r=o[0],i=new Set(o.map(l=>l.scope)),a=new Set(o.map(l=>l.isSymlink?"symlink":"directory"));n.push({name:r.name,version:r.version,creator:r.creator||"",effort:r.effort||"",invoke:O(r.modelInvocable,r.userInvocable),tokens:typeof r.tokenCount=="number"?H(r.tokenCount):"",providers:o.map(l=>({provider:l.provider,label:l.providerLabel})),scope:i.size>1?"mixed":r.scope,type:a.size>1?"mixed":r.isSymlink?"symlink":"directory",path:L(r.path),warningCount:o.reduce((l,s)=>l+(s.warnings?.length??0),0),disabled:o.every(l=>l.disabled===!0)})}return n}function he(e){return e.disabled?`${e.name} [disabled]`:e.name}var Lt=50;function Mt(e,t={}){let n=t.topN??5,o=t.showHint??!0;if(e.length===0)return"No skills found.";let r=[],a=z(e).length,l=e.length,s=new Set(e.map(g=>g.provider)),c=e.filter(g=>g.scope==="global").length,d=e.filter(g=>g.scope==="project").length,u=`${l} skills (${a} unique) across ${s.size} tools | ${c} global, ${d} project`;r.push(v()?p.bold(u):u),r.push("");let h=new Map;for(let g of e){let b=h.get(g.provider)??{label:g.providerLabel,count:0};b.count+=1,h.set(g.provider,b)}let f=[...h.entries()].sort((g,b)=>b[1].count-g[1].count).slice(0,n);r.push(v()?p.bold("Top tools:"):"Top tools:");for(let[g,{label:b,count:y}]of f){let w=v()?W(g,`[${b}]`):`[${b}]`;r.push(` ${w} ${y} skill${y===1?"":"s"}`)}r.push(""),r.push(v()?p.bold("Scopes:"):"Scopes:"),r.push(` global ${c} skill${c===1?"":"s"}`),r.push(` project ${d} skill${d===1?"":"s"}`);let m=new Map;for(let g of e)g.effort&&m.set(g.effort,(m.get(g.effort)??0)+1);if(m.size>0){let g=[...m.entries()].sort((b,y)=>y[1]-b[1]).slice(0,n);r.push(""),r.push(v()?p.bold("Top efforts:"):"Top efforts:");for(let[b,y]of g){let w=j(b),I=Math.max(0,6-b.length);r.push(` ${w}${" ".repeat(I)} ${y} skill${y===1?"":"s"}`)}}if(o){r.push("");let g="Tip: refine with `asm list -p <tool>`, `asm search <query>`, or `asm list --compact`";r.push(v()?p.dim(g):g)}return r.join(`
|
|
9
|
-
`)}function Ae(e){if(e.length===0)return"No skills found.";let t=z(e),n=[],o=Math.max(4,...t.map(f=>he(f).length)),r=Math.max(7,...t.map(f=>f.version.length)),i=t.map(f=>f.providers.map(m=>K(m.provider,m.label)).join(" ")),a=t.map(f=>f.providers.map(m=>`[${m.label}]`).join(" ")),l=Math.max(5,...a.map(f=>f.length)),s=7,c=(f,m)=>f.padEnd(m);for(let f=0;f<t.length;f++){let m=t[f],g=c(he(m),o),b=p.dim(c(m.version,r)),y=l-a[f].length,w=i[f]+" ".repeat(Math.max(0,y)),I=p.dim(c(m.scope,s)),C=c(m.invoke,5),E=`${g} ${b} ${C} ${w} ${I}`;n.push(m.disabled?p.dim(E):E)}n.push("");let d=e.length,u=t.length,h=`${d} skills (${u} unique)`;return n.push(p.dim(h)),n.join(`
|
|
10
|
-
`)}function Rt(e,t){if(e.length===0)return"No skills found.";let n=new Map,o=c=>{switch(t){case"tool":return[c.providerLabel];case"scope":return[c.scope];case"effort":return[c.effort&&c.effort.length>0?c.effort:"(unset)"]}};for(let c of e)for(let d of o(c)){let u=n.get(d)??[];u.push(c),n.set(d,u)}let r=[...n.entries()].sort((c,d)=>d[1].length!==c[1].length?d[1].length-c[1].length:c[0].localeCompare(d[0])),i=[];for(let[c,d]of r){let u=`${c} (${d.length})`;i.push(v()?p.bold(u):u);let m=Ae(d).split(`
|
|
11
|
-
`).slice(0,-2).filter(g=>g.length>0).map(g=>` ${g}`);i.push(...m),i.push("")}let a=e.length,l=z(e).length,s=`${a} skills (${l} unique), grouped by ${t}`;return i.push(p.dim(s)),i.join(`
|
|
12
|
-
`)}function Ft(e,t){if(!Number.isFinite(t)||t<=0||e.length<=t)return{skills:e,hint:""};let n=e.slice(0,t),o=e.length-t,r=p.dim(`... ${o} more not shown. Re-run with --limit ${e.length} (or 0) to see all, or refine with -p <tool>.`);return{skills:n,hint:r}}function At(e){if(e.length===0)return"No skills found.";let t=z(e),n=[],o=Math.max(4,...t.map($=>$.name.length)),r=Math.max(7,...t.map($=>$.version.length)),i=Math.max(7,...t.map($=>Math.min(($.creator||"\u2014").length,15))),a=Math.max(6,...t.map($=>($.effort||"\u2014").length)),l=Math.max(6,...t.map($=>$.invoke.length)),s=t.some($=>$.tokens.length>0),c=s?Math.max(6,...t.map($=>($.tokens||"\u2014").length)):0,d=7,u=9,h=t.map($=>$.providers.map(S=>K(S.provider,S.label)).join(" ")),f=t.map($=>$.providers.map(S=>`[${S.label}]`).join(" ")),m=Math.max(9,...f.map($=>$.length)),g=($,S)=>$.padEnd(S),b=s?` ${g("Tokens",c)}`:"",y=`${g("Name",o)} ${g("Version",r)} ${g("Creator",i)} ${g("Effort",a)} ${g("Invoke",l)}${b} ${g("Tools",m)} ${g("Scope",d)} ${g("Type",u)}`;n.push(v()?p.bold(y):y);let w=s?` ${"-".repeat(c)}`:"";n.push(`${"-".repeat(o)} ${"-".repeat(r)} ${"-".repeat(i)} ${"-".repeat(a)} ${"-".repeat(l)}${w} ${"-".repeat(m)} ${"-".repeat(d)} ${"-".repeat(u)}`);for(let $=0;$<t.length;$++){let S=t[$],ee=g(he(S),o),te=g(S.version,r),ne=(S.creator||"\u2014").slice(0,15),oe=g(ne,i),re=S.effort||"\u2014",ie=S.effort?j(S.effort):"\u2014",Ge=a-re.length,Be=ie+" ".repeat(Math.max(0,Ge)),Ve=s?` ${g(S.tokens||"\u2014",c)}`:"",He=m-f[$].length,qe=h[$]+" ".repeat(Math.max(0,He)),Ke=g(S.scope,d),ze=g(S.type,u),Ue=S.warningCount>0?` ${p.yellow(`(${S.warningCount} warning${S.warningCount>1?"s":""})`)}`:"",Je=g(S.invoke,l),ye=`${ee} ${te} ${oe} ${Be} ${Je}${Ve} ${qe} ${Ke} ${ze}${Ue}`;n.push(S.disabled?p.dim(ye):ye)}let I=t.length,C=e.length,E=new Set(e.map($=>$.provider)),G=e.filter($=>$.scope==="global").length,B=e.filter($=>$.scope==="project").length;n.push("");let V=`${C} skills (${I} unique) across ${E.size} tools | ${G} global, ${B} project`;return n.push(p.dim(V)),n.join(`
|
|
13
|
-
`)}function jt(e,t){if(!v()||!t)return e;let n=e.toLowerCase().indexOf(t.toLowerCase());if(n===-1)return e;let o=e.slice(0,n),r=e.slice(n,n+t.length),i=e.slice(n+t.length);return`${o}${p.bold(p.yellow(r))}${i}`}function Ot(e,t){if(e.length===0)return`No skills matching "${t}". Try ${p.bold("asm list")} to see all skills.`;let n=z(e),o=[];o.push(p.dim(`Found ${e.length} result${e.length===1?"":"s"} (${n.length} unique) matching "${t}"`)+`
|
|
14
|
-
`);let r=Math.max(4,...n.map(b=>b.name.length)),i=Math.max(7,...n.map(b=>b.version.length)),a=Math.max(7,...n.map(b=>Math.min((b.creator||"\u2014").length,15))),l=Math.max(6,...n.map(b=>(b.effort||"\u2014").length)),s=n.map(b=>b.providers.map(y=>K(y.provider,y.label)).join(" ")),c=n.map(b=>b.providers.map(y=>`[${y.label}]`).join(" ")),d=Math.max(9,...c.map(b=>b.length)),u=7,h=9,f=(b,y)=>b.padEnd(y),m=6,g=`${f("Name",r)} ${f("Version",i)} ${f("Creator",a)} ${f("Effort",l)} ${f("Invoke",m)} ${f("Tools",d)} ${f("Scope",u)} ${f("Type",h)}`;o.push(v()?p.bold(g):g),o.push(`${"-".repeat(r)} ${"-".repeat(i)} ${"-".repeat(a)} ${"-".repeat(l)} ${"-".repeat(m)} ${"-".repeat(d)} ${"-".repeat(u)} ${"-".repeat(h)}`);for(let b=0;b<n.length;b++){let y=n[b],w=jt(y.name,t),I=r-y.name.length,C=w+" ".repeat(Math.max(0,I)),E=f(y.version,i),G=(y.creator||"\u2014").slice(0,15),B=f(G,a),V=y.effort||"\u2014",$=y.effort?j(y.effort):"\u2014",S=l-V.length,ee=$+" ".repeat(Math.max(0,S)),te=d-c[b].length,ne=s[b]+" ".repeat(Math.max(0,te)),oe=f(y.scope,u),re=f(y.type,h),ie=f(y.invoke,m);o.push(`${C} ${E} ${B} ${ee} ${ie} ${ne} ${oe} ${re}`)}return o.join(`
|
|
15
|
-
`)}function Dt(e,t){if(e.length===0)return"";let n=[];n.push(p.dim(`Found ${e.length} available skill${e.length===1?"":"s"} matching "${t}"`)+`
|
|
16
|
-
`);for(let o of e){n.push(` ${p.dim("To install:")} ${p.green(`asm install ${o.installUrl}`)}`);let r=o.verified?p.blue(" [verified]"):"",i=o.invocability?p.dim(` [${o.invocability}]`):"";n.push(` ${p.cyan(o.name)} ${p.dim(`v${o.version}`)}${r}${i} ${p.dim(`[${o.repoLabel}]`)}`);for(let a of Z(o.description,76))n.push(` ${a}`);n.push("")}return n.join(`
|
|
17
|
-
`)}var ve=new Set(["Bash","Write","Edit","NotebookEdit"]),je=new Set(["WebFetch","WebSearch"]);function Oe(e){return ve.has(e)?p.red(e):je.has(e)?p.yellow(e):p.green(e)}function Q(e){return e.length===0?"":e.map(Oe).join(" ")}function be(e){let t=e.filter(o=>ve.has(o));if(t.length===0)return null;let n=[];return t.includes("Bash")&&n.push("execute shell commands"),(t.includes("Write")||t.includes("Edit")||t.includes("NotebookEdit"))&&n.push("modify files"),`This skill can ${n.join(" and ")}`}function Z(e,t){let n=e.split(/\s+/),o=[],r="";for(let i of n)r.length+i.length+1>t&&r.length>0?(o.push(r),r=i):r=r?r+" "+i:i;return r&&o.push(r),o}function _t(e){return JSON.stringify(e,null,2)}async function De(e){let t=[],n=(i,a)=>`${v()?p.bold(i+":"):i+":"} ${a}`;t.push(n("Name",e.name)),t.push(n("Version",e.version)),t.push(n("Creator",e.creator||"\u2014")),t.push(n("License",e.license||"\u2014")),e.compatibility&&t.push(n("Compatibility",e.compatibility)),e.effort&&t.push(n("Effort",j(e.effort))),t.push(n("Invocable",O(e.modelInvocable,e.userInvocable))),t.push(n("Tool",e.providerLabel)),t.push(n("Scope",e.scope)),t.push(n("Location",e.location)),t.push(n("Path",L(e.path))),t.push(n("Type",e.isSymlink?"symlink":"directory")),e.isSymlink&&e.symlinkTarget&&t.push(n("Symlink Target",e.symlinkTarget));let o=e.fileCount??await me(e.path);if(t.push(n("File Count",String(o))),typeof e.tokenCount=="number"&&t.push(n("Est. Tokens",H(e.tokenCount))),e.description&&(t.push(""),t.push(n("Description",e.description))),e.allowedTools&&e.allowedTools.length>0){t.push(""),t.push(v()?p.bold("Allowed Tools:"):"Allowed Tools:"),t.push(` ${Q(e.allowedTools)}`);let i=be(e.allowedTools);i&&t.push(` ${v()?p.yellow("\u26A0"):"!"} ${i}`)}t.push(""),t.push(v()?p.bold("Eval Score:"):"Eval Score:");let r=_e(e);if(r.length>0){let i=r.length>1;for(let a of r){let l=$e(a.overallScore),s=a.providerId?`${a.providerId}@${a.providerVersion??"?"}`:"quality";i?t.push(` ${s}: ${l} / 100 (${a.grade})`):t.push(` Overall: ${l} / 100 (${a.grade})`);let c=a.evaluatedVersion?` \u2014 version ${a.evaluatedVersion}`:"";if(t.push(` ${v()?p.dim("Evaluated:"):"Evaluated:"} ${a.evaluatedAt}${c}`),a.categories.length>0){i?t.push(v()?p.dim(` Categories (${s}):`):` Categories (${s}):`):t.push(v()?p.dim(" Categories:"):" Categories:");for(let d of a.categories)t.push(` ${d.name.padEnd(28)} ${d.score}/${d.max}`)}}}else t.push(v()?p.dim(" Not available \u2014 run `asm eval "+e.path+"` to generate one."):" Not available \u2014 run `asm eval "+e.path+"` to generate one.");if(e.warnings&&e.warnings.length>0){t.push(""),t.push(v()?p.bold("Warnings:"):"Warnings:");for(let i of e.warnings)t.push(` ${v()?p.yellow("!"):"!"} [${i.category}] ${i.message}`)}return t.join(`
|
|
18
|
-
`)}function $e(e){let t=String(e);return v()?e>=90?p.green(t):e>=80?p.cyan(t):e>=65?p.yellow(t):p.red(t):t}function _e(e){return e.evalSummaries&&Object.keys(e.evalSummaries).length>0?Object.values(e.evalSummaries).sort((n,o)=>{let r=n.providerId??"quality",i=o.providerId??"quality";return r==="quality"&&i!=="quality"?-1:i==="quality"&&r!=="quality"?1:r.localeCompare(i)}):e.evalSummary?[e.evalSummary]:[]}async function Wt(e){if(e.length===0)return"No skills found.";if(e.length===1)return De(e[0]);let t=[],n=(d,u)=>`${v()?p.bold(d+":"):d+":"} ${u}`,o=e[0],r=o.name;t.push(""),t.push(v()?p.blueBold(` ${r}`):` ${r}`),t.push(v()?p.dim(" "+"-".repeat(r.length+2)):" "+"-".repeat(r.length+2)),t.push(""),t.push(n(" Version",o.version)),t.push(n(" Creator",o.creator||"\u2014")),t.push(n(" License",o.license||"\u2014")),o.compatibility&&t.push(n(" Compatibility",o.compatibility)),o.effort&&t.push(n(" Effort",j(o.effort))),t.push(n(" Invocable",O(o.modelInvocable,o.userInvocable)));let i=o.fileCount??await me(o.path);t.push(n(" File Count",String(i))),typeof o.tokenCount=="number"&&t.push(n(" Est. Tokens",H(o.tokenCount)));let a=e.map(d=>K(d.provider,d.providerLabel)).join(" ");t.push(n(" Installed in",a)),t.push(""),t.push(v()?p.bold(" Eval Score:"):" Eval Score:");let l=_e(o);if(l.length>0){let d=l.length>1;for(let u of l){let h=$e(u.overallScore),f=u.providerId?`${u.providerId}@${u.providerVersion??"?"}`:"quality";d?t.push(` ${f}: ${h} / 100 (${u.grade})`):t.push(` Overall: ${h} / 100 (${u.grade})`);let m=u.evaluatedVersion?` \u2014 version ${u.evaluatedVersion}`:"";if(t.push(` ${v()?p.dim("Evaluated:"):"Evaluated:"} ${u.evaluatedAt}${m}`),u.categories.length>0)for(let g of u.categories)t.push(` ${g.name.padEnd(28)} ${g.score}/${g.max}`)}}else t.push(v()?p.dim(` Not available \u2014 run \`asm eval ${o.path}\` to generate one.`):` Not available \u2014 run \`asm eval ${o.path}\` to generate one.`);if(o.description){t.push(""),t.push(v()?p.bold(" Description:"):" Description:");let d=Z(o.description,72);for(let u of d)t.push(" "+u)}if(o.allowedTools&&o.allowedTools.length>0){t.push(""),t.push(v()?p.bold(" Allowed Tools:"):" Allowed Tools:"),t.push(` ${Q(o.allowedTools)}`);let d=be(o.allowedTools);d&&t.push(` ${v()?p.yellow("\u26A0"):"!"} ${d}`)}t.push("");let s=` Installations (${e.length})`;t.push(v()?p.bold(s):s);for(let d=0;d<e.length;d++){let u=e[d],h=W(u.provider,u.providerLabel),f=u.isSymlink?"symlink":"directory",m=p.dim(u.scope);t.push(` ${h} (${m}, ${f})`),t.push(` ${p.dim("Path:")} ${L(u.path)}`),u.isSymlink&&u.symlinkTarget&&t.push(` ${p.dim("Target:")} ${u.symlinkTarget}`)}let c=e.flatMap(d=>!d.warnings||d.warnings.length===0?[]:d.warnings.map(u=>({...u,provider:d.providerLabel})));if(c.length>0){t.push("");let d=` Warnings (${c.length})`;t.push(v()?p.bold(d):d);for(let u of c){let h=v()?p.yellow("!"):"!";t.push(` ${h} [${u.category}] ${u.message}`)}}return t.push(""),t.join(`
|
|
19
|
-
`)}function Bn(e){let t=[],n=new Set,o=new Map,r=[];for(let s of e){let c=o.get(s.realPath);if(c){if(s.isSymlink)continue;(c.isSymlink||s.scope==="global"&&c.scope!=="global")&&(r[r.indexOf(c)]=s,o.set(s.realPath,s))}else o.set(s.realPath,s),r.push(s)}let i=new Map;for(let s of r){let c=i.get(s.dirName)??[];c.push(s),i.set(s.dirName,c)}for(let[s,c]of i)if(new Set(c.map(u=>u.location)).size>=2){t.push({key:s,reason:"same-dirName",instances:c});for(let u of c)n.add(u.path)}let a=new Map;for(let s of r){if(!s.name)continue;let c=a.get(s.name)??[];c.push(s),a.set(s.name,c)}for(let[s,c]of a){if(new Set(c.map(f=>f.dirName)).size<2)continue;let u=c.filter(f=>!n.has(f.path));u.length<2||new Set(u.map(f=>f.dirName)).size<2||t.push({key:s,reason:"same-frontmatterName",instances:u})}t.sort((s,c)=>s.reason!==c.reason?s.reason==="same-dirName"?-1:1:s.key.localeCompare(c.key));let l=t.reduce((s,c)=>s+c.instances.length,0);return{scannedAt:new Date().toISOString(),totalSkills:e.length,duplicateGroups:t,totalDuplicateInstances:l}}function Gt(e){return[...e].sort((t,n)=>{if(t.scope!==n.scope)return t.scope==="global"?-1:1;let o=t.providerLabel.localeCompare(n.providerLabel);return o!==0?o:t.path.localeCompare(n.path)})}function Bt(e){return e==="same-dirName"?"same dirName":"same name"}function Vn(e){if(e.duplicateGroups.length===0)return p.green("No duplicate skills found.");let t=[];t.push(""),t.push(p.bold(` Found ${e.duplicateGroups.length} duplicate group(s) (${e.totalDuplicateInstances} total instances):`)),t.push("");for(let n of e.duplicateGroups){t.push(` ${p.yellow(`"${n.key}"`)} ${p.dim(`(${Bt(n.reason)})`)}`);let o=Gt(n.instances);for(let r=0;r<o.length;r++){let i=o[r],a=W(i.provider,i.providerLabel),l=r===0?p.green(" [keep]"):p.dim(" "),s=p.dim(`(${i.scope})`);t.push(` ${l} ${a} ${s} ${p.dim(L(i.path))}`)}t.push("")}return t.push(p.dim(` Run ${p.bold("asm audit -y")} to auto-remove duplicates`)),t.push(""),t.join(`
|
|
20
|
-
`)}function Hn(e){return JSON.stringify(e,null,2)}function Kn(e){let t=e.trim();if(!t)return["vi",[]];let n=[],o="",r=!1,i=0;for(;i<t.length;){let a=t[i];if(a==='"'){for(r=!0,i++;i<t.length&&t[i]!=='"';){if(t[i]==="\\"&&i+1<t.length){let l=t[i+1];if(l==='"'||l==="\\"){o+=l,i+=2;continue}}o+=t[i],i++}i++}else if(a==="'"){for(r=!0,i++;i<t.length&&t[i]!=="'";)o+=t[i],i++;i++}else a===" "||a===" "?((o.length>0||r)&&(n.push(o),o="",r=!1),i++):(o+=a,i++)}return(o.length>0||r)&&n.push(o),n.length===0?["vi",[]]:[n[0],n.slice(1)]}import{readFileSync as Vt}from"fs";import{resolve as Ht,dirname as qt}from"path";import{fileURLToPath as Kt}from"url";import{spawnSync as zt}from"child_process";var Ut=qt(Kt(import.meta.url)),We="2.15.0";try{let e=Vt(Ht(Ut,"../../package.json"),"utf-8");We=JSON.parse(e).version}catch{}var M,Jt=We;function Yt(){if(M!==void 0)return M;let e="844bc99";if(e!==void 0)return M=e,M;M="unknown";try{M=zt("git",["rev-parse","--short","HEAD"],{encoding:"utf-8",stdio:["pipe","pipe","ignore"],timeout:5e3}).stdout?.trim()||M}catch{}return M}function Qn(){return`v${Jt} (${Yt()})`}export{U as a,H as b,Zt as c,en as d,se as e,ae as f,le as g,ce as h,ue as i,O as j,Xt as k,p as l,j as m,W as n,L as o,Tt as p,Lt as q,Mt as r,Ae as s,Rt as t,Ft as u,At as v,Ot as w,Dt as x,ve as y,je as z,Z as A,_t as B,me as C,pn as D,fn as E,dn as F,Wt as G,Jt as H,Qn as I,ge as J,vn as K,bt as L,$t as M,bn as N,It as O,Pn as P,In as Q,Cn as R,En as S,Bn as T,Gt as U,Bt as V,Vn as W,Hn as X,Kn as Y};
|
package/dist/chunk-LS24FFOX.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
|
|
2
|
-
import{readFile as k,writeFile as w,mkdir as S,copyFile as y}from"fs/promises";import{join as t,resolve as p,dirname as A}from"path";import{fileURLToPath as I}from"url";import{homedir as x}from"os";var b=!1,m=0;function N(e){b=e,e&&(m=performance.now())}function s(e){if(!b)return;let r=Math.round(performance.now()-m),n=globalThis.__CLI_NO_COLOR?`[verbose] +${r}ms`:`\x1B[2m[verbose] +${r}ms\x1B[0m`;console.error(`${n} ${e}`)}var _=I(import.meta.url),v=A(_);function i(){let e=process.env.ASM_CONFIG_DIR;return e||t(x(),".config","agent-skill-manager")}var R=[{name:"claude",label:"Claude Code",global:"~/.claude/skills",project:".claude/skills",enabled:!0},{name:"codex",label:"Codex",global:"~/.codex/skills",project:".codex/skills",enabled:!0},{name:"opencode",label:"OpenCode",global:"~/.config/opencode/skills",project:".opencode/skills",enabled:!0},{name:"pi",label:"Pi",global:"~/.pi/skills",project:".pi/skills",enabled:!0},{name:"hermes",label:"Hermes",global:"~/.hermes/skills",project:".hermes/skills",enabled:!0},{name:"openclaw",label:"OpenClaw",global:"~/.openclaw/skills",project:".openclaw/skills",enabled:!0},{name:"agents",label:"Agents",global:"~/.agents/skills",project:".agents/skills",enabled:!0},{name:"cursor",label:"Cursor",global:"~/.cursor/rules",project:".cursor/rules",enabled:!0},{name:"copilot",label:"GitHub Copilot",global:"~/.github/instructions",project:".github/instructions",enabled:!0},{name:"windsurf",label:"Windsurf",global:"~/.windsurf/rules",project:".windsurf/rules",enabled:!0},{name:"antigravity",label:"Google Antigravity",global:"~/.antigravity/skills",project:".antigravity/skills",enabled:!0},{name:"gemini",label:"Gemini CLI",global:"~/.gemini/skills",project:".gemini/skills",enabled:!0},{name:"cline",label:"Cline",global:"~/Documents/Cline/Rules",project:".clinerules",enabled:!0},{name:"roocode",label:"Roo Code",global:"~/.roo/rules",project:".roo/rules",enabled:!0},{name:"continue",label:"Continue",global:"~/.continue/rules",project:".continue/rules",enabled:!0},{name:"aider",label:"Aider",global:"~/.aider/skills",project:".aider/skills",enabled:!0},{name:"zed",label:"Zed",global:"~/.config/zed/prompt_overrides",project:".zed/rules",enabled:!0},{name:"augment",label:"Augment",global:"~/.augment/rules",project:".augment/rules",enabled:!0},{name:"amp",label:"Amp",global:"~/.amp/skills",project:".amp/skills",enabled:!0}];function u(){return{version:1,providers:R.map(e=>({...e})),customPaths:[],preferences:{defaultScope:"both",defaultSort:"name"}}}function h(){return t(i(),"config.json")}function z(){return t(i(),".skill-lock.json")}function J(){return t(i(),"skill-state.json")}function U(){return t(i(),"skill-index")}function C(){return t(i(),"library")}function V(){return t(C(),"skills")}function B(){return t(C(),"library-lock.json")}function H(){return p(v,"..","data","skill-index")}function D(){return p(v,"..","data","skill-index-resources.json")}async function M(){let e=D(),r=await k(e,"utf-8");return JSON.parse(r)}function Z(e){return e.startsWith("~/")?t(x(),e.slice(2)):e.startsWith("/")?e:p(e)}function O(e){let r=u(),o=e.providers||[],n=new Set(o.map(l=>l.name));for(let l=0;l<r.providers.length;l++){let a=r.providers[l];if(n.has(a.name))continue;let g=o.length;for(let c=l-1;c>=0;c--){let j=r.providers[c].name,f=o.findIndex(P=>P.name===j);if(f!==-1){g=f+1;break}}o.splice(g,0,{...a}),n.add(a.name)}return{version:e.version??r.version,providers:o,customPaths:e.customPaths??[],preferences:{defaultScope:e.preferences?.defaultScope??r.preferences.defaultScope,defaultSort:e.preferences?.defaultSort??r.preferences.defaultSort,selectedTools:e.preferences?.selectedTools}}}async function L(){let e=h();s(`config: checking ${e}`);let r;try{r=await k(e,"utf-8")}catch(o){if(o?.code==="ENOENT"){s("config: using defaults (file not found)");let n=u();return await d(n),n}throw o}try{let o=JSON.parse(r);return s(`config: loaded from ${e}`),O(o)}catch{let o=e+".bak";s(`config: parse error, backing up to ${o}`),await y(e,o),console.error(`Warning: Config file was corrupted. Backup saved to ${o}. Using defaults.`);let n=u();return await d(n),n}}async function d(e){let r=h();await S(i(),{recursive:!0}),await w(r,JSON.stringify(e,null,2)+`
|
|
3
|
-
`,"utf-8")}async function q(e){let r=await L();r.preferences.selectedTools=e,await d(r)}export{N as a,s as b,i as c,u as d,h as e,z as f,J as g,U as h,C as i,V as j,B as k,H as l,D as m,M as n,Z as o,L as p,d as q,q as r};
|
package/dist/config-AZYQEQOQ.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
|
|
2
|
-
import{c as a,d as b,e as c,f as d,g as e,h as f,i as g,j as h,k as i,l as j,m as k,n as l,o as m,p as n,q as o,r as p}from"./chunk-LS24FFOX.js";import"./chunk-RSVWCEZR.js";export{j as getBundledIndexDir,a as getConfigDir,c as getConfigPath,b as getDefaultConfig,f as getIndexDir,g as getLibraryDir,i as getLibraryLockPath,h as getLibrarySkillsDir,d as getLockPath,k as getSkillIndexResourcesPath,e as getSkillStatePath,n as loadConfig,l as loadSkillIndexResources,m as resolveProviderPath,o as saveConfig,p as saveSelectedTools};
|