@smithery/cli 1.1.13 → 1.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +2 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -85,7 +85,7 @@ __p += '`),he&&(k+=`' +
85
85
  function print() { __p += __j.call(arguments, '') }
86
86
  `:`;
87
87
  `)+k+`return __p
88
- }`;var ae=bD(function(){return be(_,G+"return "+k).apply(r,E)});if(ae.source=k,Zv(ae))throw ae;return ae}function jU(o){return ge(o).toLowerCase()}function BU(o){return ge(o).toUpperCase()}function kU(o,a,l){if(o=ge(o),o&&(l||a===r))return O6(o);if(!o||!(a=Fr(a)))return o;var h=ct(o),x=ct(a),_=F6(h,x),E=A6(h,x)+1;return $n(h,_,E).join("")}function MU(o,a,l){if(o=ge(o),o&&(l||a===r))return o.slice(0,T6(o)+1);if(!o||!(a=Fr(a)))return o;var h=ct(o),x=A6(h,ct(a))+1;return $n(h,0,x).join("")}function LU(o,a,l){if(o=ge(o),o&&(l||a===r))return o.replace(Zx,"");if(!o||!(a=Fr(a)))return o;var h=ct(o),x=F6(h,ct(a));return $n(h,x).join("")}function NU(o,a){var l=Qc,h=ou;if(ke(a)){var x="separator"in a?a.separator:x;l="length"in a?oe(a.length):l,h="omission"in a?Fr(a.omission):h}o=ge(o);var _=o.length;if(Hs(o)){var E=ct(o);_=E.length}if(l>=_)return o;var S=l-Ks(h);if(S<1)return h;var F=E?$n(E,0,S).join(""):o.slice(0,S);if(x===r)return F+h;if(E&&(S+=F.length-S),Yv(x)){if(o.slice(S).search(x)){var j,B=F;for(x.global||(x=dv(x.source,ge(Zy.exec(x))+"g")),x.lastIndex=0;j=x.exec(B);)var k=j.index;F=F.slice(0,k===r?S:k)}}else if(o.indexOf(Fr(x),S)!=S){var L=F.lastIndexOf(x);L>-1&&(F=F.slice(0,L))}return F+h}function UU(o){return o=ge(o),o&&XI.test(o)?o.replace(zy,vB):o}var WU=eo(function(o,a,l){return o+(l?" ":"")+a.toUpperCase()}),Qv=_E("toUpperCase");function mD(o,a,l){return o=ge(o),a=l?r:a,a===r?fB(o)?_B(o):tB(o):o.match(a)||[]}var bD=ue(function(o,a){try{return Cr(o,r,a)}catch(l){return Zv(l)?l:new re(l)}}),$U=nn(function(o,a){return Ur(a,function(l){l=Ot(l),rn(o,l,Hv(o[l],o))}),o});function VU(o){var a=o==null?0:o.length,l=Z();return o=a?Pe(o,function(h){if(typeof h[1]!="function")throw new Wr(i);return[l(h[0]),h[1]]}):[],ue(function(h){for(var x=-1;++x<a;){var _=o[x];if(Cr(_[0],this,h))return Cr(_[1],this,h)}})}function GU(o){return vk(Vr(o,d))}function em(o){return function(){return o}}function zU(o,a){return o==null||o!==o?a:o}var HU=yE(),KU=yE(!0);function _r(o){return o}function rm(o){return J6(typeof o=="function"?o:Vr(o,d))}function ZU(o){return Q6(Vr(o,d))}function YU(o,a){return eE(o,Vr(a,d))}var JU=ue(function(o,a){return function(l){return Eu(l,o,a)}}),XU=ue(function(o,a){return function(l){return Eu(o,l,a)}});function tm(o,a,l){var h=Ke(a),x=Ol(a,h);l==null&&!(ke(a)&&(x.length||!h.length))&&(l=a,a=o,o=this,x=Ol(a,Ke(a)));var _=!(ke(l)&&"chain"in l)||!!l.chain,E=on(o);return Ur(x,function(S){var F=a[S];o[S]=F,E&&(o.prototype[S]=function(){var j=this.__chain__;if(_||j){var B=o(this.__wrapped__),k=B.__actions__=vr(this.__actions__);return k.push({func:F,args:arguments,thisArg:o}),B.__chain__=j,B}return F.apply(o,Bn([this.value()],arguments))})}),o}function QU(){return He._===this&&(He._=SB),this}function nm(){}function eW(o){return o=oe(o),ue(function(a){return rE(a,o)})}var rW=Iv(Pe),tW=Iv(E6),nW=Iv(sv);function _D(o){return Uv(o)?ov(Ot(o)):Rk(o)}function iW(o){return function(a){return o==null?r:Mi(o,a)}}var sW=DE(),oW=DE(!0);function im(){return[]}function sm(){return!1}function aW(){return{}}function uW(){return""}function cW(){return!0}function lW(o,a){if(o=oe(o),o<1||o>In)return[];var l=wt,h=ar(o,wt);a=Z(a),o-=wt;for(var x=cv(h,a);++l<o;)a(l);return x}function fW(o){return te(o)?Pe(o,Ot):Ar(o)?[o]:vr(LE(ge(o)))}function dW(o){var a=++DB;return ge(o)+a}var hW=Rl(function(o,a){return o+a},0),pW=jv("ceil"),xW=Rl(function(o,a){return o/a},1),vW=jv("floor");function mW(o){return o&&o.length?Cl(o,_r,gv):r}function bW(o,a){return o&&o.length?Cl(o,Z(a,2),gv):r}function _W(o){return S6(o,_r)}function gW(o,a){return S6(o,Z(a,2))}function yW(o){return o&&o.length?Cl(o,_r,wv):r}function EW(o,a){return o&&o.length?Cl(o,Z(a,2),wv):r}var DW=Rl(function(o,a){return o*a},1),wW=jv("round"),SW=Rl(function(o,a){return o-a},0);function CW(o){return o&&o.length?uv(o,_r):0}function OW(o,a){return o&&o.length?uv(o,Z(a,2)):0}return b.after=ZL,b.ary=YE,b.assign=BN,b.assignIn=lD,b.assignInWith=zl,b.assignWith=kN,b.at=MN,b.before=JE,b.bind=Hv,b.bindAll=$U,b.bindKey=XE,b.castArray=aN,b.chain=HE,b.chunk=vM,b.compact=mM,b.concat=bM,b.cond=VU,b.conforms=GU,b.constant=em,b.countBy=CL,b.create=LN,b.curry=QE,b.curryRight=eD,b.debounce=rD,b.defaults=NN,b.defaultsDeep=UN,b.defer=YL,b.delay=JL,b.difference=_M,b.differenceBy=gM,b.differenceWith=yM,b.drop=EM,b.dropRight=DM,b.dropRightWhile=wM,b.dropWhile=SM,b.fill=CM,b.filter=FL,b.flatMap=TL,b.flatMapDeep=PL,b.flatMapDepth=RL,b.flatten=$E,b.flattenDeep=OM,b.flattenDepth=FM,b.flip=XL,b.flow=HU,b.flowRight=KU,b.fromPairs=AM,b.functions=KN,b.functionsIn=ZN,b.groupBy=IL,b.initial=TM,b.intersection=PM,b.intersectionBy=RM,b.intersectionWith=IM,b.invert=JN,b.invertBy=XN,b.invokeMap=BL,b.iteratee=rm,b.keyBy=kL,b.keys=Ke,b.keysIn=br,b.map=Nl,b.mapKeys=eU,b.mapValues=rU,b.matches=ZU,b.matchesProperty=YU,b.memoize=Wl,b.merge=tU,b.mergeWith=fD,b.method=JU,b.methodOf=XU,b.mixin=tm,b.negate=$l,b.nthArg=eW,b.omit=nU,b.omitBy=iU,b.once=QL,b.orderBy=ML,b.over=rW,b.overArgs=eN,b.overEvery=tW,b.overSome=nW,b.partial=Kv,b.partialRight=tD,b.partition=LL,b.pick=sU,b.pickBy=dD,b.property=_D,b.propertyOf=iW,b.pull=MM,b.pullAll=GE,b.pullAllBy=LM,b.pullAllWith=NM,b.pullAt=UM,b.range=sW,b.rangeRight=oW,b.rearg=rN,b.reject=WL,b.remove=WM,b.rest=tN,b.reverse=Gv,b.sampleSize=VL,b.set=aU,b.setWith=uU,b.shuffle=GL,b.slice=$M,b.sortBy=KL,b.sortedUniq=YM,b.sortedUniqBy=JM,b.split=TU,b.spread=nN,b.tail=XM,b.take=QM,b.takeRight=eL,b.takeRightWhile=rL,b.takeWhile=tL,b.tap=mL,b.throttle=iN,b.thru=Ll,b.toArray=aD,b.toPairs=hD,b.toPairsIn=pD,b.toPath=fW,b.toPlainObject=cD,b.transform=cU,b.unary=sN,b.union=nL,b.unionBy=iL,b.unionWith=sL,b.uniq=oL,b.uniqBy=aL,b.uniqWith=uL,b.unset=lU,b.unzip=zv,b.unzipWith=zE,b.update=fU,b.updateWith=dU,b.values=no,b.valuesIn=hU,b.without=cL,b.words=mD,b.wrap=oN,b.xor=lL,b.xorBy=fL,b.xorWith=dL,b.zip=hL,b.zipObject=pL,b.zipObjectDeep=xL,b.zipWith=vL,b.entries=hD,b.entriesIn=pD,b.extend=lD,b.extendWith=zl,tm(b,b),b.add=hW,b.attempt=bD,b.camelCase=mU,b.capitalize=xD,b.ceil=pW,b.clamp=pU,b.clone=uN,b.cloneDeep=lN,b.cloneDeepWith=fN,b.cloneWith=cN,b.conformsTo=dN,b.deburr=vD,b.defaultTo=zU,b.divide=xW,b.endsWith=bU,b.eq=ft,b.escape=_U,b.escapeRegExp=gU,b.every=OL,b.find=AL,b.findIndex=UE,b.findKey=WN,b.findLast=qL,b.findLastIndex=WE,b.findLastKey=$N,b.floor=vW,b.forEach=KE,b.forEachRight=ZE,b.forIn=VN,b.forInRight=GN,b.forOwn=zN,b.forOwnRight=HN,b.get=Jv,b.gt=hN,b.gte=pN,b.has=YN,b.hasIn=Xv,b.head=VE,b.identity=_r,b.includes=jL,b.indexOf=qM,b.inRange=xU,b.invoke=QN,b.isArguments=Ui,b.isArray=te,b.isArrayBuffer=xN,b.isArrayLike=mr,b.isArrayLikeObject=Ue,b.isBoolean=vN,b.isBuffer=Vn,b.isDate=mN,b.isElement=bN,b.isEmpty=_N,b.isEqual=gN,b.isEqualWith=yN,b.isError=Zv,b.isFinite=EN,b.isFunction=on,b.isInteger=nD,b.isLength=Vl,b.isMap=iD,b.isMatch=DN,b.isMatchWith=wN,b.isNaN=SN,b.isNative=CN,b.isNil=FN,b.isNull=ON,b.isNumber=sD,b.isObject=ke,b.isObjectLike=Me,b.isPlainObject=Fu,b.isRegExp=Yv,b.isSafeInteger=AN,b.isSet=oD,b.isString=Gl,b.isSymbol=Ar,b.isTypedArray=to,b.isUndefined=qN,b.isWeakMap=TN,b.isWeakSet=PN,b.join=jM,b.kebabCase=yU,b.last=zr,b.lastIndexOf=BM,b.lowerCase=EU,b.lowerFirst=DU,b.lt=RN,b.lte=IN,b.max=mW,b.maxBy=bW,b.mean=_W,b.meanBy=gW,b.min=yW,b.minBy=EW,b.stubArray=im,b.stubFalse=sm,b.stubObject=aW,b.stubString=uW,b.stubTrue=cW,b.multiply=DW,b.nth=kM,b.noConflict=QU,b.noop=nm,b.now=Ul,b.pad=wU,b.padEnd=SU,b.padStart=CU,b.parseInt=OU,b.random=vU,b.reduce=NL,b.reduceRight=UL,b.repeat=FU,b.replace=AU,b.result=oU,b.round=wW,b.runInContext=O,b.sample=$L,b.size=zL,b.snakeCase=qU,b.some=HL,b.sortedIndex=VM,b.sortedIndexBy=GM,b.sortedIndexOf=zM,b.sortedLastIndex=HM,b.sortedLastIndexBy=KM,b.sortedLastIndexOf=ZM,b.startCase=PU,b.startsWith=RU,b.subtract=SW,b.sum=CW,b.sumBy=OW,b.template=IU,b.times=lW,b.toFinite=an,b.toInteger=oe,b.toLength=uD,b.toLower=jU,b.toNumber=Hr,b.toSafeInteger=jN,b.toString=ge,b.toUpper=BU,b.trim=kU,b.trimEnd=MU,b.trimStart=LU,b.truncate=NU,b.unescape=UU,b.uniqueId=dW,b.upperCase=WU,b.upperFirst=Qv,b.each=KE,b.eachRight=ZE,b.first=VE,tm(b,function(){var o={};return St(b,function(a,l){Ee.call(b.prototype,l)||(o[l]=a)}),o}(),{chain:!1}),b.VERSION=e,Ur(["bind","bindKey","curry","curryRight","partial","partialRight"],function(o){b[o].placeholder=b}),Ur(["drop","take"],function(o,a){de.prototype[o]=function(l){l=l===r?1:Ge(oe(l),0);var h=this.__filtered__&&!a?new de(this):this.clone();return h.__filtered__?h.__takeCount__=ar(l,h.__takeCount__):h.__views__.push({size:ar(l,wt),type:o+(h.__dir__<0?"Right":"")}),h},de.prototype[o+"Right"]=function(l){return this.reverse()[o](l).reverse()}}),Ur(["filter","map","takeWhile"],function(o,a){var l=a+1,h=l==$y||l==MI;de.prototype[o]=function(x){var _=this.clone();return _.__iteratees__.push({iteratee:Z(x,3),type:l}),_.__filtered__=_.__filtered__||h,_}}),Ur(["head","last"],function(o,a){var l="take"+(a?"Right":"");de.prototype[o]=function(){return this[l](1).value()[0]}}),Ur(["initial","tail"],function(o,a){var l="drop"+(a?"":"Right");de.prototype[o]=function(){return this.__filtered__?new de(this):this[l](1)}}),de.prototype.compact=function(){return this.filter(_r)},de.prototype.find=function(o){return this.filter(o).head()},de.prototype.findLast=function(o){return this.reverse().find(o)},de.prototype.invokeMap=ue(function(o,a){return typeof o=="function"?new de(this):this.map(function(l){return Eu(l,o,a)})}),de.prototype.reject=function(o){return this.filter($l(Z(o)))},de.prototype.slice=function(o,a){o=oe(o);var l=this;return l.__filtered__&&(o>0||a<0)?new de(l):(o<0?l=l.takeRight(-o):o&&(l=l.drop(o)),a!==r&&(a=oe(a),l=a<0?l.dropRight(-a):l.take(a-o)),l)},de.prototype.takeRightWhile=function(o){return this.reverse().takeWhile(o).reverse()},de.prototype.toArray=function(){return this.take(wt)},St(de.prototype,function(o,a){var l=/^(?:filter|find|map|reject)|While$/.test(a),h=/^(?:head|last)$/.test(a),x=b[h?"take"+(a=="last"?"Right":""):a],_=h||/^find/.test(a);x&&(b.prototype[a]=function(){var E=this.__wrapped__,S=h?[1]:arguments,F=E instanceof de,j=S[0],B=F||te(E),k=function(fe){var he=x.apply(b,Bn([fe],S));return h&&L?he[0]:he};B&&l&&typeof j=="function"&&j.length!=1&&(F=B=!1);var L=this.__chain__,G=!!this.__actions__.length,Y=_&&!L,ae=F&&!G;if(!_&&B){E=ae?E:new de(this);var J=o.apply(E,S);return J.__actions__.push({func:Ll,args:[k],thisArg:r}),new $r(J,L)}return Y&&ae?o.apply(this,S):(J=this.thru(k),Y?h?J.value()[0]:J.value():J)})}),Ur(["pop","push","shift","sort","splice","unshift"],function(o){var a=fl[o],l=/^(?:push|sort|unshift)$/.test(o)?"tap":"thru",h=/^(?:pop|shift)$/.test(o);b.prototype[o]=function(){var x=arguments;if(h&&!this.__chain__){var _=this.value();return a.apply(te(_)?_:[],x)}return this[l](function(E){return a.apply(te(E)?E:[],x)})}}),St(de.prototype,function(o,a){var l=b[a];if(l){var h=l.name+"";Ee.call(Js,h)||(Js[h]=[]),Js[h].push({name:a,func:l})}}),Js[Pl(r,C).name]=[{name:"wrapper",func:r}],de.prototype.clone=UB,de.prototype.reverse=WB,de.prototype.value=$B,b.prototype.at=bL,b.prototype.chain=_L,b.prototype.commit=gL,b.prototype.next=yL,b.prototype.plant=DL,b.prototype.reverse=wL,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=SL,b.prototype.first=b.prototype.head,xu&&(b.prototype[xu]=EL),b},Mn=gB();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(He._=Mn,define(function(){return Mn})):Ri?((Ri.exports=Mn)._=Mn,rv._=Mn):He._=Mn}).call(su)});var bs=ye(Re());var uo=ye(require("node:fs")),QD=ye(require("node:os")),Pr=ye(require("node:path")),Rr=class r{static{let e=QD.default.homedir(),t={win32:{baseDir:process.env.APPDATA||Pr.default.join(e,"AppData","Roaming"),vscodePath:Pr.default.join("Code","User","globalStorage")},darwin:{baseDir:Pr.default.join(e,"Library","Application Support"),vscodePath:Pr.default.join("Code","User","globalStorage")},linux:{baseDir:"/home/runner/.config",vscodePath:Pr.default.join("Code/User/globalStorage")}},n=process.platform,{baseDir:i,vscodePath:s}=t[n],u={claude:Pr.default.join(i,"Claude","claude_desktop_config.json"),cline:Pr.default.join(i,s,"saoudrizwan.claude-dev","settings","cline_mcp_settings.json"),"roo-cline":Pr.default.join(i,s,"rooveterinaryinc.roo-cline","settings","cline_mcp_settings.json"),windsurf:Pr.default.join(e,".codeium","windsurf-next","mcp_config.json")};r.configPath=u.claude,r.clientPaths=u}static getConfigPath(e){let t=e?.toLowerCase()||"claude";return r.clientPaths[t]||Pr.default.join(Pr.default.dirname(r.configPath),"..",e||"claude",`${t}_config.json`)}static readConfig(e){try{let t=r.getConfigPath(e);return uo.default.existsSync(t)?{mcpServers:JSON.parse(uo.default.readFileSync(t,"utf8")).mcpServers||{}}:{mcpServers:{}}}catch{return{mcpServers:{}}}}static writeConfig(e,t){let n=r.getConfigPath(t),i=Pr.default.dirname(n);if(uo.default.existsSync(i)||uo.default.mkdirSync(i,{recursive:!0}),!e.mcpServers||typeof e.mcpServers!="object")throw new Error("Invalid config structure");uo.default.writeFileSync(n,JSON.stringify(e,null,2))}static isServerInstalled(e,t){let n=r.readConfig(t);return r.normalizeServerId(e)in n.mcpServers}static async installServer(e,t,n){let i=r.normalizeServerId(e),s=r.readConfig(n);s.mcpServers[i]=t,r.writeConfig(s,n)}static async uninstallServer(e,t){let n=r.normalizeServerId(e),i=r.readConfig(t);if(!i.mcpServers[n]){console.log(`Server ${n} not found in configuration`);return}delete i.mcpServers[n],r.writeConfig(i,t)}static getServerConfig(e,t){return r.readConfig(t).mcpServers[e]||null}static envVarsToArgs(e){return Object.entries(e).flatMap(([t,n])=>[`--${t.toLowerCase().replace(/_/g,"-")}`,n])}static normalizeServerId(e){if(e.startsWith("@")){let t=e.indexOf("/");if(t!==-1)return`${e.substring(0,t)}-${e.substring(t+1)}`}return e}static denormalizeServerId(e){if(e.startsWith("@")){let t=e.indexOf("-");if(t!==-1)return`${e.substring(0,t)}/${e.substring(t+1)}`}return e}static getInstalledServerIds(e){let t=r.readConfig(e);return Object.keys(t.mcpServers||{})}};var KT=require("node:child_process"),ZT=require("node:util"),YT=ye(yn()),En=(0,ZT.promisify)(KT.exec);async function Uye(r){if(!r)return!1;try{let e=process.platform,t={claude:"Claude"}[r]||r;if(e==="win32"){let{stdout:n}=await En(`tasklist /FI "IMAGENAME eq ${t}.exe" /NH`);return n.includes(`${t}.exe`)}else if(e==="darwin"){let{stdout:n}=await En(`pgrep -x "${t}"`);return!!n.trim()}else if(e==="linux"){let{stdout:n}=await En(`pgrep -f "${t.toLowerCase()}"`);return!!n.trim()}return!1}catch{return!1}}async function Wye(r){let e={claude:"Claude",jan:"Jan"}[r]||r;try{let t=process.platform;t==="win32"?await En(`taskkill /F /IM "${e}.exe" && start "" "${e}.exe"`):t==="darwin"?await En(`killall "${e}" && open -a "${e}"`):t==="linux"&&await En(`pkill -f "${e.toLowerCase()}" && ${e.toLowerCase()}`),await new Promise(n=>setTimeout(n,2e3)),t==="win32"?await En(`start "" "${e}.exe"`):t==="darwin"?await En(`open -a "${e}"`):t==="linux"&&await En(e.toLowerCase()),console.log(`${e} has been restarted.`)}catch(t){console.error(`Failed to restart ${e}:`,t)}}async function j2(r){if(!r||!await Uye(r))return!1;let{shouldRestart:t}=await YT.default.prompt([{type:"confirm",name:"shouldRestart",message:`Would you like to restart the ${r} app to apply changes?`,default:!0}]);return t&&(console.log(`Restarting ${r} app...`),await Wye(r)),t}var JT=require("node:child_process"),XT=require("node:util"),B2=ye(yn()),k2=ye(Re()),CAe=(0,XT.promisify)(JT.exec);async function Gp(r,e){let t=new Map;if(r.configSchema?.properties){let s=new Set(r.configSchema.required||[]);Object.entries(r.configSchema.properties).forEach(([u,c])=>{let f=c;t.set(u,{key:u,description:f.description||`Enter value for ${u}`,required:s.has(u),default:f.default,type:f.type})})}let n={};function i(s,u){if(!u)return s;if(s==="")switch(u){case"array":return[];case"number":case"integer":return null;default:return s}if(!s)return s;switch(u){case"boolean":return String(s).toLowerCase()==="true";case"number":return Number(s);case"integer":return Number.parseInt(String(s),10);case"array":return String(s).split(",").map(c=>c.trim()).filter(c=>c!=="");default:return s}}if(e){for(let s of t.values()){let u=e[s.key];if(u!==void 0||s.default!==void 0)n[s.key]=i(u??s.default,s.type);else if(s.required)throw new Error(`Missing required config value: ${s.key}`)}return n}for(let s of t.values()){if(process.env[s.key]&&!s.required){let{reuseExisting:d}=await B2.default.prompt([{type:"confirm",name:"reuseExisting",message:`Found ${s.key} in environment. Use it?`,default:!0}]);if(d){n[s.key]=i(process.env[s.key],s.type);continue}}let u=s.required?k2.default.red(" (required)"):k2.default.gray(" (optional)"),c=s.key.toLowerCase().includes("key")?"password":s.type==="boolean"?"confirm":s.type==="array"?"input":s.type==="number"||s.type==="integer"?"number":"input",{value:f}=await B2.default.prompt([{type:c,name:"value",message:`${s.description}${u}${s.type==="array"?" (comma-separated)":""}`,default:s.default,mask:c==="password"?"*":void 0,validate:d=>s.required&&!d?!1:s.type==="number"||s.type==="integer"?!Number.isNaN(Number(d))||"Please enter a valid number":!0}]);(f!==void 0||s.default!==void 0)&&(n[s.key]=i(f??s.default,s.type))}return n}var Ci=class{constructor(e=Rr){this.configManager=e}selectPreferredConnection(e){if(!e.connections?.length)throw new Error("No connection configuration found");let t=e.connections.find(n=>n.type==="ws");return t||e.connections[0]}formatServerConfig(e,t){let n=JSON.stringify(JSON.stringify(t));return{command:"npx",args:["-y","@smithery/cli@latest","run",e,"--config",n]}}async installServer(e,t){let n=this.selectPreferredConnection(e),i=await Gp(n),s=this.formatServerConfig(e.qualifiedName,i);await this.configManager.installServer(e.qualifiedName,s,t),await j2(t)}async uninstallServer(e,t){try{await this.configManager.uninstallServer(e,t),console.log(`
88
+ }`;var ae=bD(function(){return be(_,G+"return "+k).apply(r,E)});if(ae.source=k,Zv(ae))throw ae;return ae}function jU(o){return ge(o).toLowerCase()}function BU(o){return ge(o).toUpperCase()}function kU(o,a,l){if(o=ge(o),o&&(l||a===r))return O6(o);if(!o||!(a=Fr(a)))return o;var h=ct(o),x=ct(a),_=F6(h,x),E=A6(h,x)+1;return $n(h,_,E).join("")}function MU(o,a,l){if(o=ge(o),o&&(l||a===r))return o.slice(0,T6(o)+1);if(!o||!(a=Fr(a)))return o;var h=ct(o),x=A6(h,ct(a))+1;return $n(h,0,x).join("")}function LU(o,a,l){if(o=ge(o),o&&(l||a===r))return o.replace(Zx,"");if(!o||!(a=Fr(a)))return o;var h=ct(o),x=F6(h,ct(a));return $n(h,x).join("")}function NU(o,a){var l=Qc,h=ou;if(ke(a)){var x="separator"in a?a.separator:x;l="length"in a?oe(a.length):l,h="omission"in a?Fr(a.omission):h}o=ge(o);var _=o.length;if(Hs(o)){var E=ct(o);_=E.length}if(l>=_)return o;var S=l-Ks(h);if(S<1)return h;var F=E?$n(E,0,S).join(""):o.slice(0,S);if(x===r)return F+h;if(E&&(S+=F.length-S),Yv(x)){if(o.slice(S).search(x)){var j,B=F;for(x.global||(x=dv(x.source,ge(Zy.exec(x))+"g")),x.lastIndex=0;j=x.exec(B);)var k=j.index;F=F.slice(0,k===r?S:k)}}else if(o.indexOf(Fr(x),S)!=S){var L=F.lastIndexOf(x);L>-1&&(F=F.slice(0,L))}return F+h}function UU(o){return o=ge(o),o&&XI.test(o)?o.replace(zy,vB):o}var WU=eo(function(o,a,l){return o+(l?" ":"")+a.toUpperCase()}),Qv=_E("toUpperCase");function mD(o,a,l){return o=ge(o),a=l?r:a,a===r?fB(o)?_B(o):tB(o):o.match(a)||[]}var bD=ue(function(o,a){try{return Cr(o,r,a)}catch(l){return Zv(l)?l:new re(l)}}),$U=nn(function(o,a){return Ur(a,function(l){l=Ot(l),rn(o,l,Hv(o[l],o))}),o});function VU(o){var a=o==null?0:o.length,l=Z();return o=a?Pe(o,function(h){if(typeof h[1]!="function")throw new Wr(i);return[l(h[0]),h[1]]}):[],ue(function(h){for(var x=-1;++x<a;){var _=o[x];if(Cr(_[0],this,h))return Cr(_[1],this,h)}})}function GU(o){return vk(Vr(o,d))}function em(o){return function(){return o}}function zU(o,a){return o==null||o!==o?a:o}var HU=yE(),KU=yE(!0);function _r(o){return o}function rm(o){return J6(typeof o=="function"?o:Vr(o,d))}function ZU(o){return Q6(Vr(o,d))}function YU(o,a){return eE(o,Vr(a,d))}var JU=ue(function(o,a){return function(l){return Eu(l,o,a)}}),XU=ue(function(o,a){return function(l){return Eu(o,l,a)}});function tm(o,a,l){var h=Ke(a),x=Ol(a,h);l==null&&!(ke(a)&&(x.length||!h.length))&&(l=a,a=o,o=this,x=Ol(a,Ke(a)));var _=!(ke(l)&&"chain"in l)||!!l.chain,E=on(o);return Ur(x,function(S){var F=a[S];o[S]=F,E&&(o.prototype[S]=function(){var j=this.__chain__;if(_||j){var B=o(this.__wrapped__),k=B.__actions__=vr(this.__actions__);return k.push({func:F,args:arguments,thisArg:o}),B.__chain__=j,B}return F.apply(o,Bn([this.value()],arguments))})}),o}function QU(){return He._===this&&(He._=SB),this}function nm(){}function eW(o){return o=oe(o),ue(function(a){return rE(a,o)})}var rW=Iv(Pe),tW=Iv(E6),nW=Iv(sv);function _D(o){return Uv(o)?ov(Ot(o)):Rk(o)}function iW(o){return function(a){return o==null?r:Mi(o,a)}}var sW=DE(),oW=DE(!0);function im(){return[]}function sm(){return!1}function aW(){return{}}function uW(){return""}function cW(){return!0}function lW(o,a){if(o=oe(o),o<1||o>In)return[];var l=wt,h=ar(o,wt);a=Z(a),o-=wt;for(var x=cv(h,a);++l<o;)a(l);return x}function fW(o){return te(o)?Pe(o,Ot):Ar(o)?[o]:vr(LE(ge(o)))}function dW(o){var a=++DB;return ge(o)+a}var hW=Rl(function(o,a){return o+a},0),pW=jv("ceil"),xW=Rl(function(o,a){return o/a},1),vW=jv("floor");function mW(o){return o&&o.length?Cl(o,_r,gv):r}function bW(o,a){return o&&o.length?Cl(o,Z(a,2),gv):r}function _W(o){return S6(o,_r)}function gW(o,a){return S6(o,Z(a,2))}function yW(o){return o&&o.length?Cl(o,_r,wv):r}function EW(o,a){return o&&o.length?Cl(o,Z(a,2),wv):r}var DW=Rl(function(o,a){return o*a},1),wW=jv("round"),SW=Rl(function(o,a){return o-a},0);function CW(o){return o&&o.length?uv(o,_r):0}function OW(o,a){return o&&o.length?uv(o,Z(a,2)):0}return b.after=ZL,b.ary=YE,b.assign=BN,b.assignIn=lD,b.assignInWith=zl,b.assignWith=kN,b.at=MN,b.before=JE,b.bind=Hv,b.bindAll=$U,b.bindKey=XE,b.castArray=aN,b.chain=HE,b.chunk=vM,b.compact=mM,b.concat=bM,b.cond=VU,b.conforms=GU,b.constant=em,b.countBy=CL,b.create=LN,b.curry=QE,b.curryRight=eD,b.debounce=rD,b.defaults=NN,b.defaultsDeep=UN,b.defer=YL,b.delay=JL,b.difference=_M,b.differenceBy=gM,b.differenceWith=yM,b.drop=EM,b.dropRight=DM,b.dropRightWhile=wM,b.dropWhile=SM,b.fill=CM,b.filter=FL,b.flatMap=TL,b.flatMapDeep=PL,b.flatMapDepth=RL,b.flatten=$E,b.flattenDeep=OM,b.flattenDepth=FM,b.flip=XL,b.flow=HU,b.flowRight=KU,b.fromPairs=AM,b.functions=KN,b.functionsIn=ZN,b.groupBy=IL,b.initial=TM,b.intersection=PM,b.intersectionBy=RM,b.intersectionWith=IM,b.invert=JN,b.invertBy=XN,b.invokeMap=BL,b.iteratee=rm,b.keyBy=kL,b.keys=Ke,b.keysIn=br,b.map=Nl,b.mapKeys=eU,b.mapValues=rU,b.matches=ZU,b.matchesProperty=YU,b.memoize=Wl,b.merge=tU,b.mergeWith=fD,b.method=JU,b.methodOf=XU,b.mixin=tm,b.negate=$l,b.nthArg=eW,b.omit=nU,b.omitBy=iU,b.once=QL,b.orderBy=ML,b.over=rW,b.overArgs=eN,b.overEvery=tW,b.overSome=nW,b.partial=Kv,b.partialRight=tD,b.partition=LL,b.pick=sU,b.pickBy=dD,b.property=_D,b.propertyOf=iW,b.pull=MM,b.pullAll=GE,b.pullAllBy=LM,b.pullAllWith=NM,b.pullAt=UM,b.range=sW,b.rangeRight=oW,b.rearg=rN,b.reject=WL,b.remove=WM,b.rest=tN,b.reverse=Gv,b.sampleSize=VL,b.set=aU,b.setWith=uU,b.shuffle=GL,b.slice=$M,b.sortBy=KL,b.sortedUniq=YM,b.sortedUniqBy=JM,b.split=TU,b.spread=nN,b.tail=XM,b.take=QM,b.takeRight=eL,b.takeRightWhile=rL,b.takeWhile=tL,b.tap=mL,b.throttle=iN,b.thru=Ll,b.toArray=aD,b.toPairs=hD,b.toPairsIn=pD,b.toPath=fW,b.toPlainObject=cD,b.transform=cU,b.unary=sN,b.union=nL,b.unionBy=iL,b.unionWith=sL,b.uniq=oL,b.uniqBy=aL,b.uniqWith=uL,b.unset=lU,b.unzip=zv,b.unzipWith=zE,b.update=fU,b.updateWith=dU,b.values=no,b.valuesIn=hU,b.without=cL,b.words=mD,b.wrap=oN,b.xor=lL,b.xorBy=fL,b.xorWith=dL,b.zip=hL,b.zipObject=pL,b.zipObjectDeep=xL,b.zipWith=vL,b.entries=hD,b.entriesIn=pD,b.extend=lD,b.extendWith=zl,tm(b,b),b.add=hW,b.attempt=bD,b.camelCase=mU,b.capitalize=xD,b.ceil=pW,b.clamp=pU,b.clone=uN,b.cloneDeep=lN,b.cloneDeepWith=fN,b.cloneWith=cN,b.conformsTo=dN,b.deburr=vD,b.defaultTo=zU,b.divide=xW,b.endsWith=bU,b.eq=ft,b.escape=_U,b.escapeRegExp=gU,b.every=OL,b.find=AL,b.findIndex=UE,b.findKey=WN,b.findLast=qL,b.findLastIndex=WE,b.findLastKey=$N,b.floor=vW,b.forEach=KE,b.forEachRight=ZE,b.forIn=VN,b.forInRight=GN,b.forOwn=zN,b.forOwnRight=HN,b.get=Jv,b.gt=hN,b.gte=pN,b.has=YN,b.hasIn=Xv,b.head=VE,b.identity=_r,b.includes=jL,b.indexOf=qM,b.inRange=xU,b.invoke=QN,b.isArguments=Ui,b.isArray=te,b.isArrayBuffer=xN,b.isArrayLike=mr,b.isArrayLikeObject=Ue,b.isBoolean=vN,b.isBuffer=Vn,b.isDate=mN,b.isElement=bN,b.isEmpty=_N,b.isEqual=gN,b.isEqualWith=yN,b.isError=Zv,b.isFinite=EN,b.isFunction=on,b.isInteger=nD,b.isLength=Vl,b.isMap=iD,b.isMatch=DN,b.isMatchWith=wN,b.isNaN=SN,b.isNative=CN,b.isNil=FN,b.isNull=ON,b.isNumber=sD,b.isObject=ke,b.isObjectLike=Me,b.isPlainObject=Fu,b.isRegExp=Yv,b.isSafeInteger=AN,b.isSet=oD,b.isString=Gl,b.isSymbol=Ar,b.isTypedArray=to,b.isUndefined=qN,b.isWeakMap=TN,b.isWeakSet=PN,b.join=jM,b.kebabCase=yU,b.last=zr,b.lastIndexOf=BM,b.lowerCase=EU,b.lowerFirst=DU,b.lt=RN,b.lte=IN,b.max=mW,b.maxBy=bW,b.mean=_W,b.meanBy=gW,b.min=yW,b.minBy=EW,b.stubArray=im,b.stubFalse=sm,b.stubObject=aW,b.stubString=uW,b.stubTrue=cW,b.multiply=DW,b.nth=kM,b.noConflict=QU,b.noop=nm,b.now=Ul,b.pad=wU,b.padEnd=SU,b.padStart=CU,b.parseInt=OU,b.random=vU,b.reduce=NL,b.reduceRight=UL,b.repeat=FU,b.replace=AU,b.result=oU,b.round=wW,b.runInContext=O,b.sample=$L,b.size=zL,b.snakeCase=qU,b.some=HL,b.sortedIndex=VM,b.sortedIndexBy=GM,b.sortedIndexOf=zM,b.sortedLastIndex=HM,b.sortedLastIndexBy=KM,b.sortedLastIndexOf=ZM,b.startCase=PU,b.startsWith=RU,b.subtract=SW,b.sum=CW,b.sumBy=OW,b.template=IU,b.times=lW,b.toFinite=an,b.toInteger=oe,b.toLength=uD,b.toLower=jU,b.toNumber=Hr,b.toSafeInteger=jN,b.toString=ge,b.toUpper=BU,b.trim=kU,b.trimEnd=MU,b.trimStart=LU,b.truncate=NU,b.unescape=UU,b.uniqueId=dW,b.upperCase=WU,b.upperFirst=Qv,b.each=KE,b.eachRight=ZE,b.first=VE,tm(b,function(){var o={};return St(b,function(a,l){Ee.call(b.prototype,l)||(o[l]=a)}),o}(),{chain:!1}),b.VERSION=e,Ur(["bind","bindKey","curry","curryRight","partial","partialRight"],function(o){b[o].placeholder=b}),Ur(["drop","take"],function(o,a){de.prototype[o]=function(l){l=l===r?1:Ge(oe(l),0);var h=this.__filtered__&&!a?new de(this):this.clone();return h.__filtered__?h.__takeCount__=ar(l,h.__takeCount__):h.__views__.push({size:ar(l,wt),type:o+(h.__dir__<0?"Right":"")}),h},de.prototype[o+"Right"]=function(l){return this.reverse()[o](l).reverse()}}),Ur(["filter","map","takeWhile"],function(o,a){var l=a+1,h=l==$y||l==MI;de.prototype[o]=function(x){var _=this.clone();return _.__iteratees__.push({iteratee:Z(x,3),type:l}),_.__filtered__=_.__filtered__||h,_}}),Ur(["head","last"],function(o,a){var l="take"+(a?"Right":"");de.prototype[o]=function(){return this[l](1).value()[0]}}),Ur(["initial","tail"],function(o,a){var l="drop"+(a?"":"Right");de.prototype[o]=function(){return this.__filtered__?new de(this):this[l](1)}}),de.prototype.compact=function(){return this.filter(_r)},de.prototype.find=function(o){return this.filter(o).head()},de.prototype.findLast=function(o){return this.reverse().find(o)},de.prototype.invokeMap=ue(function(o,a){return typeof o=="function"?new de(this):this.map(function(l){return Eu(l,o,a)})}),de.prototype.reject=function(o){return this.filter($l(Z(o)))},de.prototype.slice=function(o,a){o=oe(o);var l=this;return l.__filtered__&&(o>0||a<0)?new de(l):(o<0?l=l.takeRight(-o):o&&(l=l.drop(o)),a!==r&&(a=oe(a),l=a<0?l.dropRight(-a):l.take(a-o)),l)},de.prototype.takeRightWhile=function(o){return this.reverse().takeWhile(o).reverse()},de.prototype.toArray=function(){return this.take(wt)},St(de.prototype,function(o,a){var l=/^(?:filter|find|map|reject)|While$/.test(a),h=/^(?:head|last)$/.test(a),x=b[h?"take"+(a=="last"?"Right":""):a],_=h||/^find/.test(a);x&&(b.prototype[a]=function(){var E=this.__wrapped__,S=h?[1]:arguments,F=E instanceof de,j=S[0],B=F||te(E),k=function(fe){var he=x.apply(b,Bn([fe],S));return h&&L?he[0]:he};B&&l&&typeof j=="function"&&j.length!=1&&(F=B=!1);var L=this.__chain__,G=!!this.__actions__.length,Y=_&&!L,ae=F&&!G;if(!_&&B){E=ae?E:new de(this);var J=o.apply(E,S);return J.__actions__.push({func:Ll,args:[k],thisArg:r}),new $r(J,L)}return Y&&ae?o.apply(this,S):(J=this.thru(k),Y?h?J.value()[0]:J.value():J)})}),Ur(["pop","push","shift","sort","splice","unshift"],function(o){var a=fl[o],l=/^(?:push|sort|unshift)$/.test(o)?"tap":"thru",h=/^(?:pop|shift)$/.test(o);b.prototype[o]=function(){var x=arguments;if(h&&!this.__chain__){var _=this.value();return a.apply(te(_)?_:[],x)}return this[l](function(E){return a.apply(te(E)?E:[],x)})}}),St(de.prototype,function(o,a){var l=b[a];if(l){var h=l.name+"";Ee.call(Js,h)||(Js[h]=[]),Js[h].push({name:a,func:l})}}),Js[Pl(r,C).name]=[{name:"wrapper",func:r}],de.prototype.clone=UB,de.prototype.reverse=WB,de.prototype.value=$B,b.prototype.at=bL,b.prototype.chain=_L,b.prototype.commit=gL,b.prototype.next=yL,b.prototype.plant=DL,b.prototype.reverse=wL,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=SL,b.prototype.first=b.prototype.head,xu&&(b.prototype[xu]=EL),b},Mn=gB();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(He._=Mn,define(function(){return Mn})):Ri?((Ri.exports=Mn)._=Mn,rv._=Mn):He._=Mn}).call(su)});var bs=ye(Re());var uo=ye(require("node:fs")),QD=ye(require("node:os")),Pr=ye(require("node:path")),Rr=class r{static{let e=QD.default.homedir(),t={win32:{baseDir:process.env.APPDATA||Pr.default.join(e,"AppData","Roaming"),vscodePath:Pr.default.join("Code","User","globalStorage")},darwin:{baseDir:Pr.default.join(e,"Library","Application Support"),vscodePath:Pr.default.join("Code","User","globalStorage")},linux:{baseDir:"/home/runner/.config",vscodePath:Pr.default.join("Code/User/globalStorage")}},n=process.platform,{baseDir:i,vscodePath:s}=t[n],u={claude:Pr.default.join(i,"Claude","claude_desktop_config.json"),cline:Pr.default.join(i,s,"saoudrizwan.claude-dev","settings","cline_mcp_settings.json"),"roo-cline":Pr.default.join(i,s,"rooveterinaryinc.roo-cline","settings","cline_mcp_settings.json"),windsurf:Pr.default.join(e,".codeium","windsurf","mcp_config.json")};r.configPath=u.claude,r.clientPaths=u}static getConfigPath(e){let t=e?.toLowerCase()||"claude";return r.clientPaths[t]||Pr.default.join(Pr.default.dirname(r.configPath),"..",e||"claude",`${t}_config.json`)}static readConfig(e){try{let t=r.getConfigPath(e);return uo.default.existsSync(t)?{mcpServers:JSON.parse(uo.default.readFileSync(t,"utf8")).mcpServers||{}}:{mcpServers:{}}}catch{return{mcpServers:{}}}}static writeConfig(e,t){let n=r.getConfigPath(t),i=Pr.default.dirname(n);if(uo.default.existsSync(i)||uo.default.mkdirSync(i,{recursive:!0}),!e.mcpServers||typeof e.mcpServers!="object")throw new Error("Invalid config structure");uo.default.writeFileSync(n,JSON.stringify(e,null,2))}static isServerInstalled(e,t){let n=r.readConfig(t);return r.normalizeServerId(e)in n.mcpServers}static async installServer(e,t,n){let i=r.normalizeServerId(e),s=r.readConfig(n);s.mcpServers[i]=t,r.writeConfig(s,n)}static async uninstallServer(e,t){let n=r.normalizeServerId(e),i=r.readConfig(t);if(!i.mcpServers[n]){console.log(`Server ${n} not found in configuration`);return}delete i.mcpServers[n],r.writeConfig(i,t)}static getServerConfig(e,t){return r.readConfig(t).mcpServers[e]||null}static envVarsToArgs(e){return Object.entries(e).flatMap(([t,n])=>[`--${t.toLowerCase().replace(/_/g,"-")}`,n])}static normalizeServerId(e){if(e.startsWith("@")){let t=e.indexOf("/");if(t!==-1)return`${e.substring(0,t)}-${e.substring(t+1)}`}return e}static denormalizeServerId(e){if(e.startsWith("@")){let t=e.indexOf("-");if(t!==-1)return`${e.substring(0,t)}/${e.substring(t+1)}`}return e}static getInstalledServerIds(e){let t=r.readConfig(e);return Object.keys(t.mcpServers||{})}};var KT=require("node:child_process"),ZT=require("node:util"),YT=ye(yn()),En=(0,ZT.promisify)(KT.exec);async function Uye(r){if(!r)return!1;try{let e=process.platform,t={claude:"Claude"}[r]||r;if(e==="win32"){let{stdout:n}=await En(`tasklist /FI "IMAGENAME eq ${t}.exe" /NH`);return n.includes(`${t}.exe`)}else if(e==="darwin"){let{stdout:n}=await En(`pgrep -x "${t}"`);return!!n.trim()}else if(e==="linux"){let{stdout:n}=await En(`pgrep -f "${t.toLowerCase()}"`);return!!n.trim()}return!1}catch{return!1}}async function Wye(r){let e={claude:"Claude",jan:"Jan"}[r]||r;try{let t=process.platform;t==="win32"?await En(`taskkill /F /IM "${e}.exe" && start "" "${e}.exe"`):t==="darwin"?await En(`killall "${e}" && open -a "${e}"`):t==="linux"&&await En(`pkill -f "${e.toLowerCase()}" && ${e.toLowerCase()}`),await new Promise(n=>setTimeout(n,2e3)),t==="win32"?await En(`start "" "${e}.exe"`):t==="darwin"?await En(`open -a "${e}"`):t==="linux"&&await En(e.toLowerCase()),console.log(`${e} has been restarted.`)}catch(t){console.error(`Failed to restart ${e}:`,t)}}async function j2(r){if(!r||!await Uye(r))return!1;let{shouldRestart:t}=await YT.default.prompt([{type:"confirm",name:"shouldRestart",message:`Would you like to restart the ${r} app to apply changes?`,default:!0}]);return t&&(console.log(`Restarting ${r} app...`),await Wye(r)),t}var JT=require("node:child_process"),XT=require("node:util"),B2=ye(yn()),k2=ye(Re()),CAe=(0,XT.promisify)(JT.exec);async function Gp(r,e){let t=new Map;if(r.configSchema?.properties){let s=new Set(r.configSchema.required||[]);Object.entries(r.configSchema.properties).forEach(([u,c])=>{let f=c;t.set(u,{key:u,description:f.description||`Enter value for ${u}`,required:s.has(u),default:f.default,type:f.type})})}let n={};function i(s,u){if(!u)return s;if(s==="")switch(u){case"array":return[];case"number":case"integer":return null;default:return s}if(!s)return s;switch(u){case"boolean":return String(s).toLowerCase()==="true";case"number":return Number(s);case"integer":return Number.parseInt(String(s),10);case"array":return String(s).split(",").map(c=>c.trim()).filter(c=>c!=="");default:return s}}if(e){for(let s of t.values()){let u=e[s.key];if(u!==void 0||s.default!==void 0)n[s.key]=i(u??s.default,s.type);else if(s.required)throw new Error(`Missing required config value: ${s.key}`)}return n}for(let s of t.values()){if(process.env[s.key]&&!s.required){let{reuseExisting:d}=await B2.default.prompt([{type:"confirm",name:"reuseExisting",message:`Found ${s.key} in environment. Use it?`,default:!0}]);if(d){n[s.key]=i(process.env[s.key],s.type);continue}}let u=s.required?k2.default.red(" (required)"):k2.default.gray(" (optional)"),c=s.key.toLowerCase().includes("key")?"password":s.type==="boolean"?"confirm":s.type==="array"?"input":s.type==="number"||s.type==="integer"?"number":"input",{value:f}=await B2.default.prompt([{type:c,name:"value",message:`${s.description}${u}${s.type==="array"?" (comma-separated)":""}`,default:s.default,mask:c==="password"?"*":void 0,validate:d=>s.required&&!d?!1:s.type==="number"||s.type==="integer"?!Number.isNaN(Number(d))||"Please enter a valid number":!0}]);(f!==void 0||s.default!==void 0)&&(n[s.key]=i(f??s.default,s.type))}return n}var Ci=class{constructor(e=Rr){this.configManager=e}selectPreferredConnection(e){if(!e.connections?.length)throw new Error("No connection configuration found");let t=e.connections.find(n=>n.type==="ws");return t||e.connections[0]}formatServerConfig(e,t){let n=JSON.stringify(JSON.stringify(t));return{command:"npx",args:["-y","@smithery/cli@latest","run",e,"--config",n]}}async installServer(e,t){let n=this.selectPreferredConnection(e),i=await Gp(n),s=this.formatServerConfig(e.qualifiedName,i);await this.configManager.installServer(e.qualifiedName,s,t),await j2(t)}async uninstallServer(e,t){try{await this.configManager.uninstallServer(e,t),console.log(`
89
89
  Uninstalled ${e}`),await j2(t)}catch(n){throw console.error("Failed to uninstall server:",n),n}}};var iP=ye(nP());var pr=["claude","cline","windsurf","roo-cline"],U2="https://registry.smithery.ai",W2="https://smithery.ai/api/track";iP.default.config();async function sP(r,e=[]){try{if(e.length===0)return[];let t=e.map(i=>ms(i,r));return(await Promise.all(t)).filter(i=>i!==null)}catch(t){throw new Error(`Failed to resolve servers: ${t instanceof Error?t.message:String(t)}`)}}async function ms(r,e="claude"){try{let t=Rr.isServerInstalled(r,e),n=await fetch(`${U2}/servers/${r}`);if(!n.ok)return t?{qualifiedName:r,name:r,connections:[],isInstalled:!0,client:e}:null;let i=await n.json(),s=await Promise.all(i.connections.map(async c=>{if(c.type==="ws"&&c.deploymentUrl)try{let f=await fetch(`${c.deploymentUrl}/.well-known/mcp/smithery.json`);if(f.ok){let d=await f.json();return{type:"ws",deploymentUrl:c.deploymentUrl,configSchema:d.configSchema,exampleConfig:c.exampleConfig}}}catch{}return c}));return{qualifiedName:i.qualifiedName,name:i.displayName,connections:s,isInstalled:t,client:e}}catch(t){return console.error("Error resolving server:",t),null}}async function oP(r,e,t="stdio"){try{let n={connectionType:t,config:e},i=await fetch(`${U2}/servers/${r}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});try{return(await i.json()).result}catch(s){let u=s instanceof Error?s.message:"Unknown parsing error";throw new Error(`Invalid JSON response from registry: ${u}`)}}catch{return null}}var ka=require("node:os"),Ba=require("node:path"),Yp=require("node:fs");var sr=[];for(let r=0;r<256;++r)sr.push((r+256).toString(16).slice(1));function aP(r,e=0){return(sr[r[e+0]]+sr[r[e+1]]+sr[r[e+2]]+sr[r[e+3]]+"-"+sr[r[e+4]]+sr[r[e+5]]+"-"+sr[r[e+6]]+sr[r[e+7]]+"-"+sr[r[e+8]]+sr[r[e+9]]+"-"+sr[r[e+10]]+sr[r[e+11]]+sr[r[e+12]]+sr[r[e+13]]+sr[r[e+14]]+sr[r[e+15]]).toLowerCase()}var uP=require("crypto"),Kp=new Uint8Array(256),Hp=Kp.length;function $2(){return Hp>Kp.length-16&&((0,uP.randomFillSync)(Kp),Hp=0),Kp.slice(Hp,Hp+=16)}var cP=require("crypto"),V2={randomUUID:cP.randomUUID};function i6e(r,e,t){if(V2.randomUUID&&!e&&!r)return V2.randomUUID();r=r||{};let n=r.random??r.rng?.()??$2();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e){if(t=t||0,t<0||t+16>e.length)throw new RangeError(`UUID byte range ${t}:${t+15} is out of buffer bounds`);for(let i=0;i<16;++i)e[t+i]=n[i];return e}return aP(n)}var Zp=i6e;var Ma=class r{constructor(){this.data=null}static getSettingsPath(){switch((0,ka.platform)()){case"win32":return(0,Ba.join)(process.env.APPDATA||(0,Ba.join)((0,ka.homedir)(),"AppData","Roaming"),"smithery");case"darwin":return(0,Ba.join)((0,ka.homedir)(),"Library","Application Support","smithery");default:return(0,Ba.join)((0,ka.homedir)(),".config","smithery")}}static{this.SETTINGS_PATH=(0,Ba.join)(r.getSettingsPath(),"settings.json")}async initialize(){try{await Yp.promises.mkdir(r.getSettingsPath(),{recursive:!0});try{let e=await Yp.promises.readFile(r.SETTINGS_PATH,"utf-8");this.data=JSON.parse(e),this.data&&!this.data.userId&&(this.data.userId=Zp(),await this.save()),this.data&&this.data.analyticsConsent===void 0&&(this.data.analyticsConsent=!1,await this.save())}catch{this.data={userId:Zp(),analyticsConsent:!1,cache:{servers:{}}},await this.save()}}catch(e){throw console.error("Failed to initialize settings:",e),e}}async save(){await Yp.promises.writeFile(r.SETTINGS_PATH,JSON.stringify(this.data,null,2))}getUserId(){if(!this.data)throw new Error("Settings not initialized");return this.data.userId}getAnalyticsConsent(){if(!this.data)throw new Error("Settings not initialized");return this.data.analyticsConsent??!1}async setAnalyticsConsent(e){if(!this.data)throw new Error("Settings not initialized");this.data.analyticsConsent=e,await this.save()}};var lP=ye(yn()),s6e=new Ci;async function fP(r,e){let t=new Ma;if(await t.initialize(),t.getAnalyticsConsent()===!1){let{EnableAnalytics:s}=await lP.default.prompt([{type:"confirm",name:"EnableAnalytics",message:`Would you like to help improve Smithery by sending anonymous usage data?
90
90
  For information on Smithery's data policy, please visit: ${bs.default.blue("https://smithery.ai/docs/data-policy")}`,default:!0}]);await t.setAnalyticsConsent(s)}e&&!pr.includes(e)&&(console.error(bs.default.red(`Invalid client: ${e}
91
91
  Valid clients are: ${pr.join(", ")}`)),process.exit(1));let n=await ms(r,e);n||(console.error(bs.default.red(`Server '${r}' not found in registry`)),process.exit(1)),n.connections.some(s=>s.type==="ws"&&"deploymentUrl"in s)&&console.log(bs.default.blue(`Installing remote server. Please ensure you trust the server author, especially when sharing sensitive data. For information on Smithery's data policy, please visit: ${bs.default.underline("https://smithery.ai/docs/data-policy")}`)),await s6e.installServer(n,e),console.log(bs.default.green(`\u2713 Successfully installed package '${r}' for ${e}`))}var _s=ye(Re()),dP=ye(yn());var o6e=new Ci;async function hP(r,e){try{e&&!pr.includes(e)&&(console.error(_s.default.red(`Invalid client: ${e}
@@ -105,7 +105,7 @@ Valid clients are: ${pr.join(", ")}`)),process.exit(1));let t=await ms(r,e);if(!
105
105
  `,Kt.default.cyan(JSON.stringify(n,null,2).replace(/"(\w+)":/g,s=>Kt.default.green(s)).replace(/"([^"]+)"(?=,|\n|\})/g,s=>Kt.default.yellow(s))));let{action:i}=await Dx.default.prompt([{type:"list",name:"action",message:"What would you like to do?",choices:[{name:Kt.default.yellow("\u21A9 Back to primitives"),value:"back"},{name:Kt.default.red("\u2716 Exit"),value:"exit"}]}]);if(i==="exit")return"exit"}}var JP=ye(yn());async function XP(r){try{r&&!pr.includes(r)&&(console.error(Qa.default.red(`Invalid client: ${r}
106
106
  Valid clients are: ${pr.join(", ")}`)),process.exit(1));let e=Rr.getInstalledServerIds(r);if(e.length===0){console.log(Qa.default.yellow(`
107
107
  No MCP servers are currently installed.`));return}let t=Rr.readConfig(r);for(;;){let n=ex(e.map(u=>({qualifiedName:u,name:Rr.denormalizeServerId(u),isInstalled:!0,connections:[]})),!1,!0),{selectedId:i}=await JP.default.prompt([{type:"list",name:"selectedId",message:"Select a server to inspect:",choices:n}]);if(i==="exit"&&process.exit(0),!i)return;console.log(Qa.default.blue(`
108
- Connecting to server...`));let s=t.mcpServers[i.id];if("command"in s){let u=await ZP(i.id,s);await YP(u)==="exit"&&process.exit(0)}else throw new Error("Only stdio connections are supported")}}catch(e){console.error(Qa.default.red("Error during inspection:")),console.error(Qa.default.red(e instanceof Error?e.message:String(e))),process.exit(1)}}var EDe="mcp",wx=class{constructor(e){this._url=e}start(){if(this._socket)throw new Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,t)=>{this._socket=new WebSocket(this._url,EDe),this._socket.onerror=n=>{var i;let s="error"in n?n.error:new Error(`WebSocket error: ${JSON.stringify(n)}`);t(s),(i=this.onerror)===null||i===void 0||i.call(this,s)},this._socket.onopen=()=>{e()},this._socket.onclose=()=>{var n;(n=this.onclose)===null||n===void 0||n.call(this)},this._socket.onmessage=n=>{var i,s;let u;try{u=fx.parse(JSON.parse(n.data))}catch(c){(i=this.onerror)===null||i===void 0||i.call(this,c);return}(s=this.onmessage)===null||s===void 0||s.call(this,u)}})}async close(){var e;(e=this._socket)===null||e===void 0||e.close()}send(e){return new Promise((t,n)=>{var i;if(!this._socket){n(new Error("Not connected"));return}(i=this._socket)===null||i===void 0||i.send(JSON.stringify(e)),t()})}};function QP(r,e){let t=new URL(r);if(e){let n=typeof window<"u"?btoa(JSON.stringify(e)):Buffer.from(JSON.stringify(e)).toString("base64");t.searchParams.set("config",n)}return t}var Zwe=ye(nR(),1),Ywe=ye(qy(),1),Jwe=ye(Ry(),1),wI=ye(Ny(),1),Xwe=ye(DI(),1);var SI=wI.default;global.WebSocket=SI;var CI=3,Qwe=1e3,OI=(r,e)=>{let t=`${r.replace(/^http/,"ws")}${r.endsWith("/")?"":"/"}ws`,n=QP(t,e);return new wx(n)},FI=async(r,e)=>{let t=0,n="",i=!1,s=OI(r,e),u=(g,w)=>(console.error(`${w}:`,g.message),g),c=async g=>{if(n+=g.toString("utf8"),!i)return;let w=n.split(/\r?\n/);n=w.pop()??"";for(let q of w.filter(Boolean))try{await s.send(JSON.parse(q))}catch(A){if(A instanceof Error&&A.message.includes("CLOSED"))throw new Error("WebSocket closed");u(A,"Failed to send message")}},f=async()=>{console.error(`Connecting to WebSocket endpoint: ${r}`),s.onclose=async()=>{console.error("WebSocket connection closed"),i=!1,t++<CI?(await new Promise(g=>setTimeout(g,Qwe*Math.pow(2,t))),s=OI(r,e),await f()):(console.error(`Max reconnection attempts (${CI}) reached`),process.exit(1))},s.onerror=g=>{u(g,"WebSocket connection error"),process.exit(1)},s.onmessage=g=>{try{"error"in g&&(console.error(`WebSocket error: ${JSON.stringify(g.error)}`),(g.error.message==="Missing configuration"||g.error.message==="Invalid configuration")&&process.exit(1)),console.log(JSON.stringify(g))}catch(w){u(w,"Error handling message"),console.error("Raw message data:",JSON.stringify(g)),console.log(JSON.stringify(g))}},await s.start(),i=!0,await c(Buffer.from(""))},d=async()=>{console.error("Starting cleanup..."),await s.close().catch(g=>u(g,"Error during cleanup")),console.error("Cleanup completed")},v=async()=>{console.error("Shutting down WS Runner..."),await d(),process.exit(0)};return process.on("SIGINT",v),process.on("SIGTERM",v),process.stdin.on("data",g=>c(g).catch(w=>u(w,"Error processing message"))),await f(),d};var qI=ye(AI()),TI=async(r,e,t)=>{let n="",i=!1,s=null,u=(g,w)=>(console.error(`[Runner] ${w}:`,g.message),g),c=async g=>{if(n+=g.toString("utf8"),!i)return;let w=n.split(/\r?\n/);n=w.pop()??"";for(let q of w.filter(Boolean))try{let A=JSON.parse(q);if(t&&W2){let{data:C,error:P}=cy.safeParse(A);P||fetch(W2,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({eventName:"tool_call",payload:{connectionType:"stdio",serverQualifiedName:r.qualifiedName,toolParams:C?(0,qI.pick)(C.params,"name"):{}}})}).catch(I=>{console.error("[Runner] Analytics error:",I)})}await s?.send(A)}catch(A){u(A,"Failed to send message to child process")}},f=async()=>{console.error("[Runner] Starting child process setup...");let g=r.connections.find(ee=>ee.type==="stdio");if(!g)throw new Error("No STDIO connection found");let w=await Gp(g,e),q=await oP(r.qualifiedName,w,"stdio");if(!q||"type"in q)throw new Error("Failed to get valid stdio server configuration");let{command:A,args:C=[],env:P={}}=q,I=A,K=C;if(process.platform==="win32")try{if(!require("path").isAbsolute(A)){let{execSync:ce}=require("child_process");I=ce(`where ${A}`,{encoding:"utf8"}).split(`
108
+ Connecting to server...`));let s=t.mcpServers[i.id];if("command"in s){let u=await ZP(i.id,s);await YP(u)==="exit"&&process.exit(0)}else throw new Error("Only stdio connections are supported")}}catch(e){console.error(Qa.default.red("Error during inspection:")),console.error(Qa.default.red(e instanceof Error?e.message:String(e))),process.exit(1)}}var EDe="mcp",wx=class{constructor(e){this._url=e}start(){if(this._socket)throw new Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,t)=>{this._socket=new WebSocket(this._url,EDe),this._socket.onerror=n=>{var i;let s="error"in n?n.error:new Error(`WebSocket error: ${JSON.stringify(n)}`);t(s),(i=this.onerror)===null||i===void 0||i.call(this,s)},this._socket.onopen=()=>{e()},this._socket.onclose=()=>{var n;(n=this.onclose)===null||n===void 0||n.call(this)},this._socket.onmessage=n=>{var i,s;let u;try{u=fx.parse(JSON.parse(n.data))}catch(c){(i=this.onerror)===null||i===void 0||i.call(this,c);return}(s=this.onmessage)===null||s===void 0||s.call(this,u)}})}async close(){var e;(e=this._socket)===null||e===void 0||e.close()}send(e){return new Promise((t,n)=>{var i;if(!this._socket){n(new Error("Not connected"));return}(i=this._socket)===null||i===void 0||i.send(JSON.stringify(e)),t()})}};function QP(r,e){let t=new URL(r);if(e){let n=typeof window<"u"?btoa(JSON.stringify(e)):Buffer.from(JSON.stringify(e)).toString("base64");t.searchParams.set("config",n)}return t}var Zwe=ye(nR(),1),Ywe=ye(qy(),1),Jwe=ye(Ry(),1),wI=ye(Ny(),1),Xwe=ye(DI(),1);var SI=wI.default;global.WebSocket=SI;var CI=3,Qwe=1e3,OI=(r,e)=>{let t=`${r.replace(/^http/,"ws")}${r.endsWith("/")?"":"/"}ws`,n=QP(t,e);return new wx(n)},FI=async(r,e)=>{let t=0,n="",i=!1,s=OI(r,e),u=(g,w)=>(console.error(`${w}:`,g.message),g),c=async g=>{if(n+=g.toString("utf8"),!i)return;let w=n.split(/\r?\n/);n=w.pop()??"";for(let q of w.filter(Boolean))try{await s.send(JSON.parse(q))}catch(A){if(A instanceof Error&&A.message.includes("CLOSED"))throw new Error("WebSocket closed");u(A,"Failed to send message")}},f=async()=>{console.error(`Connecting to WebSocket endpoint: ${r}`),s.onclose=async()=>{console.error("WebSocket connection closed"),i=!1,t++<CI?(await new Promise(g=>setTimeout(g,Qwe*Math.pow(2,t))),s=OI(r,e),await f()):(console.error(`Max reconnection attempts (${CI}) reached`),process.exit(1))},s.onerror=g=>{u(g,"WebSocket connection error"),process.exit(1)},s.onmessage=g=>{try{"error"in g&&(console.error(`WebSocket error: ${JSON.stringify(g.error)}`),(g.error.message==="Missing configuration"||g.error.message==="Invalid configuration")&&process.exit(1)),console.log(JSON.stringify(g))}catch(w){u(w,"Error handling message"),console.error("Raw message data:",JSON.stringify(g)),console.log(JSON.stringify(g))}},await s.start(),i=!0,await c(Buffer.from(""))},d=async()=>{console.error("Starting cleanup..."),await s.close().catch(g=>u(g,"Error during cleanup")),console.error("Cleanup completed")},v=async()=>{console.error("Shutting down WS Runner..."),await d(),process.exit(0)};return process.on("SIGINT",v),process.on("SIGTERM",v),process.stdin.on("data",g=>c(g).catch(w=>u(w,"Error processing message"))),await f(),d};var qI=ye(AI()),TI=async(r,e,t)=>{let n="",i=!1,s=null,u=(g,w)=>(console.error(`[Runner] ${w}:`,g.message),g),c=async g=>{if(n+=g.toString("utf8"),!i)return;let w=n.split(/\r?\n/);n=w.pop()??"";for(let q of w.filter(Boolean))try{let A=JSON.parse(q);if(t&&W2){let{data:C,error:P}=cy.safeParse(A);P||fetch(W2,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({eventName:"tool_call",payload:{connectionType:"stdio",serverQualifiedName:r.qualifiedName,toolParams:C?(0,qI.pick)(C.params,"name"):{}}})}).catch(I=>{console.error("[Runner] Analytics error:",I)})}await s?.send(A)}catch(A){u(A,"Failed to send message to child process")}},f=async()=>{console.error("[Runner] Starting child process setup...");let g=r.connections.find(ee=>ee.type==="stdio");if(!g)throw new Error("No STDIO connection found");let w=await Gp(g,e),q=await oP(r.qualifiedName,w,"stdio");if(!q||"type"in q)throw new Error("Failed to get valid stdio server configuration");let{command:A,args:C=[],env:P={}}=q,I=A,K=C;if(process.platform==="win32")try{if(!require("node:path").isAbsolute(A)){let{execSync:ce}=require("node:child_process");I=ce(`where ${A}`,{encoding:"utf8"}).split(`
109
109
  `)[0].trim()}I.includes(" ")&&(K=[I,...C],I=process.execPath)}catch(ee){console.error("[Runner] Could not resolve full path for command:",A,ee),I=A,K=C}console.error("[Runner] Executing:",{command:I,args:K}),s=new Xa({command:I,args:K,env:{...fy(),...P}}),s.onmessage=ee=>{try{if("error"in ee){let ce=ee;ce.error?.code!==Fn.MethodNotFound&&console.error("[Runner] Child process error:",ce.error)}console.log(JSON.stringify(ee))}catch(ce){u(ce,"Error handling message")}},s.onclose=()=>{console.error("[Runner] Child process terminated"),i&&(console.error("[Runner] Process terminated unexpectedly while running"),process.exit(1)),process.exit(0)},s.onerror=ee=>{console.error("[Runner] Child process error:",ee.message),ee.message.includes("spawn")?console.error("[Runner] Failed to spawn child process - check if the command exists and is executable"):ee.message.includes("permission")&&console.error("[Runner] Permission error when running child process"),process.exit(1)},await s.start(),i=!0,await c(Buffer.from(""))},d=async()=>{console.error("[Runner] Starting cleanup..."),s&&(await s.close(),s=null),console.error("[Runner] Cleanup completed")},v=async()=>{console.error("[Runner] Shutting down STDIO Runner..."),await d(),process.exit(0)};return process.on("SIGINT",v),process.on("SIGTERM",v),process.stdin.on("data",g=>c(g).catch(w=>u(w,"Error processing message"))),await f(),d};async function PI(r,e,t){let n=r.connections.some(s=>s.type==="ws"),i=r.connections.some(s=>s.type==="stdio");if(n){let s=r.connections.find(u=>u.type==="ws");if(!s?.deploymentUrl)throw new Error("Missing deployment URL");await FI(s.deploymentUrl,e)}else if(i)await TI(r,e,t);else throw new Error("No connection types found. Server not deployed.")}async function RI(r,e){try{let t=new Ma,[n]=await Promise.all([ms(r),t.initialize()]);if(!n)throw new Error(`Could not resolve server: ${r}`);console.error("[Runner] Connecting to server:",{id:n.qualifiedName,connectionTypes:n.connections.map(s=>s.type)});let i=t.getAnalyticsConsent()?t.getUserId():void 0;await PI(n,e,i)}catch(t){console.error("[Runner] Fatal error:",t),process.exit(1)}}var jI=ye(Re()),e8e=process.argv[2],Ws=process.argv[3],Wy=process.argv.indexOf("--client"),II=process.argv.indexOf("--config"),Xc=Wy!==-1?process.argv[Wy+1]:"claude",r8e=II!==-1?(()=>{let r=JSON.parse(process.argv[II+1]);return typeof r=="string"&&(r=JSON.parse(r)),r})():{};async function t8e(){switch(e8e){case"inspect":await XP(Xc);break;case"install":Ws||(console.error("Please provide a package name to install"),process.exit(1)),Wy===-1&&console.log(jI.default.yellow("Client not provided, defaulting to claude")),await fP(Ws,Xc);break;case"uninstall":await hP(Ws,Xc);break;case"installed":await tx(Xc);break;case"view":Ws||(console.error("Please provide a package ID to get details"),process.exit(1)),await SP(Ws,Xc);break;case"run":Ws||(console.error("Please provide a server ID to run"),process.exit(1)),await RI(Ws,r8e);break;default:console.log("Available commands:"),console.log(" install <package> Install a package"),console.log(" --client <name> Specify the AI client"),console.log(" uninstall [package] Uninstall a package"),console.log(" installed List installed packages"),console.log(" view <package> Get details for a specific package"),console.log(" inspect Inspect installed servers"),console.log(" run <server-id> Run a server"),process.exit(1)}}t8e();
110
110
  /*! Bundled license information:
111
111
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithery/cli",
3
- "version": "1.1.13",
3
+ "version": "1.1.14",
4
4
  "type": "commonjs",
5
5
  "private": false,
6
6
  "homepage": "https://smithery.ai/",