imcp 0.1.17 → 0.1.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import{exec}from"child_process";import{promisify}from"util";import{SUPPORTED_CLIENTS}from"../../metadatas/constants.js";import{Logger}from"../../../utils/logger.js";import{handleGitHubRelease}from"../../../utils/githubUtils.js";import{compareVersions}from"../../../utils/versionUtils.js";const execAsync=promisify(exec);export class ExtensionInstaller{static async getVSCodePath(e){const t=e?"code-insiders":"code";try{if("win32"===process.platform)return await execAsync(`where ${t}`),t;if("darwin"===process.platform){const t=e?"Visual Studio Code - Insiders.app":"Visual Studio Code.app",s=`/Applications/${t}`,i=`${process.env.HOME}/Applications/${t}`;try{return await execAsync(`test -d "${s}"`),s}catch{try{return await execAsync(`test -d "${i}"`),i}catch{return null}}}return t}catch{return null}}static async listExtensions(e){const t=e?"code-insiders":"code";try{const{stdout:e}=await execAsync(`${t} --list-extensions --show-versions`);return e.split("\n").filter((e=>e.trim())).map((e=>{const[t,s]=e.split("@"),[i,n]=t.split(".");return{name:n,publisher:i,version:s||""}}))}catch(e){return Logger.error(`Failed to list extensions for ${t}:`,e),[]}}static async checkExtension(e,t){const s=await this.listExtensions(t),[i,n]=e.split("."),o=s.find((e=>e.publisher.toLowerCase()===i.toLowerCase()&&e.name.toLowerCase()===n.toLowerCase()));return o?o.version:null}static async installPublicExtension(e,t){const s=t?"code-insiders":"code";try{return await execAsync(`${s} --install-extension ${e}`),!0}catch(t){return Logger.error(`Failed to install extension ${e}:`,t),!1}}static async installPrivateExtension(e,t){const s=t?"code-insiders":"code";try{return await execAsync(`${s} --install-extension "${e}"`),!0}catch(t){return Logger.error(`Failed to install extension from VSIX ${e}:`,t),!1}}static async installExtension(e){const t=SUPPORTED_CLIENTS[e];if(!t?.extension?.extensionId)return Logger.error(`No extension configuration found for client ${e}`),!1;const{extensionId:s,leastVersion:i,repository:n,assetName:o,private:r}=t.extension;let a=!1;for(const e of[!1,!0]){if(!await this.getVSCodePath(e)){Logger.debug((e?"VSCode Insiders":"VSCode")+" not found, skipping...");continue}const t=await this.checkExtension(s,e);if(!t||r&&i&&compareVersions(t,i)<0)if(r)try{if(!n||!o)throw new Error(`Missing repository or assetName for private extension ${s}`);const{resolvedPath:t}=await handleGitHubRelease({name:s,version:"latest",type:"extension"},{repository:n,assetName:o});a=await this.installPrivateExtension(t,e)}catch(e){Logger.error(`Failed to install/update private extension ${s}:`,e);continue}else a=await this.installPublicExtension(s,e);else Logger.debug(`Extension ${s} is already installed and up to date`),a=!0}return a}}
1
+ import{exec}from"child_process";import{promisify}from"util";import{SUPPORTED_CLIENTS}from"../../metadatas/constants.js";import{Logger}from"../../../utils/logger.js";import{handleGitHubRelease}from"../../../utils/githubUtils.js";import{compareVersions}from"../../../utils/versionUtils.js";const execAsync=promisify(exec);export class ExtensionInstaller{static async getVSCodePath(e){const t=e?"code-insiders":"code";try{if("win32"===process.platform)return await execAsync(`where ${t}`),t;if("darwin"!==process.platform)return await execAsync(`which ${t}`),t;{const t=e?"Visual Studio Code - Insiders.app":"Visual Studio Code.app",s=`/Applications/${t}`,i=`${process.env.HOME}/Applications/${t}`;try{return await execAsync(`test -d "${s}"`),s}catch{try{return await execAsync(`test -d "${i}"`),i}catch{return null}}}}catch{return null}}static async listExtensions(e){const t=e?"code-insiders":"code";try{const{stdout:e}=await execAsync(`${t} --list-extensions --show-versions`);return e.split("\n").filter((e=>e.trim())).map((e=>{const[t,s]=e.split("@"),[i,n]=t.split(".");return{name:n,publisher:i,version:s||""}}))}catch(e){return Logger.error(`Failed to list extensions for ${t}:`,e),[]}}static async checkExtension(e,t){const s=await this.listExtensions(t),[i,n]=e.split("."),o=s.find((e=>e.publisher.toLowerCase()===i.toLowerCase()&&e.name.toLowerCase()===n.toLowerCase()));return o?o.version:null}static async installPublicExtension(e,t){const s=t?"code-insiders":"code";try{return await execAsync(`${s} --install-extension ${e}`),!0}catch(t){return Logger.error(`Failed to install extension ${e}:`,t),!1}}static async installPrivateExtension(e,t){const s=t?"code-insiders":"code";try{return await execAsync(`${s} --install-extension "${e}"`),!0}catch(t){return Logger.error(`Failed to install extension from VSIX ${e}:`,t),!1}}static async installExtension(e){const t=SUPPORTED_CLIENTS[e];if(!t?.extension?.extensionId)return Logger.error(`No extension configuration found for client ${e}`),!1;const{extensionId:s,leastVersion:i,repository:n,assetName:o,private:r}=t.extension;let a=!1;for(const e of[!1,!0]){if(!await this.getVSCodePath(e)){Logger.debug((e?"VSCode Insiders":"VSCode")+" not found, skipping...");continue}const t=await this.checkExtension(s,e);if(!t||r&&i&&compareVersions(t,i)<0)if(r)try{if(!n||!o)throw new Error(`Missing repository or assetName for private extension ${s}`);const{resolvedPath:t}=await handleGitHubRelease({name:s,version:"latest",type:"extension"},{repository:n,assetName:o});a=await this.installPrivateExtension(t,e)}catch(e){Logger.error(`Failed to install/update private extension ${s}:`,e);continue}else a=await this.installPublicExtension(s,e);else Logger.debug(`Extension ${s} is already installed and up to date`),a=!0}return a}}
2
2
  //# sourceMappingURL=ExtensionInstaller.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["exec","promisify","SUPPORTED_CLIENTS","Logger","handleGitHubRelease","compareVersions","execAsync","ExtensionInstaller","getVSCodePath","isInsiders","command","process","platform","appName","systemPath","userPath","env","HOME","listExtensions","stdout","split","filter","line","trim","map","extension","version","publisher","name","error","checkExtension","extensionId","extensions","this","find","ext","toLowerCase","installPublicExtension","installPrivateExtension","vsixPath","installExtension","clientName","client","leastVersion","repository","assetName","private","isPrivate","success","debug","currentVersion","Error","resolvedPath","type"],"sources":["../../../../src/core/installers/clients/ExtensionInstaller.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["exec","promisify","SUPPORTED_CLIENTS","Logger","handleGitHubRelease","compareVersions","execAsync","ExtensionInstaller","getVSCodePath","isInsiders","command","process","platform","appName","systemPath","userPath","env","HOME","listExtensions","stdout","split","filter","line","trim","map","extension","version","publisher","name","error","checkExtension","extensionId","extensions","this","find","ext","toLowerCase","installPublicExtension","installPrivateExtension","vsixPath","installExtension","clientName","client","leastVersion","repository","assetName","private","isPrivate","success","debug","currentVersion","Error","resolvedPath","type"],"sources":["../../../../src/core/installers/clients/ExtensionInstaller.ts"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{BaseClientInstaller}from"./BaseClientInstaller.js";import{readJsonFile,writeJsonFile}from"../../../utils/clientUtils.js";export class GithubCopilotInstaller extends BaseClientInstaller{clientName="GithubCopilot";initializeSettings(e){e.mcp||(e.mcp={servers:{},inputs:[]}),e.mcp.servers||(e.mcp.servers={})}setupSettings(e,s,t){e.mcp.servers[s]={url:t.url}}async handleStdioMode(e,s,t){t.args&&(t.args=t.args.map((e=>"string"==typeof e?e.replace(/\\/g,"/"):e))),e.mcp.servers[s]={command:t.command,args:t.args,env:t.env}}async setupClientSettings(e,s,t){const i=await readJsonFile(e,!0);this.initializeSettings(i),"stdio"===t.mode?await this.handleStdioMode(i,s,t):"sse"!==t.mode&&"streamable-http"!==t.mode||await this.handleSseAndStreamableMode(i,s,t),await writeJsonFile(e,i)}}
1
+ import{BaseClientInstaller}from"./BaseClientInstaller.js";import{readJsonFile,writeJsonFile}from"../../../utils/clientUtils.js";export class GithubCopilotInstaller extends BaseClientInstaller{clientName="GithubCopilot";initializeSettings(e){e.servers||(e.servers={}),e.inputs||(e.inputs=[])}setupSettings(e,t,s){e.servers[t]={url:s.url}}async handleStdioMode(e,t,s){s.args&&(s.args=s.args.map((e=>"string"==typeof e?e.replace(/\\/g,"/"):e))),e.servers[t]={command:s.command,args:s.args,env:s.env}}async setupClientSettings(e,t,s){const i=await readJsonFile(e,!0);this.initializeSettings(i),"stdio"===s.mode?await this.handleStdioMode(i,t,s):"sse"!==s.mode&&"streamable-http"!==s.mode||await this.handleSseAndStreamableMode(i,t,s),await writeJsonFile(e,i)}}
2
2
  //# sourceMappingURL=GithubCopilotInstaller.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BaseClientInstaller","readJsonFile","writeJsonFile","GithubCopilotInstaller","clientName","initializeSettings","settings","mcp","servers","inputs","setupSettings","serverName","installConfig","url","handleStdioMode","finalConfig","args","map","arg","replace","command","env","setupClientSettings","settingPath","this","mode","handleSseAndStreamableMode"],"sources":["../../../../src/core/installers/clients/GithubCopilotInstaller.ts"],"mappings":"OAASA,wBAA2B,kCAC3BC,aAAcC,kBAAqB,uCAMtC,MAAOC,+BAA+BH,oBACrBI,WAAqB,gBAO9B,kBAAAC,CAAmBC,GACpBA,EAASC,MACVD,EAASC,IAAM,CACXC,QAAS,GACTC,OAAQ,KAIXH,EAASC,IAAIC,UACdF,EAASC,IAAIC,QAAU,GAE/B,CASU,aAAAE,CAAcJ,EAAeK,EAAoBC,GACvDN,EAASC,IAAIC,QAAQG,GAAc,CAC/BE,IAAKD,EAAcC,IAE3B,CAMU,qBAAMC,CAAgBR,EAAeK,EAAoBI,GAC3DA,EAAYC,OACZD,EAAYC,KAAOD,EAAYC,KAAKC,KAAKC,GACtB,iBAARA,EAAmBA,EAAIC,QAAQ,MAAO,KAAOD,KAG5DZ,EAASC,IAAIC,QAAQG,GAAc,CAC/BS,QAASL,EAAYK,QACrBJ,KAAMD,EAAYC,KAClBK,IAAKN,EAAYM,IAEzB,CAOA,yBAAMC,CAAoBC,EAAqBZ,EAAoBC,GAE/D,MAAMN,QAAiBL,aAAasB,GAAa,GAGjDC,KAAKnB,mBAAmBC,GAGG,UAAvBM,EAAca,WACRD,KAAKV,gBAAgBR,EAAUK,EAAYC,GACnB,QAAvBA,EAAca,MAAyC,oBAAvBb,EAAca,YAC/CD,KAAKE,2BAA2BpB,EAAUK,EAAYC,SAI1DV,cAAcqB,EAAajB,EACrC","ignoreList":[]}
