imcp 0.1.15 → 0.1.16

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{Logger}from"../../../utils/logger.js";import{exec,spawn}from"child_process";import{promisify}from"util";import*as http from"http";import*as https from"https";import{isCommandAvailable,getNpmExecutablePath}from"../../../utils/osUtils.js";import{ExtensionInstaller}from"./ExtensionInstaller.js";import{SUPPORTED_CLIENTS}from"../../metadatas/constants.js";import{MACRO_EXPRESSIONS,MacroResolverFunctions}from"../../../utils/macroExpressionUtils.js";import{InstallOperationManager}from"../../loaders/InstallOperationManager.js";import*as RecordingConstants from"../../metadatas/recordingConstants.js";const execAsync=promisify(exec);export class BaseClientInstaller{generateOperationId(){return`install-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}async setupInstallConfig(e,t){const s={...e.installation};s.mode=e.mode,t.args&&t.args.length>0&&(Logger.debug(`Using args from ServerInstallOptions: ${t.args.join(" ")}`),s.args=t.args);const n=s.env||{},r={};for(const[e,t]of Object.entries(n)){const s=t;s.Default&&(r[e]=s.Default)}return s.env={...r,...t.env||{}},await this._resolveConfigMacros(s,t),Logger.debug(`Final installation config: ${JSON.stringify(s)}`),s}async _resolveConfigMacros(e,t){for(const s of Object.values(MACRO_EXPRESSIONS)){const n=e.args?.some((e=>"string"==typeof e&&e.includes(s))),r=Object.values(e.env||{}).some((e=>"string"==typeof e&&e.includes(s)));if(!n&&!r&&s!==MACRO_EXPRESSIONS.PYTHON_PACKAGE){Logger.debug(`Macro ${s} not found in args or env, skipping resolution.`);continue}const a=MacroResolverFunctions[s];if(a){const n=await a(e,t);if(void 0!==n){if(e.args){const t=e.args.join(" ");e.args=e.args.map((e=>"string"==typeof e&&e.includes(s)?e.replace(new RegExp(s.replace(/[${}]/g,"\\$&"),"g"),n):e)),e.args.join(" ")!==t&&Logger.debug(`Args after ${s} ('${n}') replacement: ${e.args.join(" ")}`)}if(e.env){const t=JSON.stringify(e.env);for(const t in e.env)"string"==typeof e.env[t]&&e.env[t].includes(s)&&(e.env[t]=e.env[t].replace(new RegExp(s.replace(/[${}]/g,"\\$&"),"g"),n));JSON.stringify(e.env)!==t&&Logger.debug(`Env after ${s} ('${n}') replacement: ${JSON.stringify(e.env)}`)}}else Logger.debug(`Could not resolve value for macro: ${s}. It will not be replaced.`)}}}async handleWindowsNpx(e){if("win32"===process.platform&&"npx"===e.command){const t=await getNpmExecutablePath();return{...e,command:"cmd",args:["/c","npx",...e.args],env:{...e.env,APPDATA:t}}}return e}initializeSettings(e){e.mcpServers||(e.mcpServers={})}setupSettings(e,t,s){e.mcpServers[t]={type:s.mode||"sse",url:s.url}}async handleStdioMode(e,t,s){s.args&&(s.args=s.args.map((e=>"string"==typeof e?e.replace(/\\/g,"/"):e))),e.mcpServers[t]={command:s.command,args:s.args,env:s.env,autoApprove:[],disabled:!1,alwaysAllow:[]}}async isServerReachable(e){return new Promise((t=>{try{const s=new URL(e),n=("https:"===s.protocol?https:http).request(s,{method:"HEAD",timeout:2e3},(e=>{t(!0),e.resume()}));n.on("error",(s=>{Logger.debug(`Server at ${e} is not reachable: ${s.message}`),t(!1)})),n.on("timeout",(()=>{Logger.debug(`Timeout checking server reachability at ${e}`),n.destroy(),t(!1)})),n.end()}catch(s){Logger.error(`Error parsing URL or making request to ${e}: ${s.message}`),t(!1)}}))}async handleSseAndStreamableMode(e,t,s){if(s.url){if(await this.isServerReachable(s.url))Logger.info(`Server at ${s.url} is already running or reachable. Skipping start command.`);else if(s.startingCommand&&"string"==typeof s.startingCommand){Logger.info(`Server at ${s.url} not reachable. Attempting to start server with command: ${s.startingCommand}`);const e=s.startingCommand.split(" "),t=e[0],n=e.slice(1);try{const e=spawn(t,n,{detached:!0,stdio:"ignore",shell:"win32"===process.platform});e.on("error",(e=>{Logger.error(`Failed to start server process with command "${s.startingCommand}": ${e.message}`)})),e.unref(),Logger.info(`Detached server process (PID: ${e.pid}) started with command: "${s.startingCommand}". It will continue running if this main process exits.`)}catch(e){Logger.error(`Exception when trying to spawn server process with command "${s.startingCommand}": ${e.message}`)}}else s.startingCommand?Logger.warn(`startingCommand is present but not a string: ${JSON.stringify(s.startingCommand)}`):Logger.info(`Server at ${s.url} not reachable and no startingCommand provided.`)}else Logger.warn("No URL provided in installConfig for SSE mode. Cannot check reachability or configure server.");this.setupSettings(e,t,s)}async checkVSCodeAndInstallExtension(e){const t=await isCommandAvailable("code"),s=await isCommandAvailable("code-insiders");if(!t&&!s)return{status:"failed",type:"install",target:"server",message:"Failed to install as neither VS Code nor VS Code Insiders are installed on this system. Please run `code` or `code-insiders` to make sure they are installed. Relaunch imcp after installation.",operationId:e};return await ExtensionInstaller.installExtension(this.clientName)?void 0:(Logger.debug(`Failed to install ${this.clientName} extension`),{status:"failed",type:"install",target:"server",message:`Failed to install ${this.clientName} extension`,operationId:e})}async updateVSCodeSettings(e,t){const s=[],n=await isCommandAvailable("code"),r=await isCommandAvailable("code-insiders");if(n)try{const n=SUPPORTED_CLIENTS[this.clientName].codeSettingPath;await this.setupClientSettings(n,e,t),s.push({success:!0,path:n})}catch(e){s.push({success:!1,path:SUPPORTED_CLIENTS[this.clientName].codeSettingPath,error:e instanceof Error?e.message:String(e)})}if(r)try{const n=SUPPORTED_CLIENTS[this.clientName].codeInsiderSettingPath;await this.setupClientSettings(n,e,t),s.push({success:!0,path:n})}catch(e){s.push({success:!1,path:SUPPORTED_CLIENTS[this.clientName].codeInsiderSettingPath,error:e instanceof Error?e.message:String(e)})}return s}async install(e,t,s){const n=this.generateOperationId(),r=InstallOperationManager.getInstance(s||e.name,e.name);return await r.recording((async()=>{await r.recording((()=>this.checkVSCodeAndInstallExtension(n)),{stepName:RecordingConstants.STEP_CHECK_VSCODE_AND_INSTALL_EXTENSION,endMessage:e=>e?.message,onResult:e=>"failed"!==e?.status});const s=await r.recording((()=>this.setupInstallConfig(e,t)),{stepName:RecordingConstants.STEP_SETUP_INSTALLATION_CONFIG});e.mode&&(s.mode=e.mode);const a=await r.recording((()=>this.updateVSCodeSettings(e.name,s)),{stepName:RecordingConstants.STEP_UPDATE_VSCODE_SETTINGS,endMessage:e=>e?.some((e=>e.success))?`Updated settings in: ${e.map((e=>e.path)).join(", ")}`:`Failed to update settings: ${e.map((e=>e.error)).join("; ")}`,onResult:e=>e?.some((e=>e.success))}),o=a.some((e=>e.success)),i=a.filter((e=>e.success)).map((e=>e.path)),l=a.filter((e=>!e.success)).map((e=>e.error));return{status:o?"completed":"failed",type:"install",target:"server",message:o?`Successfully installed ${this.clientName} client. Updated settings in: ${i.join(", ")}`:`Failed to install ${this.clientName} client. Errors: ${l.join("; ")}`,operationId:n,error:o?void 0:l.join("; ")}}),{stepName:RecordingConstants.STEP_INSTALLATION,onResult:e=>"failed"!==e?.status,endMessage:e=>e?.message,onError:e=>{const t=`Unexpected error installing ${this.clientName} client: ${e instanceof Error?e.message:String(e)}`;return{result:{status:"failed",type:"install",target:"server",message:t,operationId:n,error:e instanceof Error?e.message:String(e)},message:t}}})}}
1
+ import{Logger}from"../../../utils/logger.js";import{exec,spawn}from"child_process";import{promisify}from"util";import*as http from"http";import*as https from"https";import{isCommandAvailable,getNpmExecutablePath}from"../../../utils/osUtils.js";import{ExtensionInstaller}from"./ExtensionInstaller.js";import{SUPPORTED_CLIENTS,INSTRUMENTATION_KEY}from"../../metadatas/constants.js";import{MACRO_EXPRESSIONS,MacroResolverFunctions}from"../../../utils/macroExpressionUtils.js";import{InstallOperationManager}from"../../loaders/InstallOperationManager.js";import*as RecordingConstants from"../../metadatas/recordingConstants.js";const execAsync=promisify(exec);export class BaseClientInstaller{generateOperationId(){return`install-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}async setupInstallConfig(e,t){const s={...e.installation};s.mode=e.mode,t.args&&t.args.length>0&&(Logger.debug(`Using args from ServerInstallOptions: ${t.args.join(" ")}`),s.args=t.args);const n=s.env||{},r={APPLICATIONINSIGHTS_CONNECTION_STRING:`InstrumentationKey=${INSTRUMENTATION_KEY}`};for(const[e,t]of Object.entries(n)){const s=t;s.Default&&(r[e]=s.Default)}return s.env={...r,...t.env||{}},await this._resolveConfigMacros(s,t),Logger.debug(`Final installation config: ${JSON.stringify(s)}`),s}async _resolveConfigMacros(e,t){for(const s of Object.values(MACRO_EXPRESSIONS)){const n=e.args?.some((e=>"string"==typeof e&&e.includes(s))),r=Object.values(e.env||{}).some((e=>"string"==typeof e&&e.includes(s)));if(!n&&!r&&s!==MACRO_EXPRESSIONS.PYTHON_PACKAGE){Logger.debug(`Macro ${s} not found in args or env, skipping resolution.`);continue}const a=MacroResolverFunctions[s];if(a){const n=await a(e,t);if(void 0!==n){if(e.args){const t=e.args.join(" ");e.args=e.args.map((e=>"string"==typeof e&&e.includes(s)?e.replace(new RegExp(s.replace(/[${}]/g,"\\$&"),"g"),n):e)),e.args.join(" ")!==t&&Logger.debug(`Args after ${s} ('${n}') replacement: ${e.args.join(" ")}`)}if(e.env){const t=JSON.stringify(e.env);for(const t in e.env)"string"==typeof e.env[t]&&e.env[t].includes(s)&&(e.env[t]=e.env[t].replace(new RegExp(s.replace(/[${}]/g,"\\$&"),"g"),n));JSON.stringify(e.env)!==t&&Logger.debug(`Env after ${s} ('${n}') replacement: ${JSON.stringify(e.env)}`)}}else Logger.debug(`Could not resolve value for macro: ${s}. It will not be replaced.`)}}}async handleWindowsNpx(e){if("win32"===process.platform&&"npx"===e.command){const t=await getNpmExecutablePath();return{...e,command:"cmd",args:["/c","npx",...e.args],env:{...e.env,APPDATA:t}}}return e}initializeSettings(e){e.mcpServers||(e.mcpServers={})}setupSettings(e,t,s){e.mcpServers[t]={type:s.mode||"sse",url:s.url}}async handleStdioMode(e,t,s){s.args&&(s.args=s.args.map((e=>"string"==typeof e?e.replace(/\\/g,"/"):e))),e.mcpServers[t]={command:s.command,args:s.args,env:s.env,autoApprove:[],disabled:!1,alwaysAllow:[]}}async isServerReachable(e){return new Promise((t=>{try{const s=new URL(e),n=("https:"===s.protocol?https:http).request(s,{method:"HEAD",timeout:2e3},(e=>{t(!0),e.resume()}));n.on("error",(s=>{Logger.debug(`Server at ${e} is not reachable: ${s.message}`),t(!1)})),n.on("timeout",(()=>{Logger.debug(`Timeout checking server reachability at ${e}`),n.destroy(),t(!1)})),n.end()}catch(s){Logger.error(`Error parsing URL or making request to ${e}: ${s.message}`),t(!1)}}))}async handleSseAndStreamableMode(e,t,s){if(s.url){if(await this.isServerReachable(s.url))Logger.info(`Server at ${s.url} is already running or reachable. Skipping start command.`);else if(s.startingCommand&&"string"==typeof s.startingCommand){Logger.info(`Server at ${s.url} not reachable. Attempting to start server with command: ${s.startingCommand}`);const e=s.startingCommand.split(" "),t=e[0],n=e.slice(1);try{const e=spawn(t,n,{detached:!0,stdio:"ignore",shell:"win32"===process.platform});e.on("error",(e=>{Logger.error(`Failed to start server process with command "${s.startingCommand}": ${e.message}`)})),e.unref(),Logger.info(`Detached server process (PID: ${e.pid}) started with command: "${s.startingCommand}". It will continue running if this main process exits.`)}catch(e){Logger.error(`Exception when trying to spawn server process with command "${s.startingCommand}": ${e.message}`)}}else s.startingCommand?Logger.warn(`startingCommand is present but not a string: ${JSON.stringify(s.startingCommand)}`):Logger.info(`Server at ${s.url} not reachable and no startingCommand provided.`)}else Logger.warn("No URL provided in installConfig for SSE mode. Cannot check reachability or configure server.");this.setupSettings(e,t,s)}async checkVSCodeAndInstallExtension(e){const t=await isCommandAvailable("code"),s=await isCommandAvailable("code-insiders");if(!t&&!s)return{status:"failed",type:"install",target:"server",message:"Failed to install as neither VS Code nor VS Code Insiders are installed on this system. Please run `code` or `code-insiders` to make sure they are installed. Relaunch imcp after installation.",operationId:e};return await ExtensionInstaller.installExtension(this.clientName)?void 0:(Logger.debug(`Failed to install ${this.clientName} extension`),{status:"failed",type:"install",target:"server",message:`Failed to install ${this.clientName} extension`,operationId:e})}async updateVSCodeSettings(e,t){const s=[],n=await isCommandAvailable("code"),r=await isCommandAvailable("code-insiders");if(n)try{const n=SUPPORTED_CLIENTS[this.clientName].codeSettingPath;await this.setupClientSettings(n,e,t),s.push({success:!0,path:n})}catch(e){s.push({success:!1,path:SUPPORTED_CLIENTS[this.clientName].codeSettingPath,error:e instanceof Error?e.message:String(e)})}if(r)try{const n=SUPPORTED_CLIENTS[this.clientName].codeInsiderSettingPath;await this.setupClientSettings(n,e,t),s.push({success:!0,path:n})}catch(e){s.push({success:!1,path:SUPPORTED_CLIENTS[this.clientName].codeInsiderSettingPath,error:e instanceof Error?e.message:String(e)})}return s}async install(e,t,s){const n=this.generateOperationId(),r=InstallOperationManager.getInstance(s||e.name,e.name);return await r.recording((async()=>{await r.recording((()=>this.checkVSCodeAndInstallExtension(n)),{stepName:RecordingConstants.STEP_CHECK_VSCODE_AND_INSTALL_EXTENSION,endMessage:e=>e?.message,onResult:e=>"failed"!==e?.status});const s=await r.recording((()=>this.setupInstallConfig(e,t)),{stepName:RecordingConstants.STEP_SETUP_INSTALLATION_CONFIG});e.mode&&(s.mode=e.mode);const a=await r.recording((()=>this.updateVSCodeSettings(e.name,s)),{stepName:RecordingConstants.STEP_UPDATE_VSCODE_SETTINGS,endMessage:e=>e?.some((e=>e.success))?`Updated settings in: ${e.map((e=>e.path)).join(", ")}`:`Failed to update settings: ${e.map((e=>e.error)).join("; ")}`,onResult:e=>e?.some((e=>e.success))}),o=a.some((e=>e.success)),i=a.filter((e=>e.success)).map((e=>e.path)),l=a.filter((e=>!e.success)).map((e=>e.error));return{status:o?"completed":"failed",type:"install",target:"server",message:o?`Successfully installed ${this.clientName} client. Updated settings in: ${i.join(", ")}`:`Failed to install ${this.clientName} client. Errors: ${l.join("; ")}`,operationId:n,error:o?void 0:l.join("; ")}}),{stepName:RecordingConstants.STEP_INSTALLATION,onResult:e=>"failed"!==e?.status,endMessage:e=>e?.message,onError:e=>{const t=`Unexpected error installing ${this.clientName} client: ${e instanceof Error?e.message:String(e)}`;return{result:{status:"failed",type:"install",target:"server",message:t,operationId:n,error:e instanceof Error?e.message:String(e)},message:t}}})}}
2
2
  //# sourceMappingURL=BaseClientInstaller.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Logger","exec","spawn","promisify","http","https","isCommandAvailable","getNpmExecutablePath","ExtensionInstaller","SUPPORTED_CLIENTS","MACRO_EXPRESSIONS","MacroResolverFunctions","InstallOperationManager","RecordingConstants","execAsync","BaseClientInstaller","generateOperationId","Date","now","Math","random","toString","substr","setupInstallConfig","serverConfig","options","finalConfig","installation","mode","args","length","debug","join","baseEnv","env","defaultEnv","key","config","Object","entries","envConfig","Default","this","_resolveConfigMacros","JSON","stringify","macro","values","isMacroInArgs","some","arg","includes","isMacroInEnv","value","PYTHON_PACKAGE","resolver","resolvedValue","undefined","originalArgsString","map","replace","RegExp","originalEnvJson","handleWindowsNpx","process","platform","command","npmPath","APPDATA","initializeSettings","settings","mcpServers","setupSettings","serverName","installConfig","type","url","handleStdioMode","autoApprove","disabled","alwaysAllow","isServerReachable","urlString","Promise","resolve","URL","request","protocol","method","timeout","res","resume","on","err","message","destroy","end","error","handleSseAndStreamableMode","info","startingCommand","commandParts","split","slice","child","detached","stdio","shell","unref","pid","warn","checkVSCodeAndInstallExtension","operationId","isVSCodeInstalled","isVSCodeInsidersInstalled","status","target","installExtension","clientName","updateVSCodeSettings","results","settingPath","codeSettingPath","setupClientSettings","push","success","path","Error","String","codeInsiderSettingPath","install","categoryName","recorder","getInstance","name","recording","async","stepName","STEP_CHECK_VSCODE_AND_INSTALL_EXTENSION","endMessage","result","onResult","STEP_SETUP_INSTALLATION_CONFIG","STEP_UPDATE_VSCODE_SETTINGS","r","anySuccess","successPaths","filter","errors","STEP_INSTALLATION","onError","errorMsg"],"sources":["../../../../src/core/installers/clients/BaseClientInstaller.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Logger","exec","spawn","promisify","http","https","isCommandAvailable","getNpmExecutablePath","ExtensionInstaller","SUPPORTED_CLIENTS","INSTRUMENTATION_KEY","MACRO_EXPRESSIONS","MacroResolverFunctions","InstallOperationManager","RecordingConstants","execAsync","BaseClientInstaller","generateOperationId","Date","now","Math","random","toString","substr","setupInstallConfig","serverConfig","options","finalConfig","installation","mode","args","length","debug","join","baseEnv","env","defaultEnv","APPLICATIONINSIGHTS_CONNECTION_STRING","key","config","Object","entries","envConfig","Default","this","_resolveConfigMacros","JSON","stringify","macro","values","isMacroInArgs","some","arg","includes","isMacroInEnv","value","PYTHON_PACKAGE","resolver","resolvedValue","undefined","originalArgsString","map","replace","RegExp","originalEnvJson","handleWindowsNpx","process","platform","command","npmPath","APPDATA","initializeSettings","settings","mcpServers","setupSettings","serverName","installConfig","type","url","handleStdioMode","autoApprove","disabled","alwaysAllow","isServerReachable","urlString","Promise","resolve","URL","request","protocol","method","timeout","res","resume","on","err","message","destroy","end","error","handleSseAndStreamableMode","info","startingCommand","commandParts","split","slice","child","detached","stdio","shell","unref","pid","warn","checkVSCodeAndInstallExtension","operationId","isVSCodeInstalled","isVSCodeInsidersInstalled","status","target","installExtension","clientName","updateVSCodeSettings","results","settingPath","codeSettingPath","setupClientSettings","push","success","path","Error","String","codeInsiderSettingPath","install","categoryName","recorder","getInstance","name","recording","async","stepName","STEP_CHECK_VSCODE_AND_INSTALL_EXTENSION","endMessage","result","onResult","STEP_SETUP_INSTALLATION_CONFIG","STEP_UPDATE_VSCODE_SETTINGS","r","anySuccess","successPaths","filter","errors","STEP_INSTALLATION","onError","errorMsg"],"sources":["../../../../src/core/installers/clients/BaseClientInstaller.ts"],"mappings":"OAASA,WAAc,kCACdC,KAAMC,UAA4B,uBAClCC,cAAiB,iBACdC,SAAU,iBACVC,UAAW,eACdC,mBAAoBC,yBAA4B,mCAChDC,uBAA0B,iCAC1BC,kBAAmBC,wBAA2B,sCAOnDC,kBACAC,2BACG,gDACEC,4BAA+B,qDAC5BC,uBAAwB,wCAEpC,MAAMC,UAAYZ,UAAUF,aAKtB,MAAgBe,oBAKR,mBAAAC,GACN,MAAO,WAAWC,KAAKC,SAASC,KAAKC,SAASC,SAAS,IAAIC,OAAO,EAAG,IACzE,CAMU,wBAAMC,CACZC,EACAC,GAEA,MAAMC,EAAmB,IAAKF,EAAaG,cAC3CD,EAAYE,KAAOJ,EAAaI,KAG5BH,EAAQI,MAAQJ,EAAQI,KAAKC,OAAS,IACtC/B,OAAOgC,MAAM,yCAAyCN,EAAQI,KAAKG,KAAK,QACxEN,EAAYG,KAAOJ,EAAQI,MAI/B,MAAMI,EAAUP,EAAYQ,KAAO,GAC7BC,EAAqC,CACvCC,sCAAuC,sBAAsB3B,uBAEjE,IAAK,MAAO4B,EAAKC,KAAWC,OAAOC,QAAQP,GAAU,CACjD,MAAMQ,EAAYH,EACdG,EAAUC,UACVP,EAAWE,GAAOI,EAAUC,QAEpC,CAOA,OANAhB,EAAYQ,IAAM,IAAKC,KAAgBV,EAAQS,KAAO,UAGhDS,KAAKC,qBAAqBlB,EAAaD,GAE7C1B,OAAOgC,MAAM,8BAA8Bc,KAAKC,UAAUpB,MACnDA,CACX,CASQ,0BAAMkB,CACVlB,EACAD,GAEA,IAAK,MAAMsB,KAASR,OAAOS,OAAOtC,mBAAoB,CAClD,MAAMuC,EAAgBvB,EAAYG,MAAMqB,MAAMC,GAA+B,iBAARA,GAAoBA,EAAIC,SAASL,KAChGM,EAAed,OAAOS,OAAOtB,EAAYQ,KAAO,IAAIgB,MAAKI,GAA0B,iBAAVA,GAAsBA,EAAMF,SAASL,KAGpH,IAAKE,IAAkBI,GAAgBN,IAAUrC,kBAAkB6C,eAAgB,CAC/ExD,OAAOgC,MAAM,SAASgB,oDACtB,QACJ,CAEA,MAAMS,EAAW7C,uBAAuBoC,GACxC,GAAIS,EAAU,CACV,MAAMC,QAAsBD,EAAS9B,EAAaD,GAClD,QAAsBiC,IAAlBD,EAA6B,CAE7B,GAAI/B,EAAYG,KAAM,CAClB,MAAM8B,EAAqBjC,EAAYG,KAAKG,KAAK,KACjDN,EAAYG,KAAOH,EAAYG,KAAK+B,KAAKT,GACtB,iBAARA,GAAoBA,EAAIC,SAASL,GAClCI,EAAIU,QAAQ,IAAIC,OAAOf,EAAMc,QAAQ,SAAU,QAAS,KAAMJ,GAC9DN,IAENzB,EAAYG,KAAKG,KAAK,OAAS2B,GAC/B5D,OAAOgC,MAAM,cAAcgB,OAAWU,oBAAgC/B,EAAYG,KAAKG,KAAK,OAEpG,CAEA,GAAIN,EAAYQ,IAAK,CACjB,MAAM6B,EAAkBlB,KAAKC,UAAUpB,EAAYQ,KACnD,IAAK,MAAMG,KAAOX,EAAYQ,IACU,iBAAzBR,EAAYQ,IAAIG,IAAsBX,EAAYQ,IAAIG,GAAgBe,SAASL,KACtFrB,EAAYQ,IAAIG,GAAQX,EAAYQ,IAAIG,GAAgBwB,QAAQ,IAAIC,OAAOf,EAAMc,QAAQ,SAAU,QAAS,KAAMJ,IAGtHZ,KAAKC,UAAUpB,EAAYQ,OAAS6B,GACpChE,OAAOgC,MAAM,aAAagB,OAAWU,oBAAgCZ,KAAKC,UAAUpB,EAAYQ,OAExG,CACJ,MACInC,OAAOgC,MAAM,sCAAsCgB,8BAE3D,CACJ,CACJ,CAKU,sBAAMiB,CAAiB1B,GAC7B,GAAyB,UAArB2B,QAAQC,UAA2C,QAAnB5B,EAAO6B,QAAmB,CAC1D,MAAMC,QAAgB9D,uBACtB,MAAO,IACAgC,EACH6B,QAAS,MACTtC,KAAM,CAAC,KAAM,SAAUS,EAAOT,MAC9BK,IAAK,IACEI,EAAOJ,IACVmC,QAAWD,GAGvB,CACA,OAAO9B,CACX,CAMU,kBAAAgC,CAAmBC,GACpBA,EAASC,aACVD,EAASC,WAAa,GAE9B,CASU,aAAAC,CAAcF,EAAeG,EAAoBC,GACvDJ,EAASC,WAAWE,GAAc,CAC9BE,KAAMD,EAAc/C,MAAQ,MAC5BiD,IAAKF,EAAcE,IAE3B,CAMU,qBAAMC,CAAgBP,EAAeG,EAAoBhD,GAE3DA,EAAYG,OACZH,EAAYG,KAAOH,EAAYG,KAAK+B,KAAKT,GACtB,iBAARA,EAAmBA,EAAIU,QAAQ,MAAO,KAAOV,KAG5DoB,EAASC,WAAWE,GAAc,CAC9BP,QAASzC,EAAYyC,QACrBtC,KAAMH,EAAYG,KAClBK,IAAKR,EAAYQ,IACjB6C,YAAa,GACbC,UAAU,EACVC,YAAa,GAErB,CAOQ,uBAAMC,CAAkBC,GAC5B,OAAO,IAAIC,SAASC,IAChB,IACI,MAAMR,EAAM,IAAIS,IAAIH,GAEdI,GAD0B,WAAjBV,EAAIW,SAAwBpF,MAAQD,MAC5BoF,QAAQV,EAAK,CAAEY,OAAQ,OAAQC,QAAS,MAASC,IAEpEN,GAAQ,GACRM,EAAIC,QAAQ,IAEhBL,EAAQM,GAAG,SAAUC,IACjB/F,OAAOgC,MAAM,aAAaoD,uBAA+BW,EAAIC,WAC7DV,GAAQ,EAAM,IAElBE,EAAQM,GAAG,WAAW,KAClB9F,OAAOgC,MAAM,2CAA2CoD,KACxDI,EAAQS,UACRX,GAAQ,EAAM,IAElBE,EAAQU,KACZ,CAAE,MAAOC,GACLnG,OAAOmG,MAAM,0CAA0Cf,MAAce,EAAMH,WAC3EV,GAAQ,EACZ,IAER,CAMU,gCAAMc,CAA2B5B,EAAeG,EAAoBC,GAC1E,GAAIA,EAAcE,IAAK,CAEnB,SADmClC,KAAKuC,kBAAkBP,EAAcE,KAEpE9E,OAAOqG,KAAK,aAAazB,EAAcE,qEACpC,GAAIF,EAAc0B,iBAA4D,iBAAlC1B,EAAc0B,gBAA8B,CAC3FtG,OAAOqG,KAAK,aAAazB,EAAcE,+DAA+DF,EAAc0B,mBACpH,MAAMC,EAAe3B,EAAc0B,gBAAgBE,MAAM,KACnDpC,EAAUmC,EAAa,GACvBzE,EAAOyE,EAAaE,MAAM,GAEhC,IACI,MAAMC,EAAQxG,MAAMkE,EAAStC,EAAM,CAC/B6E,UAAU,EACVC,MAAO,SACPC,MAA4B,UAArB3C,QAAQC,WAGnBuC,EAAMZ,GAAG,SAAUC,IACf/F,OAAOmG,MAAM,gDAAgDvB,EAAc0B,qBAAqBP,EAAIC,UAAU,IAGlHU,EAAMI,QACN9G,OAAOqG,KAAK,iCAAiCK,EAAMK,+BAA+BnC,EAAc0B,yEACpG,CAAE,MAAOH,GACLnG,OAAOmG,MAAM,+DAA+DvB,EAAc0B,qBAAqBH,EAAMH,UACzH,CACJ,MAAWpB,EAAc0B,gBACrBtG,OAAOgH,KAAK,gDAAgDlE,KAAKC,UAAU6B,EAAc0B,oBAEzFtG,OAAOqG,KAAK,aAAazB,EAAcE,qDAE/C,MACI9E,OAAOgH,KAAK,iGAKhBpE,KAAK8B,cAAcF,EAAUG,EAAYC,EAC7C,CAOU,oCAAMqC,CAA+BC,GAE3C,MAAMC,QAA0B7G,mBAAmB,QAC7C8G,QAAkC9G,mBAAmB,iBAE3D,IAAK6G,IAAsBC,EACvB,MAAO,CACHC,OAAQ,SACRxC,KAAM,UACNyC,OAAQ,SACRtB,QAAS,kMACTkB,eAMR,aAD8B1G,mBAAmB+G,iBAAiB3E,KAAK4E,iBACvE,GACIxH,OAAOgC,MAAM,qBAAqBY,KAAK4E,wBAChC,CACHH,OAAQ,SACRxC,KAAM,UACNyC,OAAQ,SACRtB,QAAS,qBAAqBpD,KAAK4E,uBACnCN,eAIZ,CAQU,0BAAMO,CAAqB9C,EAAoBC,GACrD,MAAM8C,EAAqE,GACrEP,QAA0B7G,mBAAmB,QAC7C8G,QAAkC9G,mBAAmB,iBAG3D,GAAI6G,EACA,IACI,MAAMQ,EAAclH,kBAAkBmC,KAAK4E,YAAYI,sBACjDhF,KAAKiF,oBAAoBF,EAAahD,EAAYC,GACxD8C,EAAQI,KAAK,CAAEC,SAAS,EAAMC,KAAML,GACxC,CAAE,MAAOxB,GACLuB,EAAQI,KAAK,CACTC,SAAS,EACTC,KAAMvH,kBAAkBmC,KAAK4E,YAAYI,gBACzCzB,MAAOA,aAAiB8B,MAAQ9B,EAAMH,QAAUkC,OAAO/B,IAE/D,CAIJ,GAAIiB,EACA,IACI,MAAMO,EAAclH,kBAAkBmC,KAAK4E,YAAYW,6BACjDvF,KAAKiF,oBAAoBF,EAAahD,EAAYC,GACxD8C,EAAQI,KAAK,CAAEC,SAAS,EAAMC,KAAML,GACxC,CAAE,MAAOxB,GACLuB,EAAQI,KAAK,CACTC,SAAS,EACTC,KAAMvH,kBAAkBmC,KAAK4E,YAAYW,uBACzChC,MAAOA,aAAiB8B,MAAQ9B,EAAMH,QAAUkC,OAAO/B,IAE/D,CAGJ,OAAOuB,CACX,CAOA,aAAMU,CAAQ3G,EAAyBC,EAA+B2G,GAClE,MAAMnB,EAActE,KAAK3B,sBAEnBqH,EAAWzH,wBAAwB0H,YAAYF,GAAgB5G,EAAa+G,KAAM/G,EAAa+G,MACrG,aAAaF,EAASG,WAClBC,gBACUJ,EAASG,WACX,IAAM7F,KAAKqE,+BAA+BC,IAAc,CACxDyB,SAAU7H,mBAAmB8H,wCAC7BC,WAAaC,GAAWA,GAAQ9C,QAChC+C,SAAWD,GAA8B,WAAnBA,GAAQzB,SAIlC,MAAMzC,QAAsB0D,EAASG,WACjC,IAAM7F,KAAKpB,mBAAmBC,EAAcC,IAAU,CACtDiH,SAAU7H,mBAAmBkI,iCAG7BvH,EAAaI,OACb+C,EAAc/C,KAAOJ,EAAaI,MAGtC,MAAM6F,QAAgBY,EAASG,WAC3B,IAAM7F,KAAK6E,qBAAqBhG,EAAa+G,KAAM5D,IAAgB,CACnE+D,SAAU7H,mBAAmBmI,4BAC7BJ,WAAaC,GAAWA,GAAQ3F,MAAK+F,GAAKA,EAAEnB,UAAW,wBAAwBe,EAAOjF,KAAIqF,GAAKA,EAAElB,OAAM/F,KAAK,QAAU,8BAA8B6G,EAAOjF,KAAIqF,GAAKA,EAAE/C,QAAOlE,KAAK,QAClL8G,SAAWD,GAAWA,GAAQ3F,MAAK+F,GAAKA,EAAEnB,YAKxCoB,EAAazB,EAAQvE,MAAK+F,GAAKA,EAAEnB,UACjCqB,EAAe1B,EAAQ2B,QAAOH,GAAKA,EAAEnB,UAASlE,KAAIqF,GAAKA,EAAElB,OACzDsB,EAAS5B,EAAQ2B,QAAOH,IAAMA,EAAEnB,UAASlE,KAAIqF,GAAKA,EAAE/C,QAM1D,MAAO,CACHkB,OAAQ8B,EAAa,YAAc,SACnCtE,KAAM,UACNyC,OAAQ,SACRtB,QARiBmD,EACf,0BAA0BvG,KAAK4E,2CAA2C4B,EAAanH,KAAK,QAC5F,qBAAqBW,KAAK4E,8BAA8B8B,EAAOrH,KAAK,QAOtEiF,cACAf,MAAOgD,OAAaxF,EAAY2F,EAAOrH,KAAK,MAC/C,GAEL,CACI0G,SAAU7H,mBAAmByI,kBAC7BR,SAAWD,GAA8B,WAAnBA,GAAQzB,OAC9BwB,WAAaC,GAAYA,GAA4B9C,QACrDwD,QAAUrD,IACN,MAAMsD,EAAW,+BAA+B7G,KAAK4E,sBAAsBrB,aAAiB8B,MAAQ9B,EAAMH,QAAUkC,OAAO/B,KAC3H,MAAO,CACH2C,OAAQ,CACJzB,OAAQ,SACRxC,KAAM,UACNyC,OAAQ,SACRtB,QAASyD,EACTvC,cACAf,MAAOA,aAAiB8B,MAAQ9B,EAAMH,QAAUkC,OAAO/B,IACxDH,QAASyD,EACf,GAKjB","ignoreList":[]}
