agent-skill-manager 2.7.0 → 2.8.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.
Files changed (44) hide show
  1. package/README.md +34 -0
  2. package/data/skill-index/Affitor_affiliate-skills.json +1764 -160
  3. package/data/skill-index/Eronred_aso-skills.json +1365 -121
  4. package/data/skill-index/GPTomics_bioSkills.json +22236 -10797
  5. package/data/skill-index/Galaxy-Dawn_claude-scholar.json +2346 -232
  6. package/data/skill-index/Imbad0202_academic-research-skills.json +314 -42
  7. package/data/skill-index/K-Dense-AI_claude-scientific-skills.json +3634 -447
  8. package/data/skill-index/Leonxlnx_taste-skill.json +429 -37
  9. package/data/skill-index/Master-cai_Research-Paper-Writing-Skills.json +6 -5
  10. package/data/skill-index/MiniMax-AI_skills.json +804 -70
  11. package/data/skill-index/Paramchoudhary_ResumeSkills.json +465 -61
  12. package/data/skill-index/affaan-m_everything-claude-code.json +13583 -3818
  13. package/data/skill-index/alirezarezvani_claude-skills.json +22302 -6760
  14. package/data/skill-index/anthropics_skills.json +531 -55
  15. package/data/skill-index/antonbabenko_terraform-skill.json +12 -11
  16. package/data/skill-index/bytedance_deer-flow.json +676 -68
  17. package/data/skill-index/coreyhaines31_marketingskills.json +2005 -760
  18. package/data/skill-index/entireio_skills.json +151 -23
  19. package/data/skill-index/github_awesome-copilot.json +7409 -3541
  20. package/data/skill-index/google_skills.json +1000 -149
  21. package/data/skill-index/heygen-com_hyperframes.json +743 -41
  22. package/data/skill-index/himself65_finance-skills.json +1169 -94
  23. package/data/skill-index/kemiljk_fluid-design.json +6 -5
  24. package/data/skill-index/kepano_obsidian-skills.json +126 -16
  25. package/data/skill-index/luongnv89_skills.json +1210 -94
  26. package/data/skill-index/mattpocock_skills.json +838 -105
  27. package/data/skill-index/nextlevelbuilder_ui-ux-pro-max-skill.json +414 -22
  28. package/data/skill-index/obra_superpowers.json +375 -43
  29. package/data/skill-index/romainsimon_paperasse.json +377 -21
  30. package/data/skill-index/sickn33_antigravity-awesome-skills.json +11342 -5578
  31. package/data/skill-index/slavingia_skills.json +387 -31
  32. package/data/skill-index/warpdotdev_oz-skills.json +474 -46
  33. package/dist/agent-skill-manager.js +213 -211
  34. package/dist/chunk-54DE5T53.js +19 -0
  35. package/dist/chunk-6PA2GSCN.js +3 -0
  36. package/dist/chunk-NGQYBLQE.js +3 -0
  37. package/dist/{config-55HAAFSH.js → config-7PXPKO4K.js} +1 -1
  38. package/dist/lock-MDX7A2DF.js +2 -0
  39. package/dist/{src-VA7JX53D.js → src-S3FQI2MC.js} +1 -1
  40. package/package.json +4 -2
  41. package/dist/chunk-GOI5LV72.js +0 -3
  42. package/dist/chunk-HG3RG5GM.js +0 -19
  43. package/dist/chunk-PVEAYTE2.js +0 -3
  44. package/dist/lock-SOHBB4N3.js +0 -2