1
+ {"version":3,"names":["BaseClientInstaller","readJsonFile","writeJsonFile","GithubCopilotInstaller","clientName","initializeSettings","settings","servers","inputs","setupSettings","serverName","installConfig","url","handleStdioMode","finalConfig","args","map","arg","replace","command","env","setupClientSettings","settingPath","this","mode","handleSseAndStreamableMode"],"sources":["../../../../src/core/installers/clients/GithubCopilotInstaller.ts"],"mappings":"OAASA,wBAA2B,kCAC3BC,aAAcC,kBAAqB,uCAMtC,MAAOC,+BAA+BH,oBACrBI,WAAqB,gBAO9B,kBAAAC,CAAmBC,GACpBA,EAASC,UACVD,EAASC,QAAU,IAElBD,EAASE,SACVF,EAASE,OAAS,GAE1B,CASU,aAAAC,CAAcH,EAAeI,EAAoBC,GACvDL,EAASC,QAAQG,GAAc,CAC3BE,IAAKD,EAAcC,IAE3B,CAMU,qBAAMC,CAAgBP,EAAeI,EAAoBI,GAC3DA,EAAYC,OACZD,EAAYC,KAAOD,EAAYC,KAAKC,KAAKC,GACtB,iBAARA,EAAmBA,EAAIC,QAAQ,MAAO,KAAOD,KAG5DX,EAASC,QAAQG,GAAc,CAC3BS,QAASL,EAAYK,QACrBJ,KAAMD,EAAYC,KAClBK,IAAKN,EAAYM,IAEzB,CAQA,yBAAMC,CAAoBC,EAAqBZ,EAAoBC,GAE/D,MAAML,QAAiBL,aAAaqB,GAAa,GAGjDC,KAAKlB,mBAAmBC,GAGG,UAAvBK,EAAca,WACRD,KAAKV,gBAAgBP,EAAUI,EAAYC,GACnB,QAAvBA,EAAca,MAAyC,oBAAvBb,EAAca,YAC/CD,KAAKE,2BAA2BnB,EAAUI,EAAYC,SAI1DT,cAAcoB,EAAahB,EACrC","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import fs from"fs/promises";import path from"path";import{LOCAL_FEEDS_DIR,SUPPORTED_CLIENTS}from"../metadatas/constants.js";import{Logger}from"../../utils/logger.js";import{readJsonFile}from"../../utils/clientUtils.js";export class ConfigurationLoader{static updateServerInstalledStatus(e,t,s){e.installedStatus||(e.installedStatus={}),e.installedStatus[t]=s}static removeClientStatus(e,t){e.installedStatus&&e.installedStatus[t]&&delete e.installedStatus[t]}static syncServerCategoriesWithClientSettings(e){return e.clientMCPSettings?(e.localServerCategories=e.localServerCategories.map((t=>{if(!t.installationStatus?.serversStatus)return t;const s={...t.installationStatus.serversStatus},a=e.clientMCPSettings;for(const[e,t]of Object.entries(a)){const a="GithubCopilot"===e||"VisualStudio"===e?t.servers||{}:t.mcpServers||{};Object.keys(s).forEach((t=>{const r="VisualStudio"===e?t.replace(/-/g,"_"):t;if(a[r]){if(!s[t].installedStatus[e]){const a={status:"completed",type:"install",target:"server",message:`Server ${t} is configured for client ${e}`};ConfigurationLoader.updateServerInstalledStatus(s[t],e,a)}}else ConfigurationLoader.removeClientStatus(s[t],e)}))}return{...t,installationStatus:{...t.installationStatus,serversStatus:s,lastUpdated:(new Date).toISOString()}}})),e):e}static initializeInstallationStatus(e){const t={},s={};if(e){if(e.requirements)for(const s of e.requirements)t[s.name]={name:s.name,type:s.type,installed:!1,version:s.version,error:void 0};if(e.mcpServers)for(const t of e.mcpServers)s[t.name]={name:t.name,error:void 0,installedStatus:{}}}return{requirementsStatus:t,serversStatus:s,lastUpdated:(new Date).toISOString()}}static async syncServerCategoriesWithFeeds(e){e.localServerCategories=e.localServerCategories.filter((t=>e.feeds[t.name])).map((t=>(t.feedConfiguration=e.feeds[t.name],t.installationStatus&&t.installationStatus.requirementsStatus&&0!==Object.keys(t.installationStatus.requirementsStatus).length&&t.installationStatus.serversStatus&&!(Object.keys(t.installationStatus.serversStatus).length<Object.keys(t.feedConfiguration?.mcpServers||[]).length)||(t.installationStatus=ConfigurationLoader.initializeInstallationStatus(t.feedConfiguration)),t)));const t=new Set(e.localServerCategories.map((e=>e.name)));for(const[s,a]of Object.entries(e.feeds))if(!t.has(s)){const t={name:s,displayName:a.displayName||s,type:"local",description:a.description||`Local MCP server category: ${s}`,installationStatus:ConfigurationLoader.initializeInstallationStatus(a),feedConfiguration:a};e.localServerCategories.push(t),console.log(`Created new local server entry for feed: ${s}`)}return e}static async loadFeedsIntoConfiguration(e,t,s){try{await fs.mkdir(LOCAL_FEEDS_DIR,{recursive:!0});const a={};if(t)try{const e=await fs.readFile(t,"utf8");let r=JSON.parse(e);r&&r.name&&(r.systemTags||(r.systemTags={}),r.systemTags.adhoc="true",s?.prLink&&(r.PullRequest=s.prLink),s?.adhocServers&&s.adhocServers.length>0&&r.mcpServers&&(r.mcpServers=r.mcpServers.map((e=>(s.adhocServers.includes(e.name)&&(e.systemTags||(e.systemTags={}),e.systemTags.adhoc="true"),e)))),a[r.name]=r,console.log(`Loaded and processed feed configuration from provided file: ${t}`))}catch(e){console.log(`Error loading feed configuration from provided file ${t}:`,e)}const r=(await fs.readdir(LOCAL_FEEDS_DIR)).filter((e=>e.endsWith(".json")));if(0===r.length&&!t)return console.log(`No feed configuration files found in ${LOCAL_FEEDS_DIR}`),e;for(const e of r)try{const t=path.join(LOCAL_FEEDS_DIR,e),s=await fs.readFile(t,"utf8"),r=JSON.parse(s);r&&r.name&&(a[r.name]?console.log(`Skipping local feed ${r.name} as it was provided via --feed-file`):a[r.name]=r)}catch(t){console.warn(`Error loading feed configuration from ${e}:`,t)}const o=Object.values(a);o.sort(((e,t)=>{const s=e.displayName||"",a=t.displayName||"";return s.localeCompare(a)}));const n={};for(const e of o)n[e.name]=e;return e.feeds=n,await ConfigurationLoader.syncServerCategoriesWithFeeds(e)}catch(e){throw console.error("Error loading feed configurations:",e),e}}static async loadClientMCPSettings(e){try{Logger.debug("Starting to load MCP client settings...");const t={};for(const[e,s]of Object.entries(SUPPORTED_CLIENTS)){const a=process.env.CODE_INSIDERS?s.codeInsiderSettingPath:s.codeSettingPath;try{let s=await readJsonFile(a,!0);"GithubCopilot"===e&&(s=s.mcp?s.mcp:{servers:{},inputs:[]}),t[e]=s,Logger.debug(`Successfully loaded MCP settings for ${e}`)}catch(s){Logger.debug(`Warning: Could not load MCP settings for client ${e}: ${s instanceof Error?s.message:String(s)}`),t[e]={}}}return e.clientMCPSettings=t,ConfigurationLoader.syncServerCategoriesWithClientSettings(e)}catch(e){throw Logger.error("Error loading client MCP settings:",e),e}}}
1
+ import fs from"fs/promises";import path from"path";import{LOCAL_FEEDS_DIR,SUPPORTED_CLIENTS}from"../metadatas/constants.js";import{Logger}from"../../utils/logger.js";import{readJsonFile}from"../../utils/clientUtils.js";export class ConfigurationLoader{static updateServerInstalledStatus(e,t,s){e.installedStatus||(e.installedStatus={}),e.installedStatus[t]=s}static removeClientStatus(e,t){e.installedStatus&&e.installedStatus[t]&&delete e.installedStatus[t]}static syncServerCategoriesWithClientSettings(e){return e.clientMCPSettings?(e.localServerCategories=e.localServerCategories.map((t=>{if(!t.installationStatus?.serversStatus)return t;const s={...t.installationStatus.serversStatus},a=e.clientMCPSettings;for(const[e,t]of Object.entries(a)){const a="GithubCopilot"===e||"VisualStudio"===e?t.servers||{}:t.mcpServers||{};Object.keys(s).forEach((t=>{const r="VisualStudio"===e?t.replace(/-/g,"_"):t;if(a[r]){if(!s[t].installedStatus[e]){const a={status:"completed",type:"install",target:"server",message:`Server ${t} is configured for client ${e}`};ConfigurationLoader.updateServerInstalledStatus(s[t],e,a)}}else ConfigurationLoader.removeClientStatus(s[t],e)}))}return{...t,installationStatus:{...t.installationStatus,serversStatus:s,lastUpdated:(new Date).toISOString()}}})),e):e}static initializeInstallationStatus(e){const t={},s={};if(e){if(e.requirements)for(const s of e.requirements)t[s.name]={name:s.name,type:s.type,installed:!1,version:s.version,error:void 0};if(e.mcpServers)for(const t of e.mcpServers)s[t.name]={name:t.name,error:void 0,installedStatus:{}}}return{requirementsStatus:t,serversStatus:s,lastUpdated:(new Date).toISOString()}}static async syncServerCategoriesWithFeeds(e){e.localServerCategories=e.localServerCategories.filter((t=>e.feeds[t.name])).map((t=>(t.feedConfiguration=e.feeds[t.name],t.installationStatus&&t.installationStatus.requirementsStatus&&0!==Object.keys(t.installationStatus.requirementsStatus).length&&t.installationStatus.serversStatus&&!(Object.keys(t.installationStatus.serversStatus).length<Object.keys(t.feedConfiguration?.mcpServers||[]).length)||(t.installationStatus=ConfigurationLoader.initializeInstallationStatus(t.feedConfiguration)),t)));const t=new Set(e.localServerCategories.map((e=>e.name)));for(const[s,a]of Object.entries(e.feeds))if(!t.has(s)){const t={name:s,displayName:a.displayName||s,type:"local",description:a.description||`Local MCP server category: ${s}`,installationStatus:ConfigurationLoader.initializeInstallationStatus(a),feedConfiguration:a};e.localServerCategories.push(t),console.log(`Created new local server entry for feed: ${s}`)}return e}static async loadFeedsIntoConfiguration(e,t,s){try{await fs.mkdir(LOCAL_FEEDS_DIR,{recursive:!0});const a={};if(t)try{const e=await fs.readFile(t,"utf8");let r=JSON.parse(e);r&&r.name&&(r.systemTags||(r.systemTags={}),r.systemTags.adhoc="true",s?.prLink&&(r.PullRequest=s.prLink),s?.adhocServers&&s.adhocServers.length>0&&r.mcpServers&&(r.mcpServers=r.mcpServers.map((e=>(s.adhocServers.includes(e.name)&&(e.systemTags||(e.systemTags={}),e.systemTags.adhoc="true"),e)))),a[r.name]=r,console.log(`Loaded and processed feed configuration from provided file: ${t}`))}catch(e){console.log(`Error loading feed configuration from provided file ${t}:`,e)}const r=(await fs.readdir(LOCAL_FEEDS_DIR)).filter((e=>e.endsWith(".json")));if(0===r.length&&!t)return console.log(`No feed configuration files found in ${LOCAL_FEEDS_DIR}`),e;for(const e of r)try{const t=path.join(LOCAL_FEEDS_DIR,e),s=await fs.readFile(t,"utf8"),r=JSON.parse(s);r&&r.name&&(a[r.name]?console.log(`Skipping local feed ${r.name} as it was provided via --feed-file`):a[r.name]=r)}catch(t){console.warn(`Error loading feed configuration from ${e}:`,t)}const o=Object.values(a);o.sort(((e,t)=>{const s=e.displayName||"",a=t.displayName||"";return s.localeCompare(a)}));const n={};for(const e of o)n[e.name]=e;return e.feeds=n,await ConfigurationLoader.syncServerCategoriesWithFeeds(e)}catch(e){throw console.error("Error loading feed configurations:",e),e}}static async loadClientMCPSettings(e){try{Logger.debug("Starting to load MCP client settings...");const t={};for(const[e,s]of Object.entries(SUPPORTED_CLIENTS)){const a=process.env.CODE_INSIDERS?s.codeInsiderSettingPath:s.codeSettingPath;try{let s=await readJsonFile(a,!0);"GithubCopilot"===e&&(s.servers||(s.servers={}),s.inputs||(s.inputs=[])),t[e]=s,Logger.debug(`Successfully loaded MCP settings for ${e}`)}catch(s){Logger.debug(`Warning: Could not load MCP settings for client ${e}: ${s instanceof Error?s.message:String(s)}`),t[e]={}}}return e.clientMCPSettings=t,ConfigurationLoader.syncServerCategoriesWithClientSettings(e)}catch(e){throw Logger.error("Error loading client MCP settings:",e),e}}}
2
2
  //# sourceMappingURL=ConfigurationLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["fs","path","LOCAL_FEEDS_DIR","SUPPORTED_CLIENTS","Logger","readJsonFile","ConfigurationLoader","updateServerInstalledStatus","serverStatus","clientName","operationStatus","installedStatus","removeClientStatus","syncServerCategoriesWithClientSettings","configuration","clientMCPSettings","localServerCategories","map","category","installationStatus","serversStatus","updatedServerStatus","clientSettings","settings","Object","entries","clientServers","servers","mcpServers","keys","forEach","serverName","checkServerName","replace","status","type","target","message","lastUpdated","Date","toISOString","initializeInstallationStatus","feedConfig","requirementsStatus","requirements","req","name","installed","version","error","undefined","mcp","syncServerCategoriesWithFeeds","filter","server","feeds","feedConfiguration","length","existingServerNames","Set","feedName","has","newServerCategory","displayName","description","push","console","log","loadFeedsIntoConfiguration","feedFile","mkdir","recursive","content","readFile","config","JSON","parse","systemTags","prLink","PullRequest","adhocServers","includes","jsonFiles","readdir","file","endsWith","filePath","join","warn","feedValues","values","sort","a","b","displayNameA","displayNameB","localeCompare","sortedFeeds","loadClientMCPSettings","debug","settingPath","process","env","CODE_INSIDERS","codeInsiderSettingPath","codeSettingPath","inputs","Error","String"],"sources":["../../../src/core/loaders/ConfigurationLoader.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["fs","path","LOCAL_FEEDS_DIR","SUPPORTED_CLIENTS","Logger","readJsonFile","ConfigurationLoader","updateServerInstalledStatus","serverStatus","clientName","operationStatus","installedStatus","removeClientStatus","syncServerCategoriesWithClientSettings","configuration","clientMCPSettings","localServerCategories","map","category","installationStatus","serversStatus","updatedServerStatus","clientSettings","settings","Object","entries","clientServers","servers","mcpServers","keys","forEach","serverName","checkServerName","replace","status","type","target","message","lastUpdated","Date","toISOString","initializeInstallationStatus","feedConfig","requirementsStatus","requirements","req","name","installed","version","error","undefined","mcp","syncServerCategoriesWithFeeds","filter","server","feeds","feedConfiguration","length","existingServerNames","Set","feedName","has","newServerCategory","displayName","description","push","console","log","loadFeedsIntoConfiguration","feedFile","mkdir","recursive","content","readFile","config","JSON","parse","systemTags","prLink","PullRequest","adhocServers","includes","jsonFiles","readdir","file","endsWith","filePath","join","warn","feedValues","values","sort","a","b","displayNameA","displayNameB","localeCompare","sortedFeeds","loadClientMCPSettings","debug","settingPath","process","env","CODE_INSIDERS","codeInsiderSettingPath","codeSettingPath","inputs","Error","String"],"sources":["../../../src/core/loaders/ConfigurationLoader.ts"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import fs from"fs/promises";import path from"path";import{exec}from"child_process";import{promisify}from"util";import{fileURLToPath}from"url";import{GITHUB_REPO,LOCAL_FEEDS_DIR,SETTINGS_DIR,SUPPORTED_CLIENTS}from"../metadatas/constants.js";import{Logger}from"../../utils/logger.js";import{checkGithubAuth}from"../../utils/githubAuth.js";import{ConfigurationLoader}from"./ConfigurationLoader.js";const execAsync=promisify(exec),__dirname=path.dirname(fileURLToPath(import.meta.url));export class ConfigurationProvider{static instance;configPath;configuration;configLock=Promise.resolve();tempDir;constructor(){this.configPath=path.join(SETTINGS_DIR,"configurations.json"),this.configuration={localServerCategories:[],feeds:{},clientMCPSettings:{}},this.tempDir=path.join(LOCAL_FEEDS_DIR,"../temp")}static getInstance(){return ConfigurationProvider.instance||(ConfigurationProvider.instance=new ConfigurationProvider),ConfigurationProvider.instance}async withLock(t){const e=this.configLock;let i;this.configLock=new Promise((t=>i=t));try{return await e,await t()}finally{i()}}async initialize(t,e){await this.withLock((async()=>{const i=path.dirname(this.configPath);await fs.mkdir(i,{recursive:!0});try{await fs.rm(this.configPath,{recursive:!0,force:!0})}catch(t){if("ENOENT"!==t.code)throw t}try{try{const t=JSON.parse(await fs.readFile(this.configPath,"utf8"));this.configuration=t}catch(t){if("ENOENT"!==t.code)throw t;await this.saveConfiguration()}await this.loadFeedsIntoConfiguration(t,e),await this.loadClientMCPSettings()}catch(t){throw Logger.error("Error during initialization",t),t}}))}async saveConfiguration(){const t=path.dirname(this.configPath);await fs.mkdir(t,{recursive:!0}),await fs.writeFile(this.configPath,JSON.stringify(this.configuration,null,2))}async getServerCategories(){return await this.withLock((async()=>this.configuration.localServerCategories))}async getServerCategory(t){return await this.withLock((async()=>this.configuration.localServerCategories.find((e=>e.name===t))))}async getClientMcpSettings(){return await this.withLock((async()=>this.configuration.clientMCPSettings))}async getFeedConfiguration(t){return await this.withLock((async()=>this.configuration.feeds[t]))}async getServerMcpConfig(t,e){return await this.withLock((async()=>this.configuration.feeds[t]?.mcpServers.find((t=>t.name===e))))}async getInstallationStatus(t){return await this.withLock((async()=>{const e=this.configuration.localServerCategories.find((e=>e.name===t));return e?.installationStatus}))}async getServerStatus(t,e){return await this.withLock((async()=>{const i=this.configuration.localServerCategories.find((e=>e.name===t)),a=i?.installationStatus;return a?.serversStatus[e]}))}async getRequirementStatus(t,e){return await this.withLock((async()=>{const i=this.configuration.localServerCategories.find((e=>e.name===t)),a=i?.installationStatus;return a?.requirementsStatus[e]}))}async updateInstallationStatus(t,e,i){return await this.withLock((async()=>{const a=this.configuration.localServerCategories.find((e=>e.name===t));return!!a&&(a.installationStatus||(a.installationStatus={requirementsStatus:{},serversStatus:{},lastUpdated:(new Date).toISOString()}),a.installationStatus.requirementsStatus={...a.installationStatus.requirementsStatus,...e},a.installationStatus.serversStatus={...a.installationStatus.serversStatus,...i},a.installationStatus.lastUpdated=(new Date).toISOString(),await this.saveConfiguration(),!0)}))}async updateRequirementStatus(t,e,i){return await this.withLock((async()=>{const a=this.configuration.localServerCategories.find((e=>e.name===t));return!!a?.installationStatus&&(a.installationStatus.requirementsStatus[e]=i,a.installationStatus.lastUpdated=(new Date).toISOString(),await this.saveConfiguration(),!0)}))}async updateRequirementOperationStatus(t,e,i){return await this.withLock((async()=>{const a=this.configuration.localServerCategories.find((e=>e.name===t));return!!a?.installationStatus?.requirementsStatus[e]&&(a.installationStatus.requirementsStatus[e].operationStatus=i,a.installationStatus.lastUpdated=(new Date).toISOString(),await this.saveConfiguration(),!0)}))}async updateServerStatus(t,e,i){return await this.withLock((async()=>{const a=this.configuration.localServerCategories.find((e=>e.name===t));return!!a?.installationStatus&&(a.installationStatus.serversStatus[e]=i,a.installationStatus.lastUpdated=(new Date).toISOString(),await this.saveConfiguration(),!0)}))}async updateServerOperationStatus(t,e,i,a){return await this.withLock((async()=>{const r=this.configuration.localServerCategories.find((e=>e.name===t));return!!r?.installationStatus?.serversStatus[e]&&(r.installationStatus.serversStatus[e].installedStatus[i]=a,r.installationStatus.lastUpdated=(new Date).toISOString(),await this.saveConfiguration(),!0)}))}async isRequirementsReady(t,e){return await this.withLock((async()=>{const i=this.configuration.localServerCategories.find((e=>e.name===t));if(!i?.feedConfiguration)return!1;const a=i.feedConfiguration.mcpServers.find((t=>t.name===e));if(!a?.dependencies?.requirements)return!0;const r=a.dependencies.requirements.map((t=>t.name)),n=i?.installationStatus;return!!n?.requirementsStatus&&r.every((t=>{const e=n.requirementsStatus[t];return e?.installed&&!e?.error}))}))}async GetServerRequirementStatus(t,e){return await this.withLock((async()=>{const i=this.configuration.localServerCategories.find((e=>e.name===t));if(!i?.feedConfiguration)return[];const a=i.feedConfiguration.mcpServers.find((t=>t.name===e));if(!a?.dependencies?.requirements)return[];return a.dependencies.requirements.map((t=>t.name)).map((t=>i?.installationStatus?.requirementsStatus[t])).filter((t=>void 0!==t))}))}async isServerReady(t,e,i){return await this.withLock((async()=>{const a=this.configuration.localServerCategories.find((e=>e.name===t)),r=a?.installationStatus,n=r?.serversStatus[e];return!!n&&i.every((t=>{const e=n.installedStatus?.[t];return"completed"===e?.status&&!e?.error}))}))}async syncFeeds(t,e){return await this.withLock((async()=>{Logger.log("Starting feed synchronization...");try{await checkGithubAuth(),Logger.debug({action:"create_directories",paths:{localFeeds:LOCAL_FEEDS_DIR,tempDir:this.tempDir}}),await fs.mkdir(LOCAL_FEEDS_DIR,{recursive:!0}),await fs.mkdir(this.tempDir,{recursive:!0}),await fs.rm(this.tempDir,{recursive:!0,force:!0});const i=t||GITHUB_REPO.url,a=e||"main";if(t||e){Logger.debug(`Using git clone with repository ${i} and branch ${a}`);const{cloneGitRepository:t}=await import("../../utils/gitUtils.js"),e=path.join(this.tempDir,"repo-clone");await t(i,a,e);const r=path.join(e,GITHUB_REPO.feedsPath);Logger.debug("Updating local feeds from git clone..."),await fs.rm(LOCAL_FEEDS_DIR,{recursive:!0,force:!0});try{await fs.access(r)}catch(t){throw new Error(`Could not find feeds directory in cloned repository: ${r}`)}await fs.cp(r,LOCAL_FEEDS_DIR,{recursive:!0,force:!0}),Logger.log("Successfully updated local feeds from git repository")}else{Logger.debug("Downloading latest release...");const{downloadGithubRelease:t}=await import("../../utils/githubUtils.js"),{version:e,downloadPath:i}=await t(GITHUB_REPO.repoName,"latest",GITHUB_REPO.feedAssetsName,void 0,!0,this.tempDir);Logger.debug({action:"download_release",downloadPath:i,version:e,repoName:GITHUB_REPO.repoName}),Logger.debug("Updating local feeds..."),await fs.rm(LOCAL_FEEDS_DIR,{recursive:!0,force:!0});const a=i;try{await fs.access(i)}catch(t){throw new Error(`Could not find feeds directory in downloaded path: ${a}`)}await fs.cp(a,LOCAL_FEEDS_DIR,{recursive:!0,force:!0}),Logger.log("Successfully updated local feeds")}}catch(t){throw Logger.error("Error during feed synchronization",t),new Error("Failed to sync feeds. Use --verbose for detailed error information.")}}))}async loadFeedsIntoConfiguration(t,e){this.configuration=await ConfigurationLoader.loadFeedsIntoConfiguration(this.configuration,t,e),await this.saveConfiguration()}async loadClientMCPSettings(){this.configuration=await ConfigurationLoader.loadClientMCPSettings(this.configuration),await this.saveConfiguration()}async reloadClientMCPSettings(){return await this.withLock((async()=>{await this.loadClientMCPSettings()}))}async removeServerFromClientMCPSettings(t,e){return await this.withLock((async()=>{const{readJsonFile:i,writeJsonFile:a}=await import("../../utils/clientUtils.js"),r=Object.entries(SUPPORTED_CLIENTS),n=e?r.filter((([t])=>t===e)):r;for(const[e,r]of n){const n=process.env.CODE_INSIDERS?r.codeInsiderSettingPath:r.codeSettingPath;try{const r=await i(n,!0);let s=!1;if("GithubCopilot"===e&&r.mcp?.servers?.[t])delete r.mcp.servers[t],s=!0;else if("VisualStudio"===e){const e=t.replace(/-/g,"_");r.servers?.[e]&&(delete r.servers[e],s=!0)}else r.mcpServers?.[t]&&(delete r.mcpServers[t],s=!0);s&&(await a(n,r),Logger.debug(`Removed server ${t} from client ${e} settings`))}catch(i){Logger.error(`Failed to remove server ${t} from client ${e} settings:`,i)}}if(this.configuration.clientMCPSettings){if(e){const i=this.configuration.clientMCPSettings[e];i&&(i.mcpServers?.[t]&&delete i.mcpServers[t],i.servers?.[t]&&delete i.servers[t])}else for(const e of Object.values(this.configuration.clientMCPSettings))e.mcpServers?.[t]&&delete e.mcpServers[t],e.servers?.[t]&&delete e.servers[t];await this.saveConfiguration()}}))}}export const configProvider=ConfigurationProvider.getInstance();
1
+ import fs from"fs/promises";import path from"path";import{exec}from"child_process";import{promisify}from"util";import{fileURLToPath}from"url";import{GITHUB_REPO,LOCAL_FEEDS_DIR,SETTINGS_DIR,SUPPORTED_CLIENTS}from"../metadatas/constants.js";import{Logger}from"../../utils/logger.js";import{checkGithubAuth}from"../../utils/githubAuth.js";import{ConfigurationLoader}from"./ConfigurationLoader.js";const execAsync=promisify(exec),__dirname=path.dirname(fileURLToPath(import.meta.url));export class ConfigurationProvider{static instance;configPath;configuration;configLock=Promise.resolve();tempDir;constructor(){this.configPath=path.join(SETTINGS_DIR,"configurations.json"),this.configuration={localServerCategories:[],feeds:{},clientMCPSettings:{}},this.tempDir=path.join(LOCAL_FEEDS_DIR,"../temp")}static getInstance(){return ConfigurationProvider.instance||(ConfigurationProvider.instance=new ConfigurationProvider),ConfigurationProvider.instance}async withLock(t){const e=this.configLock;let i;this.configLock=new Promise((t=>i=t));try{return await e,await t()}finally{i()}}async initialize(t,e){await this.withLock((async()=>{const i=path.dirname(this.configPath);await fs.mkdir(i,{recursive:!0});try{await fs.rm(this.configPath,{recursive:!0,force:!0})}catch(t){if("ENOENT"!==t.code)throw t}try{try{const t=JSON.parse(await fs.readFile(this.configPath,"utf8"));this.configuration=t}catch(t){if("ENOENT"!==t.code)throw t;await this.saveConfiguration()}await this.loadFeedsIntoConfiguration(t,e),await this.loadClientMCPSettings()}catch(t){throw Logger.error("Error during initialization",t),t}}))}async saveConfiguration(){const t=path.dirname(this.configPath);await fs.mkdir(t,{recursive:!0}),await fs.writeFile(this.configPath,JSON.stringify(this.configuration,null,2))}async getServerCategories(){return await this.withLock((async()=>this.configuration.localServerCategories))}async getServerCategory(t){return await this.withLock((async()=>this.configuration.localServerCategories.find((e=>e.name===t))))}async getClientMcpSettings(){return await this.withLock((async()=>this.configuration.clientMCPSettings))}async getFeedConfiguration(t){return await this.withLock((async()=>this.configuration.feeds[t]))}async getServerMcpConfig(t,e){return await this.withLock((async()=>this.configuration.feeds[t]?.mcpServers.find((t=>t.name===e))))}async getInstallationStatus(t){return await this.withLock((async()=>{const e=this.configuration.localServerCategories.find((e=>e.name===t));return e?.installationStatus}))}async getServerStatus(t,e){return await this.withLock((async()=>{const i=this.configuration.localServerCategories.find((e=>e.name===t)),a=i?.installationStatus;return a?.serversStatus[e]}))}async getRequirementStatus(t,e){return await this.withLock((async()=>{const i=this.configuration.localServerCategories.find((e=>e.name===t)),a=i?.installationStatus;return a?.requirementsStatus[e]}))}async updateInstallationStatus(t,e,i){return await this.withLock((async()=>{const a=this.configuration.localServerCategories.find((e=>e.name===t));return!!a&&(a.installationStatus||(a.installationStatus={requirementsStatus:{},serversStatus:{},lastUpdated:(new Date).toISOString()}),a.installationStatus.requirementsStatus={...a.installationStatus.requirementsStatus,...e},a.installationStatus.serversStatus={...a.installationStatus.serversStatus,...i},a.installationStatus.lastUpdated=(new Date).toISOString(),await this.saveConfiguration(),!0)}))}async updateRequirementStatus(t,e,i){return await this.withLock((async()=>{const a=this.configuration.localServerCategories.find((e=>e.name===t));return!!a?.installationStatus&&(a.installationStatus.requirementsStatus[e]=i,a.installationStatus.lastUpdated=(new Date).toISOString(),await this.saveConfiguration(),!0)}))}async updateRequirementOperationStatus(t,e,i){return await this.withLock((async()=>{const a=this.configuration.localServerCategories.find((e=>e.name===t));return!!a?.installationStatus?.requirementsStatus[e]&&(a.installationStatus.requirementsStatus[e].operationStatus=i,a.installationStatus.lastUpdated=(new Date).toISOString(),await this.saveConfiguration(),!0)}))}async updateServerStatus(t,e,i){return await this.withLock((async()=>{const a=this.configuration.localServerCategories.find((e=>e.name===t));return!!a?.installationStatus&&(a.installationStatus.serversStatus[e]=i,a.installationStatus.lastUpdated=(new Date).toISOString(),await this.saveConfiguration(),!0)}))}async updateServerOperationStatus(t,e,i,a){return await this.withLock((async()=>{const r=this.configuration.localServerCategories.find((e=>e.name===t));return!!r?.installationStatus?.serversStatus[e]&&(r.installationStatus.serversStatus[e].installedStatus[i]=a,r.installationStatus.lastUpdated=(new Date).toISOString(),await this.saveConfiguration(),!0)}))}async isRequirementsReady(t,e){return await this.withLock((async()=>{const i=this.configuration.localServerCategories.find((e=>e.name===t));if(!i?.feedConfiguration)return!1;const a=i.feedConfiguration.mcpServers.find((t=>t.name===e));if(!a?.dependencies?.requirements)return!0;const r=a.dependencies.requirements.map((t=>t.name)),n=i?.installationStatus;return!!n?.requirementsStatus&&r.every((t=>{const e=n.requirementsStatus[t];return e?.installed&&!e?.error}))}))}async GetServerRequirementStatus(t,e){return await this.withLock((async()=>{const i=this.configuration.localServerCategories.find((e=>e.name===t));if(!i?.feedConfiguration)return[];const a=i.feedConfiguration.mcpServers.find((t=>t.name===e));if(!a?.dependencies?.requirements)return[];return a.dependencies.requirements.map((t=>t.name)).map((t=>i?.installationStatus?.requirementsStatus[t])).filter((t=>void 0!==t))}))}async isServerReady(t,e,i){return await this.withLock((async()=>{const a=this.configuration.localServerCategories.find((e=>e.name===t)),r=a?.installationStatus,n=r?.serversStatus[e];return!!n&&i.every((t=>{const e=n.installedStatus?.[t];return"completed"===e?.status&&!e?.error}))}))}async syncFeeds(t,e){return await this.withLock((async()=>{Logger.log("Starting feed synchronization...");try{await checkGithubAuth(),Logger.debug({action:"create_directories",paths:{localFeeds:LOCAL_FEEDS_DIR,tempDir:this.tempDir}}),await fs.mkdir(LOCAL_FEEDS_DIR,{recursive:!0}),await fs.mkdir(this.tempDir,{recursive:!0}),await fs.rm(this.tempDir,{recursive:!0,force:!0});const i=t||GITHUB_REPO.url,a=e||"main";if(t||e){Logger.debug(`Using git clone with repository ${i} and branch ${a}`);const{cloneGitRepository:t}=await import("../../utils/gitUtils.js"),e=path.join(this.tempDir,"repo-clone");await t(i,a,e);const r=path.join(e,GITHUB_REPO.feedsPath);Logger.debug("Updating local feeds from git clone..."),await fs.rm(LOCAL_FEEDS_DIR,{recursive:!0,force:!0});try{await fs.access(r)}catch(t){throw new Error(`Could not find feeds directory in cloned repository: ${r}`)}await fs.cp(r,LOCAL_FEEDS_DIR,{recursive:!0,force:!0}),Logger.log("Successfully updated local feeds from git repository")}else{Logger.debug("Downloading latest release...");const{downloadGithubRelease:t}=await import("../../utils/githubUtils.js"),{version:e,downloadPath:i}=await t(GITHUB_REPO.repoName,"latest",GITHUB_REPO.feedAssetsName,void 0,!0,this.tempDir);Logger.debug({action:"download_release",downloadPath:i,version:e,repoName:GITHUB_REPO.repoName}),Logger.debug("Updating local feeds..."),await fs.rm(LOCAL_FEEDS_DIR,{recursive:!0,force:!0});const a=i;try{await fs.access(i)}catch(t){throw new Error(`Could not find feeds directory in downloaded path: ${a}`)}await fs.cp(a,LOCAL_FEEDS_DIR,{recursive:!0,force:!0}),Logger.log("Successfully updated local feeds")}}catch(t){throw Logger.error("Error during feed synchronization",t),new Error("Failed to sync feeds. Use --verbose for detailed error information.")}}))}async loadFeedsIntoConfiguration(t,e){this.configuration=await ConfigurationLoader.loadFeedsIntoConfiguration(this.configuration,t,e),await this.saveConfiguration()}async loadClientMCPSettings(){this.configuration=await ConfigurationLoader.loadClientMCPSettings(this.configuration),await this.saveConfiguration()}async reloadClientMCPSettings(){return await this.withLock((async()=>{await this.loadClientMCPSettings()}))}async removeServerFromClientMCPSettings(t,e){return await this.withLock((async()=>{const{readJsonFile:i,writeJsonFile:a}=await import("../../utils/clientUtils.js"),r=Object.entries(SUPPORTED_CLIENTS),n=e?r.filter((([t])=>t===e)):r;for(const[e,r]of n){const n=process.env.CODE_INSIDERS?r.codeInsiderSettingPath:r.codeSettingPath;try{const r=await i(n,!0);let s=!1;if("GithubCopilot"===e)r.servers?.[t]&&(delete r.servers[t],s=!0);else if("VisualStudio"===e){const e=t.replace(/-/g,"_");r.servers?.[e]&&(delete r.servers[e],s=!0)}else r.mcpServers?.[t]&&(delete r.mcpServers[t],s=!0);s&&(await a(n,r),Logger.debug(`Removed server ${t} from client ${e} settings`))}catch(i){Logger.error(`Failed to remove server ${t} from client ${e} settings:`,i)}}if(this.configuration.clientMCPSettings){if(e){const i=this.configuration.clientMCPSettings[e];i&&(i.mcpServers?.[t]&&delete i.mcpServers[t],i.servers?.[t]&&delete i.servers[t])}else for(const e of Object.values(this.configuration.clientMCPSettings))e.mcpServers?.[t]&&delete e.mcpServers[t],e.servers?.[t]&&delete e.servers[t];await this.saveConfiguration()}}))}}export const configProvider=ConfigurationProvider.getInstance();
2
2
  //# sourceMappingURL=ConfigurationProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["fs","path","exec","promisify","fileURLToPath","GITHUB_REPO","LOCAL_FEEDS_DIR","SETTINGS_DIR","SUPPORTED_CLIENTS","Logger","checkGithubAuth","ConfigurationLoader","execAsync","__dirname","dirname","url","ConfigurationProvider","static","configPath","configuration","configLock","Promise","resolve","tempDir","constructor","this","join","localServerCategories","feeds","clientMCPSettings","getInstance","instance","withLock","operation","current","r","initialize","feedFile","settings","async","configDir","mkdir","recursive","rm","force","error","code","config","JSON","parse","readFile","saveConfiguration","loadFeedsIntoConfiguration","loadClientMCPSettings","writeFile","stringify","getServerCategories","getServerCategory","categoryName","find","s","name","getClientMcpSettings","getFeedConfiguration","getServerMcpConfig","serverName","mcpServers","getInstallationStatus","category","installationStatus","getServerStatus","status","serversStatus","getRequirementStatus","requirementName","requirementsStatus","updateInstallationStatus","requirementStatus","serverStatus","lastUpdated","Date","toISOString","updateRequirementStatus","updateRequirementOperationStatus","operationStatus","updateServerStatus","updateServerOperationStatus","clientName","installedStatus","isRequirementsReady","feedConfiguration","serverConfig","dependencies","requirements","requirementNames","map","every","reqStatus","installed","GetServerRequirementStatus","filter","x","undefined","isServerReady","clients","clientStatus","syncFeeds","repo","branch","log","debug","action","paths","localFeeds","repoUrl","repoBranch","cloneGitRepository","import","clonePath","sourceFeedsDir","feedsPath","access","err","Error","cp","downloadGithubRelease","version","downloadPath","repoName","feedAssetsName","reloadClientMCPSettings","removeServerFromClientMCPSettings","target","readJsonFile","writeJsonFile","clientEntries","Object","entries","targetClients","clientSettings","settingPath","process","env","CODE_INSIDERS","codeInsiderSettingPath","codeSettingPath","content","modified","mcp","servers","actualServerName","replace","values","configProvider"],"sources":["../../../src/core/loaders/ConfigurationProvider.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["fs","path","exec","promisify","fileURLToPath","GITHUB_REPO","LOCAL_FEEDS_DIR","SETTINGS_DIR","SUPPORTED_CLIENTS","Logger","checkGithubAuth","ConfigurationLoader","execAsync","__dirname","dirname","url","ConfigurationProvider","static","configPath","configuration","configLock","Promise","resolve","tempDir","constructor","this","join","localServerCategories","feeds","clientMCPSettings","getInstance","instance","withLock","operation","current","r","initialize","feedFile","settings","async","configDir","mkdir","recursive","rm","force","error","code","config","JSON","parse","readFile","saveConfiguration","loadFeedsIntoConfiguration","loadClientMCPSettings","writeFile","stringify","getServerCategories","getServerCategory","categoryName","find","s","name","getClientMcpSettings","getFeedConfiguration","getServerMcpConfig","serverName","mcpServers","getInstallationStatus","category","installationStatus","getServerStatus","status","serversStatus","getRequirementStatus","requirementName","requirementsStatus","updateInstallationStatus","requirementStatus","serverStatus","lastUpdated","Date","toISOString","updateRequirementStatus","updateRequirementOperationStatus","operationStatus","updateServerStatus","updateServerOperationStatus","clientName","installedStatus","isRequirementsReady","feedConfiguration","serverConfig","dependencies","requirements","requirementNames","map","every","reqStatus","installed","GetServerRequirementStatus","filter","x","undefined","isServerReady","clients","clientStatus","syncFeeds","repo","branch","log","debug","action","paths","localFeeds","repoUrl","repoBranch","cloneGitRepository","import","clonePath","sourceFeedsDir","feedsPath","access","err","Error","cp","downloadGithubRelease","version","downloadPath","repoName","feedAssetsName","reloadClientMCPSettings","removeServerFromClientMCPSettings","target","readJsonFile","writeJsonFile","clientEntries","Object","entries","targetClients","clientSettings","settingPath","process","env","CODE_INSIDERS","codeInsiderSettingPath","codeSettingPath","content","modified","servers","actualServerName","replace","values","configProvider"],"sources":["../../../src/core/loaders/ConfigurationProvider.ts"],"mappings":"OAAOA,OAAQ,qBACRC,SAAU,cACRC,SAAY,uBACZC,cAAiB,cACjBC,kBAAqB,aACrBC,YAAaC,gBAAiBC,aAAcC,sBAAyB,mCACrEC,WAAc,+BACdC,oBAAuB,mCAYvBC,wBAA2B,2BAEpC,MAAMC,UAAYT,UAAUD,MACtBW,UAAYZ,KAAKa,QAAQV,0BAA0BW,aAEnD,MAAOC,sBACDC,gBACAC,WACAC,cACAC,WAA4BC,QAAQC,UACpCC,QAER,WAAAC,GAEIC,KAAKP,WAAajB,KAAKyB,KAAKnB,aAAc,uBAC1CkB,KAAKN,cAAgB,CACjBQ,sBAAuB,GACvBC,MAAO,GACPC,kBAAmB,IAEvBJ,KAAKF,QAAUtB,KAAKyB,KAAKpB,gBAAiB,UAC9C,CAEO,kBAAOwB,GAIV,OAHKd,sBAAsBe,WACvBf,sBAAsBe,SAAW,IAAIf,uBAElCA,sBAAsBe,QACjC,CAEQ,cAAMC,CAAYC,GACtB,MAAMC,EAAUT,KAAKL,WACrB,IAAIE,EACJG,KAAKL,WAAa,IAAIC,SAAcc,GAAKb,EAAUa,IACnD,IAEI,aADMD,QACOD,GACjB,C,QACIX,GACJ,CACJ,CAEA,gBAAMc,CAAWC,EAAmBC,SAC1Bb,KAAKO,UAASO,UAChB,MAAMC,EAAYvC,KAAKa,QAAQW,KAAKP,kBAC9BlB,GAAGyC,MAAMD,EAAW,CAAEE,WAAW,IAEvC,UACU1C,GAAG2C,GAAGlB,KAAKP,WAAY,CAAEwB,WAAW,EAAME,OAAO,GAC3D,CAAE,MAAOC,GACL,GAA8C,WAAzCA,EAAgCC,KACjC,MAAMD,CAEd,CAEA,IACI,IACI,MAAME,EAASC,KAAKC,YAAYjD,GAAGkD,SAASzB,KAAKP,WAAY,SAC7DO,KAAKN,cAAgB4B,CACzB,CAAE,MAAOF,GACL,GAA8C,WAAzCA,EAAgCC,KACjC,MAAMD,QAGJpB,KAAK0B,mBACf,OAGM1B,KAAK2B,2BAA2Bf,EAAUC,SAC1Cb,KAAK4B,uBACf,CAAE,MAAOR,GAEL,MADApC,OAAOoC,MAAM,8BAA+BA,GACtCA,CACV,IAER,CAEQ,uBAAMM,GACV,MAAMX,EAAYvC,KAAKa,QAAQW,KAAKP,kBAC9BlB,GAAGyC,MAAMD,EAAW,CAAEE,WAAW,UACjC1C,GAAGsD,UAAU7B,KAAKP,WAAY8B,KAAKO,UAAU9B,KAAKN,cAAe,KAAM,GACjF,CAEA,yBAAMqC,GACF,aAAa/B,KAAKO,UAASO,SAChBd,KAAKN,cAAcQ,uBAElC,CAEA,uBAAM8B,CAAkBC,GACpB,aAAajC,KAAKO,UAASO,SAChBd,KAAKN,cAAcQ,sBAAsBgC,MAAKC,GAAKA,EAAEC,OAASH,KAE7E,CAEA,0BAAMI,GACF,aAAarC,KAAKO,UAASO,SAChBd,KAAKN,cAAcU,mBAElC,CAEA,0BAAMkC,CAAqBL,GACvB,aAAajC,KAAKO,UAASO,SAChBd,KAAKN,cAAcS,MAAM8B,IAExC,CAEA,wBAAMM,CAAmBN,EAAsBO,GAC3C,aAAaxC,KAAKO,UAASO,SAChBd,KAAKN,cAAcS,MAAM8B,IAAeQ,WAAWP,MAAKC,GAAKA,EAAEC,OAASI,KAEvF,CAEA,2BAAME,CAAsBT,GACxB,aAAajC,KAAKO,UAASO,UAEvB,MAAM6B,EAAW3C,KAAKN,cAAcQ,sBAAsBgC,MAAKC,GAAKA,EAAEC,OAASH,IAC/E,OAAOU,GAAUC,kBAAkB,GAE3C,CAEA,qBAAMC,CAAgBZ,EAAsBO,GACxC,aAAaxC,KAAKO,UAASO,UAEvB,MAAM6B,EAAW3C,KAAKN,cAAcQ,sBAAsBgC,MAAKC,GAAKA,EAAEC,OAASH,IACzEa,EAASH,GAAUC,mBACzB,OAAOE,GAAQC,cAAcP,EAAW,GAEhD,CAEA,0BAAMQ,CAAqBf,EAAsBgB,GAC7C,aAAajD,KAAKO,UAASO,UAEvB,MAAM6B,EAAW3C,KAAKN,cAAcQ,sBAAsBgC,MAAKC,GAAKA,EAAEC,OAASH,IACzEa,EAASH,GAAUC,mBACzB,OAAOE,GAAQI,mBAAmBD,EAAgB,GAE1D,CAEA,8BAAME,CACFlB,EACAmB,EACAC,GAEA,aAAarD,KAAKO,UAASO,UAEvB,MAAM6B,EAAW3C,KAAKN,cAAcQ,sBAAsBgC,MAAKC,GAAKA,EAAEC,OAASH,IAC/E,QAAKU,IAEAA,EAASC,qBACVD,EAASC,mBAAqB,CAC1BM,mBAAoB,GACpBH,cAAe,GACfO,aAAa,IAAIC,MAAOC,gBAIhCb,EAASC,mBAAmBM,mBAAqB,IAC1CP,EAASC,mBAAmBM,sBAC5BE,GAGPT,EAASC,mBAAmBG,cAAgB,IACrCJ,EAASC,mBAAmBG,iBAC5BM,GAGPV,EAASC,mBAAmBU,aAAc,IAAIC,MAAOC,oBAC/CxD,KAAK0B,qBACJ,EAAI,GAEnB,CAEA,6BAAM+B,CACFxB,EACAgB,EACAH,GAEA,aAAa9C,KAAKO,UAASO,UAEvB,MAAM6B,EAAW3C,KAAKN,cAAcQ,sBAAsBgC,MAAKC,GAAKA,EAAEC,OAASH,IAC/E,QAAKU,GAAUC,qBAEfD,EAASC,mBAAmBM,mBAAmBD,GAAmBH,EAClEH,EAASC,mBAAmBU,aAAc,IAAIC,MAAOC,oBAC/CxD,KAAK0B,qBACJ,EAAI,GAEnB,CAEA,sCAAMgC,CACFzB,EACAgB,EACAU,GAEA,aAAa3D,KAAKO,UAASO,UAEvB,MAAM6B,EAAW3C,KAAKN,cAAcQ,sBAAsBgC,MAAKC,GAAKA,EAAEC,OAASH,IAC/E,QAAKU,GAAUC,oBAAoBM,mBAAmBD,KAEtDN,EAASC,mBAAmBM,mBAAmBD,GAAiBU,gBAAkBA,EAClFhB,EAASC,mBAAmBU,aAAc,IAAIC,MAAOC,oBAC/CxD,KAAK0B,qBACJ,EAAI,GAEnB,CAEA,wBAAMkC,CACF3B,EACAO,EACAM,GAEA,aAAa9C,KAAKO,UAASO,UAEvB,MAAM6B,EAAW3C,KAAKN,cAAcQ,sBAAsBgC,MAAKC,GAAKA,EAAEC,OAASH,IAC/E,QAAKU,GAAUC,qBAEfD,EAASC,mBAAmBG,cAAcP,GAAcM,EACxDH,EAASC,mBAAmBU,aAAc,IAAIC,MAAOC,oBAC/CxD,KAAK0B,qBACJ,EAAI,GAEnB,CAEA,iCAAMmC,CACF5B,EACAO,EACAsB,EACAH,GAEA,aAAa3D,KAAKO,UAASO,UAEvB,MAAM6B,EAAW3C,KAAKN,cAAcQ,sBAAsBgC,MAAKC,GAAKA,EAAEC,OAASH,IAC/E,QAAKU,GAAUC,oBAAoBG,cAAcP,KAEjDG,EAASC,mBAAmBG,cAAcP,GAAYuB,gBAAgBD,GAAcH,EACpFhB,EAASC,mBAAmBU,aAAc,IAAIC,MAAOC,oBAC/CxD,KAAK0B,qBACJ,EAAI,GAEnB,CAEA,yBAAMsC,CAAoB/B,EAAsBO,GAC5C,aAAaxC,KAAKO,UAASO,UAEvB,MAAM6B,EAAW3C,KAAKN,cAAcQ,sBAAsBgC,MAAKC,GAAKA,EAAEC,OAASH,IAC/E,IAAKU,GAAUsB,kBAAmB,OAAO,EAEzC,MAAMC,EAAevB,EAASsB,kBAAkBxB,WAAWP,MAAKC,GAAKA,EAAEC,OAASI,IAChF,IAAK0B,GAAcC,cAAcC,aAAc,OAAO,EAEtD,MAAMC,EAAmBH,EAAaC,aAAaC,aAAaE,KAAI5D,GAAKA,EAAE0B,OAErEU,EAASH,GAAUC,mBAEzB,QAAKE,GAAQI,oBAENmB,EAAiBE,OAAMnC,IAC1B,MAAMoC,EAAY1B,EAAOI,mBAAmBd,GAC5C,OAAOoC,GAAWC,YAAcD,GAAWpD,KAAK,GAClD,GAEV,CAEA,gCAAMsD,CAA2BzC,EAAsBO,GACnD,aAAaxC,KAAKO,UAASO,UAEvB,MAAM6B,EAAW3C,KAAKN,cAAcQ,sBAAsBgC,MAAKC,GAAKA,EAAEC,OAASH,IAC/E,IAAKU,GAAUsB,kBAAmB,MAAO,GACzC,MAAMC,EAAevB,EAASsB,kBAAkBxB,WAAWP,MAAKC,GAAKA,EAAEC,OAASI,IAChF,IAAK0B,GAAcC,cAAcC,aAAc,MAAO,GAGtD,OAFyBF,EAAaC,aAAaC,aAAaE,KAAI5D,GAAKA,EAAE0B,OAGtEkC,KAAIlC,GAAQO,GAAUC,oBAAoBM,mBAAmBd,KAC7DuC,QAAOC,QAAWC,IAAND,GAAuC,GAEhE,CAEA,mBAAME,CAAc7C,EAAsBO,EAAoBuC,GAC1D,aAAa/E,KAAKO,UAASO,UAEvB,MAAM6B,EAAW3C,KAAKN,cAAcQ,sBAAsBgC,MAAKC,GAAKA,EAAEC,OAASH,IACzEW,EAAqBD,GAAUC,mBAC/BS,EAAeT,GAAoBG,cAAcP,GAEvD,QAAKa,GAEE0B,EAAQR,OAAMT,IAEjB,MAAMkB,EAAe3B,EAAaU,kBAAkBD,GACpD,MAAgC,cAAzBkB,GAAclC,SAA2BkC,GAAc5D,KAAK,GACrE,GAEV,CACA,eAAM6D,CAAUC,EAAeC,GAC3B,aAAanF,KAAKO,UAASO,UACvB9B,OAAOoG,IAAI,oCACX,UAEUnG,kBAEND,OAAOqG,MAAM,CACTC,OAAQ,qBACRC,MAAO,CACHC,WAAY3G,gBACZiB,QAASE,KAAKF,iBAIhBvB,GAAGyC,MAAMnC,gBAAiB,CAAEoC,WAAW,UACvC1C,GAAGyC,MAAMhB,KAAKF,QAAS,CAAEmB,WAAW,UAGpC1C,GAAG2C,GAAGlB,KAAKF,QAAS,CAAEmB,WAAW,EAAME,OAAO,IAGpD,MAAMsE,EAAUP,GAAQtG,YAAYU,IAE9BoG,EAAaP,GAAU,OAE7B,GAAID,GAAQC,EAAQ,CAEhBnG,OAAOqG,MAAM,mCAAmCI,gBAAsBC,KACtE,MAAMC,mBAAEA,SAA6BC,OAAO,2BAEtCC,EAAYrH,KAAKyB,KAAKD,KAAKF,QAAS,oBACpC6F,EAAmBF,EAASC,EAAYG,GAG9C,MAAMC,EAAiBtH,KAAKyB,KAAK4F,EAAWjH,YAAYmH,WAExD/G,OAAOqG,MAAM,gDACP9G,GAAG2C,GAAGrC,gBAAiB,CAAEoC,WAAW,EAAME,OAAO,IAEvD,UACU5C,GAAGyH,OAAOF,EACpB,CAAE,MAAOG,GACL,MAAM,IAAIC,MAAM,wDAAwDJ,IAC5E,OAEMvH,GAAG4H,GAAGL,EAAgBjH,gBAAiB,CAAEoC,WAAW,EAAME,OAAO,IACvEnC,OAAOoG,IAAI,uDACf,KAAO,CAEHpG,OAAOqG,MAAM,iCACb,MAAMe,sBAAEA,SAAgCR,OAAO,+BACzCS,QAAEA,EAAOC,aAAEA,SAAuBF,EACpCxH,YAAY2H,SACZ,SACA3H,YAAY4H,oBACZ3B,GACA,EACA7E,KAAKF,SAGTd,OAAOqG,MAAM,CACTC,OAAQ,mBACRgB,eACAD,UACAE,SAAU3H,YAAY2H,WAG1BvH,OAAOqG,MAAM,iCACP9G,GAAG2C,GAAGrC,gBAAiB,CAAEoC,WAAW,EAAME,OAAO,IACvD,MAAM2E,EAAiBQ,EAEvB,UACU/H,GAAGyH,OAAOM,EACpB,CAAE,MAAOL,GACL,MAAM,IAAIC,MAAM,sDAAsDJ,IAC1E,OAEMvH,GAAG4H,GAAGL,EAAgBjH,gBAAiB,CAAEoC,WAAW,EAAME,OAAO,IACvEnC,OAAOoG,IAAI,mCACf,CACJ,CAAE,MAAOhE,GAEL,MADApC,OAAOoC,MAAM,oCAAqCA,GAC5C,IAAI8E,MAAM,sEACpB,IAER,CAEQ,gCAAMvE,CAA2Bf,EAAmBC,GACxDb,KAAKN,oBAAsBR,oBAAoByC,2BAA2B3B,KAAKN,cAAekB,EAAUC,SAClGb,KAAK0B,mBACf,CAEQ,2BAAME,GACV5B,KAAKN,oBAAsBR,oBAAoB0C,sBAAsB5B,KAAKN,qBACpEM,KAAK0B,mBACf,CAGA,6BAAM+E,GACF,aAAazG,KAAKO,UAASO,gBACjBd,KAAK4B,uBAAuB,GAE1C,CAEA,uCAAM8E,CAAkClE,EAAoBmE,GACxD,aAAa3G,KAAKO,UAASO,UAEvB,MAAM8F,aAAEA,EAAYC,cAAEA,SAAwBjB,OAAO,8BAG/CkB,EAAgBC,OAAOC,QAAQjI,mBAC/BkI,EAAgBN,EAChBG,EAAcnC,QAAO,EAAEb,KAAgBA,IAAe6C,IACtDG,EAEN,IAAK,MAAOhD,EAAYoD,KAAmBD,EAAe,CACtD,MAAME,EAAcC,QAAQC,IAAIC,cAC1BJ,EAAeK,uBACfL,EAAeM,gBAErB,IACI,MAAMC,QAAgBb,EAAaO,GAAa,GAChD,IAAIO,GAAW,EAGf,GAAmB,kBAAf5D,EACI2D,EAAQE,UAAUnF,YACXiF,EAAQE,QAAQnF,GACvBkF,GAAW,QAEZ,GAAmB,iBAAf5D,EAA8B,CACrC,MAAM8D,EAAmBpF,EAAWqF,QAAQ,KAAM,KAC9CJ,EAAQE,UAAUC,YACXH,EAAQE,QAAQC,GACvBF,GAAW,EAEnB,MAAWD,EAAQhF,aAAaD,YACrBiF,EAAQhF,WAAWD,GAC1BkF,GAAW,GAIXA,UACMb,EAAcM,EAAaM,GACjCzI,OAAOqG,MAAM,kBAAkB7C,iBAA0BsB,cAEjE,CAAE,MAAO1C,GACLpC,OAAOoC,MAAM,2BAA2BoB,iBAA0BsB,cAAwB1C,EAC9F,CACJ,CAGA,GAAIpB,KAAKN,cAAcU,kBAAmB,CACtC,GAAIuG,EAAQ,CAER,MAAMO,EAAiBlH,KAAKN,cAAcU,kBAAkBuG,GACxDO,IACIA,EAAezE,aAAaD,WACrB0E,EAAezE,WAAWD,GAEjC0E,EAAeS,UAAUnF,WAClB0E,EAAeS,QAAQnF,GAG1C,MAEI,IAAK,MAAM0E,KAAkBH,OAAOe,OAAO9H,KAAKN,cAAcU,mBACtD8G,EAAezE,aAAaD,WACrB0E,EAAezE,WAAWD,GAEjC0E,EAAeS,UAAUnF,WAClB0E,EAAeS,QAAQnF,SAIpCxC,KAAK0B,mBACf,IAER,SAIG,MAAMqG,eAAiBxI,sBAAsBc","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import os from"os";import path from"path";export const GITHUB_REPO={url:"https://github.com/ai-microsoft/imcp-feed.git",repoName:"ai-microsoft/imcp-feed",feedsPath:"feeds",feedAssetsName:"imcp-feeds-${latest}.zip"};export const SETTINGS_DIR=(process.platform,path.join(os.homedir(),".imcp"));export const LOCAL_FEEDS_DIR=path.join(SETTINGS_DIR,"feeds");export const USER_INFO_PATH=path.join(SETTINGS_DIR,"settings","user_info.json");export const LOCAL_FEEDS_SCHEMA_DIR=path.join(LOCAL_FEEDS_DIR,"schemas");const CODE_STRORAGE_DIR=(()=>{switch(process.platform){case"win32":return path.join(os.homedir(),"AppData","Roaming","Code","User");case"darwin":return path.join(os.homedir(),"Library","Application Support","Code","User");default:return path.join(os.homedir(),".config","Code","User")}})(),CODE_INSIDER_STRORAGE_DIR=(()=>{switch(process.platform){case"win32":return path.join(os.homedir(),"AppData","Roaming","Code - Insiders","User");case"darwin":return path.join(os.homedir(),"Library","Application Support","Code - Insiders","User");default:return path.join(os.homedir(),".config","Code - Insiders","User")}})();export const SUPPORTED_CLIENTS=(()=>{const o={MSRooCode:{extension:{extensionId:"microsoftai.ms-roo-cline",leastVersion:"0.0.8",repository:"ai-microsoft/roo-cline",assetName:"ms-roo-cline-${version}.vsix",private:!0},codeSettingPath:path.join(CODE_STRORAGE_DIR,"globalStorage","microsoftai.ms-roo-cline","settings","cline_mcp_settings.json"),codeInsiderSettingPath:path.join(CODE_INSIDER_STRORAGE_DIR,"globalStorage","microsoftai.ms-roo-cline","settings","cline_mcp_settings.json")},Cline:{extension:{extensionId:"saoudrizwan.claude-dev"},codeSettingPath:path.join(CODE_STRORAGE_DIR,"globalStorage","saoudrizwan.claude-dev","settings","cline_mcp_settings.json"),codeInsiderSettingPath:path.join(CODE_INSIDER_STRORAGE_DIR,"globalStorage","saoudrizwan.claude-dev","settings","cline_mcp_settings.json")},GithubCopilot:{extension:{extensionId:"github.copilot"},codeSettingPath:path.join(CODE_STRORAGE_DIR,"settings.json"),codeInsiderSettingPath:path.join(CODE_INSIDER_STRORAGE_DIR,"settings.json")},ClaudeCode:{codeSettingPath:path.join(os.homedir(),".claude.json"),codeInsiderSettingPath:path.join(os.homedir(),".claude.json")}};return"win32"===process.platform&&(o.VisualStudio={codeSettingPath:path.join(os.homedir(),".mcp.json"),codeInsiderSettingPath:path.join(os.homedir(),".mcp.json")}),o})();export const SUPPORTED_CLIENT_NAMES=Object.keys(SUPPORTED_CLIENTS);export const UPDATE_CHECK_INTERVAL_MS=6e5;export const INSTRUMENTATION_KEY="c5fc06c7-a96c-4d80-9aff-bc9c933db0d1";
1
+ import os from"os";import path from"path";export const GITHUB_REPO={url:"https://github.com/ai-microsoft/imcp-feed.git",repoName:"ai-microsoft/imcp-feed",feedsPath:"feeds",feedAssetsName:"imcp-feeds-${latest}.zip"};export const SETTINGS_DIR=(process.platform,path.join(os.homedir(),".imcp"));export const LOCAL_FEEDS_DIR=path.join(SETTINGS_DIR,"feeds");export const USER_INFO_PATH=path.join(SETTINGS_DIR,"settings","user_info.json");export const LOCAL_FEEDS_SCHEMA_DIR=path.join(LOCAL_FEEDS_DIR,"schemas");const CODE_STRORAGE_DIR=(()=>{switch(process.platform){case"win32":return path.join(os.homedir(),"AppData","Roaming","Code","User");case"darwin":return path.join(os.homedir(),"Library","Application Support","Code","User");default:return process.env.WSL_DISTRO_NAME?path.join(os.homedir(),".vscode-server","data","User"):path.join(os.homedir(),".config","Code","User")}})(),CODE_INSIDER_STRORAGE_DIR=(()=>{switch(process.platform){case"win32":return path.join(os.homedir(),"AppData","Roaming","Code - Insiders","User");case"darwin":return path.join(os.homedir(),"Library","Application Support","Code - Insiders","User");default:return path.join(os.homedir(),".config","Code - Insiders","User")}})();export const SUPPORTED_CLIENTS=(()=>{const o={MSRooCode:{extension:{extensionId:"microsoftai.ms-roo-cline",leastVersion:"0.0.8",repository:"ai-microsoft/roo-cline",assetName:"ms-roo-cline-${version}.vsix",private:!0},codeSettingPath:path.join(CODE_STRORAGE_DIR,"globalStorage","microsoftai.ms-roo-cline","settings","cline_mcp_settings.json"),codeInsiderSettingPath:path.join(CODE_INSIDER_STRORAGE_DIR,"globalStorage","microsoftai.ms-roo-cline","settings","cline_mcp_settings.json")},Cline:{extension:{extensionId:"saoudrizwan.claude-dev"},codeSettingPath:path.join(CODE_STRORAGE_DIR,"globalStorage","saoudrizwan.claude-dev","settings","cline_mcp_settings.json"),codeInsiderSettingPath:path.join(CODE_INSIDER_STRORAGE_DIR,"globalStorage","saoudrizwan.claude-dev","settings","cline_mcp_settings.json")},GithubCopilot:{extension:{extensionId:"github.copilot"},codeSettingPath:path.join(CODE_STRORAGE_DIR,"mcp.json"),codeInsiderSettingPath:path.join(CODE_INSIDER_STRORAGE_DIR,"mcp.json")},ClaudeCode:{codeSettingPath:path.join(os.homedir(),".claude.json"),codeInsiderSettingPath:path.join(os.homedir(),".claude.json")}};return"win32"===process.platform&&(o.VisualStudio={codeSettingPath:path.join(os.homedir(),".mcp.json"),codeInsiderSettingPath:path.join(os.homedir(),".mcp.json")}),o})();export const SUPPORTED_CLIENT_NAMES=Object.keys(SUPPORTED_CLIENTS);export const UPDATE_CHECK_INTERVAL_MS=6e5;export const INSTRUMENTATION_KEY="c5fc06c7-a96c-4d80-9aff-bc9c933db0d1";
2
2
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["os","path","GITHUB_REPO","url","repoName","feedsPath","feedAssetsName","SETTINGS_DIR","process","platform","join","homedir","LOCAL_FEEDS_DIR","USER_INFO_PATH","LOCAL_FEEDS_SCHEMA_DIR","CODE_STRORAGE_DIR","CODE_INSIDER_STRORAGE_DIR","SUPPORTED_CLIENTS","clients","MSRooCode","extension","extensionId","leastVersion","repository","assetName","private","codeSettingPath","codeInsiderSettingPath","Cline","GithubCopilot","ClaudeCode","SUPPORTED_CLIENT_NAMES","Object","keys","UPDATE_CHECK_INTERVAL_MS","INSTRUMENTATION_KEY"],"sources":["../../../src/core/metadatas/constants.ts"],"mappings":"OAAOA,OAAQ,YACRC,SAAU,cAQV,MAAMC,YAAc,CACzBC,IAAK,gDACLC,SAAU,yBACVC,UAAW,QACXC,eAAgB,mCAMX,MAAMC,cACHC,QAAQC,SAILR,KAAKS,KAAKV,GAAGW,UAAW,iBAO9B,MAAMC,gBAAkBX,KAAKS,KAAKH,aAAc,gBAKhD,MAAMM,eAAiBZ,KAAKS,KAAKH,aAAc,WAAY,yBAK3D,MAAMO,uBAAyBb,KAAKS,KAAKE,gBAAiB,WAEjE,MAAMG,kBAAoB,MACxB,OAAQP,QAAQC,UACd,IAAK,QACH,OAAOR,KAAKS,KAAKV,GAAGW,UAAW,UAAW,UAAW,OAAQ,QAC/D,IAAK,SACH,OAAOV,KAAKS,KAAKV,GAAGW,UAAW,UAAW,sBAAuB,OAAQ,QAC3E,QACE,OAAOV,KAAKS,KAAKV,GAAGW,UAAW,UAAW,OAAQ,QAEvD,EATyB,GAWpBK,0BAA4B,MAChC,OAAQR,QAAQC,UACd,IAAK,QACH,OAAOR,KAAKS,KAAKV,GAAGW,UAAW,UAAW,UAAW,kBAAmB,QAC1E,IAAK,SACH,OAAOV,KAAKS,KAAKV,GAAGW,UAAW,UAAW,sBAAuB,kBAAmB,QACtF,QACE,OAAOV,KAAKS,KAAKV,GAAGW,UAAW,UAAW,kBAAmB,QAElE,EATiC,UAqB3B,MAAMM,kBAUR,MACH,MAAMC,EAA+B,CACnCC,UAAa,CACXC,UAAW,CACTC,YAAa,2BACbC,aAAc,QACdC,WAAY,yBACZC,UAAW,+BACXC,SAAS,GAEXC,gBAAiBzB,KAAKS,KAAKK,kBAAmB,gBAAiB,2BAA4B,WAAY,2BACvGY,uBAAwB1B,KAAKS,KAAKM,0BAA2B,gBAAiB,2BAA4B,WAAY,4BAExHY,MAAS,CACPR,UAAW,CACTC,YAAa,0BAEfK,gBAAiBzB,KAAKS,KAAKK,kBAAmB,gBAAiB,yBAA0B,WAAY,2BACrGY,uBAAwB1B,KAAKS,KAAKM,0BAA2B,gBAAiB,yBAA0B,WAAY,4BAEtHa,cAAiB,CACfT,UAAW,CACTC,YAAa,kBAEfK,gBAAiBzB,KAAKS,KAAKK,kBAAmB,iBAC9CY,uBAAwB1B,KAAKS,KAAKM,0BAA2B,kBAE/Dc,WAAc,CACZJ,gBAAiBzB,KAAKS,KAAKV,GAAGW,UAAW,gBACzCgB,uBAAwB1B,KAAKS,KAAKV,GAAGW,UAAW,kBAUpD,MANyB,UAArBH,QAAQC,WACVS,EAAsB,aAAI,CACxBQ,gBAAiBzB,KAAKS,KAAKV,GAAGW,UAAW,aACzCgB,uBAAwB1B,KAAKS,KAAKV,GAAGW,UAAW,eAG7CO,CACR,EAxCI,UA6CE,MAAMa,uBAAyBC,OAAOC,KAAKhB,0BAM3C,MAAMiB,yBAA2B,WAKjC,MAAMC,oBAAsB","ignoreList":[]}
1
+ {"version":3,"names":["os","path","GITHUB_REPO","url","repoName","feedsPath","feedAssetsName","SETTINGS_DIR","process","platform","join","homedir","LOCAL_FEEDS_DIR","USER_INFO_PATH","LOCAL_FEEDS_SCHEMA_DIR","CODE_STRORAGE_DIR","env","WSL_DISTRO_NAME","CODE_INSIDER_STRORAGE_DIR","SUPPORTED_CLIENTS","clients","MSRooCode","extension","extensionId","leastVersion","repository","assetName","private","codeSettingPath","codeInsiderSettingPath","Cline","GithubCopilot","ClaudeCode","SUPPORTED_CLIENT_NAMES","Object","keys","UPDATE_CHECK_INTERVAL_MS","INSTRUMENTATION_KEY"],"sources":["../../../src/core/metadatas/constants.ts"],"mappings":"OAAOA,OAAQ,YACRC,SAAU,cAQV,MAAMC,YAAc,CACzBC,IAAK,gDACLC,SAAU,yBACVC,UAAW,QACXC,eAAgB,mCAMX,MAAMC,cACHC,QAAQC,SAILR,KAAKS,KAAKV,GAAGW,UAAW,iBAO9B,MAAMC,gBAAkBX,KAAKS,KAAKH,aAAc,gBAKhD,MAAMM,eAAiBZ,KAAKS,KAAKH,aAAc,WAAY,yBAK3D,MAAMO,uBAAyBb,KAAKS,KAAKE,gBAAiB,WAEjE,MAAMG,kBAAoB,MACxB,OAAQP,QAAQC,UACd,IAAK,QACH,OAAOR,KAAKS,KAAKV,GAAGW,UAAW,UAAW,UAAW,OAAQ,QAC/D,IAAK,SACH,OAAOV,KAAKS,KAAKV,GAAGW,UAAW,UAAW,sBAAuB,OAAQ,QAC3E,QACE,OAAIH,QAAQQ,IAAIC,gBACPhB,KAAKS,KAAKV,GAAGW,UAAW,iBAAkB,OAAQ,QAEpDV,KAAKS,KAAKV,GAAGW,UAAW,UAAW,OAAQ,QAEvD,EAZyB,GAcpBO,0BAA4B,MAChC,OAAQV,QAAQC,UACd,IAAK,QACH,OAAOR,KAAKS,KAAKV,GAAGW,UAAW,UAAW,UAAW,kBAAmB,QAC1E,IAAK,SACH,OAAOV,KAAKS,KAAKV,GAAGW,UAAW,UAAW,sBAAuB,kBAAmB,QACtF,QACE,OAAOV,KAAKS,KAAKV,GAAGW,UAAW,UAAW,kBAAmB,QAElE,EATiC,UAqB3B,MAAMQ,kBAUR,MACH,MAAMC,EAA+B,CACnCC,UAAa,CACXC,UAAW,CACTC,YAAa,2BACbC,aAAc,QACdC,WAAY,yBACZC,UAAW,+BACXC,SAAS,GAEXC,gBAAiB3B,KAAKS,KAAKK,kBAAmB,gBAAiB,2BAA4B,WAAY,2BACvGc,uBAAwB5B,KAAKS,KAAKQ,0BAA2B,gBAAiB,2BAA4B,WAAY,4BAExHY,MAAS,CACPR,UAAW,CACTC,YAAa,0BAEfK,gBAAiB3B,KAAKS,KAAKK,kBAAmB,gBAAiB,yBAA0B,WAAY,2BACrGc,uBAAwB5B,KAAKS,KAAKQ,0BAA2B,gBAAiB,yBAA0B,WAAY,4BAEtHa,cAAiB,CACfT,UAAW,CACTC,YAAa,kBAEfK,gBAAiB3B,KAAKS,KAAKK,kBAAmB,YAC9Cc,uBAAwB5B,KAAKS,KAAKQ,0BAA2B,aAE/Dc,WAAc,CACZJ,gBAAiB3B,KAAKS,KAAKV,GAAGW,UAAW,gBACzCkB,uBAAwB5B,KAAKS,KAAKV,GAAGW,UAAW,kBAUpD,MANyB,UAArBH,QAAQC,WACVW,EAAsB,aAAI,CACxBQ,gBAAiB3B,KAAKS,KAAKV,GAAGW,UAAW,aACzCkB,uBAAwB5B,KAAKS,KAAKV,GAAGW,UAAW,eAG7CS,CACR,EAxCI,UA6CE,MAAMa,uBAAyBC,OAAOC,KAAKhB,0BAM3C,MAAMiB,yBAA2B,WAKjC,MAAMC,oBAAsB","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imcp",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "description": "Node.js SDK for Model Context Protocol (MCP)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",