@@ -56,3 +56,7 @@ export declare const SUPPORTED_CLIENT_NAMES: string[];
56
56
  * 10 minutes = 10 * 60 * 1000 = 600000 ms
57
57
  */
58
58
  export declare const UPDATE_CHECK_INTERVAL_MS: number;
59
+ /**
60
+ * Application Insights instrumentation key for telemetry
61
+ */
62
+ export declare const INSTRUMENTATION_KEY = "c5fc06c7-a96c-4d80-9aff-bc9c933db0d1";
@@ -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")}};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;
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")}};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","SUPPORTED_CLIENT_NAMES","Object","keys","UPDATE_CHECK_INTERVAL_MS"],"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,mBAUjE,MANyB,UAArBR,QAAQC,WACVS,EAAsB,aAAI,CACxBQ,gBAAiBzB,KAAKS,KAAKV,GAAGW,UAAW,aACzCgB,uBAAwB1B,KAAKS,KAAKV,GAAGW,UAAW,eAG7CO,CACR,EApCI,UAyCE,MAAMY,uBAAyBC,OAAOC,KAAKf,0BAM3C,MAAMgB,yBAA2B","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","CODE_INSIDER_STRORAGE_DIR","SUPPORTED_CLIENTS","clients","MSRooCode","extension","extensionId","leastVersion","repository","assetName","private","codeSettingPath","codeInsiderSettingPath","Cline","GithubCopilot","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,mBAUjE,MANyB,UAArBR,QAAQC,WACVS,EAAsB,aAAI,CACxBQ,gBAAiBzB,KAAKS,KAAKV,GAAGW,UAAW,aACzCgB,uBAAwB1B,KAAKS,KAAKV,GAAGW,UAAW,eAG7CO,CACR,EApCI,UAyCE,MAAMY,uBAAyBC,OAAOC,KAAKf,0BAM3C,MAAMgB,yBAA2B,WAKjC,MAAMC,oBAAsB","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import*as appInsights from"applicationinsights";export class TelemetryService{static client=null;static instrumentationKey="InstrumentationKey=c5fc06c7-a96c-4d80-9aff-bc9c933db0d1";static{try{const t=new appInsights.TelemetryClient(TelemetryService.instrumentationKey);t.config.disableAppInsights=!1,t.config.maxBatchSize=250,t.context.tags[t.context.keys.cloudRole]="imcp",TelemetryService.client=t,console.log("Application Insights initialized")}catch(t){console.error("Failed to initialize Application Insights:",t)}}static trackEvent(t,i){this.client&&this.client.trackEvent({name:t,properties:i})}static trackException(t,i){this.client&&this.client.trackException({exception:t,properties:i})}static trackTrace(t,i){this.client&&this.client.trackTrace({message:t,properties:i})}static trackMetric(t,i){this.client&&this.client.trackMetric({name:t,value:i})}static flush(){return new Promise((t=>{this.client?(this.client.flush(),t()):t()}))}}
1
+ import*as appInsights from"applicationinsights";import{INSTRUMENTATION_KEY}from"../core/metadatas/constants.js";export class TelemetryService{static client=null;static instrumentationKey=`InstrumentationKey=${INSTRUMENTATION_KEY}`;static{try{const t=new appInsights.TelemetryClient(TelemetryService.instrumentationKey);t.config.disableAppInsights=!1,t.config.maxBatchSize=250,t.context.tags[t.context.keys.cloudRole]="imcp",TelemetryService.client=t,console.log("Application Insights initialized")}catch(t){console.error("Failed to initialize Application Insights:",t)}}static trackEvent(t,e){this.client&&this.client.trackEvent({name:t,properties:e})}static trackException(t,e){this.client&&this.client.trackException({exception:t,properties:e})}static trackTrace(t,e){this.client&&this.client.trackTrace({message:t,properties:e})}static trackMetric(t,e){this.client&&this.client.trackMetric({name:t,value:e})}static flush(){return new Promise((t=>{this.client?(this.client.flush(),t()):t()}))}}
2
2
  //# sourceMappingURL=TelemetryService.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["appInsights","TelemetryService","static","client","TelemetryClient","instrumentationKey","config","disableAppInsights","maxBatchSize","context","tags","keys","cloudRole","console","log","error","trackEvent","name","properties","this","trackException","exception","trackTrace","message","trackMetric","value","flush","Promise","resolve"],"sources":["../../src/services/TelemetryService.ts"],"mappings":"UAAYA,gBAAiB,6BAEvB,MAAOC,iBACHC,cAAoD,KACpDA,0BAAqC,iEAI3C,IACE,MAAMC,EAAS,IAAIH,YAAYI,gBAAgBH,iBAAiBI,oBAChEF,EAAOG,OAAOC,oBAAqB,EACnCJ,EAAOG,OAAOE,aAAe,IAC7BL,EAAOM,QAAQC,KAAKP,EAAOM,QAAQE,KAAKC,WAAa,OACrDX,iBAAiBE,OAASA,EAC1BU,QAAQC,IAAI,mCACd,CAAE,MAAOC,GACPF,QAAQE,MAAM,6CAA8CA,EAC9D,CACF,CAEA,iBAAOC,CAAWC,EAAcC,GACzBC,KAAKhB,QAGVgB,KAAKhB,OAAOa,WAAW,CAAEC,OAAMC,cACjC,CAEA,qBAAOE,CAAeL,EAAcG,GAC7BC,KAAKhB,QAGVgB,KAAKhB,OAAOiB,eAAe,CAAEC,UAAWN,EAAOG,cACjD,CAEA,iBAAOI,CAAWC,EAAiBL,GAC5BC,KAAKhB,QAGVgB,KAAKhB,OAAOmB,WAAW,CAAEC,UAASL,cACpC,CAEA,kBAAOM,CAAYP,EAAcQ,GAC1BN,KAAKhB,QAGVgB,KAAKhB,OAAOqB,YAAY,CAAEP,OAAMQ,SAClC,CAEA,YAAOC,GACL,OAAO,IAAIC,SAASC,IACbT,KAAKhB,QAIVgB,KAAKhB,OAAOuB,QACZE,KAJEA,GAIO,GAEb","ignoreList":[]}