@@ -0,0 +1,19 @@
1
+ import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
2
+ import{b as w,j as T}from"./chunk-6PA2GSCN.js";import{readdir as L,stat as E,lstat as ie,readlink as Ee,readFile as B,realpath as te}from"fs/promises";import{join as x,resolve as ne,basename as Me}from"path";import{homedir as V}from"os";function Y(e){let t={},n=e.split(`
3
+ `),o=!1,r=!1,i=null,s=[],c="none",a=-1,l=null;function f(){if(i){let p=s.join(" ").trim();p&&(t[i]=p),i=null,s=[],c="none",a=-1}}for(let p of n){if(p.trim()==="---")if(r){f();break}else{r=!0,o=!0;continue}if(!o)continue;if(c!=="none"&&i){let m=p.replace(/^\s*/,""),d=p.length-m.length;if(d>0&&m.length>0){a===-1&&(a=d),s.push(m);continue}else{if(m.length===0)continue;f()}}if(l!==null){let m=p.match(/^\s+(\w[\w-]*):\s*(.*?)\s*$/);if(m){let d=m[1],v=m[2].replace(/^["']|["']$/g,"");v&&(t[`${l}.${d}`]=v);continue}if(p.trim().length>0)l=null;else continue}let h=p.match(/^(\w[\w-]*):\s*(.*?)\s*$/);if(h){f();let m=h[1],d=h[2];if(d==="|"||d===">")i=m,s=[],c=d==="|"?"literal":"folded";else if(d==="|+"||d===">+"||d==="|-"||d===">-")i=m,s=[],c=d.startsWith("|")?"literal":"folded";else{let g=d.replace(/^["']|["']$/g,"");g?t[m]=g:l=m}}}return f(),t}function Q(e){return e["metadata.version"]||e.version||"0.0.0"}function Z(e){let t=e["allowed-tools"]||"";return t.trim()?t.split(/[\s,]+/).map(n=>n.trim()).filter(Boolean):[]}function ee(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 G(e){return!Number.isFinite(e)||e<0?"~0 tokens":e<1e3?`~${e} tokens`:e<1e4?`~${(e/1e3).toFixed(1).replace(/\.0$/,"")}k tokens`:`~${Math.round(e/1e3)}k tokens`}var Re=x(V(),".claude","plugins","marketplaces"),Ae=x(V(),".codex","plugins","cache"),Fe=x(V(),".codex","config.toml"),St=x(V(),".agents","plugins","marketplace.json");function je(e,t){let n=[];for(let o of e.providers){if(!o.enabled){w(`scan: skipping disabled provider "${o.name}"`);continue}if(t==="global"||t==="both"){let r=T(o.global);w(`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=T(o.project);w(`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=T(o.path);w(`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 oe(e){try{return(await L(e,{recursive:!0})).length}catch{return 0}}async function De(e){let t=[];w(`scanning: ${e.dir} (${e.location})`);let n;try{n=await L(e.dir)}catch{return w(`scanning: ${e.dir} \u2014 not found, skipping`),t}for(let o of n){let r=x(e.dir,o);try{if(!(await E(r)).isDirectory()){w(` skip: "${o}" \u2014 not a directory`);continue}}catch{w(` skip: "${o}" \u2014 stat failed`);continue}let i=x(r,"SKILL.md"),s;try{s=await B(i,"utf-8")}catch{w(` skip: "${o}" \u2014 no SKILL.md`);continue}let c=Y(s),a=!1,l=null;try{(await ie(r)).isSymbolicLink()&&(a=!0,l=await Ee(r))}catch{}let f=ne(r),p;try{p=await te(r)}catch{p=f}t.push({name:c.name||o,version:Q(c),description:(c.description||"").replace(/\s*\n\s*/g," ").trim(),creator:c["metadata.creator"]||"",license:(c.license||"").trim(),compatibility:(c.compatibility||"").trim(),allowedTools:Z(c),effort:c.effort||c["metadata.effort"]||void 0,dirName:o,path:f,originalPath:r,location:e.location,scope:e.scope,provider:e.providerName,providerLabel:e.providerLabel,isSymlink:a,symlinkTarget:l,realPath:p,tokenCount:ee(s)})}return w(`found ${t.length} skill(s) in ${e.dir}`),t}async function se(e){let t=[],n;try{n=await L(e)}catch{return t}for(let o of n){let r=x(e,o),i;try{i=await ie(r)}catch{continue}if(!i.isSymbolicLink()&&i.isDirectory()){let s=x(r,"SKILL.md");try{await E(s),t.push(r)}catch{let c=await se(r);t.push(...c)}}}return t}async function Oe(e){let t=e??Re,n=[];w(`scan: checking plugin marketplaces at ${t}`);let o;try{o=await L(t)}catch{return w("scan: plugin marketplaces dir not found, skipping"),n}for(let r of o){let i=x(t,r),s;try{s=await E(i)}catch{continue}if(!s.isDirectory())continue;w(`scan: scanning marketplace "${r}"`);let c=await se(i);for(let a of c){let l=x(a,"SKILL.md"),f;try{f=await B(l,"utf-8")}catch{continue}let p=Y(f),h=Me(a),m=ne(a),d;try{d=await te(a)}catch{d=m}n.push({name:p.name||h,version:Q(p),description:(p.description||"").replace(/\s*\n\s*/g," ").trim(),creator:p["metadata.creator"]||"",license:(p.license||"").trim(),compatibility:(p.compatibility||"").trim(),allowedTools:Z(p),effort:p.effort||p["metadata.effort"]||void 0,dirName:h,path:m,originalPath:a,location:`global-plugin-${r}`,scope:"global",provider:"plugin",providerLabel:`Plugin (${r})`,isSymlink:!1,symlinkTarget:null,realPath:d,marketplace:r,tokenCount:ee(f)})}}return w(`scan: found ${n.length} plugin marketplace skill(s)`),n}function _e(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 s=r.match(/^enabled\s*=\s*(true|false)/i);s&&t.set(n,s[1].toLowerCase()==="true")}}return t}async function We(e){let t=e??Fe;try{let n=await B(t,"utf-8");return _e(n)}catch{return w(`codex: config.toml not found at ${t}, skipping enabled check`),new Map}}async function Ge(e,t){let n=e??Ae,o=[];w(`codex: checking plugin cache at ${n}`);let r;try{r=await L(n)}catch{return w("codex: plugin cache dir not found, skipping"),o}let i=await We(t);for(let s of r){let c=x(n,s),a;try{a=await E(c)}catch{continue}if(!a.isDirectory())continue;let l;try{l=await L(c)}catch{continue}for(let f of l){let p=x(c,f),h;try{h=await E(p)}catch{continue}if(!h.isDirectory())continue;let m;try{m=await L(p)}catch{continue}let d=(await Promise.all(m.map(async b=>{try{return(await E(x(p,b))).isDirectory()?b:null}catch{return null}}))).filter(b=>b!==null);if(d.length===0)continue;let g=d.sort(ae).at(-1),v=x(p,g),S=x(v,".codex-plugin","plugin.json"),k;try{let b=await B(S,"utf-8");k=JSON.parse(b)}catch{w(`codex: no valid plugin.json at ${S}, skipping`);continue}let P=ne(v),I;try{I=await te(v)}catch{I=P}let A=k.interface?.displayName||k.name||f,F=k.version||g,j=(k.description||"").replace(/\s*\n\s*/g," ").trim(),y=i.has(f)?i.get(f):!0;o.push({name:A,version:F,description:j,creator:"",license:"",compatibility:"",allowedTools:[],dirName:f,path:P,originalPath:v,location:`global-codex-plugin-${s}`,scope:"global",provider:"codex-plugin",providerLabel:`Codex Plugin (${s})`,isSymlink:!1,symlinkTarget:null,realPath:I,marketplace:s,codexPlugin:{category:k.interface?.category,hasMcpConfig:k.mcp!=null&&Object.keys(k.mcp).length>0,pluginName:f,pluginVersion:g,enabled:y}})}}return w(`codex: found ${o.length} plugin(s) in cache`),o}async function kt(e,t,n,o){let r=je(e,t),i=t==="global"||t==="both",[s,c,a]=await Promise.all([Promise.all(r.map(De)),i?Oe(n):Promise.resolve([]),i?Ge(o):Promise.resolve([])]),l=s.flat(),f=new Set(l.map(h=>h.realPath)),p=new Set(l.map(h=>h.name.toLowerCase()));for(let h of c)!f.has(h.realPath)&&!p.has(h.name.toLowerCase())&&(l.push(h),f.add(h.realPath),p.add(h.name.toLowerCase()));for(let h of a)!f.has(h.realPath)&&!p.has(h.name.toLowerCase())&&(l.push(h),f.add(h.realPath),p.add(h.name.toLowerCase()));return l}function xt(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 ae(e,t){let n=e.split("."),o=t.split("."),r=Math.max(n.length,o.length);for(let i=0;i<r;i++){let s=parseInt(n[i]??"0",10),c=parseInt(o[i]??"0",10);if(isNaN(s)||isNaN(c))return e.localeCompare(t);if(s!==c)return s-c}return 0}function Pt(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)=>ae(o.version,r.version));break;case"location":n.sort((o,r)=>o.location.localeCompare(r.location));break}return n}import{rm as N,readFile as fe,writeFile as Be,access as Ve,lstat as He,symlink as le,rename as qe,readdir as Ke,mkdir as ce,unlink as pe}from"fs/promises";import{join as H,resolve as C,dirname as M,relative as ue}from"path";import{homedir as ze}from"os";var de=ze();function Je(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(C(".cursor","rules",`${o}.mdc`),C(".windsurf","rules",`${o}.md`),C(".github","instructions",`${o}.instructions.md`)),n.agentsBlocks.push({file:C("AGENTS.md"),skillName:o})),e.scope==="global"){for(let s of t.providers){if(!s.enabled)continue;let c=T(s.global),a=H(M(c),"AGENTS.md");n.agentsBlocks.push({file:a,skillName:o})}let r=H(de,".codex","AGENTS.md");n.agentsBlocks.some(s=>s.file===r)||n.agentsBlocks.push({file:r,skillName:o})}return n}function Et(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 s=new Set(r.filter(h=>!i.includes(h)).map(h=>`${h.provider}::${h.scope}`));function c(h){if(h===C("AGENTS.md")){let m=Array.from(s).find(d=>d.endsWith("::project"));return m?{provider:m.split("::")[0],scope:"project"}:null}for(let m of n.providers){let d=T(m.global),g=H(M(d),"AGENTS.md");if(h===g)return{provider:m.name,scope:"global"}}return h===H(de,".codex","AGENTS.md")?{provider:"codex",scope:"global"}:null}let a={directories:[],ruleFiles:[],agentsBlocks:[]},l=new Set,f=new Set,p=new Set;for(let h of i){let m=Je(h,n);for(let d of m.directories)l.has(d.path)||(l.add(d.path),a.directories.push(d));for(let d of m.ruleFiles)f.has(d)||(f.add(d),a.ruleFiles.push(d));for(let d of m.agentsBlocks){let g=`${d.file}::${d.skillName}`;if(p.has(g))continue;let v=c(d.file);if(v){let S=`${v.provider}::${v.scope}`;if(s.has(S))continue}p.add(g),a.agentsBlocks.push(d)}}return a}async function D(e){try{return await Ve(e),!0}catch{return!1}}async function Ue(e,t){if(!await D(e))return;let n=await fe(e,"utf-8"),o=!1;for(let r of["agent-skill-manager","skill-manager","pskills"]){let i=`<!-- ${r}: ${t} -->`,s=`<!-- /${r}: ${t} -->`,c=n.indexOf(i),a=n.indexOf(s);if(c===-1||a===-1)continue;let l=c;l>0&&n[l-1]===`
5
+ `&&l--;let p=a+s.length;p<n.length&&n[p]===`
6
+ `&&p++,n=n.slice(0,l)+n.slice(p),o=!0}o&&await Be(e,n,"utf-8")}function Xe(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 Mt(e,t,n){if(!e.directories.some(l=>!l.isSymlink))return null;let r=t.filter(l=>l.provider!==n);if(r.length===0)return null;let i=Xe(t,n);if(!i)return null;let s=e.directories.find(l=>!l.isSymlink),c=r.map(l=>l.originalPath).filter(l=>l!==i.path),a=r.find(l=>l.originalPath===i.path);return a&&!a.isSymlink?c.length===0?null:{needed:!0,fromProvider:n,fromPath:s?.path||"",toProvider:i.provider,toPath:i.path,repointPaths:c,repointOnly:!0}:{needed:!0,fromProvider:n,fromPath:s?.path||"",toProvider:i.provider,toPath:i.path,repointPaths:c}}async function Ye(e){let t=[],n=new Set;for(let o of e){let r=M(o);if(!n.has(r)){n.add(r);try{(await Ke(r)).filter(c=>c!==".DS_Store").length===0&&(await N(r,{recursive:!0,force:!0}),t.push(r))}catch{}}}return t}async function Rt(e,t,n){let o=[];if(n?.needed){if(!n.repointOnly)try{let s=M(n.toPath);await ce(s,{recursive:!0});try{await pe(n.toPath)}catch(c){c.code!=="ENOENT"&&await N(n.toPath,{recursive:!0,force:!0})}try{await qe(n.fromPath,n.toPath)}catch(c){if(c.code==="EXDEV"){let{cp:a}=await import("fs/promises");try{await a(n.fromPath,n.toPath,{recursive:!0,preserveTimestamps:!0})}catch(l){try{await N(n.toPath,{recursive:!0,force:!0})}catch(f){o.push(`Failed to clean up partial copy at ${n.toPath}: ${f.message}`)}throw l}await N(n.fromPath,{recursive:!0,force:!0})}else throw c}o.push(`Relocated real folder: ${n.fromPath} -> ${n.toPath}`)}catch(s){o.push(`Failed to relocate real folder: ${s.message}`);let c=new Error(`Failed to relocate real folder: ${s.message}`);throw c.log=o,c}for(let s of n.repointPaths||[]){let c=M(s),a=ue(c,n.toPath);try{try{await pe(s)}catch(l){l.code!=="ENOENT"&&await N(s,{recursive:!0,force:!0})}await ce(c,{recursive:!0}),await le(a,s,"dir"),o.push(`Repointed symlink: ${s} -> ${a}`)}catch(l){o.push(`Failed to repoint symlink ${s} -> ${a}: ${l.message}. To fix manually: ln -sfn ${n.toPath} ${s}`)}}}for(let s of e.directories)try{if(n?.needed&&!n.repointOnly&&C(s.path)===C(n.fromPath))continue;if(s.isSymlink?(await N(s.path),o.push(`Removed symlink: ${s.path}`)):(await N(s.path,{recursive:!0,force:!0}),o.push(`Removed directory: ${s.path}`)),!n?.needed&&t&&C(s.path)!==C(t)){let c=M(s.path),a=ue(c,t);await le(a,s.path,"dir"),o.push(`Created symlink: ${s.path} -> ${a}`)}}catch(c){o.push(`Failed to remove ${s.path}: ${c.message}`)}let r=e.directories.map(s=>s.path),i=await Ye(r);for(let s of i)o.push(`Removed empty parent directory: ${s}`);for(let s of e.ruleFiles)if(await D(s))try{await N(s),o.push(`Removed rule file: ${s}`)}catch(c){o.push(`Failed to remove ${s}: ${c.message}`)}for(let s of e.agentsBlocks)try{await Ue(s.file,s.skillName),o.push(`Cleaned AGENTS.md block in: ${s.file}`)}catch(c){o.push(`Failed to clean AGENTS.md block: ${c.message}`)}return o}async function At(e){let t=[];for(let n of e.directories)if(await D(n.path)){let r=(await He(n.path)).isSymbolicLink()?"symlink":"directory";t.push(`${n.path} (${r})`)}for(let n of e.ruleFiles)await D(n)&&t.push(n);for(let n of e.agentsBlocks)if(await D(n.file)){let o=await fe(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 $=()=>!(process.env.NO_COLOR!==void 0||globalThis.__CLI_NO_COLOR||!process.stdout.isTTY),u={bold:e=>$()?`\x1B[1m${e}\x1B[0m`:e,cyan:e=>$()?`\x1B[36m${e}\x1B[0m`:e,green:e=>$()?`\x1B[32m${e}\x1B[0m`:e,yellow:e=>$()?`\x1B[33m${e}\x1B[0m`:e,dim:e=>$()?`\x1B[2m${e}\x1B[0m`:e,white:e=>$()?`\x1B[37m${e}\x1B[0m`:e,red:e=>$()?`\x1B[31m${e}\x1B[0m`:e,blue:e=>$()?`\x1B[34m${e}\x1B[0m`:e,blueBold:e=>$()?`\x1B[34;1m${e}\x1B[0m`:e,magenta:e=>$()?`\x1B[35m${e}\x1B[0m`:e,bgDim:e=>$()?`\x1B[48;5;236m${e}\x1B[0m`:e,bgRed:e=>$()?`\x1B[41m\x1B[37m\x1B[1m${e}\x1B[0m`:e,bgYellow:e=>$()?`\x1B[43m\x1B[30m\x1B[1m${e}\x1B[0m`:e,bgGreen:e=>$()?`\x1B[42m\x1B[30m\x1B[1m${e}\x1B[0m`:e,bgCyan:e=>$()?`\x1B[46m\x1B[30m\x1B[1m${e}\x1B[0m`:e};function O(e){if(!e)return"";switch(e.toLowerCase()){case"low":return u.green(e);case"medium":return u.yellow(e);case"high":return u.red(e);case"max":return u.magenta(e);default:return e}}var me={claude:u.blueBold,codex:u.cyan,"codex-plugin":u.cyan,openclaw:u.yellow,agents:u.green,custom:u.magenta,cursor:u.blue,windsurf:u.cyan,cline:u.green,roocode:u.magenta,continue:u.yellow,copilot:u.white,aider:u.red,opencode:u.cyan,zed:u.blue,augment:u.green,amp:u.yellow};function q(e,t){return(me[e]||u.dim)(t)}function K(e,t){return $()?(me[e]||u.dim)(`[${t}]`):`[${t}]`}function R(e){let t=process.env.HOME||process.env.USERPROFILE||"";return t&&e.startsWith(t)?"~"+e.slice(t.length):e}function Ot(e){if(e.length===0)return"No skills found.";let t=["Name","Version","Creator","Effort","Tool","Scope","Type","Path"],n=e.map(a=>[a.name,a.version,a.creator||"\u2014",a.effort||"\u2014",a.providerLabel,a.scope,a.isSymlink?"symlink":"directory",R(a.path)]),o=t.map((a,l)=>Math.max(a.length,...n.map(f=>f[l].length))),r=(a,l)=>a.padEnd(l),i=t.map((a,l)=>r(a,o[l])).join(" "),s=o.map(a=>"-".repeat(a)).join("--"),c=n.map(a=>a.map((l,f)=>r(l,o[f])).join(" "));return[$()?u.bold(i):i,s,...c].join(`
7
+ `)}function _(e){let t=new Map;for(let o of e){let r=`${o.dirName}||${o.scope}`,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(c=>c.scope)),s=new Set(o.map(c=>c.isSymlink?"symlink":"directory"));n.push({name:r.name,version:r.version,creator:r.creator||"",effort:r.effort||"",tokens:typeof r.tokenCount=="number"?G(r.tokenCount):"",providers:o.map(c=>({provider:c.provider,label:c.providerLabel})),scope:i.size>1?"mixed":r.scope,type:s.size>1?"mixed":r.isSymlink?"symlink":"directory",path:R(r.path),warningCount:o.reduce((c,a)=>c+(a.warnings?.length??0),0)})}return n}var _t=50;function Wt(e,t={}){let n=t.topN??5,o=t.showHint??!0;if(e.length===0)return"No skills found.";let r=[],s=_(e).length,c=e.length,a=new Set(e.map(g=>g.provider)),l=e.filter(g=>g.scope==="global").length,f=e.filter(g=>g.scope==="project").length,p=`${c} skills (${s} unique) across ${a.size} tools | ${l} global, ${f} project`;r.push($()?u.bold(p):p),r.push("");let h=new Map;for(let g of e){let v=h.get(g.provider)??{label:g.providerLabel,count:0};v.count+=1,h.set(g.provider,v)}let m=[...h.entries()].sort((g,v)=>v[1].count-g[1].count).slice(0,n);r.push($()?u.bold("Top tools:"):"Top tools:");for(let[g,{label:v,count:S}]of m){let k=$()?q(g,`[${v}]`):`[${v}]`;r.push(` ${k} ${S} skill${S===1?"":"s"}`)}r.push(""),r.push($()?u.bold("Scopes:"):"Scopes:"),r.push(` global ${l} skill${l===1?"":"s"}`),r.push(` project ${f} skill${f===1?"":"s"}`);let d=new Map;for(let g of e)g.effort&&d.set(g.effort,(d.get(g.effort)??0)+1);if(d.size>0){let g=[...d.entries()].sort((v,S)=>S[1]-v[1]).slice(0,n);r.push(""),r.push($()?u.bold("Top efforts:"):"Top efforts:");for(let[v,S]of g){let k=O(v),P=Math.max(0,6-v.length);r.push(` ${k}${" ".repeat(P)} ${S} skill${S===1?"":"s"}`)}}if(o){r.push("");let g="Tip: refine with `asm list -p <tool>`, `asm search <query>`, or `asm list --compact`";r.push($()?u.dim(g):g)}return r.join(`
8
+ `)}function Qe(e){if(e.length===0)return"No skills found.";let t=_(e),n=[],o=Math.max(4,...t.map(m=>m.name.length)),r=Math.max(7,...t.map(m=>m.version.length)),i=t.map(m=>m.providers.map(d=>K(d.provider,d.label)).join(" ")),s=t.map(m=>m.providers.map(d=>`[${d.label}]`).join(" ")),c=Math.max(5,...s.map(m=>m.length)),a=7,l=(m,d)=>m.padEnd(d);for(let m=0;m<t.length;m++){let d=t[m],g=l(d.name,o),v=u.dim(l(d.version,r)),S=c-s[m].length,k=i[m]+" ".repeat(Math.max(0,S)),P=u.dim(l(d.scope,a));n.push(`${g} ${v} ${k} ${P}`)}n.push("");let f=e.length,p=t.length,h=`${f} skills (${p} unique)`;return n.push(u.dim(h)),n.join(`
9
+ `)}function Gt(e,t){if(e.length===0)return"No skills found.";let n=new Map,o=l=>{switch(t){case"tool":return[l.providerLabel];case"scope":return[l.scope];case"effort":return[l.effort&&l.effort.length>0?l.effort:"(unset)"]}};for(let l of e)for(let f of o(l)){let p=n.get(f)??[];p.push(l),n.set(f,p)}let r=[...n.entries()].sort((l,f)=>f[1].length!==l[1].length?f[1].length-l[1].length:l[0].localeCompare(f[0])),i=[];for(let[l,f]of r){let p=`${l} (${f.length})`;i.push($()?u.bold(p):p);let d=Qe(f).split(`
10
+ `).slice(0,-2).filter(g=>g.length>0).map(g=>` ${g}`);i.push(...d),i.push("")}let s=e.length,c=_(e).length,a=`${s} skills (${c} unique), grouped by ${t}`;return i.push(u.dim(a)),i.join(`
11
+ `)}function Bt(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=u.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 Vt(e){if(e.length===0)return"No skills found.";let t=_(e),n=[],o=Math.max(4,...t.map(y=>y.name.length)),r=Math.max(7,...t.map(y=>y.version.length)),i=Math.max(7,...t.map(y=>Math.min((y.creator||"\u2014").length,15))),s=Math.max(6,...t.map(y=>(y.effort||"\u2014").length)),c=t.some(y=>y.tokens.length>0),a=c?Math.max(6,...t.map(y=>(y.tokens||"\u2014").length)):0,l=7,f=9,p=t.map(y=>y.providers.map(b=>K(b.provider,b.label)).join(" ")),h=t.map(y=>y.providers.map(b=>`[${b.label}]`).join(" ")),m=Math.max(9,...h.map(y=>y.length)),d=(y,b)=>y.padEnd(b),g=c?` ${d("Tokens",a)}`:"",v=`${d("Name",o)} ${d("Version",r)} ${d("Creator",i)} ${d("Effort",s)}${g} ${d("Tools",m)} ${d("Scope",l)} ${d("Type",f)}`;n.push($()?u.bold(v):v);let S=c?` ${"-".repeat(a)}`:"";n.push(`${"-".repeat(o)} ${"-".repeat(r)} ${"-".repeat(i)} ${"-".repeat(s)}${S} ${"-".repeat(m)} ${"-".repeat(l)} ${"-".repeat(f)}`);for(let y=0;y<t.length;y++){let b=t[y],W=d(b.name,o),z=d(b.version,r),J=(b.creator||"\u2014").slice(0,15),U=d(J,i),X=b.effort||"\u2014",Se=b.effort?O(b.effort):"\u2014",ke=s-X.length,xe=Se+" ".repeat(Math.max(0,ke)),Pe=c?` ${d(b.tokens||"\u2014",a)}`:"",Ce=m-h[y].length,Ne=p[y]+" ".repeat(Math.max(0,Ce)),Ie=d(b.scope,l),Te=d(b.type,f),Le=b.warningCount>0?` ${u.yellow(`(${b.warningCount} warning${b.warningCount>1?"s":""})`)}`:"";n.push(`${W} ${z} ${U} ${xe}${Pe} ${Ne} ${Ie} ${Te}${Le}`)}let k=t.length,P=e.length,I=new Set(e.map(y=>y.provider)),A=e.filter(y=>y.scope==="global").length,F=e.filter(y=>y.scope==="project").length;n.push("");let j=`${P} skills (${k} unique) across ${I.size} tools | ${A} global, ${F} project`;return n.push(u.dim(j)),n.join(`
12
+ `)}function Ze(e,t){if(!$()||!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}${u.bold(u.yellow(r))}${i}`}function Ht(e,t){if(e.length===0)return`No skills matching "${t}". Try ${u.bold("asm list")} to see all skills.`;let n=_(e),o=[];o.push(u.dim(`Found ${e.length} result${e.length===1?"":"s"} (${n.length} unique) matching "${t}"`)+`
13
+ `);let r=Math.max(4,...n.map(g=>g.name.length)),i=Math.max(7,...n.map(g=>g.version.length)),s=Math.max(7,...n.map(g=>Math.min((g.creator||"\u2014").length,15))),c=Math.max(6,...n.map(g=>(g.effort||"\u2014").length)),a=n.map(g=>g.providers.map(v=>K(v.provider,v.label)).join(" ")),l=n.map(g=>g.providers.map(v=>`[${v.label}]`).join(" ")),f=Math.max(9,...l.map(g=>g.length)),p=7,h=9,m=(g,v)=>g.padEnd(v),d=`${m("Name",r)} ${m("Version",i)} ${m("Creator",s)} ${m("Effort",c)} ${m("Tools",f)} ${m("Scope",p)} ${m("Type",h)}`;o.push($()?u.bold(d):d),o.push(`${"-".repeat(r)} ${"-".repeat(i)} ${"-".repeat(s)} ${"-".repeat(c)} ${"-".repeat(f)} ${"-".repeat(p)} ${"-".repeat(h)}`);for(let g=0;g<n.length;g++){let v=n[g],S=Ze(v.name,t),k=r-v.name.length,P=S+" ".repeat(Math.max(0,k)),I=m(v.version,i),A=(v.creator||"\u2014").slice(0,15),F=m(A,s),j=v.effort||"\u2014",y=v.effort?O(v.effort):"\u2014",b=c-j.length,W=y+" ".repeat(Math.max(0,b)),z=f-l[g].length,J=a[g]+" ".repeat(Math.max(0,z)),U=m(v.scope,p),X=m(v.type,h);o.push(`${P} ${I} ${F} ${W} ${J} ${U} ${X}`)}return o.join(`
14
+ `)}function qt(e,t){if(e.length===0)return"";let n=[];n.push(u.dim(`Found ${e.length} available skill${e.length===1?"":"s"} matching "${t}"`)+`
15
+ `);for(let o of e){n.push(` ${u.dim("To install:")} ${u.green(`asm install ${o.installUrl}`)}`);let r=o.verified?u.blue(" [verified]"):"";n.push(` ${u.cyan(o.name)} ${u.dim(`v${o.version}`)}${r} ${u.dim(`[${o.repoLabel}]`)}`);for(let i of be(o.description,76))n.push(` ${i}`);n.push("")}return n.join(`
16
+ `)}var ge=new Set(["Bash","Write","Edit","NotebookEdit"]),et=new Set(["WebFetch","WebSearch"]);function tt(e){return ge.has(e)?u.red(e):et.has(e)?u.yellow(e):u.green(e)}function he(e){return e.length===0?"":e.map(tt).join(" ")}function $e(e){let t=e.filter(o=>ge.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 ")}`}async function nt(e){let t=[],n=(i,s)=>`${$()?u.bold(i+":"):i+":"} ${s}`;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",O(e.effort))),t.push(n("Tool",e.providerLabel)),t.push(n("Scope",e.scope)),t.push(n("Location",e.location)),t.push(n("Path",R(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 oe(e.path);if(t.push(n("File Count",String(o))),typeof e.tokenCount=="number"&&t.push(n("Est. Tokens",G(e.tokenCount))),e.description&&(t.push(""),t.push(n("Description",e.description))),e.allowedTools&&e.allowedTools.length>0){t.push(""),t.push($()?u.bold("Allowed Tools:"):"Allowed Tools:"),t.push(` ${he(e.allowedTools)}`);let i=$e(e.allowedTools);i&&t.push(` ${$()?u.yellow("\u26A0"):"!"} ${i}`)}t.push(""),t.push($()?u.bold("Eval Score:"):"Eval Score:");let r=ye(e);if(r.length>0){let i=r.length>1;for(let s of r){let c=ve(s.overallScore),a=s.providerId?`${s.providerId}@${s.providerVersion??"?"}`:"quality";i?t.push(` ${a}: ${c} / 100 (${s.grade})`):t.push(` Overall: ${c} / 100 (${s.grade})`);let l=s.evaluatedVersion?` \u2014 version ${s.evaluatedVersion}`:"";if(t.push(` ${$()?u.dim("Evaluated:"):"Evaluated:"} ${s.evaluatedAt}${l}`),s.categories.length>0){i?t.push($()?u.dim(` Categories (${a}):`):` Categories (${a}):`):t.push($()?u.dim(" Categories:"):" Categories:");for(let f of s.categories)t.push(` ${f.name.padEnd(28)} ${f.score}/${f.max}`)}}}else t.push($()?u.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($()?u.bold("Warnings:"):"Warnings:");for(let i of e.warnings)t.push(` ${$()?u.yellow("!"):"!"} [${i.category}] ${i.message}`)}return t.join(`
17
+ `)}function ve(e){let t=String(e);return $()?e>=90?u.green(t):e>=80?u.cyan(t):e>=65?u.yellow(t):u.red(t):t}function ye(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 Kt(e){if(e.length===0)return"No skills found.";if(e.length===1)return nt(e[0]);let t=[],n=(f,p)=>`${$()?u.bold(f+":"):f+":"} ${p}`,o=e[0],r=o.name;t.push(""),t.push($()?u.blueBold(` ${r}`):` ${r}`),t.push($()?u.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",O(o.effort)));let i=o.fileCount??await oe(o.path);t.push(n(" File Count",String(i))),typeof o.tokenCount=="number"&&t.push(n(" Est. Tokens",G(o.tokenCount)));let s=e.map(f=>K(f.provider,f.providerLabel)).join(" ");t.push(n(" Installed in",s)),t.push(""),t.push($()?u.bold(" Eval Score:"):" Eval Score:");let c=ye(o);if(c.length>0){let f=c.length>1;for(let p of c){let h=ve(p.overallScore),m=p.providerId?`${p.providerId}@${p.providerVersion??"?"}`:"quality";f?t.push(` ${m}: ${h} / 100 (${p.grade})`):t.push(` Overall: ${h} / 100 (${p.grade})`);let d=p.evaluatedVersion?` \u2014 version ${p.evaluatedVersion}`:"";if(t.push(` ${$()?u.dim("Evaluated:"):"Evaluated:"} ${p.evaluatedAt}${d}`),p.categories.length>0)for(let g of p.categories)t.push(` ${g.name.padEnd(28)} ${g.score}/${g.max}`)}}else t.push($()?u.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($()?u.bold(" Description:"):" Description:");let f=be(o.description,72);for(let p of f)t.push(" "+p)}if(o.allowedTools&&o.allowedTools.length>0){t.push(""),t.push($()?u.bold(" Allowed Tools:"):" Allowed Tools:"),t.push(` ${he(o.allowedTools)}`);let f=$e(o.allowedTools);f&&t.push(` ${$()?u.yellow("\u26A0"):"!"} ${f}`)}t.push("");let a=` Installations (${e.length})`;t.push($()?u.bold(a):a);for(let f=0;f<e.length;f++){let p=e[f],h=q(p.provider,p.providerLabel),m=p.isSymlink?"symlink":"directory",d=u.dim(p.scope);t.push(` ${h} (${d}, ${m})`),t.push(` ${u.dim("Path:")} ${R(p.path)}`),p.isSymlink&&p.symlinkTarget&&t.push(` ${u.dim("Target:")} ${p.symlinkTarget}`)}let l=e.flatMap(f=>!f.warnings||f.warnings.length===0?[]:f.warnings.map(p=>({...p,provider:f.providerLabel})));if(l.length>0){t.push("");let f=` Warnings (${l.length})`;t.push($()?u.bold(f):f);for(let p of l){let h=$()?u.yellow("!"):"!";t.push(` ${h} [${p.category}] ${p.message}`)}}return t.push(""),t.join(`
18
+ `)}function be(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 zt(e){return JSON.stringify(e,null,2)}function Xt(e){let t=[],n=new Set,o=new Map,r=[];for(let a of e){let l=o.get(a.realPath);if(l){if(a.isSymlink)continue;l.isSymlink?(r[r.indexOf(l)]=a,o.set(a.realPath,a)):r.push(a)}else o.set(a.realPath,a),r.push(a)}let i=new Map;for(let a of r){let l=i.get(a.dirName)??[];l.push(a),i.set(a.dirName,l)}for(let[a,l]of i)if(new Set(l.map(p=>p.location)).size>=2){t.push({key:a,reason:"same-dirName",instances:l});for(let p of l)n.add(p.path)}let s=new Map;for(let a of r){if(!a.name)continue;let l=s.get(a.name)??[];l.push(a),s.set(a.name,l)}for(let[a,l]of s){if(new Set(l.map(m=>m.dirName)).size<2)continue;let p=l.filter(m=>!n.has(m.path));p.length<2||new Set(p.map(m=>m.dirName)).size<2||t.push({key:a,reason:"same-frontmatterName",instances:p})}t.sort((a,l)=>a.reason!==l.reason?a.reason==="same-dirName"?-1:1:a.key.localeCompare(l.key));let c=t.reduce((a,l)=>a+l.instances.length,0);return{scannedAt:new Date().toISOString(),totalSkills:e.length,duplicateGroups:t,totalDuplicateInstances:c}}function ot(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 rt(e){return e==="same-dirName"?"same dirName":"same name"}function Yt(e){if(e.duplicateGroups.length===0)return u.green("No duplicate skills found.");let t=[];t.push(""),t.push(u.bold(` Found ${e.duplicateGroups.length} duplicate group(s) (${e.totalDuplicateInstances} total instances):`)),t.push("");for(let n of e.duplicateGroups){t.push(` ${u.yellow(`"${n.key}"`)} ${u.dim(`(${rt(n.reason)})`)}`);let o=ot(n.instances);for(let r=0;r<o.length;r++){let i=o[r],s=q(i.provider,i.providerLabel),c=r===0?u.green(" [keep]"):u.dim(" "),a=u.dim(`(${i.scope})`);t.push(` ${c} ${s} ${a} ${u.dim(R(i.path))}`)}t.push("")}return t.push(u.dim(` Run ${u.bold("asm audit -y")} to auto-remove duplicates`)),t.push(""),t.join(`
19
+ `)}function Qt(e){return JSON.stringify(e,null,2)}function en(e){let t=e.trim();if(!t)return["vi",[]];let n=[],o="",r=!1,i=0;for(;i<t.length;){let s=t[i];if(s==='"'){for(r=!0,i++;i<t.length&&t[i]!=='"';){if(t[i]==="\\"&&i+1<t.length){let c=t[i+1];if(c==='"'||c==="\\"){o+=c,i+=2;continue}}o+=t[i],i++}i++}else if(s==="'"){for(r=!0,i++;i<t.length&&t[i]!=="'";)o+=t[i],i++;i++}else s===" "||s===" "?((o.length>0||r)&&(n.push(o),o="",r=!1),i++):(o+=s,i++)}return(o.length>0||r)&&n.push(o),n.length===0?["vi",[]]:[n[0],n.slice(1)]}import{readFileSync as it}from"fs";import{resolve as st,dirname as at}from"path";import{fileURLToPath as lt}from"url";import{execSync as ct}from"child_process";var pt=at(lt(import.meta.url)),we="2.8.0";try{let e=it(st(pt,"../../package.json"),"utf-8");we=JSON.parse(e).version}catch{}var re="7db4949";try{re=ct("git rev-parse --short HEAD",{encoding:"utf-8",stdio:["pipe","pipe","ignore"]}).trim()||re}catch{}var ut=we,ft=re,an=`v${ut} (${ft})`;export{Y as a,Q as b,Z as c,ee as d,G as e,oe as f,kt as g,xt as h,Pt as i,Je as j,Et as k,Mt as l,Rt as m,At as n,u as o,O as p,q,R as r,Ot as s,_t as t,Wt as u,Qe as v,Gt as w,Bt as x,Vt as y,Ht as z,qt as A,ge as B,et as C,Kt as D,be as E,zt as F,Xt as G,ot as H,rt as I,Yt as J,Qt as K,ut as L,an as M,en as N};
@@ -0,0 +1,3 @@
1
+ import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
2
+ import{readFile as x,writeFile as w,mkdir as P,copyFile as S}from"fs/promises";import{join as s,resolve as f,dirname as I}from"path";import{fileURLToPath as y}from"url";import{homedir as _}from"os";var b=!1,k=0;function T(e){b=e,e&&(k=performance.now())}function l(e){if(!b)return;let r=Math.round(performance.now()-k),i=globalThis.__CLI_NO_COLOR?`[verbose] +${r}ms`:`\x1B[2m[verbose] +${r}ms\x1B[0m`;console.error(`${i} ${e}`)}var A=y(import.meta.url),v=I(A),C=_(),a=s(C,".config","agent-skill-manager"),n=s(a,"config.json"),O=s(a,".skill-lock.json"),R=s(a,"skill-index"),N=[{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 d(){return{version:1,providers:N.map(e=>({...e})),customPaths:[],preferences:{defaultScope:"both",defaultSort:"name"}}}function J(){return n}function U(){return O}function V(){return R}function B(){return f(v,"..","data","skill-index")}function D(){return f(v,"..","data","skill-index-resources.json")}async function M(){let e=D(),r=await x(e,"utf-8");return JSON.parse(r)}function K(e){return e.startsWith("~/")?s(C,e.slice(2)):e.startsWith("/")?e:f(e)}function $(e){let r=d(),o=e.providers||[],i=new Set(o.map(t=>t.name));for(let t=0;t<r.providers.length;t++){let c=r.providers[t];if(i.has(c.name))continue;let g=o.length;for(let u=t-1;u>=0;u--){let h=r.providers[u].name,m=o.findIndex(j=>j.name===h);if(m!==-1){g=m+1;break}}o.splice(g,0,{...c}),i.add(c.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(){l(`config: checking ${n}`);let e;try{e=await x(n,"utf-8")}catch(r){if(r?.code==="ENOENT"){l("config: using defaults (file not found)");let o=d();return await p(o),o}throw r}try{let r=JSON.parse(e);return l(`config: loaded from ${n}`),$(r)}catch{let r=n+".bak";l(`config: parse error, backing up to ${r}`),await S(n,r),console.error(`Warning: Config file was corrupted. Backup saved to ${r}. Using defaults.`);let o=d();return await p(o),o}}async function p(e){await P(a,{recursive:!0}),await w(n,JSON.stringify(e,null,2)+`
3
+ `,"utf-8")}async function X(e){let r=await L();r.preferences.selectedTools=e,await p(r)}export{T as a,l as b,d as c,J as d,U as e,V as f,B as g,D as h,M as i,K as j,L as k,p as l,X as m};
@@ -0,0 +1,3 @@
1
+ import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
2
+ import{b as e,e as n}from"./chunk-6PA2GSCN.js";import{readFile as a,writeFile as k,mkdir as u,copyFile as f}from"fs/promises";import{execFile as y}from"child_process";import{promisify as p}from"util";import{dirname as d}from"path";var m=p(y);function l(){return{version:1,skills:{}}}async function c(){let t=n(),r;try{r=await a(t,"utf-8")}catch(o){if(o?.code==="ENOENT")return e("lock: file not found, returning empty lock"),l();throw o}try{let o=JSON.parse(r);if(o.version!==1||typeof o.skills!="object"||o.skills===null)throw new Error("invalid schema");return e(`lock: loaded ${Object.keys(o.skills).length} entries`),o}catch{let o=t+".bak";e(`lock: parse error, backing up to ${o}`);try{await f(t,o)}catch{}return console.error(`Warning: .skill-lock.json was corrupted. Backup saved to ${o}. Starting fresh.`),l()}}async function $(t,r){let o=await c();o.skills[t]=r,await s(o),e(`lock: wrote entry for "${t}"`)}async function E(t){let r=await c();if(!(t in r.skills)){e(`lock: no entry for "${t}", nothing to remove`);return}delete r.skills[t],await s(r),e(`lock: removed entry for "${t}"`)}async function F(t,r){let o=await c(),i=o.skills[t];if(!i){e(`lock: no entry for "${t}", cannot update provider`);return}if(i.provider===r){e(`lock: entry for "${t}" already points at "${r}"`);return}o.skills[t]={...i,provider:r},await s(o),e(`lock: updated provider for "${t}" -> "${r}"`)}async function s(t){let r=n();await u(d(r),{recursive:!0}),await k(r,JSON.stringify(t,null,2)+`
3
+ `,"utf-8")}async function x(t){try{let{stdout:r}=await m("git",["rev-parse","HEAD"],{cwd:t,timeout:5e3});return r.trim()||null}catch{return e("lock: could not read commit hash from cloned repo"),null}}export{c as a,$ as b,E as c,F as d,x as e};
@@ -1,2 +1,2 @@
1
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}from"./chunk-GOI5LV72.js";import"./chunk-7BMOBFGJ.js";export{e as getBundledIndexDir,b as getConfigPath,a as getDefaultConfig,d as getIndexDir,c as getLockPath,f as getSkillIndexResourcesPath,i as loadConfig,g as loadSkillIndexResources,h as resolveProviderPath,j as saveConfig,k as saveSelectedTools};
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}from"./chunk-6PA2GSCN.js";import"./chunk-7BMOBFGJ.js";export{e as getBundledIndexDir,b as getConfigPath,a as getDefaultConfig,d as getIndexDir,c as getLockPath,f as getSkillIndexResourcesPath,i as loadConfig,g as loadSkillIndexResources,h as resolveProviderPath,j as saveConfig,k as saveSelectedTools};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
2
+ import{a,b,c,d,e}from"./chunk-NGQYBLQE.js";import"./chunk-6PA2GSCN.js";import"./chunk-7BMOBFGJ.js";export{e as getCommitHash,a as readLock,c as removeLockEntry,d as setLockEntryProvider,b as writeLockEntry};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
2
- import{A as Zl,B as ra,D as na,F as jl,G as $l,H as As,L as oa,M as ia,e as Ri,f as jI,g as ql,h as $I,i as Aa,j as ea,k as zl,l as Xl,m as ta}from"./chunk-HG3RG5GM.js";import{d as Si,k as XI,l as ZI}from"./chunk-GOI5LV72.js";import{a as _l,b as _A,c as yc,d as H}from"./chunk-7BMOBFGJ.js";var Qa=_A(lA=>{"use strict";var ro=Symbol.for("react.element"),wc=Symbol.for("react.portal"),xc=Symbol.for("react.fragment"),Sc=Symbol.for("react.strict_mode"),Rc=Symbol.for("react.profiler"),Nc=Symbol.for("react.provider"),vc=Symbol.for("react.context"),kc=Symbol.for("react.forward_ref"),Lc=Symbol.for("react.suspense"),Gc=Symbol.for("react.memo"),Mc=Symbol.for("react.lazy"),ua=Symbol.iterator;function Uc(t){return t===null||typeof t!="object"?null:(t=ua&&t[ua]||t["@@iterator"],typeof t=="function"?t:null)}var ga={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ia=Object.assign,aa={};function en(t,r,o){this.props=t,this.context=r,this.refs=aa,this.updater=o||ga}en.prototype.isReactComponent={};en.prototype.setState=function(t,r){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,r,"setState")};en.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function Ba(){}Ba.prototype=en.prototype;function ts(t,r,o){this.props=t,this.context=r,this.refs=aa,this.updater=o||ga}var rs=ts.prototype=new Ba;rs.constructor=ts;Ia(rs,en.prototype);rs.isPureReactComponent=!0;var la=Array.isArray,Ea=Object.prototype.hasOwnProperty,ns={current:null},Ca={key:!0,ref:!0,__self:!0,__source:!0};function ca(t,r,o){var l,g={},E=null,I=null;if(r!=null)for(l in r.ref!==void 0&&(I=r.ref),r.key!==void 0&&(E=""+r.key),r)Ea.call(r,l)&&!Ca.hasOwnProperty(l)&&(g[l]=r[l]);var c=arguments.length-2;if(c===1)g.children=o;else if(1<c){for(var D=Array(c),y=0;y<c;y++)D[y]=arguments[y+2];g.children=D}if(t&&t.defaultProps)for(l in c=t.defaultProps,c)g[l]===void 0&&(g[l]=c[l]);return{$$typeof:ro,type:t,key:E,ref:I,props:g,_owner:ns.current}}function Hc(t,r){return{$$typeof:ro,type:t.type,key:r,ref:t.ref,props:t.props,_owner:t._owner}}function os(t){return typeof t=="object"&&t!==null&&t.$$typeof===ro}function Tc(t){var r={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,function(o){return r[o]})}var sa=/\/+/g;function es(t,r){return typeof t=="object"&&t!==null&&t.key!=null?Tc(""+t.key):r.toString(36)}function vi(t,r,o,l,g){var E=typeof t;(E==="undefined"||E==="boolean")&&(t=null);var I=!1;if(t===null)I=!0;else switch(E){case"string":case"number":I=!0;break;case"object":switch(t.$$typeof){case ro:case wc:I=!0}}if(I)return I=t,g=g(I),t=l===""?"."+es(I,0):l,la(g)?(o="",t!=null&&(o=t.replace(sa,"$&/")+"/"),vi(g,r,o,"",function(y){return y})):g!=null&&(os(g)&&(g=Hc(g,o+(!g.key||I&&I.key===g.key?"":(""+g.key).replace(sa,"$&/")+"/")+t)),r.push(g)),1;if(I=0,l=l===""?".":l+":",la(t))for(var c=0;c<t.length;c++){E=t[c];var D=l+es(E,c);I+=vi(E,r,o,D,g)}else if(D=Uc(t),typeof D=="function")for(t=D.call(t),c=0;!(E=t.next()).done;)E=E.value,D=l+es(E,c++),I+=vi(E,r,o,D,g);else if(E==="object")throw r=String(t),Error("Objects are not valid as a React child (found: "+(r==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":r)+"). If you meant to render a collection of children, use an array instead.");return I}function Ni(t,r,o){if(t==null)return t;var l=[],g=0;return vi(t,l,"","",function(E){return r.call(o,E,g++)}),l}function Oc(t){if(t._status===-1){var r=t._result;r=r(),r.then(function(o){(t._status===0||t._status===-1)&&(t._status=1,t._result=o)},function(o){(t._status===0||t._status===-1)&&(t._status=2,t._result=o)}),t._status===-1&&(t._status=0,t._result=r)}if(t._status===1)return t._result.default;throw t._result}var me={current:null},ki={transition:null},Jc={ReactCurrentDispatcher:me,ReactCurrentBatchConfig:ki,ReactCurrentOwner:ns};function fa(){throw Error("act(...) is not supported in production builds of React.")}lA.Children={map:Ni,forEach:function(t,r,o){Ni(t,function(){r.apply(this,arguments)},o)},count:function(t){var r=0;return Ni(t,function(){r++}),r},toArray:function(t){return Ni(t,function(r){return r})||[]},only:function(t){if(!os(t))throw Error("React.Children.only expected to receive a single React element child.");return t}};lA.Component=en;lA.Fragment=xc;lA.Profiler=Rc;lA.PureComponent=ts;lA.StrictMode=Sc;lA.Suspense=Lc;lA.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Jc;lA.act=fa;lA.cloneElement=function(t,r,o){if(t==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+t+".");var l=Ia({},t.props),g=t.key,E=t.ref,I=t._owner;if(r!=null){if(r.ref!==void 0&&(E=r.ref,I=ns.current),r.key!==void 0&&(g=""+r.key),t.type&&t.type.defaultProps)var c=t.type.defaultProps;for(D in r)Ea.call(r,D)&&!Ca.hasOwnProperty(D)&&(l[D]=r[D]===void 0&&c!==void 0?c[D]:r[D])}var D=arguments.length-2;if(D===1)l.children=o;else if(1<D){c=Array(D);for(var y=0;y<D;y++)c[y]=arguments[y+2];l.children=c}return{$$typeof:ro,type:t.type,key:g,ref:E,props:l,_owner:I}};lA.createContext=function(t){return t={$$typeof:vc,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},t.Provider={$$typeof:Nc,_context:t},t.Consumer=t};lA.createElement=ca;lA.createFactory=function(t){var r=ca.bind(null,t);return r.type=t,r};lA.createRef=function(){return{current:null}};lA.forwardRef=function(t){return{$$typeof:kc,render:t}};lA.isValidElement=os;lA.lazy=function(t){return{$$typeof:Mc,_payload:{_status:-1,_result:t},_init:Oc}};lA.memo=function(t,r){return{$$typeof:Gc,type:t,compare:r===void 0?null:r}};lA.startTransition=function(t){var r=ki.transition;ki.transition={};try{t()}finally{ki.transition=r}};lA.unstable_act=fa;lA.useCallback=function(t,r){return me.current.useCallback(t,r)};lA.useContext=function(t){return me.current.useContext(t)};lA.useDebugValue=function(){};lA.useDeferredValue=function(t){return me.current.useDeferredValue(t)};lA.useEffect=function(t,r){return me.current.useEffect(t,r)};lA.useId=function(){return me.current.useId()};lA.useImperativeHandle=function(t,r,o){return me.current.useImperativeHandle(t,r,o)};lA.useInsertionEffect=function(t,r){return me.current.useInsertionEffect(t,r)};lA.useLayoutEffect=function(t,r){return me.current.useLayoutEffect(t,r)};lA.useMemo=function(t,r){return me.current.useMemo(t,r)};lA.useReducer=function(t,r,o){return me.current.useReducer(t,r,o)};lA.useRef=function(t){return me.current.useRef(t)};lA.useState=function(t){return me.current.useState(t)};lA.useSyncExternalStore=function(t,r,o){return me.current.useSyncExternalStore(t,r,o)};lA.useTransition=function(){return me.current.useTransition()};lA.version="18.3.1"});var Z=_A((ip,Da)=>{"use strict";Da.exports=Qa()});var Na=_A((Hp,Mi)=>{Mi.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&Mi.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Mi.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var gs=_A((Tp,sn)=>{var kA=global.process,yr=function(t){return t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function"};yr(kA)?(va=_l("assert"),un=Na(),ka=/^win/i.test(kA.platform),uo=_l("events"),typeof uo!="function"&&(uo=uo.EventEmitter),kA.__signal_exit_emitter__?ie=kA.__signal_exit_emitter__:(ie=kA.__signal_exit_emitter__=new uo,ie.count=0,ie.emitted={}),ie.infinite||(ie.setMaxListeners(1/0),ie.infinite=!0),sn.exports=function(t,r){if(!yr(global.process))return function(){};va.equal(typeof t,"function","a callback must be provided for exit handler"),ln===!1&&ls();var o="exit";r&&r.alwaysLast&&(o="afterexit");var l=function(){ie.removeListener(o,t),ie.listeners("exit").length===0&&ie.listeners("afterexit").length===0&&Ui()};return ie.on(o,t),l},Ui=function(){!ln||!yr(global.process)||(ln=!1,un.forEach(function(r){try{kA.removeListener(r,Hi[r])}catch{}}),kA.emit=Ti,kA.reallyExit=ss,ie.count-=1)},sn.exports.unload=Ui,wr=function(r,o,l){ie.emitted[r]||(ie.emitted[r]=!0,ie.emit(r,o,l))},Hi={},un.forEach(function(t){Hi[t]=function(){if(yr(global.process)){var o=kA.listeners(t);o.length===ie.count&&(Ui(),wr("exit",null,t),wr("afterexit",null,t),ka&&t==="SIGHUP"&&(t="SIGINT"),kA.kill(kA.pid,t))}}}),sn.exports.signals=function(){return un},ln=!1,ls=function(){ln||!yr(global.process)||(ln=!0,ie.count+=1,un=un.filter(function(r){try{return kA.on(r,Hi[r]),!0}catch{return!1}}),kA.emit=Ga,kA.reallyExit=La)},sn.exports.load=ls,ss=kA.reallyExit,La=function(r){yr(global.process)&&(kA.exitCode=r||0,wr("exit",kA.exitCode,null),wr("afterexit",kA.exitCode,null),ss.call(kA,kA.exitCode))},Ti=kA.emit,Ga=function(r,o){if(r==="exit"&&yr(global.process)){o!==void 0&&(kA.exitCode=o);var l=Ti.apply(this,arguments);return wr("exit",kA.exitCode,null),wr("afterexit",kA.exitCode,null),l}else return Ti.apply(this,arguments)}):sn.exports=function(){return function(){}};var va,un,ka,uo,ie,Ui,wr,Hi,ln,ls,ss,La,Ti,Ga});var ja=_A(wA=>{"use strict";function ms(t,r){var o=t.length;t.push(r);A:for(;0<o;){var l=o-1>>>1,g=t[l];if(0<Ji(g,r))t[l]=r,t[o]=g,o=l;else break A}}function st(t){return t.length===0?null:t[0]}function Yi(t){if(t.length===0)return null;var r=t[0],o=t.pop();if(o!==r){t[0]=o;A:for(var l=0,g=t.length,E=g>>>1;l<E;){var I=2*(l+1)-1,c=t[I],D=I+1,y=t[D];if(0>Ji(c,o))D<g&&0>Ji(y,c)?(t[l]=y,t[D]=o,l=D):(t[l]=c,t[I]=o,l=I);else if(D<g&&0>Ji(y,o))t[l]=y,t[D]=o,l=D;else break A}}return r}function Ji(t,r){var o=t.sortIndex-r.sortIndex;return o!==0?o:t.id-r.id}typeof performance=="object"&&typeof performance.now=="function"?(Pa=performance,wA.unstable_now=function(){return Pa.now()}):(Ds=Date,Wa=Ds.now(),wA.unstable_now=function(){return Ds.now()-Wa});var Pa,Ds,Wa,ht=[],er=[],Sf=1,qe=null,Qe=3,Pi=!1,xr=!1,go=!1,_a=typeof setTimeout=="function"?setTimeout:null,qa=typeof clearTimeout=="function"?clearTimeout:null,ba=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function hs(t){for(var r=st(er);r!==null;){if(r.callback===null)Yi(er);else if(r.startTime<=t)Yi(er),r.sortIndex=r.expirationTime,ms(ht,r);else break;r=st(er)}}function Fs(t){if(go=!1,hs(t),!xr)if(st(ht)!==null)xr=!0,ws(ys);else{var r=st(er);r!==null&&xs(Fs,r.startTime-t)}}function ys(t,r){xr=!1,go&&(go=!1,qa(Io),Io=-1),Pi=!0;var o=Qe;try{for(hs(r),qe=st(ht);qe!==null&&(!(qe.expirationTime>r)||t&&!Za());){var l=qe.callback;if(typeof l=="function"){qe.callback=null,Qe=qe.priorityLevel;var g=l(qe.expirationTime<=r);r=wA.unstable_now(),typeof g=="function"?qe.callback=g:qe===st(ht)&&Yi(ht),hs(r)}else Yi(ht);qe=st(ht)}if(qe!==null)var E=!0;else{var I=st(er);I!==null&&xs(Fs,I.startTime-r),E=!1}return E}finally{qe=null,Qe=o,Pi=!1}}var Wi=!1,Ki=null,Io=-1,za=5,Xa=-1;function Za(){return!(wA.unstable_now()-Xa<za)}function ds(){if(Ki!==null){var t=wA.unstable_now();Xa=t;var r=!0;try{r=Ki(!0,t)}finally{r?so():(Wi=!1,Ki=null)}}else Wi=!1}var so;typeof ba=="function"?so=function(){ba(ds)}:typeof MessageChannel<"u"?(ps=new MessageChannel,Va=ps.port2,ps.port1.onmessage=ds,so=function(){Va.postMessage(null)}):so=function(){_a(ds,0)};var ps,Va;function ws(t){Ki=t,Wi||(Wi=!0,so())}function xs(t,r){Io=_a(function(){t(wA.unstable_now())},r)}wA.unstable_IdlePriority=5;wA.unstable_ImmediatePriority=1;wA.unstable_LowPriority=4;wA.unstable_NormalPriority=3;wA.unstable_Profiling=null;wA.unstable_UserBlockingPriority=2;wA.unstable_cancelCallback=function(t){t.callback=null};wA.unstable_continueExecution=function(){xr||Pi||(xr=!0,ws(ys))};wA.unstable_forceFrameRate=function(t){0>t||125<t?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):za=0<t?Math.floor(1e3/t):5};wA.unstable_getCurrentPriorityLevel=function(){return Qe};wA.unstable_getFirstCallbackNode=function(){return st(ht)};wA.unstable_next=function(t){switch(Qe){case 1:case 2:case 3:var r=3;break;default:r=Qe}var o=Qe;Qe=r;try{return t()}finally{Qe=o}};wA.unstable_pauseExecution=function(){};wA.unstable_requestPaint=function(){};wA.unstable_runWithPriority=function(t,r){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var o=Qe;Qe=t;try{return r()}finally{Qe=o}};wA.unstable_scheduleCallback=function(t,r,o){var l=wA.unstable_now();switch(typeof o=="object"&&o!==null?(o=o.delay,o=typeof o=="number"&&0<o?l+o:l):o=l,t){case 1:var g=-1;break;case 2:g=250;break;case 5:g=1073741823;break;case 4:g=1e4;break;default:g=5e3}return g=o+g,t={id:Sf++,callback:r,priorityLevel:t,startTime:o,expirationTime:g,sortIndex:-1},o>l?(t.sortIndex=o,ms(er,t),st(ht)===null&&t===st(er)&&(go?(qa(Io),Io=-1):go=!0,xs(Fs,o-l))):(t.sortIndex=g,ms(ht,t),xr||Pi||(xr=!0,ws(ys))),t};wA.unstable_shouldYield=Za;wA.unstable_wrapCallback=function(t){var r=Qe;return function(){var o=Qe;Qe=r;try{return t.apply(this,arguments)}finally{Qe=o}}}});var AB=_A((Zp,$a)=>{"use strict";$a.exports=ja()});var tB=_A((jp,eB)=>{eB.exports=function(r){var o={},l=Z(),g=AB(),E=Object.assign;function I(A){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+A,n=1;n<arguments.length;n++)e+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+A+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var c=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,D=Symbol.for("react.element"),y=Symbol.for("react.portal"),h=Symbol.for("react.fragment"),L=Symbol.for("react.strict_mode"),T=Symbol.for("react.profiler"),J=Symbol.for("react.provider"),X=Symbol.for("react.context"),b=Symbol.for("react.forward_ref"),Y=Symbol.for("react.suspense"),z=Symbol.for("react.suspense_list"),oA=Symbol.for("react.memo"),gA=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var mA=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var FA=Symbol.iterator;function yA(A){return A===null||typeof A!="object"?null:(A=FA&&A[FA]||A["@@iterator"],typeof A=="function"?A:null)}function KA(A){if(A==null)return null;if(typeof A=="function")return A.displayName||A.name||null;if(typeof A=="string")return A;switch(A){case h:return"Fragment";case y:return"Portal";case T:return"Profiler";case L:return"StrictMode";case Y:return"Suspense";case z:return"SuspenseList"}if(typeof A=="object")switch(A.$$typeof){case X:return(A.displayName||"Context")+".Consumer";case J:return(A._context.displayName||"Context")+".Provider";case b:var e=A.render;return A=A.displayName,A||(A=e.displayName||e.name||"",A=A!==""?"ForwardRef("+A+")":"ForwardRef"),A;case oA:return e=A.displayName||null,e!==null?e:KA(A.type)||"Memo";case gA:e=A._payload,A=A._init;try{return KA(A(e))}catch{}}return null}function ue(A){var e=A.type;switch(A.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return A=e.render,A=A.displayName||A.name||"",e.displayName||(A!==""?"ForwardRef("+A+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return KA(e);case 8:return e===L?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function ae(A){var e=A,n=A;if(A.alternate)for(;e.return;)e=e.return;else{A=e;do e=A,e.flags&4098&&(n=e.return),A=e.return;while(A)}return e.tag===3?n:null}function Jt(A){if(ae(A)!==A)throw Error(I(188))}function Kt(A){var e=A.alternate;if(!e){if(e=ae(A),e===null)throw Error(I(188));return e!==A?null:A}for(var n=A,i=e;;){var u=n.return;if(u===null)break;var s=u.alternate;if(s===null){if(i=u.return,i!==null){n=i;continue}break}if(u.child===s.child){for(s=u.child;s;){if(s===n)return Jt(u),A;if(s===i)return Jt(u),e;s=s.sibling}throw Error(I(188))}if(n.return!==i.return)n=u,i=s;else{for(var C=!1,d=u.child;d;){if(d===n){C=!0,n=u,i=s;break}if(d===i){C=!0,i=u,n=s;break}d=d.sibling}if(!C){for(d=s.child;d;){if(d===n){C=!0,n=s,i=u;break}if(d===i){C=!0,i=s,n=u;break}d=d.sibling}if(!C)throw Error(I(189))}}if(n.alternate!==i)throw Error(I(190))}if(n.tag!==3)throw Error(I(188));return n.stateNode.current===n?A:e}function nr(A){return A=Kt(A),A!==null?WA(A):null}function WA(A){if(A.tag===5||A.tag===6)return A;for(A=A.child;A!==null;){var e=WA(A);if(e!==null)return e;A=A.sibling}return null}function ye(A){if(A.tag===5||A.tag===6)return A;for(A=A.child;A!==null;){if(A.tag!==4){var e=ye(A);if(e!==null)return e}A=A.sibling}return null}var He=Array.isArray,Te=r.getPublicInstance,or=r.getRootHostContext,de=r.getChildHostContext,vr=r.prepareForCommit,kr=r.resetAfterCommit,Fn=r.createInstance,yt=r.appendInitialChild,ir=r.finalizeInitialChildren,ur=r.prepareUpdate,le=r.shouldSetTextContent,AA=r.createTextInstance,CA=r.scheduleTimeout,cA=r.cancelTimeout,eA=r.noTimeout,Oe=r.isPrimaryRenderer,bA=r.supportsMutation,wt=r.supportsPersistence,ee=r.supportsHydration,zA=r.getInstanceFromNode,lr=r.preparePortalMount,yn=r.getCurrentEventPriority,sr=r.detachDeletedInstance,je=r.supportsMicrotasks,wn=r.scheduleMicrotask,ve=r.supportsTestSelectors,vo=r.findFiberRoot,ko=r.getBoundingRect,Lr=r.getTextContent,xt=r.isHiddenSubtree,Lo=r.matchAccessibilityRole,Go=r.setFocusIfFocusable,Mo=r.setupIntersectionObserver,xu=r.appendChild,Uo=r.appendChildToContainer,Gr=r.commitTextUpdate,Mr=r.commitMount,Yt=r.commitUpdate,Ur=r.insertBefore,xn=r.insertInContainerBefore,gr=r.removeChild,Pt=r.removeChildFromContainer,Ir=r.resetTextContent,Bt=r.hideInstance,Sn=r.hideTextInstance,$e=r.unhideInstance,Rn=r.unhideTextInstance,Et=r.clearContainer,Nn=r.cloneInstance,Ho=r.createContainerChildSet,To=r.appendChildToContainerChildSet,vn=r.finalizeContainerChildren,kn=r.replaceContainerChildren,Oo=r.cloneHiddenInstance,Jo=r.cloneHiddenTextInstance,At=r.canHydrateInstance,Su=r.canHydrateTextInstance,Ru=r.canHydrateSuspenseInstance,we=r.isSuspenseInstancePending,Hr=r.isSuspenseInstanceFallback,Tr=r.getSuspenseInstanceFallbackErrorDetails,Ln=r.registerSuspenseInstanceRetry,Wt=r.getNextHydratableSibling,Gn=r.getFirstHydratableChild,Mn=r.getFirstHydratableChildWithinContainer,Nu=r.getFirstHydratableChildWithinSuspenseInstance,vu=r.hydrateInstance,ku=r.hydrateTextInstance,Lu=r.hydrateSuspenseInstance,Gu=r.getNextHydratableInstanceAfterSuspenseInstance,Mu=r.commitHydratedContainer,Uu=r.commitHydratedSuspenseInstance,Hu=r.clearSuspenseBoundary,Tu=r.clearSuspenseBoundaryFromContainer,Ko=r.shouldDeleteUnhydratedTailInstances,Or=r.didNotMatchHydratedContainerTextInstance,Ou=r.didNotMatchHydratedTextInstance,Un;function bt(A){if(Un===void 0)try{throw Error()}catch(n){var e=n.stack.trim().match(/\n( *(at )?)/);Un=e&&e[1]||""}return`
2
+ import{B as Zl,C as ra,E as na,G as jl,H as $l,I as As,M as oa,N as ia,e as Ri,f as jI,g as ql,h as $I,i as Aa,j as ea,k as zl,m as Xl,n as ta}from"./chunk-54DE5T53.js";import{d as Si,k as XI,l as ZI}from"./chunk-6PA2GSCN.js";import{a as _l,b as _A,c as yc,d as H}from"./chunk-7BMOBFGJ.js";var Qa=_A(lA=>{"use strict";var ro=Symbol.for("react.element"),wc=Symbol.for("react.portal"),xc=Symbol.for("react.fragment"),Sc=Symbol.for("react.strict_mode"),Rc=Symbol.for("react.profiler"),Nc=Symbol.for("react.provider"),vc=Symbol.for("react.context"),kc=Symbol.for("react.forward_ref"),Lc=Symbol.for("react.suspense"),Gc=Symbol.for("react.memo"),Mc=Symbol.for("react.lazy"),ua=Symbol.iterator;function Uc(t){return t===null||typeof t!="object"?null:(t=ua&&t[ua]||t["@@iterator"],typeof t=="function"?t:null)}var ga={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ia=Object.assign,aa={};function en(t,r,o){this.props=t,this.context=r,this.refs=aa,this.updater=o||ga}en.prototype.isReactComponent={};en.prototype.setState=function(t,r){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,r,"setState")};en.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function Ba(){}Ba.prototype=en.prototype;function ts(t,r,o){this.props=t,this.context=r,this.refs=aa,this.updater=o||ga}var rs=ts.prototype=new Ba;rs.constructor=ts;Ia(rs,en.prototype);rs.isPureReactComponent=!0;var la=Array.isArray,Ea=Object.prototype.hasOwnProperty,ns={current:null},Ca={key:!0,ref:!0,__self:!0,__source:!0};function ca(t,r,o){var l,g={},E=null,I=null;if(r!=null)for(l in r.ref!==void 0&&(I=r.ref),r.key!==void 0&&(E=""+r.key),r)Ea.call(r,l)&&!Ca.hasOwnProperty(l)&&(g[l]=r[l]);var c=arguments.length-2;if(c===1)g.children=o;else if(1<c){for(var D=Array(c),y=0;y<c;y++)D[y]=arguments[y+2];g.children=D}if(t&&t.defaultProps)for(l in c=t.defaultProps,c)g[l]===void 0&&(g[l]=c[l]);return{$$typeof:ro,type:t,key:E,ref:I,props:g,_owner:ns.current}}function Hc(t,r){return{$$typeof:ro,type:t.type,key:r,ref:t.ref,props:t.props,_owner:t._owner}}function os(t){return typeof t=="object"&&t!==null&&t.$$typeof===ro}function Tc(t){var r={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,function(o){return r[o]})}var sa=/\/+/g;function es(t,r){return typeof t=="object"&&t!==null&&t.key!=null?Tc(""+t.key):r.toString(36)}function vi(t,r,o,l,g){var E=typeof t;(E==="undefined"||E==="boolean")&&(t=null);var I=!1;if(t===null)I=!0;else switch(E){case"string":case"number":I=!0;break;case"object":switch(t.$$typeof){case ro:case wc:I=!0}}if(I)return I=t,g=g(I),t=l===""?"."+es(I,0):l,la(g)?(o="",t!=null&&(o=t.replace(sa,"$&/")+"/"),vi(g,r,o,"",function(y){return y})):g!=null&&(os(g)&&(g=Hc(g,o+(!g.key||I&&I.key===g.key?"":(""+g.key).replace(sa,"$&/")+"/")+t)),r.push(g)),1;if(I=0,l=l===""?".":l+":",la(t))for(var c=0;c<t.length;c++){E=t[c];var D=l+es(E,c);I+=vi(E,r,o,D,g)}else if(D=Uc(t),typeof D=="function")for(t=D.call(t),c=0;!(E=t.next()).done;)E=E.value,D=l+es(E,c++),I+=vi(E,r,o,D,g);else if(E==="object")throw r=String(t),Error("Objects are not valid as a React child (found: "+(r==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":r)+"). If you meant to render a collection of children, use an array instead.");return I}function Ni(t,r,o){if(t==null)return t;var l=[],g=0;return vi(t,l,"","",function(E){return r.call(o,E,g++)}),l}function Oc(t){if(t._status===-1){var r=t._result;r=r(),r.then(function(o){(t._status===0||t._status===-1)&&(t._status=1,t._result=o)},function(o){(t._status===0||t._status===-1)&&(t._status=2,t._result=o)}),t._status===-1&&(t._status=0,t._result=r)}if(t._status===1)return t._result.default;throw t._result}var me={current:null},ki={transition:null},Jc={ReactCurrentDispatcher:me,ReactCurrentBatchConfig:ki,ReactCurrentOwner:ns};function fa(){throw Error("act(...) is not supported in production builds of React.")}lA.Children={map:Ni,forEach:function(t,r,o){Ni(t,function(){r.apply(this,arguments)},o)},count:function(t){var r=0;return Ni(t,function(){r++}),r},toArray:function(t){return Ni(t,function(r){return r})||[]},only:function(t){if(!os(t))throw Error("React.Children.only expected to receive a single React element child.");return t}};lA.Component=en;lA.Fragment=xc;lA.Profiler=Rc;lA.PureComponent=ts;lA.StrictMode=Sc;lA.Suspense=Lc;lA.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Jc;lA.act=fa;lA.cloneElement=function(t,r,o){if(t==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+t+".");var l=Ia({},t.props),g=t.key,E=t.ref,I=t._owner;if(r!=null){if(r.ref!==void 0&&(E=r.ref,I=ns.current),r.key!==void 0&&(g=""+r.key),t.type&&t.type.defaultProps)var c=t.type.defaultProps;for(D in r)Ea.call(r,D)&&!Ca.hasOwnProperty(D)&&(l[D]=r[D]===void 0&&c!==void 0?c[D]:r[D])}var D=arguments.length-2;if(D===1)l.children=o;else if(1<D){c=Array(D);for(var y=0;y<D;y++)c[y]=arguments[y+2];l.children=c}return{$$typeof:ro,type:t.type,key:g,ref:E,props:l,_owner:I}};lA.createContext=function(t){return t={$$typeof:vc,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},t.Provider={$$typeof:Nc,_context:t},t.Consumer=t};lA.createElement=ca;lA.createFactory=function(t){var r=ca.bind(null,t);return r.type=t,r};lA.createRef=function(){return{current:null}};lA.forwardRef=function(t){return{$$typeof:kc,render:t}};lA.isValidElement=os;lA.lazy=function(t){return{$$typeof:Mc,_payload:{_status:-1,_result:t},_init:Oc}};lA.memo=function(t,r){return{$$typeof:Gc,type:t,compare:r===void 0?null:r}};lA.startTransition=function(t){var r=ki.transition;ki.transition={};try{t()}finally{ki.transition=r}};lA.unstable_act=fa;lA.useCallback=function(t,r){return me.current.useCallback(t,r)};lA.useContext=function(t){return me.current.useContext(t)};lA.useDebugValue=function(){};lA.useDeferredValue=function(t){return me.current.useDeferredValue(t)};lA.useEffect=function(t,r){return me.current.useEffect(t,r)};lA.useId=function(){return me.current.useId()};lA.useImperativeHandle=function(t,r,o){return me.current.useImperativeHandle(t,r,o)};lA.useInsertionEffect=function(t,r){return me.current.useInsertionEffect(t,r)};lA.useLayoutEffect=function(t,r){return me.current.useLayoutEffect(t,r)};lA.useMemo=function(t,r){return me.current.useMemo(t,r)};lA.useReducer=function(t,r,o){return me.current.useReducer(t,r,o)};lA.useRef=function(t){return me.current.useRef(t)};lA.useState=function(t){return me.current.useState(t)};lA.useSyncExternalStore=function(t,r,o){return me.current.useSyncExternalStore(t,r,o)};lA.useTransition=function(){return me.current.useTransition()};lA.version="18.3.1"});var Z=_A((ip,Da)=>{"use strict";Da.exports=Qa()});var Na=_A((Hp,Mi)=>{Mi.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&Mi.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Mi.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var gs=_A((Tp,sn)=>{var kA=global.process,yr=function(t){return t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function"};yr(kA)?(va=_l("assert"),un=Na(),ka=/^win/i.test(kA.platform),uo=_l("events"),typeof uo!="function"&&(uo=uo.EventEmitter),kA.__signal_exit_emitter__?ie=kA.__signal_exit_emitter__:(ie=kA.__signal_exit_emitter__=new uo,ie.count=0,ie.emitted={}),ie.infinite||(ie.setMaxListeners(1/0),ie.infinite=!0),sn.exports=function(t,r){if(!yr(global.process))return function(){};va.equal(typeof t,"function","a callback must be provided for exit handler"),ln===!1&&ls();var o="exit";r&&r.alwaysLast&&(o="afterexit");var l=function(){ie.removeListener(o,t),ie.listeners("exit").length===0&&ie.listeners("afterexit").length===0&&Ui()};return ie.on(o,t),l},Ui=function(){!ln||!yr(global.process)||(ln=!1,un.forEach(function(r){try{kA.removeListener(r,Hi[r])}catch{}}),kA.emit=Ti,kA.reallyExit=ss,ie.count-=1)},sn.exports.unload=Ui,wr=function(r,o,l){ie.emitted[r]||(ie.emitted[r]=!0,ie.emit(r,o,l))},Hi={},un.forEach(function(t){Hi[t]=function(){if(yr(global.process)){var o=kA.listeners(t);o.length===ie.count&&(Ui(),wr("exit",null,t),wr("afterexit",null,t),ka&&t==="SIGHUP"&&(t="SIGINT"),kA.kill(kA.pid,t))}}}),sn.exports.signals=function(){return un},ln=!1,ls=function(){ln||!yr(global.process)||(ln=!0,ie.count+=1,un=un.filter(function(r){try{return kA.on(r,Hi[r]),!0}catch{return!1}}),kA.emit=Ga,kA.reallyExit=La)},sn.exports.load=ls,ss=kA.reallyExit,La=function(r){yr(global.process)&&(kA.exitCode=r||0,wr("exit",kA.exitCode,null),wr("afterexit",kA.exitCode,null),ss.call(kA,kA.exitCode))},Ti=kA.emit,Ga=function(r,o){if(r==="exit"&&yr(global.process)){o!==void 0&&(kA.exitCode=o);var l=Ti.apply(this,arguments);return wr("exit",kA.exitCode,null),wr("afterexit",kA.exitCode,null),l}else return Ti.apply(this,arguments)}):sn.exports=function(){return function(){}};var va,un,ka,uo,ie,Ui,wr,Hi,ln,ls,ss,La,Ti,Ga});var ja=_A(wA=>{"use strict";function ms(t,r){var o=t.length;t.push(r);A:for(;0<o;){var l=o-1>>>1,g=t[l];if(0<Ji(g,r))t[l]=r,t[o]=g,o=l;else break A}}function st(t){return t.length===0?null:t[0]}function Yi(t){if(t.length===0)return null;var r=t[0],o=t.pop();if(o!==r){t[0]=o;A:for(var l=0,g=t.length,E=g>>>1;l<E;){var I=2*(l+1)-1,c=t[I],D=I+1,y=t[D];if(0>Ji(c,o))D<g&&0>Ji(y,c)?(t[l]=y,t[D]=o,l=D):(t[l]=c,t[I]=o,l=I);else if(D<g&&0>Ji(y,o))t[l]=y,t[D]=o,l=D;else break A}}return r}function Ji(t,r){var o=t.sortIndex-r.sortIndex;return o!==0?o:t.id-r.id}typeof performance=="object"&&typeof performance.now=="function"?(Pa=performance,wA.unstable_now=function(){return Pa.now()}):(Ds=Date,Wa=Ds.now(),wA.unstable_now=function(){return Ds.now()-Wa});var Pa,Ds,Wa,ht=[],er=[],Sf=1,qe=null,Qe=3,Pi=!1,xr=!1,go=!1,_a=typeof setTimeout=="function"?setTimeout:null,qa=typeof clearTimeout=="function"?clearTimeout:null,ba=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function hs(t){for(var r=st(er);r!==null;){if(r.callback===null)Yi(er);else if(r.startTime<=t)Yi(er),r.sortIndex=r.expirationTime,ms(ht,r);else break;r=st(er)}}function Fs(t){if(go=!1,hs(t),!xr)if(st(ht)!==null)xr=!0,ws(ys);else{var r=st(er);r!==null&&xs(Fs,r.startTime-t)}}function ys(t,r){xr=!1,go&&(go=!1,qa(Io),Io=-1),Pi=!0;var o=Qe;try{for(hs(r),qe=st(ht);qe!==null&&(!(qe.expirationTime>r)||t&&!Za());){var l=qe.callback;if(typeof l=="function"){qe.callback=null,Qe=qe.priorityLevel;var g=l(qe.expirationTime<=r);r=wA.unstable_now(),typeof g=="function"?qe.callback=g:qe===st(ht)&&Yi(ht),hs(r)}else Yi(ht);qe=st(ht)}if(qe!==null)var E=!0;else{var I=st(er);I!==null&&xs(Fs,I.startTime-r),E=!1}return E}finally{qe=null,Qe=o,Pi=!1}}var Wi=!1,Ki=null,Io=-1,za=5,Xa=-1;function Za(){return!(wA.unstable_now()-Xa<za)}function ds(){if(Ki!==null){var t=wA.unstable_now();Xa=t;var r=!0;try{r=Ki(!0,t)}finally{r?so():(Wi=!1,Ki=null)}}else Wi=!1}var so;typeof ba=="function"?so=function(){ba(ds)}:typeof MessageChannel<"u"?(ps=new MessageChannel,Va=ps.port2,ps.port1.onmessage=ds,so=function(){Va.postMessage(null)}):so=function(){_a(ds,0)};var ps,Va;function ws(t){Ki=t,Wi||(Wi=!0,so())}function xs(t,r){Io=_a(function(){t(wA.unstable_now())},r)}wA.unstable_IdlePriority=5;wA.unstable_ImmediatePriority=1;wA.unstable_LowPriority=4;wA.unstable_NormalPriority=3;wA.unstable_Profiling=null;wA.unstable_UserBlockingPriority=2;wA.unstable_cancelCallback=function(t){t.callback=null};wA.unstable_continueExecution=function(){xr||Pi||(xr=!0,ws(ys))};wA.unstable_forceFrameRate=function(t){0>t||125<t?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):za=0<t?Math.floor(1e3/t):5};wA.unstable_getCurrentPriorityLevel=function(){return Qe};wA.unstable_getFirstCallbackNode=function(){return st(ht)};wA.unstable_next=function(t){switch(Qe){case 1:case 2:case 3:var r=3;break;default:r=Qe}var o=Qe;Qe=r;try{return t()}finally{Qe=o}};wA.unstable_pauseExecution=function(){};wA.unstable_requestPaint=function(){};wA.unstable_runWithPriority=function(t,r){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var o=Qe;Qe=t;try{return r()}finally{Qe=o}};wA.unstable_scheduleCallback=function(t,r,o){var l=wA.unstable_now();switch(typeof o=="object"&&o!==null?(o=o.delay,o=typeof o=="number"&&0<o?l+o:l):o=l,t){case 1:var g=-1;break;case 2:g=250;break;case 5:g=1073741823;break;case 4:g=1e4;break;default:g=5e3}return g=o+g,t={id:Sf++,callback:r,priorityLevel:t,startTime:o,expirationTime:g,sortIndex:-1},o>l?(t.sortIndex=o,ms(er,t),st(ht)===null&&t===st(er)&&(go?(qa(Io),Io=-1):go=!0,xs(Fs,o-l))):(t.sortIndex=g,ms(ht,t),xr||Pi||(xr=!0,ws(ys))),t};wA.unstable_shouldYield=Za;wA.unstable_wrapCallback=function(t){var r=Qe;return function(){var o=Qe;Qe=r;try{return t.apply(this,arguments)}finally{Qe=o}}}});var AB=_A((Zp,$a)=>{"use strict";$a.exports=ja()});var tB=_A((jp,eB)=>{eB.exports=function(r){var o={},l=Z(),g=AB(),E=Object.assign;function I(A){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+A,n=1;n<arguments.length;n++)e+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+A+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var c=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,D=Symbol.for("react.element"),y=Symbol.for("react.portal"),h=Symbol.for("react.fragment"),L=Symbol.for("react.strict_mode"),T=Symbol.for("react.profiler"),J=Symbol.for("react.provider"),X=Symbol.for("react.context"),b=Symbol.for("react.forward_ref"),Y=Symbol.for("react.suspense"),z=Symbol.for("react.suspense_list"),oA=Symbol.for("react.memo"),gA=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var mA=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var FA=Symbol.iterator;function yA(A){return A===null||typeof A!="object"?null:(A=FA&&A[FA]||A["@@iterator"],typeof A=="function"?A:null)}function KA(A){if(A==null)return null;if(typeof A=="function")return A.displayName||A.name||null;if(typeof A=="string")return A;switch(A){case h:return"Fragment";case y:return"Portal";case T:return"Profiler";case L:return"StrictMode";case Y:return"Suspense";case z:return"SuspenseList"}if(typeof A=="object")switch(A.$$typeof){case X:return(A.displayName||"Context")+".Consumer";case J:return(A._context.displayName||"Context")+".Provider";case b:var e=A.render;return A=A.displayName,A||(A=e.displayName||e.name||"",A=A!==""?"ForwardRef("+A+")":"ForwardRef"),A;case oA:return e=A.displayName||null,e!==null?e:KA(A.type)||"Memo";case gA:e=A._payload,A=A._init;try{return KA(A(e))}catch{}}return null}function ue(A){var e=A.type;switch(A.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return A=e.render,A=A.displayName||A.name||"",e.displayName||(A!==""?"ForwardRef("+A+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return KA(e);case 8:return e===L?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function ae(A){var e=A,n=A;if(A.alternate)for(;e.return;)e=e.return;else{A=e;do e=A,e.flags&4098&&(n=e.return),A=e.return;while(A)}return e.tag===3?n:null}function Jt(A){if(ae(A)!==A)throw Error(I(188))}function Kt(A){var e=A.alternate;if(!e){if(e=ae(A),e===null)throw Error(I(188));return e!==A?null:A}for(var n=A,i=e;;){var u=n.return;if(u===null)break;var s=u.alternate;if(s===null){if(i=u.return,i!==null){n=i;continue}break}if(u.child===s.child){for(s=u.child;s;){if(s===n)return Jt(u),A;if(s===i)return Jt(u),e;s=s.sibling}throw Error(I(188))}if(n.return!==i.return)n=u,i=s;else{for(var C=!1,d=u.child;d;){if(d===n){C=!0,n=u,i=s;break}if(d===i){C=!0,i=u,n=s;break}d=d.sibling}if(!C){for(d=s.child;d;){if(d===n){C=!0,n=s,i=u;break}if(d===i){C=!0,i=s,n=u;break}d=d.sibling}if(!C)throw Error(I(189))}}if(n.alternate!==i)throw Error(I(190))}if(n.tag!==3)throw Error(I(188));return n.stateNode.current===n?A:e}function nr(A){return A=Kt(A),A!==null?WA(A):null}function WA(A){if(A.tag===5||A.tag===6)return A;for(A=A.child;A!==null;){var e=WA(A);if(e!==null)return e;A=A.sibling}return null}function ye(A){if(A.tag===5||A.tag===6)return A;for(A=A.child;A!==null;){if(A.tag!==4){var e=ye(A);if(e!==null)return e}A=A.sibling}return null}var He=Array.isArray,Te=r.getPublicInstance,or=r.getRootHostContext,de=r.getChildHostContext,vr=r.prepareForCommit,kr=r.resetAfterCommit,Fn=r.createInstance,yt=r.appendInitialChild,ir=r.finalizeInitialChildren,ur=r.prepareUpdate,le=r.shouldSetTextContent,AA=r.createTextInstance,CA=r.scheduleTimeout,cA=r.cancelTimeout,eA=r.noTimeout,Oe=r.isPrimaryRenderer,bA=r.supportsMutation,wt=r.supportsPersistence,ee=r.supportsHydration,zA=r.getInstanceFromNode,lr=r.preparePortalMount,yn=r.getCurrentEventPriority,sr=r.detachDeletedInstance,je=r.supportsMicrotasks,wn=r.scheduleMicrotask,ve=r.supportsTestSelectors,vo=r.findFiberRoot,ko=r.getBoundingRect,Lr=r.getTextContent,xt=r.isHiddenSubtree,Lo=r.matchAccessibilityRole,Go=r.setFocusIfFocusable,Mo=r.setupIntersectionObserver,xu=r.appendChild,Uo=r.appendChildToContainer,Gr=r.commitTextUpdate,Mr=r.commitMount,Yt=r.commitUpdate,Ur=r.insertBefore,xn=r.insertInContainerBefore,gr=r.removeChild,Pt=r.removeChildFromContainer,Ir=r.resetTextContent,Bt=r.hideInstance,Sn=r.hideTextInstance,$e=r.unhideInstance,Rn=r.unhideTextInstance,Et=r.clearContainer,Nn=r.cloneInstance,Ho=r.createContainerChildSet,To=r.appendChildToContainerChildSet,vn=r.finalizeContainerChildren,kn=r.replaceContainerChildren,Oo=r.cloneHiddenInstance,Jo=r.cloneHiddenTextInstance,At=r.canHydrateInstance,Su=r.canHydrateTextInstance,Ru=r.canHydrateSuspenseInstance,we=r.isSuspenseInstancePending,Hr=r.isSuspenseInstanceFallback,Tr=r.getSuspenseInstanceFallbackErrorDetails,Ln=r.registerSuspenseInstanceRetry,Wt=r.getNextHydratableSibling,Gn=r.getFirstHydratableChild,Mn=r.getFirstHydratableChildWithinContainer,Nu=r.getFirstHydratableChildWithinSuspenseInstance,vu=r.hydrateInstance,ku=r.hydrateTextInstance,Lu=r.hydrateSuspenseInstance,Gu=r.getNextHydratableInstanceAfterSuspenseInstance,Mu=r.commitHydratedContainer,Uu=r.commitHydratedSuspenseInstance,Hu=r.clearSuspenseBoundary,Tu=r.clearSuspenseBoundaryFromContainer,Ko=r.shouldDeleteUnhydratedTailInstances,Or=r.didNotMatchHydratedContainerTextInstance,Ou=r.didNotMatchHydratedTextInstance,Un;function bt(A){if(Un===void 0)try{throw Error()}catch(n){var e=n.stack.trim().match(/\n( *(at )?)/);Un=e&&e[1]||""}return`
3
3
  `+Un+A}var Hn=!1;function Jr(A,e){if(!A||Hn)return"";Hn=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(e)if(e=function(){throw Error()},Object.defineProperty(e.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(e,[])}catch(M){var i=M}Reflect.construct(A,[],e)}else{try{e.call()}catch(M){i=M}A.call(e.prototype)}else{try{throw Error()}catch(M){i=M}A()}}catch(M){if(M&&i&&typeof M.stack=="string"){for(var u=M.stack.split(`
4
4
  `),s=i.stack.split(`
5
5
  `),C=u.length-1,d=s.length-1;1<=C&&0<=d&&u[C]!==s[d];)d--;for(;1<=C&&0<=d;C--,d--)if(u[C]!==s[d]){if(C!==1||d!==1)do if(C--,d--,0>d||u[C]!==s[d]){var w=`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-skill-manager",
3
- "version": "2.7.0",
3
+ "version": "2.8.0",
4
4
  "description": "Interactive TUI for managing installed skills for AI coding agents (Claude Code, Codex, OpenClaw, and more)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -22,6 +22,7 @@
22
22
  "build": "tsx scripts/build.ts",
23
23
  "build:site": "vite build --config website-src/vite.config.js",
24
24
  "preindex": "tsx scripts/preindex.ts",
25
+ "refresh:repo-bundles": "tsx scripts/refresh-repo-bundles.ts",
25
26
  "build:website": "tsx scripts/build-catalog.ts && npm run build:site",
26
27
  "lint:site": "eslint --config website-src/eslint.config.js 'website-src/src/**/*.{js,jsx}'",
27
28
  "prepublishOnly": "npm run build",
@@ -43,7 +44,8 @@
43
44
  "yaml": "^2.8.3"
44
45
  },
45
46
  "engines": {
46
- "node": ">=18"
47
+ "node": ">=18 <23",
48
+ "npm": ">=9"
47
49
  },
48
50
  "keywords": [
49
51
  "agent-skill-manager",
@@ -1,3 +0,0 @@
1
- import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
2
- import{readFile as g,writeFile as k,mkdir as x,copyFile as C}from"fs/promises";import{join as l,resolve as d,dirname as v}from"path";import{fileURLToPath as h}from"url";import{homedir as w}from"os";var p=!1,f=0;function O(e){p=e,e&&(f=performance.now())}function t(e){if(!p)return;let o=Math.round(performance.now()-f),a=globalThis.__CLI_NO_COLOR?`[verbose] +${o}ms`:`\x1B[2m[verbose] +${o}ms\x1B[0m`;console.error(`${a} ${e}`)}var j=h(import.meta.url),m=v(j),b=w(),i=l(b,".config","agent-skill-manager"),n=l(i,"config.json"),P=l(i,".skill-lock.json"),S=l(i,"skill-index"),y=[{name:"claude",label:"Claude Code",global:"~/.claude/skills",project:".claude/skills",enabled:!0},{name:"agents",label:"Agents",global:"~/.agents/skills",project:".agents/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:"openclaw",label:"OpenClaw",global:"~/.openclaw/skills",project:".openclaw/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:"hermes",label:"Hermes",global:"~/.hermes/skills",project:".hermes/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 c(){return{version:1,providers:y.map(e=>({...e})),customPaths:[],preferences:{defaultScope:"both",defaultSort:"name"}}}function E(){return n}function F(){return P}function G(){return S}function H(){return d(m,"..","data","skill-index")}function _(){return d(m,"..","data","skill-index-resources.json")}async function W(){let e=_(),o=await g(e,"utf-8");return JSON.parse(o)}function z(e){return e.startsWith("~/")?l(b,e.slice(2)):e.startsWith("/")?e:d(e)}function I(e){let o=c(),r=e.providers||[],a=new Set(r.map(s=>s.name));for(let s of o.providers)a.has(s.name)||r.push({...s});return{version:e.version??o.version,providers:r,customPaths:e.customPaths??[],preferences:{defaultScope:e.preferences?.defaultScope??o.preferences.defaultScope,defaultSort:e.preferences?.defaultSort??o.preferences.defaultSort,selectedTools:e.preferences?.selectedTools}}}async function A(){t(`config: checking ${n}`);let e;try{e=await g(n,"utf-8")}catch(o){if(o?.code==="ENOENT"){t("config: using defaults (file not found)");let r=c();return await u(r),r}throw o}try{let o=JSON.parse(e);return t(`config: loaded from ${n}`),I(o)}catch{let o=n+".bak";t(`config: parse error, backing up to ${o}`),await C(n,o),console.error(`Warning: Config file was corrupted. Backup saved to ${o}. Using defaults.`);let r=c();return await u(r),r}}async function u(e){await x(i,{recursive:!0}),await k(n,JSON.stringify(e,null,2)+`
3
- `,"utf-8")}async function J(e){let o=await A();o.preferences.selectedTools=e,await u(o)}export{O as a,t as b,c,E as d,F as e,G as f,H as g,_ as h,W as i,z as j,A as k,u as l,J as m};
@@ -1,19 +0,0 @@
1
- import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
2
- import{b as k,j as I}from"./chunk-GOI5LV72.js";import{readdir as N,stat as L,lstat as oe,readlink as Pe,readFile as W,realpath as Q}from"fs/promises";import{join as x,resolve as Z,basename as Ne}from"path";import{homedir as G}from"os";function J(e){let t={},o=e.split(`
3
- `),n=!1,r=!1,s=null,u=[],f="none",i=-1,p=null;function a(){if(s){let c=u.join(" ").trim();c&&(t[s]=c),s=null,u=[],f="none",i=-1}}for(let c of o){if(c.trim()==="---")if(r){a();break}else{r=!0,n=!0;continue}if(!n)continue;if(f!=="none"&&s){let m=c.replace(/^\s*/,""),g=c.length-m.length;if(g>0&&m.length>0){i===-1&&(i=g),u.push(m);continue}else{if(m.length===0)continue;a()}}if(p!==null){let m=c.match(/^\s+(\w[\w-]*):\s*(.*?)\s*$/);if(m){let g=m[1],b=m[2].replace(/^["']|["']$/g,"");b&&(t[`${p}.${g}`]=b);continue}if(c.trim().length>0)p=null;else continue}let $=c.match(/^(\w[\w-]*):\s*(.*?)\s*$/);if($){a();let m=$[1],g=$[2];if(g==="|"||g===">")s=m,u=[],f=g==="|"?"literal":"folded";else if(g==="|+"||g===">+"||g==="|-"||g===">-")s=m,u=[],f=g.startsWith("|")?"literal":"folded";else{let d=g.replace(/^["']|["']$/g,"");d?t[m]=d:p=m}}}return a(),t}function U(e){return e["metadata.version"]||e.version||"0.0.0"}function X(e){let t=e["allowed-tools"]||"";return t.trim()?t.split(/[\s,]+/).map(o=>o.trim()).filter(Boolean):[]}function Y(e){if(!e)return 0;let t=e.split(/\s+/).map(n=>n.trim()).filter(Boolean).length,o=0;for(let n=0;n<e.length;n++)e.charCodeAt(n)===32&&o++;return t+o}function _(e){return!Number.isFinite(e)||e<0?"~0 tokens":e<1e3?`~${e} tokens`:e<1e4?`~${(e/1e3).toFixed(1).replace(/\.0$/,"")}k tokens`:`~${Math.round(e/1e3)}k tokens`}var Ie=x(G(),".claude","plugins","marketplaces"),Le=x(G(),".codex","plugins","cache"),Te=x(G(),".codex","config.toml"),ht=x(G(),".agents","plugins","marketplace.json");function Me(e,t){let o=[];for(let n of e.providers){if(!n.enabled){k(`scan: skipping disabled provider "${n.name}"`);continue}if(t==="global"||t==="both"){let r=I(n.global);k(`scan: adding location ${r} (${n.label}, global)`),o.push({dir:r,location:`global-${n.name}`,scope:"global",providerName:n.name,providerLabel:n.label})}if(t==="project"||t==="both"){let r=I(n.project);k(`scan: adding location ${r} (${n.label}, project)`),o.push({dir:r,location:`project-${n.name}`,scope:"project",providerName:n.name,providerLabel:n.label})}}for(let n of e.customPaths)if(t===n.scope||t==="both"){let r=I(n.path);k(`scan: adding custom location ${r} (${n.label}, ${n.scope})`),o.push({dir:r,location:`${n.scope}-custom`,scope:n.scope,providerName:"custom",providerLabel:n.label})}return o}async function ee(e){try{return(await N(e,{recursive:!0})).length}catch{return 0}}async function Ee(e){let t=[];k(`scanning: ${e.dir} (${e.location})`);let o;try{o=await N(e.dir)}catch{return k(`scanning: ${e.dir} \u2014 not found, skipping`),t}for(let n of o){let r=x(e.dir,n);try{if(!(await L(r)).isDirectory()){k(` skip: "${n}" \u2014 not a directory`);continue}}catch{k(` skip: "${n}" \u2014 stat failed`);continue}let s=x(r,"SKILL.md"),u;try{u=await W(s,"utf-8")}catch{k(` skip: "${n}" \u2014 no SKILL.md`);continue}let f=J(u),i=!1,p=null;try{(await oe(r)).isSymbolicLink()&&(i=!0,p=await Pe(r))}catch{}let a=Z(r),c;try{c=await Q(r)}catch{c=a}t.push({name:f.name||n,version:U(f),description:(f.description||"").replace(/\s*\n\s*/g," ").trim(),creator:f["metadata.creator"]||"",license:(f.license||"").trim(),compatibility:(f.compatibility||"").trim(),allowedTools:X(f),effort:f.effort||f["metadata.effort"]||void 0,dirName:n,path:a,originalPath:r,location:e.location,scope:e.scope,provider:e.providerName,providerLabel:e.providerLabel,isSymlink:i,symlinkTarget:p,realPath:c,tokenCount:Y(u)})}return k(`found ${t.length} skill(s) in ${e.dir}`),t}async function re(e){let t=[],o;try{o=await N(e)}catch{return t}for(let n of o){let r=x(e,n),s;try{s=await oe(r)}catch{continue}if(!s.isSymbolicLink()&&s.isDirectory()){let u=x(r,"SKILL.md");try{await L(u),t.push(r)}catch{let f=await re(r);t.push(...f)}}}return t}async function Re(e){let t=e??Ie,o=[];k(`scan: checking plugin marketplaces at ${t}`);let n;try{n=await N(t)}catch{return k("scan: plugin marketplaces dir not found, skipping"),o}for(let r of n){let s=x(t,r),u;try{u=await L(s)}catch{continue}if(!u.isDirectory())continue;k(`scan: scanning marketplace "${r}"`);let f=await re(s);for(let i of f){let p=x(i,"SKILL.md"),a;try{a=await W(p,"utf-8")}catch{continue}let c=J(a),$=Ne(i),m=Z(i),g;try{g=await Q(i)}catch{g=m}o.push({name:c.name||$,version:U(c),description:(c.description||"").replace(/\s*\n\s*/g," ").trim(),creator:c["metadata.creator"]||"",license:(c.license||"").trim(),compatibility:(c.compatibility||"").trim(),allowedTools:X(c),effort:c.effort||c["metadata.effort"]||void 0,dirName:$,path:m,originalPath:i,location:`global-plugin-${r}`,scope:"global",provider:"plugin",providerLabel:`Plugin (${r})`,isSymlink:!1,symlinkTarget:null,realPath:g,marketplace:r,tokenCount:Y(a)})}}return k(`scan: found ${o.length} plugin marketplace skill(s)`),o}function Ae(e){let t=new Map,o=null;for(let n of e.split(`
4
- `)){let r=n.trim(),s=r.match(/^\[plugins\.([^\]]+)\]$/);if(s){o=s[1].trim().replace(/^["']|["']$/g,"");continue}if(r.startsWith("[")){o=null;continue}if(o&&r.startsWith("enabled")){let u=r.match(/^enabled\s*=\s*(true|false)/i);u&&t.set(o,u[1].toLowerCase()==="true")}}return t}async function je(e){let t=e??Te;try{let o=await W(t,"utf-8");return Ae(o)}catch{return k(`codex: config.toml not found at ${t}, skipping enabled check`),new Map}}async function De(e,t){let o=e??Le,n=[];k(`codex: checking plugin cache at ${o}`);let r;try{r=await N(o)}catch{return k("codex: plugin cache dir not found, skipping"),n}let s=await je(t);for(let u of r){let f=x(o,u),i;try{i=await L(f)}catch{continue}if(!i.isDirectory())continue;let p;try{p=await N(f)}catch{continue}for(let a of p){let c=x(f,a),$;try{$=await L(c)}catch{continue}if(!$.isDirectory())continue;let m;try{m=await N(c)}catch{continue}let g=(await Promise.all(m.map(async y=>{try{return(await L(x(c,y))).isDirectory()?y:null}catch{return null}}))).filter(y=>y!==null);if(g.length===0)continue;let d=g.sort(se).at(-1),b=x(c,d),w=x(b,".codex-plugin","plugin.json"),S;try{let y=await W(w,"utf-8");S=JSON.parse(y)}catch{k(`codex: no valid plugin.json at ${w}, skipping`);continue}let C=Z(b),P;try{P=await Q(b)}catch{P=C}let E=S.interface?.displayName||S.name||a,R=S.version||d,A=(S.description||"").replace(/\s*\n\s*/g," ").trim(),v=s.has(a)?s.get(a):!0;n.push({name:E,version:R,description:A,creator:"",license:"",compatibility:"",allowedTools:[],dirName:a,path:C,originalPath:b,location:`global-codex-plugin-${u}`,scope:"global",provider:"codex-plugin",providerLabel:`Codex Plugin (${u})`,isSymlink:!1,symlinkTarget:null,realPath:P,marketplace:u,codexPlugin:{category:S.interface?.category,hasMcpConfig:S.mcp!=null&&Object.keys(S.mcp).length>0,pluginName:a,pluginVersion:d,enabled:v}})}}return k(`codex: found ${n.length} plugin(s) in cache`),n}async function $t(e,t,o,n){let r=Me(e,t),s=t==="global"||t==="both",[u,f,i]=await Promise.all([Promise.all(r.map(Ee)),s?Re(o):Promise.resolve([]),s?De(n):Promise.resolve([])]),p=u.flat(),a=new Set(p.map($=>$.realPath)),c=new Set(p.map($=>$.name.toLowerCase()));for(let $ of f)!a.has($.realPath)&&!c.has($.name.toLowerCase())&&(p.push($),a.add($.realPath),c.add($.name.toLowerCase()));for(let $ of i)!a.has($.realPath)&&!c.has($.name.toLowerCase())&&(p.push($),a.add($.realPath),c.add($.name.toLowerCase()));return p}function bt(e,t){if(!t.trim())return e;let o=t.toLowerCase();return e.filter(n=>n.name.toLowerCase().includes(o)||n.description.toLowerCase().includes(o)||n.creator.toLowerCase().includes(o)||n.effort&&n.effort.toLowerCase().includes(o)||n.location.toLowerCase().includes(o)||n.providerLabel.toLowerCase().includes(o))}function se(e,t){let o=e.split("."),n=t.split("."),r=Math.max(o.length,n.length);for(let s=0;s<r;s++){let u=parseInt(o[s]??"0",10),f=parseInt(n[s]??"0",10);if(isNaN(u)||isNaN(f))return e.localeCompare(t);if(u!==f)return u-f}return 0}function vt(e,t){let o=[...e];switch(t){case"name":o.sort((n,r)=>n.name.localeCompare(r.name));break;case"version":o.sort((n,r)=>se(n.version,r.version));break;case"location":o.sort((n,r)=>n.location.localeCompare(r.location));break}return o}import{rm as te,readFile as ae,writeFile as Fe,access as Oe,lstat as _e,symlink as We}from"fs/promises";import{join as ie,resolve as T,dirname as le,relative as Ge}from"path";import{homedir as Be}from"os";var Ve=Be();function He(e,t){let o={directories:[],ruleFiles:[],agentsBlocks:[]};o.directories.push({path:e.originalPath,isSymlink:e.isSymlink});let n=e.dirName;if(e.scope==="project"&&(o.ruleFiles.push(T(".cursor","rules",`${n}.mdc`),T(".windsurf","rules",`${n}.md`),T(".github","instructions",`${n}.instructions.md`)),o.agentsBlocks.push({file:T("AGENTS.md"),skillName:n})),e.scope==="global"){for(let u of t.providers){if(!u.enabled)continue;let f=I(u.global),i=ie(le(f),"AGENTS.md");o.agentsBlocks.push({file:i,skillName:n})}let r=ie(Ve,".codex","AGENTS.md");o.agentsBlocks.some(u=>u.file===r)||o.agentsBlocks.push({file:r,skillName:n})}return o}function Ct(e,t,o){let n=t.filter(i=>i.dirName===e);if(n.length===0)return{directories:[],ruleFiles:[],agentsBlocks:[]};let r={directories:[],ruleFiles:[],agentsBlocks:[]},s=new Set,u=new Set,f=new Set;for(let i of n){let p=He(i,o);for(let a of p.directories)s.has(a.path)||(s.add(a.path),r.directories.push(a));for(let a of p.ruleFiles)u.has(a)||(u.add(a),r.ruleFiles.push(a));for(let a of p.agentsBlocks){let c=`${a.file}::${a.skillName}`;f.has(c)||(f.add(c),r.agentsBlocks.push(a))}}return r}async function j(e){try{return await Oe(e),!0}catch{return!1}}async function qe(e,t){if(!await j(e))return;let o=await ae(e,"utf-8");for(let n of["agent-skill-manager","skill-manager","pskills"]){let r=`<!-- ${n}: ${t} -->`,s=`<!-- /${n}: ${t} -->`,u=o.indexOf(r),f=o.indexOf(s);if(u===-1||f===-1)continue;let i=u;i>0&&o[i-1]===`
5
- `&&i--;let a=f+s.length;a<o.length&&o[a]===`
6
- `&&a++,o=o.slice(0,i)+o.slice(a)}await Fe(e,o,"utf-8")}async function Pt(e,t){let o=[];for(let n of e.directories)try{if(n.isSymlink?(await te(n.path),o.push(`Removed symlink: ${n.path}`)):(await te(n.path,{recursive:!0,force:!0}),o.push(`Removed directory: ${n.path}`)),t&&T(n.path)!==T(t)){let r=le(n.path),s=Ge(r,t);await We(s,n.path,"dir"),o.push(`Created symlink: ${n.path} -> ${s}`)}}catch(r){o.push(`Failed to remove ${n.path}: ${r.message}`)}for(let n of e.ruleFiles)if(await j(n))try{await te(n),o.push(`Removed rule file: ${n}`)}catch(r){o.push(`Failed to remove ${n}: ${r.message}`)}for(let n of e.agentsBlocks)try{await qe(n.file,n.skillName),o.push(`Cleaned AGENTS.md block in: ${n.file}`)}catch(r){o.push(`Failed to clean AGENTS.md block: ${r.message}`)}return o}async function Nt(e){let t=[];for(let o of e.directories)if(await j(o.path)){let r=(await _e(o.path)).isSymbolicLink()?"symlink":"directory";t.push(`${o.path} (${r})`)}for(let o of e.ruleFiles)await j(o)&&t.push(o);for(let o of e.agentsBlocks)if(await j(o.file)){let n=await ae(o.file,"utf-8");(n.includes(`<!-- agent-skill-manager: ${o.skillName} -->`)||n.includes(`<!-- skill-manager: ${o.skillName} -->`)||n.includes(`<!-- pskills: ${o.skillName} -->`))&&t.push(`${o.file} (AGENTS.md block)`)}return t}var h=()=>!(process.env.NO_COLOR!==void 0||globalThis.__CLI_NO_COLOR||!process.stdout.isTTY),l={bold:e=>h()?`\x1B[1m${e}\x1B[0m`:e,cyan:e=>h()?`\x1B[36m${e}\x1B[0m`:e,green:e=>h()?`\x1B[32m${e}\x1B[0m`:e,yellow:e=>h()?`\x1B[33m${e}\x1B[0m`:e,dim:e=>h()?`\x1B[2m${e}\x1B[0m`:e,white:e=>h()?`\x1B[37m${e}\x1B[0m`:e,red:e=>h()?`\x1B[31m${e}\x1B[0m`:e,blue:e=>h()?`\x1B[34m${e}\x1B[0m`:e,blueBold:e=>h()?`\x1B[34;1m${e}\x1B[0m`:e,magenta:e=>h()?`\x1B[35m${e}\x1B[0m`:e,bgDim:e=>h()?`\x1B[48;5;236m${e}\x1B[0m`:e,bgRed:e=>h()?`\x1B[41m\x1B[37m\x1B[1m${e}\x1B[0m`:e,bgYellow:e=>h()?`\x1B[43m\x1B[30m\x1B[1m${e}\x1B[0m`:e,bgGreen:e=>h()?`\x1B[42m\x1B[30m\x1B[1m${e}\x1B[0m`:e,bgCyan:e=>h()?`\x1B[46m\x1B[30m\x1B[1m${e}\x1B[0m`:e};function D(e){if(!e)return"";switch(e.toLowerCase()){case"low":return l.green(e);case"medium":return l.yellow(e);case"high":return l.red(e);case"max":return l.magenta(e);default:return e}}var ce={claude:l.blueBold,codex:l.cyan,"codex-plugin":l.cyan,openclaw:l.yellow,agents:l.green,custom:l.magenta,cursor:l.blue,windsurf:l.cyan,cline:l.green,roocode:l.magenta,continue:l.yellow,copilot:l.white,aider:l.red,opencode:l.cyan,zed:l.blue,augment:l.green,amp:l.yellow};function B(e,t){return(ce[e]||l.dim)(t)}function V(e,t){return h()?(ce[e]||l.dim)(`[${t}]`):`[${t}]`}function M(e){let t=process.env.HOME||process.env.USERPROFILE||"";return t&&e.startsWith(t)?"~"+e.slice(t.length):e}function Mt(e){if(e.length===0)return"No skills found.";let t=["Name","Version","Creator","Effort","Tool","Scope","Type","Path"],o=e.map(i=>[i.name,i.version,i.creator||"\u2014",i.effort||"\u2014",i.providerLabel,i.scope,i.isSymlink?"symlink":"directory",M(i.path)]),n=t.map((i,p)=>Math.max(i.length,...o.map(a=>a[p].length))),r=(i,p)=>i.padEnd(p),s=t.map((i,p)=>r(i,n[p])).join(" "),u=n.map(i=>"-".repeat(i)).join("--"),f=o.map(i=>i.map((p,a)=>r(p,n[a])).join(" "));return[h()?l.bold(s):s,u,...f].join(`
7
- `)}function F(e){let t=new Map;for(let n of e){let r=`${n.dirName}||${n.scope}`,s=t.get(r)??[];s.push(n),t.set(r,s)}let o=[];for(let[,n]of t){let r=n[0],s=new Set(n.map(f=>f.scope)),u=new Set(n.map(f=>f.isSymlink?"symlink":"directory"));o.push({name:r.name,version:r.version,creator:r.creator||"",effort:r.effort||"",tokens:typeof r.tokenCount=="number"?_(r.tokenCount):"",providers:n.map(f=>({provider:f.provider,label:f.providerLabel})),scope:s.size>1?"mixed":r.scope,type:u.size>1?"mixed":r.isSymlink?"symlink":"directory",path:M(r.path),warningCount:n.reduce((f,i)=>f+(i.warnings?.length??0),0)})}return o}var Et=50;function Rt(e,t={}){let o=t.topN??5,n=t.showHint??!0;if(e.length===0)return"No skills found.";let r=[],u=F(e).length,f=e.length,i=new Set(e.map(d=>d.provider)),p=e.filter(d=>d.scope==="global").length,a=e.filter(d=>d.scope==="project").length,c=`${f} skills (${u} unique) across ${i.size} tools | ${p} global, ${a} project`;r.push(h()?l.bold(c):c),r.push("");let $=new Map;for(let d of e){let b=$.get(d.provider)??{label:d.providerLabel,count:0};b.count+=1,$.set(d.provider,b)}let m=[...$.entries()].sort((d,b)=>b[1].count-d[1].count).slice(0,o);r.push(h()?l.bold("Top tools:"):"Top tools:");for(let[d,{label:b,count:w}]of m){let S=h()?B(d,`[${b}]`):`[${b}]`;r.push(` ${S} ${w} skill${w===1?"":"s"}`)}r.push(""),r.push(h()?l.bold("Scopes:"):"Scopes:"),r.push(` global ${p} skill${p===1?"":"s"}`),r.push(` project ${a} skill${a===1?"":"s"}`);let g=new Map;for(let d of e)d.effort&&g.set(d.effort,(g.get(d.effort)??0)+1);if(g.size>0){let d=[...g.entries()].sort((b,w)=>w[1]-b[1]).slice(0,o);r.push(""),r.push(h()?l.bold("Top efforts:"):"Top efforts:");for(let[b,w]of d){let S=D(b),C=Math.max(0,6-b.length);r.push(` ${S}${" ".repeat(C)} ${w} skill${w===1?"":"s"}`)}}if(n){r.push("");let d="Tip: refine with `asm list -p <tool>`, `asm search <query>`, or `asm list --compact`";r.push(h()?l.dim(d):d)}return r.join(`
8
- `)}function Ke(e){if(e.length===0)return"No skills found.";let t=F(e),o=[],n=Math.max(4,...t.map(m=>m.name.length)),r=Math.max(7,...t.map(m=>m.version.length)),s=t.map(m=>m.providers.map(g=>V(g.provider,g.label)).join(" ")),u=t.map(m=>m.providers.map(g=>`[${g.label}]`).join(" ")),f=Math.max(5,...u.map(m=>m.length)),i=7,p=(m,g)=>m.padEnd(g);for(let m=0;m<t.length;m++){let g=t[m],d=p(g.name,n),b=l.dim(p(g.version,r)),w=f-u[m].length,S=s[m]+" ".repeat(Math.max(0,w)),C=l.dim(p(g.scope,i));o.push(`${d} ${b} ${S} ${C}`)}o.push("");let a=e.length,c=t.length,$=`${a} skills (${c} unique)`;return o.push(l.dim($)),o.join(`
9
- `)}function At(e,t){if(e.length===0)return"No skills found.";let o=new Map,n=p=>{switch(t){case"tool":return[p.providerLabel];case"scope":return[p.scope];case"effort":return[p.effort&&p.effort.length>0?p.effort:"(unset)"]}};for(let p of e)for(let a of n(p)){let c=o.get(a)??[];c.push(p),o.set(a,c)}let r=[...o.entries()].sort((p,a)=>a[1].length!==p[1].length?a[1].length-p[1].length:p[0].localeCompare(a[0])),s=[];for(let[p,a]of r){let c=`${p} (${a.length})`;s.push(h()?l.bold(c):c);let g=Ke(a).split(`
10
- `).slice(0,-2).filter(d=>d.length>0).map(d=>` ${d}`);s.push(...g),s.push("")}let u=e.length,f=F(e).length,i=`${u} skills (${f} unique), grouped by ${t}`;return s.push(l.dim(i)),s.join(`
11
- `)}function jt(e,t){if(!Number.isFinite(t)||t<=0||e.length<=t)return{skills:e,hint:""};let o=e.slice(0,t),n=e.length-t,r=l.dim(`... ${n} more not shown. Re-run with --limit ${e.length} (or 0) to see all, or refine with -p <tool>.`);return{skills:o,hint:r}}function Dt(e){if(e.length===0)return"No skills found.";let t=F(e),o=[],n=Math.max(4,...t.map(v=>v.name.length)),r=Math.max(7,...t.map(v=>v.version.length)),s=Math.max(7,...t.map(v=>Math.min((v.creator||"\u2014").length,15))),u=Math.max(6,...t.map(v=>(v.effort||"\u2014").length)),f=t.some(v=>v.tokens.length>0),i=f?Math.max(6,...t.map(v=>(v.tokens||"\u2014").length)):0,p=7,a=9,c=t.map(v=>v.providers.map(y=>V(y.provider,y.label)).join(" ")),$=t.map(v=>v.providers.map(y=>`[${y.label}]`).join(" ")),m=Math.max(9,...$.map(v=>v.length)),g=(v,y)=>v.padEnd(y),d=f?` ${g("Tokens",i)}`:"",b=`${g("Name",n)} ${g("Version",r)} ${g("Creator",s)} ${g("Effort",u)}${d} ${g("Tools",m)} ${g("Scope",p)} ${g("Type",a)}`;o.push(h()?l.bold(b):b);let w=f?` ${"-".repeat(i)}`:"";o.push(`${"-".repeat(n)} ${"-".repeat(r)} ${"-".repeat(s)} ${"-".repeat(u)}${w} ${"-".repeat(m)} ${"-".repeat(p)} ${"-".repeat(a)}`);for(let v=0;v<t.length;v++){let y=t[v],O=g(y.name,n),H=g(y.version,r),q=(y.creator||"\u2014").slice(0,15),K=g(q,s),z=y.effort||"\u2014",$e=y.effort?D(y.effort):"\u2014",be=u-z.length,ve=$e+" ".repeat(Math.max(0,be)),ye=f?` ${g(y.tokens||"\u2014",i)}`:"",ke=m-$[v].length,Se=c[v]+" ".repeat(Math.max(0,ke)),we=g(y.scope,p),xe=g(y.type,a),Ce=y.warningCount>0?` ${l.yellow(`(${y.warningCount} warning${y.warningCount>1?"s":""})`)}`:"";o.push(`${O} ${H} ${K} ${ve}${ye} ${Se} ${we} ${xe}${Ce}`)}let S=t.length,C=e.length,P=new Set(e.map(v=>v.provider)),E=e.filter(v=>v.scope==="global").length,R=e.filter(v=>v.scope==="project").length;o.push("");let A=`${C} skills (${S} unique) across ${P.size} tools | ${E} global, ${R} project`;return o.push(l.dim(A)),o.join(`
12
- `)}function ze(e,t){if(!h()||!t)return e;let o=e.toLowerCase().indexOf(t.toLowerCase());if(o===-1)return e;let n=e.slice(0,o),r=e.slice(o,o+t.length),s=e.slice(o+t.length);return`${n}${l.bold(l.yellow(r))}${s}`}function Ft(e,t){if(e.length===0)return`No skills matching "${t}". Try ${l.bold("asm list")} to see all skills.`;let o=F(e),n=[];n.push(l.dim(`Found ${e.length} result${e.length===1?"":"s"} (${o.length} unique) matching "${t}"`)+`
13
- `);let r=Math.max(4,...o.map(d=>d.name.length)),s=Math.max(7,...o.map(d=>d.version.length)),u=Math.max(7,...o.map(d=>Math.min((d.creator||"\u2014").length,15))),f=Math.max(6,...o.map(d=>(d.effort||"\u2014").length)),i=o.map(d=>d.providers.map(b=>V(b.provider,b.label)).join(" ")),p=o.map(d=>d.providers.map(b=>`[${b.label}]`).join(" ")),a=Math.max(9,...p.map(d=>d.length)),c=7,$=9,m=(d,b)=>d.padEnd(b),g=`${m("Name",r)} ${m("Version",s)} ${m("Creator",u)} ${m("Effort",f)} ${m("Tools",a)} ${m("Scope",c)} ${m("Type",$)}`;n.push(h()?l.bold(g):g),n.push(`${"-".repeat(r)} ${"-".repeat(s)} ${"-".repeat(u)} ${"-".repeat(f)} ${"-".repeat(a)} ${"-".repeat(c)} ${"-".repeat($)}`);for(let d=0;d<o.length;d++){let b=o[d],w=ze(b.name,t),S=r-b.name.length,C=w+" ".repeat(Math.max(0,S)),P=m(b.version,s),E=(b.creator||"\u2014").slice(0,15),R=m(E,u),A=b.effort||"\u2014",v=b.effort?D(b.effort):"\u2014",y=f-A.length,O=v+" ".repeat(Math.max(0,y)),H=a-p[d].length,q=i[d]+" ".repeat(Math.max(0,H)),K=m(b.scope,c),z=m(b.type,$);n.push(`${C} ${P} ${R} ${O} ${q} ${K} ${z}`)}return n.join(`
14
- `)}function Ot(e,t){if(e.length===0)return"";let o=[];o.push(l.dim(`Found ${e.length} available skill${e.length===1?"":"s"} matching "${t}"`)+`
15
- `);for(let n of e){o.push(` ${l.dim("To install:")} ${l.green(`asm install ${n.installUrl}`)}`);let r=n.verified?l.blue(" [verified]"):"";o.push(` ${l.cyan(n.name)} ${l.dim(`v${n.version}`)}${r} ${l.dim(`[${n.repoLabel}]`)}`);for(let s of ge(n.description,76))o.push(` ${s}`);o.push("")}return o.join(`
16
- `)}var pe=new Set(["Bash","Write","Edit","NotebookEdit"]),Je=new Set(["WebFetch","WebSearch"]);function Ue(e){return pe.has(e)?l.red(e):Je.has(e)?l.yellow(e):l.green(e)}function ue(e){return e.length===0?"":e.map(Ue).join(" ")}function fe(e){let t=e.filter(n=>pe.has(n));if(t.length===0)return null;let o=[];return t.includes("Bash")&&o.push("execute shell commands"),(t.includes("Write")||t.includes("Edit")||t.includes("NotebookEdit"))&&o.push("modify files"),`This skill can ${o.join(" and ")}`}async function Xe(e){let t=[],o=(s,u)=>`${h()?l.bold(s+":"):s+":"} ${u}`;t.push(o("Name",e.name)),t.push(o("Version",e.version)),t.push(o("Creator",e.creator||"\u2014")),t.push(o("License",e.license||"\u2014")),e.compatibility&&t.push(o("Compatibility",e.compatibility)),e.effort&&t.push(o("Effort",D(e.effort))),t.push(o("Tool",e.providerLabel)),t.push(o("Scope",e.scope)),t.push(o("Location",e.location)),t.push(o("Path",M(e.path))),t.push(o("Type",e.isSymlink?"symlink":"directory")),e.isSymlink&&e.symlinkTarget&&t.push(o("Symlink Target",e.symlinkTarget));let n=e.fileCount??await ee(e.path);if(t.push(o("File Count",String(n))),typeof e.tokenCount=="number"&&t.push(o("Est. Tokens",_(e.tokenCount))),e.description&&(t.push(""),t.push(o("Description",e.description))),e.allowedTools&&e.allowedTools.length>0){t.push(""),t.push(h()?l.bold("Allowed Tools:"):"Allowed Tools:"),t.push(` ${ue(e.allowedTools)}`);let s=fe(e.allowedTools);s&&t.push(` ${h()?l.yellow("\u26A0"):"!"} ${s}`)}t.push(""),t.push(h()?l.bold("Eval Score:"):"Eval Score:");let r=de(e);if(r.length>0){let s=r.length>1;for(let u of r){let f=me(u.overallScore),i=u.providerId?`${u.providerId}@${u.providerVersion??"?"}`:"quality";s?t.push(` ${i}: ${f} / 100 (${u.grade})`):t.push(` Overall: ${f} / 100 (${u.grade})`);let p=u.evaluatedVersion?` \u2014 version ${u.evaluatedVersion}`:"";if(t.push(` ${h()?l.dim("Evaluated:"):"Evaluated:"} ${u.evaluatedAt}${p}`),u.categories.length>0){s?t.push(h()?l.dim(` Categories (${i}):`):` Categories (${i}):`):t.push(h()?l.dim(" Categories:"):" Categories:");for(let a of u.categories)t.push(` ${a.name.padEnd(28)} ${a.score}/${a.max}`)}}}else t.push(h()?l.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(h()?l.bold("Warnings:"):"Warnings:");for(let s of e.warnings)t.push(` ${h()?l.yellow("!"):"!"} [${s.category}] ${s.message}`)}return t.join(`
17
- `)}function me(e){let t=String(e);return h()?e>=90?l.green(t):e>=80?l.cyan(t):e>=65?l.yellow(t):l.red(t):t}function de(e){return e.evalSummaries&&Object.keys(e.evalSummaries).length>0?Object.values(e.evalSummaries).sort((o,n)=>{let r=o.providerId??"quality",s=n.providerId??"quality";return r==="quality"&&s!=="quality"?-1:s==="quality"&&r!=="quality"?1:r.localeCompare(s)}):e.evalSummary?[e.evalSummary]:[]}async function _t(e){if(e.length===0)return"No skills found.";if(e.length===1)return Xe(e[0]);let t=[],o=(a,c)=>`${h()?l.bold(a+":"):a+":"} ${c}`,n=e[0],r=n.name;t.push(""),t.push(h()?l.blueBold(` ${r}`):` ${r}`),t.push(h()?l.dim(" "+"-".repeat(r.length+2)):" "+"-".repeat(r.length+2)),t.push(""),t.push(o(" Version",n.version)),t.push(o(" Creator",n.creator||"\u2014")),t.push(o(" License",n.license||"\u2014")),n.compatibility&&t.push(o(" Compatibility",n.compatibility)),n.effort&&t.push(o(" Effort",D(n.effort)));let s=n.fileCount??await ee(n.path);t.push(o(" File Count",String(s))),typeof n.tokenCount=="number"&&t.push(o(" Est. Tokens",_(n.tokenCount)));let u=e.map(a=>V(a.provider,a.providerLabel)).join(" ");t.push(o(" Installed in",u)),t.push(""),t.push(h()?l.bold(" Eval Score:"):" Eval Score:");let f=de(n);if(f.length>0){let a=f.length>1;for(let c of f){let $=me(c.overallScore),m=c.providerId?`${c.providerId}@${c.providerVersion??"?"}`:"quality";a?t.push(` ${m}: ${$} / 100 (${c.grade})`):t.push(` Overall: ${$} / 100 (${c.grade})`);let g=c.evaluatedVersion?` \u2014 version ${c.evaluatedVersion}`:"";if(t.push(` ${h()?l.dim("Evaluated:"):"Evaluated:"} ${c.evaluatedAt}${g}`),c.categories.length>0)for(let d of c.categories)t.push(` ${d.name.padEnd(28)} ${d.score}/${d.max}`)}}else t.push(h()?l.dim(` Not available \u2014 run \`asm eval ${n.path}\` to generate one.`):` Not available \u2014 run \`asm eval ${n.path}\` to generate one.`);if(n.description){t.push(""),t.push(h()?l.bold(" Description:"):" Description:");let a=ge(n.description,72);for(let c of a)t.push(" "+c)}if(n.allowedTools&&n.allowedTools.length>0){t.push(""),t.push(h()?l.bold(" Allowed Tools:"):" Allowed Tools:"),t.push(` ${ue(n.allowedTools)}`);let a=fe(n.allowedTools);a&&t.push(` ${h()?l.yellow("\u26A0"):"!"} ${a}`)}t.push("");let i=` Installations (${e.length})`;t.push(h()?l.bold(i):i);for(let a=0;a<e.length;a++){let c=e[a],$=B(c.provider,c.providerLabel),m=c.isSymlink?"symlink":"directory",g=l.dim(c.scope);t.push(` ${$} (${g}, ${m})`),t.push(` ${l.dim("Path:")} ${M(c.path)}`),c.isSymlink&&c.symlinkTarget&&t.push(` ${l.dim("Target:")} ${c.symlinkTarget}`)}let p=e.flatMap(a=>!a.warnings||a.warnings.length===0?[]:a.warnings.map(c=>({...c,provider:a.providerLabel})));if(p.length>0){t.push("");let a=` Warnings (${p.length})`;t.push(h()?l.bold(a):a);for(let c of p){let $=h()?l.yellow("!"):"!";t.push(` ${$} [${c.category}] ${c.message}`)}}return t.push(""),t.join(`
18
- `)}function ge(e,t){let o=e.split(/\s+/),n=[],r="";for(let s of o)r.length+s.length+1>t&&r.length>0?(n.push(r),r=s):r=r?r+" "+s:s;return r&&n.push(r),n}function Wt(e){return JSON.stringify(e,null,2)}function Vt(e){let t=[],o=new Set,n=new Map,r=[];for(let i of e){let p=n.get(i.realPath);if(p){if(i.isSymlink)continue;p.isSymlink?(r[r.indexOf(p)]=i,n.set(i.realPath,i)):r.push(i)}else n.set(i.realPath,i),r.push(i)}let s=new Map;for(let i of r){let p=s.get(i.dirName)??[];p.push(i),s.set(i.dirName,p)}for(let[i,p]of s)if(new Set(p.map(c=>c.location)).size>=2){t.push({key:i,reason:"same-dirName",instances:p});for(let c of p)o.add(c.path)}let u=new Map;for(let i of r){if(!i.name)continue;let p=u.get(i.name)??[];p.push(i),u.set(i.name,p)}for(let[i,p]of u){if(new Set(p.map(m=>m.dirName)).size<2)continue;let c=p.filter(m=>!o.has(m.path));c.length<2||new Set(c.map(m=>m.dirName)).size<2||t.push({key:i,reason:"same-frontmatterName",instances:c})}t.sort((i,p)=>i.reason!==p.reason?i.reason==="same-dirName"?-1:1:i.key.localeCompare(p.key));let f=t.reduce((i,p)=>i+p.instances.length,0);return{scannedAt:new Date().toISOString(),totalSkills:e.length,duplicateGroups:t,totalDuplicateInstances:f}}function Ye(e){return[...e].sort((t,o)=>{if(t.scope!==o.scope)return t.scope==="global"?-1:1;let n=t.providerLabel.localeCompare(o.providerLabel);return n!==0?n:t.path.localeCompare(o.path)})}function Qe(e){return e==="same-dirName"?"same dirName":"same name"}function Ht(e){if(e.duplicateGroups.length===0)return l.green("No duplicate skills found.");let t=[];t.push(""),t.push(l.bold(` Found ${e.duplicateGroups.length} duplicate group(s) (${e.totalDuplicateInstances} total instances):`)),t.push("");for(let o of e.duplicateGroups){t.push(` ${l.yellow(`"${o.key}"`)} ${l.dim(`(${Qe(o.reason)})`)}`);let n=Ye(o.instances);for(let r=0;r<n.length;r++){let s=n[r],u=B(s.provider,s.providerLabel),f=r===0?l.green(" [keep]"):l.dim(" "),i=l.dim(`(${s.scope})`);t.push(` ${f} ${u} ${i} ${l.dim(M(s.path))}`)}t.push("")}return t.push(l.dim(` Run ${l.bold("asm audit -y")} to auto-remove duplicates`)),t.push(""),t.join(`
19
- `)}function qt(e){return JSON.stringify(e,null,2)}function zt(e){let t=e.trim();if(!t)return["vi",[]];let o=[],n="",r=!1,s=0;for(;s<t.length;){let u=t[s];if(u==='"'){for(r=!0,s++;s<t.length&&t[s]!=='"';){if(t[s]==="\\"&&s+1<t.length){let f=t[s+1];if(f==='"'||f==="\\"){n+=f,s+=2;continue}}n+=t[s],s++}s++}else if(u==="'"){for(r=!0,s++;s<t.length&&t[s]!=="'";)n+=t[s],s++;s++}else u===" "||u===" "?((n.length>0||r)&&(o.push(n),n="",r=!1),s++):(n+=u,s++)}return(n.length>0||r)&&o.push(n),o.length===0?["vi",[]]:[o[0],o.slice(1)]}import{readFileSync as Ze}from"fs";import{resolve as et,dirname as tt}from"path";import{fileURLToPath as nt}from"url";import{execSync as ot}from"child_process";var rt=tt(nt(import.meta.url)),he="2.7.0";try{let e=Ze(et(rt,"../../package.json"),"utf-8");he=JSON.parse(e).version}catch{}var ne="f89af53";try{ne=ot("git rev-parse --short HEAD",{encoding:"utf-8",stdio:["pipe","pipe","ignore"]}).trim()||ne}catch{}var st=he,it=ne,Zt=`v${st} (${it})`;export{J as a,U as b,X as c,Y as d,_ as e,ee as f,$t as g,bt as h,vt as i,He as j,Ct as k,Pt as l,Nt as m,l as n,D as o,B as p,M as q,Mt as r,Et as s,Rt as t,Ke as u,At as v,jt as w,Dt as x,Ft as y,Ot as z,pe as A,Je as B,_t as C,ge as D,Wt as E,Vt as F,Ye as G,Qe as H,Ht as I,qt as J,st as K,Zt as L,zt as M};
@@ -1,3 +0,0 @@
1
- import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
2
- import{b as e,e as i}from"./chunk-GOI5LV72.js";import{readFile as l,writeFile as a,mkdir as k,copyFile as u}from"fs/promises";import{execFile as m}from"child_process";import{promisify as f}from"util";import{dirname as p}from"path";var y=f(m);function c(){return{version:1,skills:{}}}async function n(){let t=i(),r;try{r=await l(t,"utf-8")}catch(o){if(o?.code==="ENOENT")return e("lock: file not found, returning empty lock"),c();throw o}try{let o=JSON.parse(r);if(o.version!==1||typeof o.skills!="object"||o.skills===null)throw new Error("invalid schema");return e(`lock: loaded ${Object.keys(o.skills).length} entries`),o}catch{let o=t+".bak";e(`lock: parse error, backing up to ${o}`);try{await u(t,o)}catch{}return console.error(`Warning: .skill-lock.json was corrupted. Backup saved to ${o}. Starting fresh.`),c()}}async function F(t,r){let o=await n();o.skills[t]=r,await s(o),e(`lock: wrote entry for "${t}"`)}async function E(t){let r=await n();if(!(t in r.skills)){e(`lock: no entry for "${t}", nothing to remove`);return}delete r.skills[t],await s(r),e(`lock: removed entry for "${t}"`)}async function s(t){let r=i();await k(p(r),{recursive:!0}),await a(r,JSON.stringify(t,null,2)+`
3
- `,"utf-8")}async function P(t){try{let{stdout:r}=await y("git",["rev-parse","HEAD"],{cwd:t,timeout:5e3});return r.trim()||null}catch{return e("lock: could not read commit hash from cloned repo"),null}}export{n as a,F as b,E as c,P as d};
@@ -1,2 +0,0 @@
1
- import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
2
- import{a,b,c,d}from"./chunk-PVEAYTE2.js";import"./chunk-GOI5LV72.js";import"./chunk-7BMOBFGJ.js";export{d as getCommitHash,a as readLock,c as removeLockEntry,b as writeLockEntry};