agent-skill-manager 2.14.0 → 2.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +318 -121
- package/data/skill-index/Affitor_affiliate-skills.json +2375 -323
- package/data/skill-index/AvdLee_Core-Data-Agent-Skill.json +44 -6
- package/data/skill-index/AvdLee_Swift-Concurrency-Agent-Skill.json +49 -11
- package/data/skill-index/AvdLee_Swift-Testing-Agent-Skill.json +44 -6
- package/data/skill-index/AvdLee_SwiftUI-Agent-Skill.json +100 -24
- package/data/skill-index/AvdLee_Xcode-Build-Optimization-Agent-Skill.json +262 -34
- package/data/skill-index/Dimillian_Skills.json +699 -91
- package/data/skill-index/Egonex-AI_Understand-Anything.json +578 -81
- package/data/skill-index/Eronred_aso-skills.json +1729 -209
- package/data/skill-index/GPTomics_bioSkills.json +27195 -5839
- package/data/skill-index/Galaxy-Dawn_claude-scholar.json +1966 -256
- package/data/skill-index/Imbad0202_academic-research-skills.json +256 -98
- package/data/skill-index/K-Dense-AI_claude-scientific-skills.json +13755 -5388
- package/data/skill-index/Leonxlnx_taste-skill.json +570 -76
- package/data/skill-index/Master-cai_Research-Paper-Writing-Skills.json +44 -6
- package/data/skill-index/MiniMax-AI_skills.json +1007 -133
- package/data/skill-index/Paramchoudhary_ResumeSkills.json +960 -124
- package/data/skill-index/ParthJadhav_app-store-screenshots.json +185 -0
- package/data/skill-index/addyosmani_agent-skills.json +1127 -209
- package/data/skill-index/affaan-m_everything-claude-code.json +17427 -5038
- package/data/skill-index/alirezarezvani_claude-skills.json +20317 -3276
- package/data/skill-index/anthropics_skills.json +1256 -168
- package/data/skill-index/antithesishq_antithesis-skills.json +2567 -0
- package/data/skill-index/antonbabenko_terraform-skill.json +44 -6
- package/data/skill-index/badlogic_pi-skills.json +349 -45
- package/data/skill-index/briiirussell_cybersecurity-skills.json +1261 -159
- package/data/skill-index/bytedance_deer-flow.json +1572 -224
- package/data/skill-index/cloudai-x_threejs-skills.json +2007 -0
- package/data/skill-index/coreyhaines31_marketingskills.json +2846 -638
- package/data/skill-index/davidondrej_skills.json +6213 -783
- package/data/skill-index/emilkowalski_skills.json +2302 -0
- package/data/skill-index/entireio_skills.json +561 -63
- package/data/skill-index/garrytan_gstack.json +3023 -419
- package/data/skill-index/github_awesome-copilot.json +30442 -8371
- package/data/skill-index/google_skills.json +12472 -1527
- package/data/skill-index/heygen-com_hyperframes.json +2420 -454
- package/data/skill-index/himself65_finance-skills.json +1614 -254
- package/data/skill-index/ivan-magda_uikit-expert-skill.json +44 -6
- package/data/skill-index/kemiljk_fluid-design.json +44 -6
- package/data/skill-index/kepano_obsidian-skills.json +217 -27
- package/data/skill-index/luongnv89_asm.json +1887 -34
- package/data/skill-index/luongnv89_idd.json +369 -103
- package/data/skill-index/luongnv89_skills.json +2051 -900
- package/data/skill-index/mattpocock_skills.json +1910 -1027
- package/data/skill-index/mvanhorn_last30days-skill.json +50 -12
- package/data/skill-index/nextlevelbuilder_ui-ux-pro-max-skill.json +324 -64
- package/data/skill-index/obra_superpowers.json +651 -125
- package/data/skill-index/oliver-zehentleitner_keep-the-why.json +185 -0
- package/data/skill-index/romainsimon_paperasse.json +273 -45
- package/data/skill-index/rudrankriyam_app-store-connect-cli-skills.json +1539 -243
- package/data/skill-index/santifer_career-ops.json +44 -657
- package/data/skill-index/sickn33_antigravity-awesome-skills.json +123142 -36221
- package/data/skill-index/slavingia_skills.json +436 -56
- package/data/skill-index/twostraws_Swift-Concurrency-Agent-Skill.json +44 -6
- package/data/skill-index/twostraws_Swift-Testing-Agent-Skill.json +44 -6
- package/data/skill-index/twostraws_SwiftData-Agent-Skill.json +44 -6
- package/data/skill-index/twostraws_SwiftUI-Agent-Skill.json +44 -6
- package/data/skill-index/warpdotdev_oz-skills.json +651 -81
- package/data/skill-index/zarazhangrui_follow-builders.json +44 -6
- package/data/skill-index-resources.json +47 -2
- package/dist/agent-skill-manager.js +683 -603
- package/dist/chunk-BQ4RW237.js +20 -0
- package/dist/chunk-LH2C3PE7.js +3 -0
- package/dist/chunk-LS24FFOX.js +3 -0
- package/dist/chunk-RSVWCEZR.js +2 -0
- package/dist/config-AZYQEQOQ.js +2 -0
- package/dist/devtools-2L45W5A2.js +11 -0
- package/dist/lock-NN2MADX7.js +2 -0
- package/dist/src-BD3KFE5H.js +119 -0
- package/package.json +48 -22
- package/README.backup.md +0 -1237
- package/dist/chunk-7BMOBFGJ.js +0 -2
- package/dist/chunk-EOTW3XHQ.js +0 -3
- package/dist/chunk-P5N3FU3P.js +0 -3
- package/dist/chunk-UZ62MVXU.js +0 -19
- package/dist/config-KPT63KLE.js +0 -2
- package/dist/devtools-6JCLZ364.js +0 -8
- package/dist/lock-NOXBNSZW.js +0 -2
- package/dist/src-IHHUE6TP.js +0 -108
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
|
|
2
|
+
import{b as k,o as R}from"./chunk-LS24FFOX.js";import{readdir as A,stat as D,lstat as we,readlink as Qe,readFile as J,realpath as fe}from"fs/promises";import{join as x,resolve as de,basename as Ze}from"path";import{homedir as Y}from"os";function se(e){let t={},n=e.split(`
|
|
3
|
+
`),o=!1,r=!1,i=null,a=[],l="none",s=-1,c=null;function d(){if(i){let u=a.join(" ").trim();u&&(t[i]=u),i=null,a=[],l="none",s=-1}}for(let u of n){if(u.trim()==="---")if(r){d();break}else{r=!0,o=!0;continue}if(!o)continue;if(l!=="none"&&i){let f=u.replace(/^\s*/,""),m=u.length-f.length;if(m>0&&f.length>0){s===-1&&(s=m),a.push(f);continue}else{if(f.length===0)continue;d()}}if(c!==null){let f=u.match(/^\s+(\w[\w-]*):\s*(.*?)\s*$/);if(f){let m=f[1],b=f[2].replace(/^["']|["']$/g,"");b&&(t[`${c}.${m}`]=b);continue}if(u.trim().length>0)c=null;else continue}let h=u.match(/^(\w[\w-]*):\s*(.*?)\s*$/);if(h){d();let f=h[1],m=h[2];if(m==="|"||m===">")i=f,a=[],l=m==="|"?"literal":"folded";else if(m==="|+"||m===">+"||m==="|-"||m===">-")i=f,a=[],l=m.startsWith("|")?"literal":"folded";else{let g=m.replace(/^["']|["']$/g,"");g?t[f]=g:c=f}}}return d(),t}function ae(e){return e["metadata.version"]||e.version||"0.0.0"}function le(e){let t=e["allowed-tools"]||"";return t.trim()?t.split(/[\s,]+/).map(n=>n.trim()).filter(Boolean):[]}function Se(e){return(e||"").trim().toLowerCase()}function Ye(e){let t=Se(e);return t==="true"||t==="yes"||t==="1"}function Xe(e){let t=Se(e);return t==="false"||t==="no"||t==="0"}function ce(e){return!Ye(e["disable-model-invocation"])}function ue(e){return"user-invocable"in e?!Xe(e["user-invocable"]):!0}function O(e,t){let n=e!==!1,o=t!==!1;return n&&o?"both":n?"model":o?"user":"none"}function Xt(e,t){let n=e.modelInvocable!==!1,o=e.userInvocable!==!1;return!(t.modelInvocable&&!n||t.userInvocable&&!o)}function U(e){if(!e)return 0;let t=e.split(/\s+/).map(o=>o.trim()).filter(Boolean).length,n=0;for(let o=0;o<e.length;o++)e.charCodeAt(o)===32&&n++;return t+n}function H(e){return!Number.isFinite(e)||e<0?"~0 tokens":e<1e3?`~${e} tokens`:e<1e4?`~${(e/1e3).toFixed(1).replace(/\.0$/,"")}k tokens`:e<1e6?`~${Math.round(e/1e3)}k tokens`:`~${(e/1e6).toFixed(1).replace(/\.0$/,"")}M tokens`}function Zt(e){return U(e.description??"")}function en(e){let t=e.tokenCount;return typeof t=="number"&&Number.isFinite(t)&&t>0?t:0}var et=x(Y(),".claude","plugins","marketplaces"),tt=x(Y(),".codex","plugins","cache"),nt=x(Y(),".codex","config.toml"),un=x(Y(),".agents","plugins","marketplace.json"),xe=16,ot=xe-1,F=[],N=0,pe=0;function ke(){for(;pe<xe&&N<F.length;){let e=F[N++];pe++,e()}N===F.length?(F.length=0,N=0):N>=1024&&N*2>=F.length&&(F.splice(0,N),N=0)}function rt(e){return new Promise((t,n)=>{F.push(()=>{Promise.resolve().then(e).finally(()=>{pe--,ke()}).then(t,n)}),ke()})}function it(){let e=[],t=0,n=0,o=()=>{for(;t<ot;){let r;for(let l=0;l<e.length;l++){let s=e[n];if(n=(n+1)%e.length,s.nextIndex<s.entries.length){r=s;break}}if(!r)return;let i=r.nextIndex++,a=r.entries[i];r.inFlight++,t++,rt(()=>r.task(a,i)).then(l=>{l&&r.results.push([i,l])},()=>{}).finally(()=>{if(t--,r.inFlight--,r.nextIndex===r.entries.length&&r.inFlight===0){let l=e.indexOf(r);e.splice(l,1),e.length===0?n=0:(l<n&&n--,n%=e.length),r.results.sort(([s],[c])=>s-c),r.resolve(r.results.map(([,s])=>s))}o()})}};return{run(r,i){return r.length===0?Promise.resolve([]):new Promise(a=>{e.push({entries:r,nextIndex:0,inFlight:0,results:[],task:i,resolve:a}),o()})}}}function st(e,t){let n=[];for(let o of e.providers){if(!o.enabled){k(`scan: skipping disabled provider "${o.name}"`);continue}if(t==="global"||t==="both"){let r=R(o.global);k(`scan: adding location ${r} (${o.label}, global)`),n.push({dir:r,location:`global-${o.name}`,scope:"global",providerName:o.name,providerLabel:o.label})}if(t==="project"||t==="both"){let r=R(o.project);k(`scan: adding location ${r} (${o.label}, project)`),n.push({dir:r,location:`project-${o.name}`,scope:"project",providerName:o.name,providerLabel:o.label})}}for(let o of e.customPaths)if(t===o.scope||t==="both"){let r=R(o.path);k(`scan: adding custom location ${r} (${o.label}, ${o.scope})`),n.push({dir:r,location:`${o.scope}-custom`,scope:o.scope,providerName:"custom",providerLabel:o.label})}return n}async function me(e){try{return(await A(e,{recursive:!0})).length}catch{return 0}}function Pe(e,t){Object.defineProperty(e,"_skillMdContent",{value:t,writable:!0,configurable:!0})}async function at(e,t){k(`scanning: ${e.dir} (${e.location})`);let n;try{n=await A(e.dir)}catch{return k(`scanning: ${e.dir} \u2014 not found, skipping`),[]}let o=await t.run(n,async r=>{try{let i=x(e.dir,r);try{if(!(await D(i)).isDirectory()){k(` skip: "${r}" \u2014 not a directory`);return}}catch{k(` skip: "${r}" \u2014 stat failed`);return}let a=x(i,"SKILL.md"),l;try{l=await J(a,"utf-8")}catch{k(` skip: "${r}" \u2014 no SKILL.md`);return}let s=se(l),c=!1,d=null;try{(await we(i)).isSymbolicLink()&&(c=!0,d=await Qe(i))}catch{}let u=de(i),h;try{h=await fe(i)}catch{h=u}let f={name:s.name||r,version:ae(s),description:(s.description||"").replace(/\s*\n\s*/g," ").trim(),creator:s["metadata.creator"]||"",license:(s.license||"").trim(),compatibility:(s.compatibility||"").trim(),allowedTools:le(s),modelInvocable:ce(s),userInvocable:ue(s),effort:s.effort||s["metadata.effort"]||void 0,dirName:r,path:u,originalPath:i,location:e.location,scope:e.scope,provider:e.providerName,providerLabel:e.providerLabel,isSymlink:c,symlinkTarget:d,realPath:h,tokenCount:U(l)};return Pe(f,l),f}catch{k(` skip: "${r}" \u2014 scan failed`);return}});return k(`found ${o.length} skill(s) in ${e.dir}`),o}async function Ie(e){let t=[],n;try{n=await A(e)}catch{return t}for(let o of n){let r=x(e,o),i;try{i=await we(r)}catch{continue}if(!i.isSymbolicLink()&&i.isDirectory()){let a=x(r,"SKILL.md");try{await D(a),t.push(r)}catch{let l=await Ie(r);t.push(...l)}}}return t}async function lt(e){let t=e??et,n=[];k(`scan: checking plugin marketplaces at ${t}`);let o;try{o=await A(t)}catch{return k("scan: plugin marketplaces dir not found, skipping"),n}for(let r of o){let i=x(t,r),a;try{a=await D(i)}catch{continue}if(!a.isDirectory())continue;k(`scan: scanning marketplace "${r}"`);let l=await Ie(i);for(let s of l){let c=x(s,"SKILL.md"),d;try{d=await J(c,"utf-8")}catch{continue}let u=se(d),h=Ze(s),f=de(s),m;try{m=await fe(s)}catch{m=f}let g={name:u.name||h,version:ae(u),description:(u.description||"").replace(/\s*\n\s*/g," ").trim(),creator:u["metadata.creator"]||"",license:(u.license||"").trim(),compatibility:(u.compatibility||"").trim(),allowedTools:le(u),modelInvocable:ce(u),userInvocable:ue(u),effort:u.effort||u["metadata.effort"]||void 0,dirName:h,path:f,originalPath:s,location:`global-plugin-${r}`,scope:"global",provider:"plugin",providerLabel:`Plugin (${r})`,isSymlink:!1,symlinkTarget:null,realPath:m,marketplace:r,tokenCount:U(d)};Pe(g,d),n.push(g)}}return k(`scan: found ${n.length} plugin marketplace skill(s)`),n}function ct(e){let t=new Map,n=null;for(let o of e.split(`
|
|
4
|
+
`)){let r=o.trim(),i=r.match(/^\[plugins\.([^\]]+)\]$/);if(i){n=i[1].trim().replace(/^["']|["']$/g,"");continue}if(r.startsWith("[")){n=null;continue}if(n&&r.startsWith("enabled")){let a=r.match(/^enabled\s*=\s*(true|false)/i);a&&t.set(n,a[1].toLowerCase()==="true")}}return t}async function ut(e){let t=e??nt;try{let n=await J(t,"utf-8");return ct(n)}catch{return k(`codex: config.toml not found at ${t}, skipping enabled check`),new Map}}async function pt(e,t){let n=e??tt,o=[];k(`codex: checking plugin cache at ${n}`);let r;try{r=await A(n)}catch{return k("codex: plugin cache dir not found, skipping"),o}let i=await ut(t);for(let a of r){let l=x(n,a),s;try{s=await D(l)}catch{continue}if(!s.isDirectory())continue;let c;try{c=await A(l)}catch{continue}for(let d of c){let u=x(l,d),h;try{h=await D(u)}catch{continue}if(!h.isDirectory())continue;let f;try{f=await A(u)}catch{continue}let m=(await Promise.all(f.map(async $=>{try{return(await D(x(u,$))).isDirectory()?$:null}catch{return null}}))).filter($=>$!==null);if(m.length===0)continue;let g=m.sort(Ce).at(-1),b=x(u,g),y=x(b,".codex-plugin","plugin.json"),w;try{let $=await J(y,"utf-8");w=JSON.parse($)}catch{k(`codex: no valid plugin.json at ${y}, skipping`);continue}let I=de(b),C;try{C=await fe(b)}catch{C=I}let E=w.interface?.displayName||w.name||d,G=w.version||g,B=(w.description||"").replace(/\s*\n\s*/g," ").trim(),V=i.has(d)?i.get(d):!0;o.push({name:E,version:G,description:B,creator:"",license:"",compatibility:"",allowedTools:[],dirName:d,path:I,originalPath:b,location:`global-codex-plugin-${a}`,scope:"global",provider:"codex-plugin",providerLabel:`Codex Plugin (${a})`,isSymlink:!1,symlinkTarget:null,realPath:C,marketplace:a,codexPlugin:{category:w.interface?.category,hasMcpConfig:w.mcp!=null&&Object.keys(w.mcp).length>0,pluginName:d,pluginVersion:g,enabled:V}})}}return k(`codex: found ${o.length} plugin(s) in cache`),o}async function pn(e,t,n,o){let r=st(e,t),i=t==="global"||t==="both",a=it(),[l,s,c]=await Promise.all([Promise.all(r.map(f=>at(f,a))),i?lt(n):Promise.resolve([]),i?pt(o):Promise.resolve([])]),d=l.flat(),u=new Set(d.map(f=>f.realPath)),h=new Set(d.map(f=>f.name.toLowerCase()));for(let f of s)!u.has(f.realPath)&&!h.has(f.name.toLowerCase())&&(d.push(f),u.add(f.realPath),h.add(f.name.toLowerCase()));for(let f of c)!u.has(f.realPath)&&!h.has(f.name.toLowerCase())&&(d.push(f),u.add(f.realPath),h.add(f.name.toLowerCase()));return d}function fn(e,t){if(!t.trim())return e;let n=t.toLowerCase();return e.filter(o=>o.name.toLowerCase().includes(n)||o.description.toLowerCase().includes(n)||o.creator.toLowerCase().includes(n)||o.effort&&o.effort.toLowerCase().includes(n)||o.location.toLowerCase().includes(n)||o.providerLabel.toLowerCase().includes(n))}function Ce(e,t){let n=e.split("."),o=t.split("."),r=Math.max(n.length,o.length);for(let i=0;i<r;i++){let a=parseInt(n[i]??"0",10),l=parseInt(o[i]??"0",10);if(isNaN(a)||isNaN(l))return e.localeCompare(t);if(a!==l)return a-l}return 0}function dn(e,t){let n=[...e];switch(t){case"name":n.sort((o,r)=>o.name.localeCompare(r.name));break;case"version":n.sort((o,r)=>Ce(o.version,r.version));break;case"location":n.sort((o,r)=>o.location.localeCompare(r.location));break}return n}import{rm as T,readFile as Me,writeFile as yt,access as St,lstat as kt,rename as wt,readdir as xt,mkdir as Ne,unlink as Te}from"fs/promises";import{join as X,resolve as P,dirname as _,relative as Le}from"path";import{homedir as Pt}from"os";import{readdir as ft,readFile as dt,stat as mt,symlink as Ee}from"fs/promises";import{dirname as gt,join as ht,resolve as vt}from"path";async function ge(e,t){process.platform==="win32"?await Ee(vt(gt(t),e),t,"junction"):await Ee(e,t,"dir")}function vn(e){return e.split("\\").join("/")}var bt=new Set([".png",".jpg",".jpeg",".gif",".ico",".bmp",".webp",".mp3",".mp4",".wav",".avi",".mov",".zip",".tar",".gz",".bz2",".7z",".exe",".dll",".so",".dylib",".woff",".woff2",".ttf",".eot",".pdf",".doc",".docx"]),$t=512*1024;async function bn(e){let t=[];async function n(o,r){let i;try{i=await ft(o)}catch{return}for(let a of i){if(a===".git"||a==="node_modules")continue;let l=ht(o,a),s=r?`${r}/${a}`:a;try{let c=await mt(l);if(c.isDirectory())await n(l,s);else if(c.isFile()){let d=a.includes(".")?`.${a.split(".").pop().toLowerCase()}`:"";if(bt.has(d)||c.size>$t)continue;try{let u=await dt(l,"utf-8");t.push({relPath:s,content:u,lineCount:u.split(`
|
|
5
|
+
`).length})}catch{}}}catch{continue}}}return await n(e,""),t}var Re=Pt();function It(e,t){let n={directories:[],ruleFiles:[],agentsBlocks:[]};n.directories.push({path:e.originalPath,isSymlink:e.isSymlink});let o=e.dirName;if(e.scope==="project"&&(n.ruleFiles.push(P(".cursor","rules",`${o}.mdc`),P(".windsurf","rules",`${o}.md`),P(".github","instructions",`${o}.instructions.md`)),n.agentsBlocks.push({file:P("AGENTS.md"),skillName:o})),e.scope==="global"){for(let a of t.providers){if(!a.enabled)continue;let l=R(a.global),s=X(_(l),"AGENTS.md");n.agentsBlocks.push({file:s,skillName:o})}let r=X(Re,".codex","AGENTS.md");n.agentsBlocks.some(a=>a.file===r)||n.agentsBlocks.push({file:r,skillName:o})}return n}function Pn(e,t,n,o){let r=t.filter(h=>h.dirName===e),i=r;if(o?.providerFilter&&(i=i.filter(h=>h.provider===o.providerFilter)),o?.scopeFilter&&(i=i.filter(h=>h.scope===o.scopeFilter)),i.length===0)return{directories:[],ruleFiles:[],agentsBlocks:[]};let a=new Set(r.filter(h=>!i.includes(h)).map(h=>`${h.provider}::${h.scope}`));function l(h){if(h===P("AGENTS.md")){let f=Array.from(a).find(m=>m.endsWith("::project"));return f?{provider:f.split("::")[0],scope:"project"}:null}for(let f of n.providers){let m=R(f.global),g=X(_(m),"AGENTS.md");if(h===g)return{provider:f.name,scope:"global"}}return h===X(Re,".codex","AGENTS.md")?{provider:"codex",scope:"global"}:null}let s={directories:[],ruleFiles:[],agentsBlocks:[]},c=new Set,d=new Set,u=new Set;for(let h of i){let f=It(h,n);for(let m of f.directories)c.has(m.path)||(c.add(m.path),s.directories.push(m));for(let m of f.ruleFiles)d.has(m)||(d.add(m),s.ruleFiles.push(m));for(let m of f.agentsBlocks){let g=`${m.file}::${m.skillName}`;if(u.has(g))continue;let b=l(m.file);if(b){let y=`${b.provider}::${b.scope}`;if(a.has(y))continue}u.add(g),s.agentsBlocks.push(m)}}return s}async function q(e){try{return await St(e),!0}catch{return!1}}async function Ct(e,t){if(!await q(e))return;let n=await Me(e,"utf-8"),o=!1;for(let r of["agent-skill-manager","skill-manager","pskills"]){let i=`<!-- ${r}: ${t} -->`,a=`<!-- /${r}: ${t} -->`,l=n.indexOf(i),s=n.indexOf(a);if(l===-1||s===-1)continue;let c=l;c>0&&n[c-1]===`
|
|
6
|
+
`&&c--;let u=s+a.length;u<n.length&&n[u]===`
|
|
7
|
+
`&&u++,n=n.slice(0,c)+n.slice(u),o=!0}o&&await yt(e,n,"utf-8")}function Et(e,t){let n=e.filter(r=>r.provider!==t);if(n.length===0)return null;let o=n.find(r=>!r.isSymlink);return o?{path:o.originalPath,provider:o.provider}:{path:n[0].originalPath,provider:n[0].provider}}function In(e,t,n){if(!e.directories.some(c=>!c.isSymlink))return null;let r=t.filter(c=>c.provider!==n);if(r.length===0)return null;let i=Et(t,n);if(!i)return null;let a=e.directories.find(c=>!c.isSymlink),l=r.map(c=>c.originalPath).filter(c=>c!==i.path),s=r.find(c=>c.originalPath===i.path);return s&&!s.isSymlink?l.length===0?null:{needed:!0,fromProvider:n,fromPath:a?.path||"",toProvider:i.provider,toPath:i.path,repointPaths:l,repointOnly:!0}:{needed:!0,fromProvider:n,fromPath:a?.path||"",toProvider:i.provider,toPath:i.path,repointPaths:l}}async function Nt(e){let t=[],n=new Set;for(let o of e){let r=_(o);if(!n.has(r)){n.add(r);try{(await xt(r)).filter(l=>l!==".DS_Store").length===0&&(await T(r,{recursive:!0,force:!0}),t.push(r))}catch{}}}return t}async function Cn(e,t,n){let o=[];if(n?.needed){if(!n.repointOnly)try{let a=_(n.toPath);await Ne(a,{recursive:!0});try{await Te(n.toPath)}catch(l){(!(l instanceof Error)||!("code"in l)||l.code!=="ENOENT")&&await T(n.toPath,{recursive:!0,force:!0})}try{await wt(n.fromPath,n.toPath)}catch(l){if(l instanceof Error&&"code"in l&&l.code==="EXDEV"){let{cp:s}=await import("fs/promises");try{await s(n.fromPath,n.toPath,{recursive:!0,preserveTimestamps:!0})}catch(c){try{await T(n.toPath,{recursive:!0,force:!0})}catch(d){let u=d instanceof Error?d.message:String(d);o.push(`Failed to clean up partial copy at ${n.toPath}: ${u}`)}throw c}await T(n.fromPath,{recursive:!0,force:!0})}else throw l}o.push(`Relocated real folder: ${n.fromPath} -> ${n.toPath}`)}catch(a){let l=a instanceof Error?a.message:String(a);o.push(`Failed to relocate real folder: ${l}`);let s=new Error(`Failed to relocate real folder: ${l}`);throw s.log=o,s}for(let a of n.repointPaths||[]){let l=_(a),s=Le(l,n.toPath);try{try{await Te(a)}catch(c){(!(c instanceof Error)||!("code"in c)||c.code!=="ENOENT")&&await T(a,{recursive:!0,force:!0})}await Ne(l,{recursive:!0}),await ge(s,a),o.push(`Repointed symlink: ${a} -> ${s}`)}catch(c){let d=c instanceof Error?c.message:String(c);o.push(`Failed to repoint symlink ${a} -> ${s}: ${d}. To fix manually: ln -sfn ${n.toPath} ${a}`)}}}for(let a of e.directories)try{if(n?.needed&&!n.repointOnly&&P(a.path)===P(n.fromPath))continue;if(t&&P(a.path)===P(t)){o.push(`Skipped same-path removal: ${a.path}`);continue}if(a.isSymlink?(await T(a.path),o.push(`Removed symlink: ${a.path}`)):(await T(a.path,{recursive:!0,force:!0}),o.push(`Removed directory: ${a.path}`)),!n?.needed&&t&&P(a.path)!==P(t)){let l=_(a.path),s=Le(l,t);await ge(s,a.path),o.push(`Created symlink: ${a.path} -> ${s}`)}}catch(l){let s=l instanceof Error?l.message:String(l);o.push(`Failed to remove ${a.path}: ${s}`)}let r=e.directories.map(a=>a.path),i=await Nt(r);for(let a of i)o.push(`Removed empty parent directory: ${a}`);for(let a of e.ruleFiles)if(await q(a))try{await T(a),o.push(`Removed rule file: ${a}`)}catch(l){let s=l instanceof Error?l.message:String(l);o.push(`Failed to remove ${a}: ${s}`)}for(let a of e.agentsBlocks)try{await Ct(a.file,a.skillName),o.push(`Cleaned AGENTS.md block in: ${a.file}`)}catch(l){let s=l instanceof Error?l.message:String(l);o.push(`Failed to clean AGENTS.md block: ${s}`)}return o}async function En(e){let t=[];for(let n of e.directories)if(await q(n.path)){let r=(await kt(n.path)).isSymbolicLink()?"symlink":"directory";t.push(`${n.path} (${r})`)}for(let n of e.ruleFiles)await q(n)&&t.push(n);for(let n of e.agentsBlocks)if(await q(n.file)){let o=await Me(n.file,"utf-8");(o.includes(`<!-- agent-skill-manager: ${n.skillName} -->`)||o.includes(`<!-- skill-manager: ${n.skillName} -->`)||o.includes(`<!-- pskills: ${n.skillName} -->`))&&t.push(`${n.file} (AGENTS.md block)`)}return t}var v=()=>!(process.env.NO_COLOR!==void 0||globalThis.__CLI_NO_COLOR||!process.stdout.isTTY),p={bold:e=>v()?`\x1B[1m${e}\x1B[0m`:e,cyan:e=>v()?`\x1B[36m${e}\x1B[0m`:e,green:e=>v()?`\x1B[32m${e}\x1B[0m`:e,yellow:e=>v()?`\x1B[33m${e}\x1B[0m`:e,dim:e=>v()?`\x1B[2m${e}\x1B[0m`:e,white:e=>v()?`\x1B[37m${e}\x1B[0m`:e,red:e=>v()?`\x1B[31m${e}\x1B[0m`:e,blue:e=>v()?`\x1B[34m${e}\x1B[0m`:e,blueBold:e=>v()?`\x1B[34;1m${e}\x1B[0m`:e,magenta:e=>v()?`\x1B[35m${e}\x1B[0m`:e,bgDim:e=>v()?`\x1B[48;5;236m${e}\x1B[0m`:e,bgRed:e=>v()?`\x1B[41m\x1B[37m\x1B[1m${e}\x1B[0m`:e,bgYellow:e=>v()?`\x1B[43m\x1B[30m\x1B[1m${e}\x1B[0m`:e,bgGreen:e=>v()?`\x1B[42m\x1B[30m\x1B[1m${e}\x1B[0m`:e,bgCyan:e=>v()?`\x1B[46m\x1B[30m\x1B[1m${e}\x1B[0m`:e};function j(e){if(!e)return"";switch(e.toLowerCase()){case"low":return p.green(e);case"medium":return p.yellow(e);case"high":return p.red(e);case"max":return p.magenta(e);default:return e}}var Fe={claude:p.blueBold,codex:p.cyan,"codex-plugin":p.cyan,openclaw:p.yellow,agents:p.green,custom:p.magenta,cursor:p.blue,windsurf:p.cyan,cline:p.green,roocode:p.magenta,continue:p.yellow,copilot:p.white,aider:p.red,opencode:p.cyan,zed:p.blue,augment:p.green,amp:p.yellow};function W(e,t){return(Fe[e]||p.dim)(t)}function K(e,t){return v()?(Fe[e]||p.dim)(`[${t}]`):`[${t}]`}function L(e){let t=process.env.HOME||process.env.USERPROFILE||"";return t&&e.startsWith(t)?"~"+e.slice(t.length):e}function Tt(e){if(e.length===0)return"No skills found.";let t=["Name","Version","Creator","Effort","Invoke","Tool","Scope","Type","Path"],n=e.map(s=>[s.disabled?`${s.name} [disabled]`:s.name,s.version,s.creator||"\u2014",s.effort||"\u2014",O(s.modelInvocable,s.userInvocable),s.providerLabel,s.scope,s.isSymlink?"symlink":"directory",L(s.path)]),o=t.map((s,c)=>Math.max(s.length,...n.map(d=>d[c].length))),r=(s,c)=>s.padEnd(c),i=t.map((s,c)=>r(s,o[c])).join(" "),a=o.map(s=>"-".repeat(s)).join("--"),l=n.map((s,c)=>{let d=s.map((u,h)=>r(u,o[h])).join(" ");return e[c].disabled?p.dim(d):d});return[v()?p.bold(i):i,a,...l].join(`
|
|
8
|
+
`)}function z(e){let t=new Map;for(let o of e){let r=`${o.dirName}||${o.scope}||${o.disabled?"off":"on"}`,i=t.get(r)??[];i.push(o),t.set(r,i)}let n=[];for(let[,o]of t){let r=o[0],i=new Set(o.map(l=>l.scope)),a=new Set(o.map(l=>l.isSymlink?"symlink":"directory"));n.push({name:r.name,version:r.version,creator:r.creator||"",effort:r.effort||"",invoke:O(r.modelInvocable,r.userInvocable),tokens:typeof r.tokenCount=="number"?H(r.tokenCount):"",providers:o.map(l=>({provider:l.provider,label:l.providerLabel})),scope:i.size>1?"mixed":r.scope,type:a.size>1?"mixed":r.isSymlink?"symlink":"directory",path:L(r.path),warningCount:o.reduce((l,s)=>l+(s.warnings?.length??0),0),disabled:o.every(l=>l.disabled===!0)})}return n}function he(e){return e.disabled?`${e.name} [disabled]`:e.name}var Lt=50;function Mt(e,t={}){let n=t.topN??5,o=t.showHint??!0;if(e.length===0)return"No skills found.";let r=[],a=z(e).length,l=e.length,s=new Set(e.map(g=>g.provider)),c=e.filter(g=>g.scope==="global").length,d=e.filter(g=>g.scope==="project").length,u=`${l} skills (${a} unique) across ${s.size} tools | ${c} global, ${d} project`;r.push(v()?p.bold(u):u),r.push("");let h=new Map;for(let g of e){let b=h.get(g.provider)??{label:g.providerLabel,count:0};b.count+=1,h.set(g.provider,b)}let f=[...h.entries()].sort((g,b)=>b[1].count-g[1].count).slice(0,n);r.push(v()?p.bold("Top tools:"):"Top tools:");for(let[g,{label:b,count:y}]of f){let w=v()?W(g,`[${b}]`):`[${b}]`;r.push(` ${w} ${y} skill${y===1?"":"s"}`)}r.push(""),r.push(v()?p.bold("Scopes:"):"Scopes:"),r.push(` global ${c} skill${c===1?"":"s"}`),r.push(` project ${d} skill${d===1?"":"s"}`);let m=new Map;for(let g of e)g.effort&&m.set(g.effort,(m.get(g.effort)??0)+1);if(m.size>0){let g=[...m.entries()].sort((b,y)=>y[1]-b[1]).slice(0,n);r.push(""),r.push(v()?p.bold("Top efforts:"):"Top efforts:");for(let[b,y]of g){let w=j(b),I=Math.max(0,6-b.length);r.push(` ${w}${" ".repeat(I)} ${y} skill${y===1?"":"s"}`)}}if(o){r.push("");let g="Tip: refine with `asm list -p <tool>`, `asm search <query>`, or `asm list --compact`";r.push(v()?p.dim(g):g)}return r.join(`
|
|
9
|
+
`)}function Ae(e){if(e.length===0)return"No skills found.";let t=z(e),n=[],o=Math.max(4,...t.map(f=>he(f).length)),r=Math.max(7,...t.map(f=>f.version.length)),i=t.map(f=>f.providers.map(m=>K(m.provider,m.label)).join(" ")),a=t.map(f=>f.providers.map(m=>`[${m.label}]`).join(" ")),l=Math.max(5,...a.map(f=>f.length)),s=7,c=(f,m)=>f.padEnd(m);for(let f=0;f<t.length;f++){let m=t[f],g=c(he(m),o),b=p.dim(c(m.version,r)),y=l-a[f].length,w=i[f]+" ".repeat(Math.max(0,y)),I=p.dim(c(m.scope,s)),C=c(m.invoke,5),E=`${g} ${b} ${C} ${w} ${I}`;n.push(m.disabled?p.dim(E):E)}n.push("");let d=e.length,u=t.length,h=`${d} skills (${u} unique)`;return n.push(p.dim(h)),n.join(`
|
|
10
|
+
`)}function Rt(e,t){if(e.length===0)return"No skills found.";let n=new Map,o=c=>{switch(t){case"tool":return[c.providerLabel];case"scope":return[c.scope];case"effort":return[c.effort&&c.effort.length>0?c.effort:"(unset)"]}};for(let c of e)for(let d of o(c)){let u=n.get(d)??[];u.push(c),n.set(d,u)}let r=[...n.entries()].sort((c,d)=>d[1].length!==c[1].length?d[1].length-c[1].length:c[0].localeCompare(d[0])),i=[];for(let[c,d]of r){let u=`${c} (${d.length})`;i.push(v()?p.bold(u):u);let m=Ae(d).split(`
|
|
11
|
+
`).slice(0,-2).filter(g=>g.length>0).map(g=>` ${g}`);i.push(...m),i.push("")}let a=e.length,l=z(e).length,s=`${a} skills (${l} unique), grouped by ${t}`;return i.push(p.dim(s)),i.join(`
|
|
12
|
+
`)}function Ft(e,t){if(!Number.isFinite(t)||t<=0||e.length<=t)return{skills:e,hint:""};let n=e.slice(0,t),o=e.length-t,r=p.dim(`... ${o} more not shown. Re-run with --limit ${e.length} (or 0) to see all, or refine with -p <tool>.`);return{skills:n,hint:r}}function At(e){if(e.length===0)return"No skills found.";let t=z(e),n=[],o=Math.max(4,...t.map($=>$.name.length)),r=Math.max(7,...t.map($=>$.version.length)),i=Math.max(7,...t.map($=>Math.min(($.creator||"\u2014").length,15))),a=Math.max(6,...t.map($=>($.effort||"\u2014").length)),l=Math.max(6,...t.map($=>$.invoke.length)),s=t.some($=>$.tokens.length>0),c=s?Math.max(6,...t.map($=>($.tokens||"\u2014").length)):0,d=7,u=9,h=t.map($=>$.providers.map(S=>K(S.provider,S.label)).join(" ")),f=t.map($=>$.providers.map(S=>`[${S.label}]`).join(" ")),m=Math.max(9,...f.map($=>$.length)),g=($,S)=>$.padEnd(S),b=s?` ${g("Tokens",c)}`:"",y=`${g("Name",o)} ${g("Version",r)} ${g("Creator",i)} ${g("Effort",a)} ${g("Invoke",l)}${b} ${g("Tools",m)} ${g("Scope",d)} ${g("Type",u)}`;n.push(v()?p.bold(y):y);let w=s?` ${"-".repeat(c)}`:"";n.push(`${"-".repeat(o)} ${"-".repeat(r)} ${"-".repeat(i)} ${"-".repeat(a)} ${"-".repeat(l)}${w} ${"-".repeat(m)} ${"-".repeat(d)} ${"-".repeat(u)}`);for(let $=0;$<t.length;$++){let S=t[$],ee=g(he(S),o),te=g(S.version,r),ne=(S.creator||"\u2014").slice(0,15),oe=g(ne,i),re=S.effort||"\u2014",ie=S.effort?j(S.effort):"\u2014",Ge=a-re.length,Be=ie+" ".repeat(Math.max(0,Ge)),Ve=s?` ${g(S.tokens||"\u2014",c)}`:"",He=m-f[$].length,qe=h[$]+" ".repeat(Math.max(0,He)),Ke=g(S.scope,d),ze=g(S.type,u),Ue=S.warningCount>0?` ${p.yellow(`(${S.warningCount} warning${S.warningCount>1?"s":""})`)}`:"",Je=g(S.invoke,l),ye=`${ee} ${te} ${oe} ${Be} ${Je}${Ve} ${qe} ${Ke} ${ze}${Ue}`;n.push(S.disabled?p.dim(ye):ye)}let I=t.length,C=e.length,E=new Set(e.map($=>$.provider)),G=e.filter($=>$.scope==="global").length,B=e.filter($=>$.scope==="project").length;n.push("");let V=`${C} skills (${I} unique) across ${E.size} tools | ${G} global, ${B} project`;return n.push(p.dim(V)),n.join(`
|
|
13
|
+
`)}function jt(e,t){if(!v()||!t)return e;let n=e.toLowerCase().indexOf(t.toLowerCase());if(n===-1)return e;let o=e.slice(0,n),r=e.slice(n,n+t.length),i=e.slice(n+t.length);return`${o}${p.bold(p.yellow(r))}${i}`}function Ot(e,t){if(e.length===0)return`No skills matching "${t}". Try ${p.bold("asm list")} to see all skills.`;let n=z(e),o=[];o.push(p.dim(`Found ${e.length} result${e.length===1?"":"s"} (${n.length} unique) matching "${t}"`)+`
|
|
14
|
+
`);let r=Math.max(4,...n.map(b=>b.name.length)),i=Math.max(7,...n.map(b=>b.version.length)),a=Math.max(7,...n.map(b=>Math.min((b.creator||"\u2014").length,15))),l=Math.max(6,...n.map(b=>(b.effort||"\u2014").length)),s=n.map(b=>b.providers.map(y=>K(y.provider,y.label)).join(" ")),c=n.map(b=>b.providers.map(y=>`[${y.label}]`).join(" ")),d=Math.max(9,...c.map(b=>b.length)),u=7,h=9,f=(b,y)=>b.padEnd(y),m=6,g=`${f("Name",r)} ${f("Version",i)} ${f("Creator",a)} ${f("Effort",l)} ${f("Invoke",m)} ${f("Tools",d)} ${f("Scope",u)} ${f("Type",h)}`;o.push(v()?p.bold(g):g),o.push(`${"-".repeat(r)} ${"-".repeat(i)} ${"-".repeat(a)} ${"-".repeat(l)} ${"-".repeat(m)} ${"-".repeat(d)} ${"-".repeat(u)} ${"-".repeat(h)}`);for(let b=0;b<n.length;b++){let y=n[b],w=jt(y.name,t),I=r-y.name.length,C=w+" ".repeat(Math.max(0,I)),E=f(y.version,i),G=(y.creator||"\u2014").slice(0,15),B=f(G,a),V=y.effort||"\u2014",$=y.effort?j(y.effort):"\u2014",S=l-V.length,ee=$+" ".repeat(Math.max(0,S)),te=d-c[b].length,ne=s[b]+" ".repeat(Math.max(0,te)),oe=f(y.scope,u),re=f(y.type,h),ie=f(y.invoke,m);o.push(`${C} ${E} ${B} ${ee} ${ie} ${ne} ${oe} ${re}`)}return o.join(`
|
|
15
|
+
`)}function Dt(e,t){if(e.length===0)return"";let n=[];n.push(p.dim(`Found ${e.length} available skill${e.length===1?"":"s"} matching "${t}"`)+`
|
|
16
|
+
`);for(let o of e){n.push(` ${p.dim("To install:")} ${p.green(`asm install ${o.installUrl}`)}`);let r=o.verified?p.blue(" [verified]"):"",i=o.invocability?p.dim(` [${o.invocability}]`):"";n.push(` ${p.cyan(o.name)} ${p.dim(`v${o.version}`)}${r}${i} ${p.dim(`[${o.repoLabel}]`)}`);for(let a of Z(o.description,76))n.push(` ${a}`);n.push("")}return n.join(`
|
|
17
|
+
`)}var ve=new Set(["Bash","Write","Edit","NotebookEdit"]),je=new Set(["WebFetch","WebSearch"]);function Oe(e){return ve.has(e)?p.red(e):je.has(e)?p.yellow(e):p.green(e)}function Q(e){return e.length===0?"":e.map(Oe).join(" ")}function be(e){let t=e.filter(o=>ve.has(o));if(t.length===0)return null;let n=[];return t.includes("Bash")&&n.push("execute shell commands"),(t.includes("Write")||t.includes("Edit")||t.includes("NotebookEdit"))&&n.push("modify files"),`This skill can ${n.join(" and ")}`}function Z(e,t){let n=e.split(/\s+/),o=[],r="";for(let i of n)r.length+i.length+1>t&&r.length>0?(o.push(r),r=i):r=r?r+" "+i:i;return r&&o.push(r),o}function _t(e){return JSON.stringify(e,null,2)}async function De(e){let t=[],n=(i,a)=>`${v()?p.bold(i+":"):i+":"} ${a}`;t.push(n("Name",e.name)),t.push(n("Version",e.version)),t.push(n("Creator",e.creator||"\u2014")),t.push(n("License",e.license||"\u2014")),e.compatibility&&t.push(n("Compatibility",e.compatibility)),e.effort&&t.push(n("Effort",j(e.effort))),t.push(n("Invocable",O(e.modelInvocable,e.userInvocable))),t.push(n("Tool",e.providerLabel)),t.push(n("Scope",e.scope)),t.push(n("Location",e.location)),t.push(n("Path",L(e.path))),t.push(n("Type",e.isSymlink?"symlink":"directory")),e.isSymlink&&e.symlinkTarget&&t.push(n("Symlink Target",e.symlinkTarget));let o=e.fileCount??await me(e.path);if(t.push(n("File Count",String(o))),typeof e.tokenCount=="number"&&t.push(n("Est. Tokens",H(e.tokenCount))),e.description&&(t.push(""),t.push(n("Description",e.description))),e.allowedTools&&e.allowedTools.length>0){t.push(""),t.push(v()?p.bold("Allowed Tools:"):"Allowed Tools:"),t.push(` ${Q(e.allowedTools)}`);let i=be(e.allowedTools);i&&t.push(` ${v()?p.yellow("\u26A0"):"!"} ${i}`)}t.push(""),t.push(v()?p.bold("Eval Score:"):"Eval Score:");let r=_e(e);if(r.length>0){let i=r.length>1;for(let a of r){let l=$e(a.overallScore),s=a.providerId?`${a.providerId}@${a.providerVersion??"?"}`:"quality";i?t.push(` ${s}: ${l} / 100 (${a.grade})`):t.push(` Overall: ${l} / 100 (${a.grade})`);let c=a.evaluatedVersion?` \u2014 version ${a.evaluatedVersion}`:"";if(t.push(` ${v()?p.dim("Evaluated:"):"Evaluated:"} ${a.evaluatedAt}${c}`),a.categories.length>0){i?t.push(v()?p.dim(` Categories (${s}):`):` Categories (${s}):`):t.push(v()?p.dim(" Categories:"):" Categories:");for(let d of a.categories)t.push(` ${d.name.padEnd(28)} ${d.score}/${d.max}`)}}}else t.push(v()?p.dim(" Not available \u2014 run `asm eval "+e.path+"` to generate one."):" Not available \u2014 run `asm eval "+e.path+"` to generate one.");if(e.warnings&&e.warnings.length>0){t.push(""),t.push(v()?p.bold("Warnings:"):"Warnings:");for(let i of e.warnings)t.push(` ${v()?p.yellow("!"):"!"} [${i.category}] ${i.message}`)}return t.join(`
|
|
18
|
+
`)}function $e(e){let t=String(e);return v()?e>=90?p.green(t):e>=80?p.cyan(t):e>=65?p.yellow(t):p.red(t):t}function _e(e){return e.evalSummaries&&Object.keys(e.evalSummaries).length>0?Object.values(e.evalSummaries).sort((n,o)=>{let r=n.providerId??"quality",i=o.providerId??"quality";return r==="quality"&&i!=="quality"?-1:i==="quality"&&r!=="quality"?1:r.localeCompare(i)}):e.evalSummary?[e.evalSummary]:[]}async function Wt(e){if(e.length===0)return"No skills found.";if(e.length===1)return De(e[0]);let t=[],n=(d,u)=>`${v()?p.bold(d+":"):d+":"} ${u}`,o=e[0],r=o.name;t.push(""),t.push(v()?p.blueBold(` ${r}`):` ${r}`),t.push(v()?p.dim(" "+"-".repeat(r.length+2)):" "+"-".repeat(r.length+2)),t.push(""),t.push(n(" Version",o.version)),t.push(n(" Creator",o.creator||"\u2014")),t.push(n(" License",o.license||"\u2014")),o.compatibility&&t.push(n(" Compatibility",o.compatibility)),o.effort&&t.push(n(" Effort",j(o.effort))),t.push(n(" Invocable",O(o.modelInvocable,o.userInvocable)));let i=o.fileCount??await me(o.path);t.push(n(" File Count",String(i))),typeof o.tokenCount=="number"&&t.push(n(" Est. Tokens",H(o.tokenCount)));let a=e.map(d=>K(d.provider,d.providerLabel)).join(" ");t.push(n(" Installed in",a)),t.push(""),t.push(v()?p.bold(" Eval Score:"):" Eval Score:");let l=_e(o);if(l.length>0){let d=l.length>1;for(let u of l){let h=$e(u.overallScore),f=u.providerId?`${u.providerId}@${u.providerVersion??"?"}`:"quality";d?t.push(` ${f}: ${h} / 100 (${u.grade})`):t.push(` Overall: ${h} / 100 (${u.grade})`);let m=u.evaluatedVersion?` \u2014 version ${u.evaluatedVersion}`:"";if(t.push(` ${v()?p.dim("Evaluated:"):"Evaluated:"} ${u.evaluatedAt}${m}`),u.categories.length>0)for(let g of u.categories)t.push(` ${g.name.padEnd(28)} ${g.score}/${g.max}`)}}else t.push(v()?p.dim(` Not available \u2014 run \`asm eval ${o.path}\` to generate one.`):` Not available \u2014 run \`asm eval ${o.path}\` to generate one.`);if(o.description){t.push(""),t.push(v()?p.bold(" Description:"):" Description:");let d=Z(o.description,72);for(let u of d)t.push(" "+u)}if(o.allowedTools&&o.allowedTools.length>0){t.push(""),t.push(v()?p.bold(" Allowed Tools:"):" Allowed Tools:"),t.push(` ${Q(o.allowedTools)}`);let d=be(o.allowedTools);d&&t.push(` ${v()?p.yellow("\u26A0"):"!"} ${d}`)}t.push("");let s=` Installations (${e.length})`;t.push(v()?p.bold(s):s);for(let d=0;d<e.length;d++){let u=e[d],h=W(u.provider,u.providerLabel),f=u.isSymlink?"symlink":"directory",m=p.dim(u.scope);t.push(` ${h} (${m}, ${f})`),t.push(` ${p.dim("Path:")} ${L(u.path)}`),u.isSymlink&&u.symlinkTarget&&t.push(` ${p.dim("Target:")} ${u.symlinkTarget}`)}let c=e.flatMap(d=>!d.warnings||d.warnings.length===0?[]:d.warnings.map(u=>({...u,provider:d.providerLabel})));if(c.length>0){t.push("");let d=` Warnings (${c.length})`;t.push(v()?p.bold(d):d);for(let u of c){let h=v()?p.yellow("!"):"!";t.push(` ${h} [${u.category}] ${u.message}`)}}return t.push(""),t.join(`
|
|
19
|
+
`)}function Bn(e){let t=[],n=new Set,o=new Map,r=[];for(let s of e){let c=o.get(s.realPath);if(c){if(s.isSymlink)continue;(c.isSymlink||s.scope==="global"&&c.scope!=="global")&&(r[r.indexOf(c)]=s,o.set(s.realPath,s))}else o.set(s.realPath,s),r.push(s)}let i=new Map;for(let s of r){let c=i.get(s.dirName)??[];c.push(s),i.set(s.dirName,c)}for(let[s,c]of i)if(new Set(c.map(u=>u.location)).size>=2){t.push({key:s,reason:"same-dirName",instances:c});for(let u of c)n.add(u.path)}let a=new Map;for(let s of r){if(!s.name)continue;let c=a.get(s.name)??[];c.push(s),a.set(s.name,c)}for(let[s,c]of a){if(new Set(c.map(f=>f.dirName)).size<2)continue;let u=c.filter(f=>!n.has(f.path));u.length<2||new Set(u.map(f=>f.dirName)).size<2||t.push({key:s,reason:"same-frontmatterName",instances:u})}t.sort((s,c)=>s.reason!==c.reason?s.reason==="same-dirName"?-1:1:s.key.localeCompare(c.key));let l=t.reduce((s,c)=>s+c.instances.length,0);return{scannedAt:new Date().toISOString(),totalSkills:e.length,duplicateGroups:t,totalDuplicateInstances:l}}function Gt(e){return[...e].sort((t,n)=>{if(t.scope!==n.scope)return t.scope==="global"?-1:1;let o=t.providerLabel.localeCompare(n.providerLabel);return o!==0?o:t.path.localeCompare(n.path)})}function Bt(e){return e==="same-dirName"?"same dirName":"same name"}function Vn(e){if(e.duplicateGroups.length===0)return p.green("No duplicate skills found.");let t=[];t.push(""),t.push(p.bold(` Found ${e.duplicateGroups.length} duplicate group(s) (${e.totalDuplicateInstances} total instances):`)),t.push("");for(let n of e.duplicateGroups){t.push(` ${p.yellow(`"${n.key}"`)} ${p.dim(`(${Bt(n.reason)})`)}`);let o=Gt(n.instances);for(let r=0;r<o.length;r++){let i=o[r],a=W(i.provider,i.providerLabel),l=r===0?p.green(" [keep]"):p.dim(" "),s=p.dim(`(${i.scope})`);t.push(` ${l} ${a} ${s} ${p.dim(L(i.path))}`)}t.push("")}return t.push(p.dim(` Run ${p.bold("asm audit -y")} to auto-remove duplicates`)),t.push(""),t.join(`
|
|
20
|
+
`)}function Hn(e){return JSON.stringify(e,null,2)}function Kn(e){let t=e.trim();if(!t)return["vi",[]];let n=[],o="",r=!1,i=0;for(;i<t.length;){let a=t[i];if(a==='"'){for(r=!0,i++;i<t.length&&t[i]!=='"';){if(t[i]==="\\"&&i+1<t.length){let l=t[i+1];if(l==='"'||l==="\\"){o+=l,i+=2;continue}}o+=t[i],i++}i++}else if(a==="'"){for(r=!0,i++;i<t.length&&t[i]!=="'";)o+=t[i],i++;i++}else a===" "||a===" "?((o.length>0||r)&&(n.push(o),o="",r=!1),i++):(o+=a,i++)}return(o.length>0||r)&&n.push(o),n.length===0?["vi",[]]:[n[0],n.slice(1)]}import{readFileSync as Vt}from"fs";import{resolve as Ht,dirname as qt}from"path";import{fileURLToPath as Kt}from"url";import{spawnSync as zt}from"child_process";var Ut=qt(Kt(import.meta.url)),We="2.15.0";try{let e=Vt(Ht(Ut,"../../package.json"),"utf-8");We=JSON.parse(e).version}catch{}var M,Jt=We;function Yt(){if(M!==void 0)return M;let e="844bc99";if(e!==void 0)return M=e,M;M="unknown";try{M=zt("git",["rev-parse","--short","HEAD"],{encoding:"utf-8",stdio:["pipe","pipe","ignore"],timeout:5e3}).stdout?.trim()||M}catch{}return M}function Qn(){return`v${Jt} (${Yt()})`}export{U as a,H as b,Zt as c,en as d,se as e,ae as f,le as g,ce as h,ue as i,O as j,Xt as k,p as l,j as m,W as n,L as o,Tt as p,Lt as q,Mt as r,Ae as s,Rt as t,Ft as u,At as v,Ot as w,Dt as x,ve as y,je as z,Z as A,_t as B,me as C,pn as D,fn as E,dn as F,Wt as G,Jt as H,Qn as I,ge as J,vn as K,bt as L,$t as M,bn as N,It as O,Pn as P,In as Q,Cn as R,En as S,Bn as T,Gt as U,Bt as V,Vn as W,Hn as X,Kn as Y};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
|
|
2
|
+
import{b as i,f as l}from"./chunk-LS24FFOX.js";import{readFile as b,copyFile as S}from"fs/promises";import{execFile as N}from"child_process";import{promisify as A}from"util";import{mkdir as g,open as f,rename as P,rm as E}from"fs/promises";import{randomUUID as v}from"crypto";import{basename as L,dirname as F,join as $,resolve as m}from"path";var c=new Map,x=new Set(["EINVAL","ENOSYS","ENOTSUP","EOPNOTSUPP"]);function y(e){let r=e?.code;return typeof r=="string"&&x.has(r)||process.platform==="win32"&&(r==="EISDIR"||r==="EPERM")}var u=class extends Error{constructor(t,n){let o=n instanceof Error?n.message:String(n);super(`Atomic write to ${t} was renamed into place, but parent-directory durability could not be confirmed: ${o}`);this.path=t;this.cause=n;this.name="AtomicWritePostRenameError"}path;cause;committed=!0};async function T(e){let r;try{r=await f(e,"r")}catch(o){if(y(o))return;throw o}let t=!1,n;try{await r.sync()}catch(o){y(o)||(t=!0,n=o)}try{await r.close()}catch(o){if(!t)throw o}if(t)throw n}async function p(e,r){let t=m(e),o=(c.get(t)??Promise.resolve()).then(r,r),s=o.then(()=>{},()=>{});c.set(t,s);try{return await o}finally{c.get(t)===s&&c.delete(t)}}async function w(e,r){let t=m(e),n=F(t),o=$(n,`.${L(t)}.${process.pid}.${Date.now()}.${v()}.tmp`);await g(n,{recursive:!0});let s=null;try{s=await f(o,"wx"),await s.writeFile(r,"utf-8"),await s.sync(),await s.close(),s=null,await P(o,t)}catch(a){if(s)try{await s.close()}catch{}try{await E(o,{force:!0})}catch{}throw a}try{await T(n)}catch(a){throw new u(t,a)}}var D=A(N);function k(){return{version:1,skills:{}}}async function V(){return h(l())}async function W(e,r){await d(t=>(t.skills[e]=r,{changed:!0})),i(`lock: wrote entry for "${e}"`)}async function Y(e){if(!await d(t=>e in t.skills?(delete t.skills[e],{changed:!0,result:!0}):{changed:!1,result:!1})){i(`lock: no entry for "${e}", nothing to remove`);return}i(`lock: removed entry for "${e}"`)}async function _(e,r){let t=await d(n=>{let o=n.skills[e];return o?o.provider===r?{changed:!1,result:"unchanged"}:(n.skills[e]={...o,provider:r},{changed:!0,result:"updated"}):{changed:!1,result:"missing"}});if(t==="missing"){i(`lock: no entry for "${e}", cannot update provider`);return}if(t==="unchanged"){i(`lock: entry for "${e}" already points at "${r}"`);return}i(`lock: updated provider for "${e}" -> "${r}"`)}async function h(e){let r;try{r=await b(e,"utf-8")}catch(t){if(t?.code==="ENOENT")return i("lock: file not found, returning empty lock"),k();throw t}try{let t=JSON.parse(r);if(t.version!==1||typeof t.skills!="object"||t.skills===null)throw new Error("invalid schema");return i(`lock: loaded ${Object.keys(t.skills).length} entries`),t}catch{let t=e+".bak";i(`lock: parse error, backing up to ${t}`);try{await S(e,t)}catch{}return console.error(`Warning: .skill-lock.json was corrupted. Backup saved to ${t}. Starting fresh.`),k()}}async function d(e){let r=l();return p(r,async()=>{let t=await h(r),{changed:n,result:o}=await e(t);return n&&await O(t,r),o})}async function O(e,r){await w(r,JSON.stringify(e,null,2)+`
|
|
3
|
+
`)}async function q(e){try{let{stdout:r}=await D("git",["rev-parse","HEAD"],{cwd:e,timeout:5e3});return r.trim()||null}catch{return i("lock: could not read commit hash from cloned repo"),null}}export{u as a,p as b,w as c,V as d,W as e,Y as f,_ as g,q as h};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
|
|
2
|
+
import{readFile as k,writeFile as w,mkdir as S,copyFile as y}from"fs/promises";import{join as t,resolve as p,dirname as A}from"path";import{fileURLToPath as I}from"url";import{homedir as x}from"os";var b=!1,m=0;function N(e){b=e,e&&(m=performance.now())}function s(e){if(!b)return;let r=Math.round(performance.now()-m),n=globalThis.__CLI_NO_COLOR?`[verbose] +${r}ms`:`\x1B[2m[verbose] +${r}ms\x1B[0m`;console.error(`${n} ${e}`)}var _=I(import.meta.url),v=A(_);function i(){let e=process.env.ASM_CONFIG_DIR;return e||t(x(),".config","agent-skill-manager")}var R=[{name:"claude",label:"Claude Code",global:"~/.claude/skills",project:".claude/skills",enabled:!0},{name:"codex",label:"Codex",global:"~/.codex/skills",project:".codex/skills",enabled:!0},{name:"opencode",label:"OpenCode",global:"~/.config/opencode/skills",project:".opencode/skills",enabled:!0},{name:"pi",label:"Pi",global:"~/.pi/skills",project:".pi/skills",enabled:!0},{name:"hermes",label:"Hermes",global:"~/.hermes/skills",project:".hermes/skills",enabled:!0},{name:"openclaw",label:"OpenClaw",global:"~/.openclaw/skills",project:".openclaw/skills",enabled:!0},{name:"agents",label:"Agents",global:"~/.agents/skills",project:".agents/skills",enabled:!0},{name:"cursor",label:"Cursor",global:"~/.cursor/rules",project:".cursor/rules",enabled:!0},{name:"copilot",label:"GitHub Copilot",global:"~/.github/instructions",project:".github/instructions",enabled:!0},{name:"windsurf",label:"Windsurf",global:"~/.windsurf/rules",project:".windsurf/rules",enabled:!0},{name:"antigravity",label:"Google Antigravity",global:"~/.antigravity/skills",project:".antigravity/skills",enabled:!0},{name:"gemini",label:"Gemini CLI",global:"~/.gemini/skills",project:".gemini/skills",enabled:!0},{name:"cline",label:"Cline",global:"~/Documents/Cline/Rules",project:".clinerules",enabled:!0},{name:"roocode",label:"Roo Code",global:"~/.roo/rules",project:".roo/rules",enabled:!0},{name:"continue",label:"Continue",global:"~/.continue/rules",project:".continue/rules",enabled:!0},{name:"aider",label:"Aider",global:"~/.aider/skills",project:".aider/skills",enabled:!0},{name:"zed",label:"Zed",global:"~/.config/zed/prompt_overrides",project:".zed/rules",enabled:!0},{name:"augment",label:"Augment",global:"~/.augment/rules",project:".augment/rules",enabled:!0},{name:"amp",label:"Amp",global:"~/.amp/skills",project:".amp/skills",enabled:!0}];function u(){return{version:1,providers:R.map(e=>({...e})),customPaths:[],preferences:{defaultScope:"both",defaultSort:"name"}}}function h(){return t(i(),"config.json")}function z(){return t(i(),".skill-lock.json")}function J(){return t(i(),"skill-state.json")}function U(){return t(i(),"skill-index")}function C(){return t(i(),"library")}function V(){return t(C(),"skills")}function B(){return t(C(),"library-lock.json")}function H(){return p(v,"..","data","skill-index")}function D(){return p(v,"..","data","skill-index-resources.json")}async function M(){let e=D(),r=await k(e,"utf-8");return JSON.parse(r)}function Z(e){return e.startsWith("~/")?t(x(),e.slice(2)):e.startsWith("/")?e:p(e)}function O(e){let r=u(),o=e.providers||[],n=new Set(o.map(l=>l.name));for(let l=0;l<r.providers.length;l++){let a=r.providers[l];if(n.has(a.name))continue;let g=o.length;for(let c=l-1;c>=0;c--){let j=r.providers[c].name,f=o.findIndex(P=>P.name===j);if(f!==-1){g=f+1;break}}o.splice(g,0,{...a}),n.add(a.name)}return{version:e.version??r.version,providers:o,customPaths:e.customPaths??[],preferences:{defaultScope:e.preferences?.defaultScope??r.preferences.defaultScope,defaultSort:e.preferences?.defaultSort??r.preferences.defaultSort,selectedTools:e.preferences?.selectedTools}}}async function L(){let e=h();s(`config: checking ${e}`);let r;try{r=await k(e,"utf-8")}catch(o){if(o?.code==="ENOENT"){s("config: using defaults (file not found)");let n=u();return await d(n),n}throw o}try{let o=JSON.parse(r);return s(`config: loaded from ${e}`),O(o)}catch{let o=e+".bak";s(`config: parse error, backing up to ${o}`),await y(e,o),console.error(`Warning: Config file was corrupted. Backup saved to ${o}. Using defaults.`);let n=u();return await d(n),n}}async function d(e){let r=h();await S(i(),{recursive:!0}),await w(r,JSON.stringify(e,null,2)+`
|
|
3
|
+
`,"utf-8")}async function q(e){let r=await L();r.preferences.selectedTools=e,await d(r)}export{N as a,s as b,i as c,u as d,h as e,z as f,J as g,U as h,C as i,V as j,B as k,H as l,D as m,M as n,Z as o,L as p,d as q,q as r};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
|
|
2
|
+
var g=Object.create;var e=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(b,c)=>(typeof require<"u"?require:b)[c]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});var n=(a,b)=>()=>{try{return b||a((b={exports:{}}).exports,b),b.exports}catch(c){throw b=0,c}},o=(a,b)=>{for(var c in b)e(a,c,{get:b[c],enumerable:!0})},l=(a,b,c,f)=>{if(b&&typeof b=="object"||typeof b=="function")for(let d of i(b))!k.call(a,d)&&d!==c&&e(a,d,{get:()=>b[d],enumerable:!(f=h(b,d))||f.enumerable});return a};var p=(a,b,c)=>(c=a!=null?g(j(a)):{},l(b||!a||!a.__esModule?e(c,"default",{value:a,enumerable:!0}):c,a));export{m as a,n as b,o as c,p as d};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
|
|
2
|
+
import{c as a,d as b,e as c,f as d,g as e,h as f,i as g,j as h,k as i,l as j,m as k,n as l,o as m,p as n,q as o,r as p}from"./chunk-LS24FFOX.js";import"./chunk-RSVWCEZR.js";export{j as getBundledIndexDir,a as getConfigDir,c as getConfigPath,b as getDefaultConfig,f as getIndexDir,g as getLibraryDir,i as getLibraryLockPath,h as getLibrarySkillsDir,d as getLockPath,k as getSkillIndexResourcesPath,e as getSkillStatePath,n as loadConfig,l as loadSkillIndexResources,m as resolveProviderPath,o as saveConfig,p as saveSelectedTools};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
|
|
2
|
+
import{a as p,b as S,d as N}from"./chunk-RSVWCEZR.js";var O=S((Ts,He)=>{"use strict";var je=["nodebuffer","arraybuffer","fragments"],ze=typeof Blob<"u";ze&&je.push("blob");He.exports={BINARY_TYPES:je,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:ze,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var X=S((Os,se)=>{"use strict";var{EMPTY_BUFFER:Zt}=O(),Ee=Buffer[Symbol.species];function Qt(t,e){if(t.length===0)return Zt;if(t.length===1)return t[0];let r=Buffer.allocUnsafe(e),s=0;for(let i=0;i<t.length;i++){let n=t[i];r.set(n,s),s+=n.length}return s<e?new Ee(r.buffer,r.byteOffset,s):r}function Ye(t,e,r,s,i){for(let n=0;n<i;n++)r[s+n]=t[n]^e[n&3]}function Ke(t,e){for(let r=0;r<t.length;r++)t[r]^=e[r&3]}function Jt(t){return t.length===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.length)}function ve(t){if(ve.readOnly=!0,Buffer.isBuffer(t))return t;let e;return t instanceof ArrayBuffer?e=new Ee(t):ArrayBuffer.isView(t)?e=new Ee(t.buffer,t.byteOffset,t.byteLength):(e=Buffer.from(t),ve.readOnly=!1),e}se.exports={concat:Qt,mask:Ye,toArrayBuffer:Jt,toBuffer:ve,unmask:Ke};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=p("bufferutil");se.exports.mask=function(e,r,s,i,n){n<48?Ye(e,r,s,i,n):t.mask(e,r,s,i,n)},se.exports.unmask=function(e,r){e.length<32?Ke(e,r):t.unmask(e,r)}}catch{}});var Qe=S((ks,Ze)=>{"use strict";var Xe=Symbol("kDone"),be=Symbol("kRun"),we=class{constructor(e){this[Xe]=()=>{this.pending--,this[be]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[be]()}[be](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[Xe])}}};Ze.exports=we});var G=S((Cs,rt)=>{"use strict";var Z=p("zlib"),Je=X(),er=Qe(),{kStatusCode:et}=O(),tr=Buffer[Symbol.species],rr=Buffer.from([0,0,255,255]),ne=Symbol("permessage-deflate"),k=Symbol("total-length"),W=Symbol("callback"),P=Symbol("buffers"),q=Symbol("error"),ie,Te=class{constructor(e){if(this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!ie){let r=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;ie=new er(r)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[W];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let r=this._options,s=e.find(i=>!(r.serverNoContextTakeover===!1&&i.server_no_context_takeover||i.server_max_window_bits&&(r.serverMaxWindowBits===!1||typeof r.serverMaxWindowBits=="number"&&r.serverMaxWindowBits>i.server_max_window_bits)||typeof r.clientMaxWindowBits=="number"&&!i.client_max_window_bits));if(!s)throw new Error("None of the extension offers can be accepted");return r.serverNoContextTakeover&&(s.server_no_context_takeover=!0),r.clientNoContextTakeover&&(s.client_no_context_takeover=!0),typeof r.serverMaxWindowBits=="number"&&(s.server_max_window_bits=r.serverMaxWindowBits),typeof r.clientMaxWindowBits=="number"?s.client_max_window_bits=r.clientMaxWindowBits:(s.client_max_window_bits===!0||r.clientMaxWindowBits===!1)&&delete s.client_max_window_bits,s}acceptAsClient(e){let r=e[0];if(this._options.clientNoContextTakeover===!1&&r.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!r.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(r.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&r.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return r}normalizeParams(e){return e.forEach(r=>{Object.keys(r).forEach(s=>{let i=r[s];if(i.length>1)throw new Error(`Parameter "${s}" must have only a single value`);if(i=i[0],s==="client_max_window_bits"){if(i!==!0){let n=+i;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${s}": ${i}`);i=n}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${s}": ${i}`)}else if(s==="server_max_window_bits"){let n=+i;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${s}": ${i}`);i=n}else if(s==="client_no_context_takeover"||s==="server_no_context_takeover"){if(i!==!0)throw new TypeError(`Invalid value for parameter "${s}": ${i}`)}else throw new Error(`Unknown parameter "${s}"`);r[s]=i})}),e}decompress(e,r,s){ie.add(i=>{this._decompress(e,r,(n,o)=>{i(),s(n,o)})})}compress(e,r,s){ie.add(i=>{this._compress(e,r,(n,o)=>{i(),s(n,o)})})}_decompress(e,r,s){let i=this._isServer?"client":"server";if(!this._inflate){let n=`${i}_max_window_bits`,o=typeof this.params[n]!="number"?Z.Z_DEFAULT_WINDOWBITS:this.params[n];this._inflate=Z.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[ne]=this,this._inflate[k]=0,this._inflate[P]=[],this._inflate.on("error",ir),this._inflate.on("data",tt)}this._inflate[W]=s,this._inflate.write(e),r&&this._inflate.write(rr),this._inflate.flush(()=>{let n=this._inflate[q];if(n){this._inflate.close(),this._inflate=null,s(n);return}let o=Je.concat(this._inflate[P],this._inflate[k]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[k]=0,this._inflate[P]=[],r&&this.params[`${i}_no_context_takeover`]&&this._inflate.reset()),s(null,o)})}_compress(e,r,s){let i=this._isServer?"server":"client";if(!this._deflate){let n=`${i}_max_window_bits`,o=typeof this.params[n]!="number"?Z.Z_DEFAULT_WINDOWBITS:this.params[n];this._deflate=Z.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[k]=0,this._deflate[P]=[],this._deflate.on("data",sr)}this._deflate[W]=s,this._deflate.write(e),this._deflate.flush(Z.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let n=Je.concat(this._deflate[P],this._deflate[k]);r&&(n=new tr(n.buffer,n.byteOffset,n.length-4)),this._deflate[W]=null,this._deflate[k]=0,this._deflate[P]=[],r&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),s(null,n)})}};rt.exports=Te;function sr(t){this[P].push(t),this[k]+=t.length}function tt(t){if(this[k]+=t.length,this[ne]._maxPayload<1||this[k]<=this[ne]._maxPayload){this[P].push(t);return}this[q]=new RangeError("Max payload size exceeded"),this[q].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[q][et]=1009,this.removeListener("data",tt),this.reset()}function ir(t){if(this[ne]._inflate=null,this[q]){this[W](this[q]);return}t[et]=1007,this[W](t)}});var V=S((Ls,oe)=>{"use strict";var{isUtf8:st}=p("buffer"),{hasBlob:nr}=O(),or=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function ar(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function Oe(t){let e=t.length,r=0;for(;r<e;)if((t[r]&128)===0)r++;else if((t[r]&224)===192){if(r+1===e||(t[r+1]&192)!==128||(t[r]&254)===192)return!1;r+=2}else if((t[r]&240)===224){if(r+2>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||t[r]===224&&(t[r+1]&224)===128||t[r]===237&&(t[r+1]&224)===160)return!1;r+=3}else if((t[r]&248)===240){if(r+3>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||(t[r+3]&192)!==128||t[r]===240&&(t[r+1]&240)===128||t[r]===244&&t[r+1]>143||t[r]>244)return!1;r+=4}else return!1;return!0}function lr(t){return nr&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&(t[Symbol.toStringTag]==="Blob"||t[Symbol.toStringTag]==="File")}oe.exports={isBlob:lr,isValidStatusCode:ar,isValidUTF8:Oe,tokenChars:or};if(st)oe.exports.isValidUTF8=function(t){return t.length<24?Oe(t):st(t)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=p("utf-8-validate");oe.exports.isValidUTF8=function(e){return e.length<32?Oe(e):t(e)}}catch{}});var Pe=S((Ns,ht)=>{"use strict";var{Writable:fr}=p("stream"),it=G(),{BINARY_TYPES:hr,EMPTY_BUFFER:nt,kStatusCode:cr,kWebSocket:ur}=O(),{concat:ke,toArrayBuffer:dr,unmask:_r}=X(),{isValidStatusCode:mr,isValidUTF8:ot}=V(),ae=Buffer[Symbol.species],v=0,at=1,lt=2,ft=3,Ce=4,Le=5,le=6,Ne=class extends fr{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||hr[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxBufferedChunks=e.maxBufferedChunks|0,this._maxFragments=e.maxFragments|0,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[ur]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=v}_write(e,r,s){if(this._opcode===8&&this._state==v)return s();if(this._maxBufferedChunks>0&&this._buffers.length>=this._maxBufferedChunks){s(this.createError(RangeError,"Too many buffered chunks",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS"));return}this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(s)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let s=this._buffers[0];return this._buffers[0]=new ae(s.buffer,s.byteOffset+e,s.length-e),new ae(s.buffer,s.byteOffset,e)}let r=Buffer.allocUnsafe(e);do{let s=this._buffers[0],i=r.length-e;e>=s.length?r.set(this._buffers.shift(),i):(r.set(new Uint8Array(s.buffer,s.byteOffset,e),i),this._buffers[0]=new ae(s.buffer,s.byteOffset+e,s.length-e)),e-=s.length}while(e>0);return r}startLoop(e){this._loop=!0;do switch(this._state){case v:this.getInfo(e);break;case at:this.getPayloadLength16(e);break;case lt:this.getPayloadLength64(e);break;case ft:this.getMask();break;case Ce:this.getData(e);break;case Le:case le:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let r=this.consume(2);if((r[0]&48)!==0){let i=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(i);return}let s=(r[0]&64)===64;if(s&&!this._extensions[it.extensionName]){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._fin=(r[0]&128)===128,this._opcode=r[0]&15,this._payloadLength=r[1]&127,this._opcode===0){if(s){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(!this._fragmented){let i=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._compressed=s}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let i=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(i);return}if(s){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let i=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(i);return}}else{let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(r[1]&128)===128,this._isServer){if(!this._masked){let i=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(i);return}}else if(this._masked){let i=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(i);return}this._payloadLength===126?this._state=at:this._payloadLength===127?this._state=lt:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let r=this.consume(8),s=r.readUInt32BE(0);if(s>Math.pow(2,21)-1){let i=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(i);return}this._payloadLength=s*Math.pow(2,32)+r.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let r=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(r);return}this._masked?this._state=ft:this._state=Ce}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=Ce}getData(e){let r=nt;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}r=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&_r(r,this._mask)}if(this._opcode>7){this.controlMessage(r,e);return}if(this._compressed){this._state=Le,this.decompress(r,e);return}if(r.length){if(this._maxFragments>0&&this._fragments.length>=this._maxFragments){let s=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");e(s);return}this._messageLength=this._totalPayloadLength,this._fragments.push(r)}this.dataMessage(e)}decompress(e,r){this._extensions[it.extensionName].decompress(e,this._fin,(i,n)=>{if(i)return r(i);if(n.length){if(this._messageLength+=n.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");r(o);return}if(this._maxFragments>0&&this._fragments.length>=this._maxFragments){let o=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");r(o);return}this._fragments.push(n)}this.dataMessage(r),this._state===v&&this.startLoop(r)})}dataMessage(e){if(!this._fin){this._state=v;return}let r=this._messageLength,s=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let i;this._binaryType==="nodebuffer"?i=ke(s,r):this._binaryType==="arraybuffer"?i=dr(ke(s,r)):this._binaryType==="blob"?i=new Blob(s):i=s,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=v):(this._state=le,setImmediate(()=>{this.emit("message",i,!0),this._state=v,this.startLoop(e)}))}else{let i=ke(s,r);if(!this._skipUTF8Validation&&!ot(i)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(n);return}this._state===Le||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=v):(this._state=le,setImmediate(()=>{this.emit("message",i,!1),this._state=v,this.startLoop(e)}))}}controlMessage(e,r){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,nt),this.end();else{let s=e.readUInt16BE(0);if(!mr(s)){let n=this.createError(RangeError,`invalid status code ${s}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");r(n);return}let i=new ae(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!ot(i)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");r(n);return}this._loop=!1,this.emit("conclude",s,i),this.end()}this._state=v;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=v):(this._state=le,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=v,this.startLoop(r)}))}createError(e,r,s,i,n){this._loop=!1,this._errored=!0;let o=new e(s?`Invalid WebSocket frame: ${r}`:r);return Error.captureStackTrace(o,this.createError),o.code=n,o[cr]=i,o}};ht.exports=Ne});var Ue=S((Bs,dt)=>{"use strict";var{Duplex:Ps}=p("stream"),{randomFillSync:pr}=p("crypto"),{types:{isUint8Array:gr}}=p("util"),ct=G(),{EMPTY_BUFFER:yr,kWebSocket:xr,NOOP:Sr}=O(),{isBlob:$,isValidStatusCode:Er}=V(),{mask:ut,toBuffer:R}=X(),b=Symbol("kByteLength"),vr=Buffer.alloc(4),fe=8*1024,U,j=fe,w=0,br=1,wr=2,Be=class t{constructor(e,r,s){this._extensions=r||{},s&&(this._generateMask=s,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=w,this.onerror=Sr,this[xr]=void 0}static frame(e,r){let s,i=!1,n=2,o=!1;r.mask&&(s=r.maskBuffer||vr,r.generateMask?r.generateMask(s):(j===fe&&(U===void 0&&(U=Buffer.alloc(fe)),pr(U,0,fe),j=0),s[0]=U[j++],s[1]=U[j++],s[2]=U[j++],s[3]=U[j++]),o=(s[0]|s[1]|s[2]|s[3])===0,n=6);let l;typeof e=="string"?(!r.mask||o)&&r[b]!==void 0?l=r[b]:(e=Buffer.from(e),l=e.length):(l=e.length,i=r.mask&&r.readOnly&&!o);let f=l;l>=65536?(n+=8,f=127):l>125&&(n+=2,f=126);let a=Buffer.allocUnsafe(i?l+n:n);return a[0]=r.fin?r.opcode|128:r.opcode,r.rsv1&&(a[0]|=64),a[1]=f,f===126?a.writeUInt16BE(l,2):f===127&&(a[2]=a[3]=0,a.writeUIntBE(l,4,6)),r.mask?(a[1]|=128,a[n-4]=s[0],a[n-3]=s[1],a[n-2]=s[2],a[n-1]=s[3],o?[a,e]:i?(ut(e,s,a,n,l),[a]):(ut(e,s,e,0,l),[a,e])):[a,e]}close(e,r,s,i){let n;if(e===void 0)n=yr;else{if(typeof e!="number"||!Er(e))throw new TypeError("First argument must be a valid error code number");if(r===void 0||!r.length)n=Buffer.allocUnsafe(2),n.writeUInt16BE(e,0);else{let l=Buffer.byteLength(r);if(l>123)throw new RangeError("The message must not be greater than 123 bytes");if(n=Buffer.allocUnsafe(2+l),n.writeUInt16BE(e,0),typeof r=="string")n.write(r,2);else if(gr(r))n.set(r,2);else throw new TypeError("Second argument must be a string or a Uint8Array")}}let o={[b]:n.length,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==w?this.enqueue([this.dispatch,n,!1,o,i]):this.sendFrame(t.frame(n,o),i)}ping(e,r,s){let i,n;if(typeof e=="string"?(i=Buffer.byteLength(e),n=!1):$(e)?(i=e.size,n=!1):(e=R(e),i=e.length,n=R.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[b]:i,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:9,readOnly:n,rsv1:!1};$(e)?this._state!==w?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):this._state!==w?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(t.frame(e,o),s)}pong(e,r,s){let i,n;if(typeof e=="string"?(i=Buffer.byteLength(e),n=!1):$(e)?(i=e.size,n=!1):(e=R(e),i=e.length,n=R.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[b]:i,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:10,readOnly:n,rsv1:!1};$(e)?this._state!==w?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):this._state!==w?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(t.frame(e,o),s)}send(e,r,s){let i=this._extensions[ct.extensionName],n=r.binary?2:1,o=r.compress,l,f;typeof e=="string"?(l=Buffer.byteLength(e),f=!1):$(e)?(l=e.size,f=!1):(e=R(e),l=e.length,f=R.readOnly),this._firstFragment?(this._firstFragment=!1,o&&i&&i.params[i._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=l>=i._threshold),this._compress=o):(o=!1,n=0),r.fin&&(this._firstFragment=!0);let a={[b]:l,fin:r.fin,generateMask:this._generateMask,mask:r.mask,maskBuffer:this._maskBuffer,opcode:n,readOnly:f,rsv1:o};$(e)?this._state!==w?this.enqueue([this.getBlobData,e,this._compress,a,s]):this.getBlobData(e,this._compress,a,s):this._state!==w?this.enqueue([this.dispatch,e,this._compress,a,s]):this.dispatch(e,this._compress,a,s)}getBlobData(e,r,s,i){this._bufferedBytes+=s[b],this._state=wr,e.arrayBuffer().then(n=>{if(this._socket.destroyed){let l=new Error("The socket was closed while the blob was being read");process.nextTick(Re,this,l,i);return}this._bufferedBytes-=s[b];let o=R(n);r?this.dispatch(o,r,s,i):(this._state=w,this.sendFrame(t.frame(o,s),i),this.dequeue())}).catch(n=>{process.nextTick(Tr,this,n,i)})}dispatch(e,r,s,i){if(!r){this.sendFrame(t.frame(e,s),i);return}let n=this._extensions[ct.extensionName];this._bufferedBytes+=s[b],this._state=br,n.compress(e,s.fin,(o,l)=>{if(this._socket.destroyed){let f=new Error("The socket was closed while data was being compressed");Re(this,f,i);return}this._bufferedBytes-=s[b],this._state=w,s.readOnly=!1,this.sendFrame(t.frame(l,s),i),this.dequeue()})}dequeue(){for(;this._state===w&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][b],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][b],this._queue.push(e)}sendFrame(e,r){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],r),this._socket.uncork()):this._socket.write(e[0],r)}};dt.exports=Be;function Re(t,e,r){typeof r=="function"&&r(e);for(let s=0;s<t._queue.length;s++){let i=t._queue[s],n=i[i.length-1];typeof n=="function"&&n(e)}}function Tr(t,e,r){Re(t,e,r),t.onerror(e)}});var vt=S((Rs,Et)=>{"use strict";var{kForOnEventAttribute:Q,kListener:Ie}=O(),_t=Symbol("kCode"),mt=Symbol("kData"),pt=Symbol("kError"),gt=Symbol("kMessage"),yt=Symbol("kReason"),z=Symbol("kTarget"),xt=Symbol("kType"),St=Symbol("kWasClean"),C=class{constructor(e){this[z]=null,this[xt]=e}get target(){return this[z]}get type(){return this[xt]}};Object.defineProperty(C.prototype,"target",{enumerable:!0});Object.defineProperty(C.prototype,"type",{enumerable:!0});var I=class extends C{constructor(e,r={}){super(e),this[_t]=r.code===void 0?0:r.code,this[yt]=r.reason===void 0?"":r.reason,this[St]=r.wasClean===void 0?!1:r.wasClean}get code(){return this[_t]}get reason(){return this[yt]}get wasClean(){return this[St]}};Object.defineProperty(I.prototype,"code",{enumerable:!0});Object.defineProperty(I.prototype,"reason",{enumerable:!0});Object.defineProperty(I.prototype,"wasClean",{enumerable:!0});var H=class extends C{constructor(e,r={}){super(e),this[pt]=r.error===void 0?null:r.error,this[gt]=r.message===void 0?"":r.message}get error(){return this[pt]}get message(){return this[gt]}};Object.defineProperty(H.prototype,"error",{enumerable:!0});Object.defineProperty(H.prototype,"message",{enumerable:!0});var J=class extends C{constructor(e,r={}){super(e),this[mt]=r.data===void 0?null:r.data}get data(){return this[mt]}};Object.defineProperty(J.prototype,"data",{enumerable:!0});var Or={addEventListener(t,e,r={}){for(let i of this.listeners(t))if(!r[Q]&&i[Ie]===e&&!i[Q])return;let s;if(t==="message")s=function(n,o){let l=new J("message",{data:o?n:n.toString()});l[z]=this,he(e,this,l)};else if(t==="close")s=function(n,o){let l=new I("close",{code:n,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});l[z]=this,he(e,this,l)};else if(t==="error")s=function(n){let o=new H("error",{error:n,message:n.message});o[z]=this,he(e,this,o)};else if(t==="open")s=function(){let n=new C("open");n[z]=this,he(e,this,n)};else return;s[Q]=!!r[Q],s[Ie]=e,r.once?this.once(t,s):this.on(t,s)},removeEventListener(t,e){for(let r of this.listeners(t))if(r[Ie]===e&&!r[Q]){this.removeListener(t,r);break}}};Et.exports={CloseEvent:I,ErrorEvent:H,Event:C,EventTarget:Or,MessageEvent:J};function he(t,e,r){typeof t=="object"&&t.handleEvent?t.handleEvent.call(t,r):t.call(e,r)}});var ce=S((Us,bt)=>{"use strict";var{tokenChars:ee}=V();function T(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function kr(t){let e=Object.create(null),r=Object.create(null),s=!1,i=!1,n=!1,o,l,f=-1,a=-1,h=-1,c=0;for(;c<t.length;c++)if(a=t.charCodeAt(c),o===void 0)if(h===-1&&ee[a]===1)f===-1&&(f=c);else if(c!==0&&(a===32||a===9))h===-1&&f!==-1&&(h=c);else if(a===59||a===44){if(f===-1)throw new SyntaxError(`Unexpected character at index ${c}`);h===-1&&(h=c);let g=t.slice(f,h);a===44?(T(e,g,r),r=Object.create(null)):o=g,f=h=-1}else throw new SyntaxError(`Unexpected character at index ${c}`);else if(l===void 0)if(h===-1&&ee[a]===1)f===-1&&(f=c);else if(a===32||a===9)h===-1&&f!==-1&&(h=c);else if(a===59||a===44){if(f===-1)throw new SyntaxError(`Unexpected character at index ${c}`);h===-1&&(h=c),T(r,t.slice(f,h),!0),a===44&&(T(e,o,r),r=Object.create(null),o=void 0),f=h=-1}else if(a===61&&f!==-1&&h===-1)l=t.slice(f,c),f=h=-1;else throw new SyntaxError(`Unexpected character at index ${c}`);else if(i){if(ee[a]!==1)throw new SyntaxError(`Unexpected character at index ${c}`);f===-1?f=c:s||(s=!0),i=!1}else if(n)if(ee[a]===1)f===-1&&(f=c);else if(a===34&&f!==-1)n=!1,h=c;else if(a===92)i=!0;else throw new SyntaxError(`Unexpected character at index ${c}`);else if(a===34&&t.charCodeAt(c-1)===61)n=!0;else if(h===-1&&ee[a]===1)f===-1&&(f=c);else if(f!==-1&&(a===32||a===9))h===-1&&(h=c);else if(a===59||a===44){if(f===-1)throw new SyntaxError(`Unexpected character at index ${c}`);h===-1&&(h=c);let g=t.slice(f,h);s&&(g=g.replace(/\\/g,""),s=!1),T(r,l,g),a===44&&(T(e,o,r),r=Object.create(null),o=void 0),l=void 0,f=h=-1}else throw new SyntaxError(`Unexpected character at index ${c}`);if(f===-1||n||a===32||a===9)throw new SyntaxError("Unexpected end of input");h===-1&&(h=c);let _=t.slice(f,h);return o===void 0?T(e,_,r):(l===void 0?T(r,_,!0):s?T(r,l,_.replace(/\\/g,"")):T(r,l,_),T(e,o,r)),e}function Cr(t){return Object.keys(t).map(e=>{let r=t[e];return Array.isArray(r)||(r=[r]),r.map(s=>[e].concat(Object.keys(s).map(i=>{let n=s[i];return Array.isArray(n)||(n=[n]),n.map(o=>o===!0?i:`${i}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}bt.exports={format:Cr,parse:kr}});var me=S((Fs,It)=>{"use strict";var Lr=p("events"),Nr=p("https"),Pr=p("http"),Ot=p("net"),Br=p("tls"),{randomBytes:Rr,createHash:Ur}=p("crypto"),{Duplex:Is,Readable:Ds}=p("stream"),{URL:De}=p("url"),B=G(),Ir=Pe(),Dr=Ue(),{isBlob:Fr}=V(),{BINARY_TYPES:wt,CLOSE_TIMEOUT:Mr,EMPTY_BUFFER:ue,GUID:Ar,kForOnEventAttribute:Fe,kListener:Wr,kStatusCode:qr,kWebSocket:y,NOOP:kt}=O(),{EventTarget:{addEventListener:Gr,removeEventListener:Vr}}=vt(),{format:$r,parse:jr}=ce(),{toBuffer:zr}=X(),Ct=Symbol("kAborted"),Me=[8,13],L=["CONNECTING","OPEN","CLOSING","CLOSED"],Hr=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,d=class t extends Lr{constructor(e,r,s){super(),this._binaryType=wt[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=ue,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=t.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,r===void 0?r=[]:Array.isArray(r)||(typeof r=="object"&&r!==null?(s=r,r=[]):r=[r]),Lt(this,e,r,s)):(this._autoPong=s.autoPong,this._closeTimeout=s.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){wt.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,r,s){let i=new Ir({allowSynchronousEvents:s.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxBufferedChunks:s.maxBufferedChunks,maxFragments:s.maxFragments,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation}),n=new Dr(e,this._extensions,s.generateMask);this._receiver=i,this._sender=n,this._socket=e,i[y]=this,n[y]=this,e[y]=this,i.on("conclude",Xr),i.on("drain",Zr),i.on("error",Qr),i.on("message",Jr),i.on("ping",es),i.on("pong",ts),n.onerror=rs,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),r.length>0&&e.unshift(r),e.on("close",Bt),e.on("data",_e),e.on("end",Rt),e.on("error",Ut),this._readyState=t.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[B.extensionName]&&this._extensions[B.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,r){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){E(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===t.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=t.CLOSING,this._sender.close(e,r,!this._isServer,s=>{s||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Pt(this)}}pause(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(s=e,e=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Ae(this,e,s);return}r===void 0&&(r=!this._isServer),this._sender.ping(e||ue,r,s)}pong(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(s=e,e=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Ae(this,e,s);return}r===void 0&&(r=!this._isServer),this._sender.pong(e||ue,r,s)}resume(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"&&(s=r,r={}),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Ae(this,e,s);return}let i={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...r};this._extensions[B.extensionName]||(i.compress=!1),this._sender.send(e||ue,i,s)}terminate(){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){E(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=t.CLOSING,this._socket.destroy())}}};Object.defineProperty(d,"CONNECTING",{enumerable:!0,value:L.indexOf("CONNECTING")});Object.defineProperty(d.prototype,"CONNECTING",{enumerable:!0,value:L.indexOf("CONNECTING")});Object.defineProperty(d,"OPEN",{enumerable:!0,value:L.indexOf("OPEN")});Object.defineProperty(d.prototype,"OPEN",{enumerable:!0,value:L.indexOf("OPEN")});Object.defineProperty(d,"CLOSING",{enumerable:!0,value:L.indexOf("CLOSING")});Object.defineProperty(d.prototype,"CLOSING",{enumerable:!0,value:L.indexOf("CLOSING")});Object.defineProperty(d,"CLOSED",{enumerable:!0,value:L.indexOf("CLOSED")});Object.defineProperty(d.prototype,"CLOSED",{enumerable:!0,value:L.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(t=>{Object.defineProperty(d.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(d.prototype,`on${t}`,{enumerable:!0,get(){for(let e of this.listeners(t))if(e[Fe])return e[Wr];return null},set(e){for(let r of this.listeners(t))if(r[Fe]){this.removeListener(t,r);break}typeof e=="function"&&this.addEventListener(t,e,{[Fe]:!0})}})});d.prototype.addEventListener=Gr;d.prototype.removeEventListener=Vr;It.exports=d;function Lt(t,e,r,s){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Mr,protocolVersion:Me[1],maxBufferedChunks:1048576,maxFragments:131072,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...s,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(t._autoPong=i.autoPong,t._closeTimeout=i.closeTimeout,!Me.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${Me.join(", ")})`);let n;if(e instanceof De)n=e;else try{n=new De(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}n.protocol==="http:"?n.protocol="ws:":n.protocol==="https:"&&(n.protocol="wss:"),t._url=n.href;let o=n.protocol==="wss:",l=n.protocol==="ws+unix:",f;if(n.protocol!=="ws:"&&!o&&!l?f=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:l&&!n.pathname?f="The URL's pathname is empty":n.hash&&(f="The URL contains a fragment identifier"),f){let u=new SyntaxError(f);if(t._redirects===0)throw u;de(t,u);return}let a=o?443:80,h=Rr(16).toString("base64"),c=o?Nr.request:Pr.request,_=new Set,g;if(i.createConnection=i.createConnection||(o?Kr:Yr),i.defaultPort=i.defaultPort||a,i.port=n.port||a,i.host=n.hostname.startsWith("[")?n.hostname.slice(1,-1):n.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":h,Connection:"Upgrade",Upgrade:"websocket"},i.path=n.pathname+n.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(g=new B({...i.perMessageDeflate,isServer:!1,maxPayload:i.maxPayload}),i.headers["Sec-WebSocket-Extensions"]=$r({[B.extensionName]:g.offer()})),r.length){for(let u of r){if(typeof u!="string"||!Hr.test(u)||_.has(u))throw new SyntaxError("An invalid or duplicated subprotocol was specified");_.add(u)}i.headers["Sec-WebSocket-Protocol"]=r.join(",")}if(i.origin&&(i.protocolVersion<13?i.headers["Sec-WebSocket-Origin"]=i.origin:i.headers.Origin=i.origin),(n.username||n.password)&&(i.auth=`${n.username}:${n.password}`),l){let u=i.path.split(":");i.socketPath=u[0],i.path=u[1]}let m;if(i.followRedirects){if(t._redirects===0){t._originalIpc=l,t._originalSecure=o,t._originalHostOrSocketPath=l?i.socketPath:n.host;let u=s&&s.headers;if(s={...s,headers:{}},u)for(let[x,M]of Object.entries(u))s.headers[x.toLowerCase()]=M}else if(t.listenerCount("redirect")===0){let u=l?t._originalIpc?i.socketPath===t._originalHostOrSocketPath:!1:t._originalIpc?!1:n.host===t._originalHostOrSocketPath;(!u||t._originalSecure&&!o)&&(delete i.headers.authorization,delete i.headers.cookie,u||delete i.headers.host,i.auth=void 0)}i.auth&&!s.headers.authorization&&(s.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")),m=t._req=c(i),t._redirects&&t.emit("redirect",t.url,m)}else m=t._req=c(i);i.timeout&&m.on("timeout",()=>{E(t,m,"Opening handshake has timed out")}),m.on("error",u=>{m===null||m[Ct]||(m=t._req=null,de(t,u))}),m.on("response",u=>{let x=u.headers.location,M=u.statusCode;if(x&&i.followRedirects&&M>=300&&M<400){if(++t._redirects>i.maxRedirects){E(t,m,"Maximum redirects exceeded");return}m.abort();let Y;try{Y=new De(x,e)}catch{let A=new SyntaxError(`Invalid URL: ${x}`);de(t,A);return}Lt(t,Y,r,s)}else t.emit("unexpected-response",m,u)||E(t,m,`Unexpected server response: ${u.statusCode}`)}),m.on("upgrade",(u,x,M)=>{if(t.emit("upgrade",u),t.readyState!==d.CONNECTING)return;m=t._req=null;let Y=u.headers.upgrade;if(Y===void 0||Y.toLowerCase()!=="websocket"){E(t,x,"Invalid Upgrade header");return}let Ge=Ur("sha1").update(h+Ar).digest("base64");if(u.headers["sec-websocket-accept"]!==Ge){E(t,x,"Invalid Sec-WebSocket-Accept header");return}let A=u.headers["sec-websocket-protocol"],K;if(A!==void 0?_.size?_.has(A)||(K="Server sent an invalid subprotocol"):K="Server sent a subprotocol but none was requested":_.size&&(K="Server sent no subprotocol"),K){E(t,x,K);return}A&&(t._protocol=A);let Ve=u.headers["sec-websocket-extensions"];if(Ve!==void 0){if(!g){E(t,x,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let xe;try{xe=jr(Ve)}catch{E(t,x,"Invalid Sec-WebSocket-Extensions header");return}let $e=Object.keys(xe);if($e.length!==1||$e[0]!==B.extensionName){E(t,x,"Server indicated an extension that was not requested");return}try{g.accept(xe[B.extensionName])}catch{E(t,x,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[B.extensionName]=g}t.setSocket(x,M,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxBufferedChunks:i.maxBufferedChunks,maxFragments:i.maxFragments,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}),i.finishRequest?i.finishRequest(m,t):m.end()}function de(t,e){t._readyState=d.CLOSING,t._errorEmitted=!0,t.emit("error",e),t.emitClose()}function Yr(t){return t.path=t.socketPath,Ot.connect(t)}function Kr(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=Ot.isIP(t.host)?"":t.host),Br.connect(t)}function E(t,e,r){t._readyState=d.CLOSING;let s=new Error(r);Error.captureStackTrace(s,E),e.setHeader?(e[Ct]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(de,t,s)):(e.destroy(s),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function Ae(t,e,r){if(e){let s=Fr(e)?e.size:zr(e).length;t._socket?t._sender._bufferedBytes+=s:t._bufferedAmount+=s}if(r){let s=new Error(`WebSocket is not open: readyState ${t.readyState} (${L[t.readyState]})`);process.nextTick(r,s)}}function Xr(t,e){let r=this[y];r._closeFrameReceived=!0,r._closeMessage=e,r._closeCode=t,r._socket[y]!==void 0&&(r._socket.removeListener("data",_e),process.nextTick(Nt,r._socket),t===1005?r.close():r.close(t,e))}function Zr(){let t=this[y];t.isPaused||t._socket.resume()}function Qr(t){let e=this[y];e._socket[y]!==void 0&&(e._socket.removeListener("data",_e),process.nextTick(Nt,e._socket),e.close(t[qr])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t))}function Tt(){this[y].emitClose()}function Jr(t,e){this[y].emit("message",t,e)}function es(t){let e=this[y];e._autoPong&&e.pong(t,!this._isServer,kt),e.emit("ping",t)}function ts(t){this[y].emit("pong",t)}function Nt(t){t.resume()}function rs(t){let e=this[y];e.readyState!==d.CLOSED&&(e.readyState===d.OPEN&&(e._readyState=d.CLOSING,Pt(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t)))}function Pt(t){t._closeTimer=setTimeout(t._socket.destroy.bind(t._socket),t._closeTimeout)}function Bt(){let t=this[y];if(this.removeListener("close",Bt),this.removeListener("data",_e),this.removeListener("end",Rt),t._readyState=d.CLOSING,!this._readableState.endEmitted&&!t._closeFrameReceived&&!t._receiver._writableState.errorEmitted&&this._readableState.length!==0){let e=this.read(this._readableState.length);t._receiver.write(e)}t._receiver.end(),this[y]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",Tt),t._receiver.on("finish",Tt))}function _e(t){this[y]._receiver.write(t)||this.pause()}function Rt(){let t=this[y];t._readyState=d.CLOSING,t._receiver.end(),this.end()}function Ut(){let t=this[y];this.removeListener("error",Ut),this.on("error",kt),t&&(t._readyState=d.CLOSING,this.destroy())}});var At=S((As,Mt)=>{"use strict";var Ms=me(),{Duplex:ss}=p("stream");function Dt(t){t.emit("close")}function is(){!this.destroyed&&this._writableState.finished&&this.destroy()}function Ft(t){this.removeListener("error",Ft),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function ns(t,e){let r=!0,s=new ss({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(n,o){let l=!o&&s._readableState.objectMode?n.toString():n;s.push(l)||t.pause()}),t.once("error",function(n){s.destroyed||(r=!1,s.destroy(n))}),t.once("close",function(){s.destroyed||s.push(null)}),s._destroy=function(i,n){if(t.readyState===t.CLOSED){n(i),process.nextTick(Dt,s);return}let o=!1;t.once("error",function(f){o=!0,n(f)}),t.once("close",function(){o||n(i),process.nextTick(Dt,s)}),r&&t.terminate()},s._final=function(i){if(t.readyState===t.CONNECTING){t.once("open",function(){s._final(i)});return}t._socket!==null&&(t._socket._writableState.finished?(i(),s._readableState.endEmitted&&s.destroy()):(t._socket.once("finish",function(){i()}),t.close()))},s._read=function(){t.isPaused&&t.resume()},s._write=function(i,n,o){if(t.readyState===t.CONNECTING){t.once("open",function(){s._write(i,n,o)});return}t.send(i,o)},s.on("end",is),s.on("error",Ft),s}Mt.exports=ns});var We=S((Ws,Wt)=>{"use strict";var{tokenChars:os}=V();function as(t){let e=new Set,r=-1,s=-1,i=0;for(i;i<t.length;i++){let o=t.charCodeAt(i);if(s===-1&&os[o]===1)r===-1&&(r=i);else if(i!==0&&(o===32||o===9))s===-1&&r!==-1&&(s=i);else if(o===44){if(r===-1)throw new SyntaxError(`Unexpected character at index ${i}`);s===-1&&(s=i);let l=t.slice(r,s);if(e.has(l))throw new SyntaxError(`The "${l}" subprotocol is duplicated`);e.add(l),r=s=-1}else throw new SyntaxError(`Unexpected character at index ${i}`)}if(r===-1||s!==-1)throw new SyntaxError("Unexpected end of input");let n=t.slice(r,i);if(e.has(n))throw new SyntaxError(`The "${n}" subprotocol is duplicated`);return e.add(n),e}Wt.exports={parse:as}});var Ht=S((Gs,zt)=>{"use strict";var ls=p("events"),pe=p("http"),{Duplex:qs}=p("stream"),{createHash:fs}=p("crypto"),qt=ce(),D=G(),hs=We(),cs=me(),{CLOSE_TIMEOUT:us,GUID:ds,kWebSocket:_s}=O(),ms=/^[+/0-9A-Za-z]{22}==$/,Gt=0,Vt=1,jt=2,qe=class extends ls{constructor(e,r){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxBufferedChunks:1024*1024,maxFragments:128*1024,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:us,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:cs,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(e.port!=null?(this._server=pe.createServer((s,i)=>{let n=pe.STATUS_CODES[426];i.writeHead(426,{"Content-Length":n.length,"Content-Type":"text/plain"}),i.end(n)}),this._server.listen(e.port,e.host,e.backlog,r)):e.server&&(this._server=e.server),this._server){let s=this.emit.bind(this,"connection");this._removeListeners=ps(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(i,n,o)=>{this.handleUpgrade(i,n,o,s)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=Gt}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(this._state===jt){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(te,this);return}if(e&&this.once("close",e),this._state!==Vt)if(this._state=Vt,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(te,this):process.nextTick(te,this);else{let r=this._server;this._removeListeners(),this._removeListeners=this._server=null,r.close(()=>{te(this)})}}shouldHandle(e){if(this.options.path){let r=e.url.indexOf("?");if((r!==-1?e.url.slice(0,r):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,r,s,i){r.on("error",$t);let n=e.headers["sec-websocket-key"],o=e.headers.upgrade,l=+e.headers["sec-websocket-version"];if(e.method!=="GET"){F(this,e,r,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){F(this,e,r,400,"Invalid Upgrade header");return}if(n===void 0||!ms.test(n)){F(this,e,r,400,"Missing or invalid Sec-WebSocket-Key header");return}if(l!==13&&l!==8){F(this,e,r,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){re(r,400);return}let f=e.headers["sec-websocket-protocol"],a=new Set;if(f!==void 0)try{a=hs.parse(f)}catch{F(this,e,r,400,"Invalid Sec-WebSocket-Protocol header");return}let h=e.headers["sec-websocket-extensions"],c={};if(this.options.perMessageDeflate&&h!==void 0){let _=new D({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let g=qt.parse(h);g[D.extensionName]&&(_.accept(g[D.extensionName]),c[D.extensionName]=_)}catch{F(this,e,r,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let _={origin:e.headers[`${l===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(_,(g,m,u,x)=>{if(!g)return re(r,m||401,u,x);this.completeUpgrade(c,n,a,e,r,s,i)});return}if(!this.options.verifyClient(_))return re(r,401)}this.completeUpgrade(c,n,a,e,r,s,i)}completeUpgrade(e,r,s,i,n,o,l){if(!n.readable||!n.writable)return n.destroy();if(n[_s])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>Gt)return re(n,503);let a=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${fs("sha1").update(r+ds).digest("base64")}`],h=new this.options.WebSocket(null,void 0,this.options);if(s.size){let c=this.options.handleProtocols?this.options.handleProtocols(s,i):s.values().next().value;c&&(a.push(`Sec-WebSocket-Protocol: ${c}`),h._protocol=c)}if(e[D.extensionName]){let c=e[D.extensionName].params,_=qt.format({[D.extensionName]:[c]});a.push(`Sec-WebSocket-Extensions: ${_}`),h._extensions=e}this.emit("headers",a,i),n.write(a.concat(`\r
|
|
3
|
+
`).join(`\r
|
|
4
|
+
`)),n.removeListener("error",$t),h.setSocket(n,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxBufferedChunks:this.options.maxBufferedChunks,maxFragments:this.options.maxFragments,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(h),h.on("close",()=>{this.clients.delete(h),this._shouldEmitClose&&!this.clients.size&&process.nextTick(te,this)})),l(h,i)}};zt.exports=qe;function ps(t,e){for(let r of Object.keys(e))t.on(r,e[r]);return function(){for(let s of Object.keys(e))t.removeListener(s,e[s])}}function te(t){t._state=jt,t.emit("close")}function $t(){this.destroy()}function re(t,e,r,s){r=r||pe.STATUS_CODES[e],s={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...s},t.once("finish",t.destroy),t.end(`HTTP/1.1 ${e} ${pe.STATUS_CODES[e]}\r
|
|
5
|
+
`+Object.keys(s).map(i=>`${i}: ${s[i]}`).join(`\r
|
|
6
|
+
`)+`\r
|
|
7
|
+
\r
|
|
8
|
+
`+r)}function F(t,e,r,s,i,n){if(t.listenerCount("wsClientError")){let o=new Error(i);Error.captureStackTrace(o,F),t.emit("wsClientError",o,r,e)}else re(r,s,i,n)}});var gs=N(At(),1),ys=N(ce(),1),xs=N(G(),1),Ss=N(Pe(),1),Es=N(Ue(),1),vs=N(We(),1),Yt=N(me(),1),bs=N(Ht(),1);var ge=Yt.default;var ye=globalThis;ye.WebSocket||=ge;ye.window||=globalThis;ye.self||=globalThis;ye.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__=[{type:1,value:7,isEnabled:!0},{type:2,value:"InternalApp",isEnabled:!0,isValid:!0},{type:2,value:"InternalAppContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStdoutContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStderrContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStdinContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalFocusContext",isEnabled:!0,isValid:!0}];import Kt from"react-devtools-core";var ws=async()=>new Promise(t=>{let e=new ge("ws://localhost:8097"),r=setTimeout(()=>{e.terminate(),t(!1)},2e3);r.unref(),e.on("open",()=>{clearTimeout(r),e.terminate(),t(!0)}),e.on("error",()=>{clearTimeout(r),e.terminate(),t(!1)})});await ws()?(Kt.initialize(),Kt.connectToDevTools()):console.warn(`DEV is set to true, but the React DevTools server is not running. Start it with:
|
|
9
|
+
|
|
10
|
+
$ npx react-devtools
|
|
11
|
+
`);
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __asmCreateRequire } from 'node:module'; const require = __asmCreateRequire(import.meta.url);
|
|
2
|
+
import{d as a,e as b,f as c,g as d,h as e}from"./chunk-LH2C3PE7.js";import"./chunk-LS24FFOX.js";import"./chunk-RSVWCEZR.js";export{e as getCommitHash,a as readLock,c as removeLockEntry,d as setLockEntryProvider,b as writeLockEntry};
|