1
+ {"version":3,"names":["appInsights","INSTRUMENTATION_KEY","TelemetryService","static","client","TelemetryClient","instrumentationKey","config","disableAppInsights","maxBatchSize","context","tags","keys","cloudRole","console","log","error","trackEvent","name","properties","this","trackException","exception","trackTrace","message","trackMetric","value","flush","Promise","resolve"],"sources":["../../src/services/TelemetryService.ts"],"mappings":"UAAYA,gBAAiB,6BACpBC,wBAA2B,wCAE9B,MAAOC,iBACHC,cAAoD,KACpDA,0BAAqC,sBAAsBF,6BAIjE,IACE,MAAMG,EAAS,IAAIJ,YAAYK,gBAAgBH,iBAAiBI,oBAChEF,EAAOG,OAAOC,oBAAqB,EACnCJ,EAAOG,OAAOE,aAAe,IAC7BL,EAAOM,QAAQC,KAAKP,EAAOM,QAAQE,KAAKC,WAAa,OACrDX,iBAAiBE,OAASA,EAC1BU,QAAQC,IAAI,mCACd,CAAE,MAAOC,GACPF,QAAQE,MAAM,6CAA8CA,EAC9D,CACF,CAEA,iBAAOC,CAAWC,EAAcC,GACzBC,KAAKhB,QAGVgB,KAAKhB,OAAOa,WAAW,CAAEC,OAAMC,cACjC,CAEA,qBAAOE,CAAeL,EAAcG,GAC7BC,KAAKhB,QAGVgB,KAAKhB,OAAOiB,eAAe,CAAEC,UAAWN,EAAOG,cACjD,CAEA,iBAAOI,CAAWC,EAAiBL,GAC5BC,KAAKhB,QAGVgB,KAAKhB,OAAOmB,WAAW,CAAEC,UAASL,cACpC,CAEA,kBAAOM,CAAYP,EAAcQ,GAC1BN,KAAKhB,QAGVgB,KAAKhB,OAAOqB,YAAY,CAAEP,OAAMQ,SAClC,CAEA,YAAOC,GACL,OAAO,IAAIC,SAASC,IACbT,KAAKhB,QAIVgB,KAAKhB,OAAOuB,QACZE,KAJEA,GAIO,GAEb","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imcp",
3
- "version": "0.1.15",
3
+ "version": "0.1.16",
4
4
  "description": "Node.js SDK for Model Context Protocol (MCP)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",