imcp 0.1.15 → 0.1.17

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":"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","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ import { BaseClientInstaller } from './BaseClientInstaller.js';
2
+ import { McpConfig, ServerInstallOptions, OperationStatus } from '../../metadatas/types.js';
3
+ /**
4
+ * Installer for Claude Desktop client
5
+ * Handles installation and configuration of MCP server integration for Claude Desktop
6
+ */
7
+ export declare class ClaudeCodeInstaller extends BaseClientInstaller {
8
+ protected readonly clientName: string;
9
+ /**
10
+ * Update Claude Desktop settings without checking for VS Code variants
11
+ * @param serverName The name of the server to configure
12
+ * @param installConfig The installation configuration
13
+ * @returns Array of results indicating success/failure for Claude settings
14
+ */
15
+ protected updateClaudeSettings(serverName: string, installConfig: any): Promise<Array<{
16
+ success: boolean;
17
+ path: string;
18
+ error?: string;
19
+ }>>;
20
+ /**
21
+ * Sets up client settings for Claude Desktop
22
+ * Implements the abstract method from BaseClientInstaller
23
+ * @param settingPath Path to the settings file (~/.claude.json)
24
+ * @param serverName Name of the server being installed
25
+ * @param installConfig Installation configuration
26
+ */
27
+ setupClientSettings(settingPath: string, serverName: string, installConfig: any): Promise<void>;
28
+ /**
29
+ * Initialize settings with Claude Desktop-specific structure
30
+ * Overrides base method to provide custom initialization
31
+ */
32
+ protected initializeSettings(settings: any): void;
33
+ /**
34
+ * Handle stdio mode configuration for Claude Desktop
35
+ * Overrides base method to provide custom stdio configuration
36
+ */
37
+ protected handleStdioMode(settings: any, serverName: string, finalConfig: any): Promise<void>;
38
+ /**
39
+ * Install MCP server configuration for Claude Desktop
40
+ * Custom implementation that skips VSCode-specific steps
41
+ * @param serverConfig Server configuration
42
+ * @param options Installation options
43
+ * @param categoryName Server category name
44
+ */
45
+ install(serverConfig: McpConfig, options: ServerInstallOptions, categoryName?: string): Promise<OperationStatus>;
46
+ }
@@ -0,0 +1,2 @@
1
+ import{BaseClientInstaller}from"./BaseClientInstaller.js";import{Logger}from"../../../utils/logger.js";import fs from"fs/promises";import path from"path";import{SUPPORTED_CLIENTS}from"../../metadatas/constants.js";import{InstallOperationManager}from"../../loaders/InstallOperationManager.js";import*as RecordingConstants from"../../metadatas/recordingConstants.js";export class ClaudeCodeInstaller extends BaseClientInstaller{clientName="ClaudeCode";async updateClaudeSettings(e,t){Logger.debug("Updating Claude Desktop settings");const s=[];try{const a=SUPPORTED_CLIENTS[this.clientName].codeSettingPath;Logger.debug(`Attempting to update settings at: ${a}`),await this.setupClientSettings(a,e,t),s.push({success:!0,path:a}),Logger.debug("Successfully updated Claude Desktop settings")}catch(e){const t=e instanceof Error?e.message:String(e);Logger.error("Failed to update Claude Desktop settings:",e),s.push({success:!1,path:SUPPORTED_CLIENTS[this.clientName].codeSettingPath,error:t})}return s}async setupClientSettings(e,t,s){Logger.debug(`Setting up Claude Desktop client settings at ${e}`);try{const a=path.dirname(e);await fs.mkdir(a,{recursive:!0});let n={};try{const t=await fs.readFile(e,"utf8");n=JSON.parse(t)}catch(e){Logger.debug("No existing settings file found, creating new one")}this.initializeSettings(n),"stdio"===s.mode?await this.handleStdioMode(n,t,s):"sse"!==s.mode&&"streamable-http"!==s.mode||await this.handleSseAndStreamableMode(n,t,s),await fs.writeFile(e,JSON.stringify(n,null,2),"utf8"),Logger.debug(`Successfully updated Claude Desktop settings at ${e}`)}catch(e){throw Logger.error("Failed to setup Claude Desktop client settings:",e),e}}initializeSettings(e){e.mcpServers||(e.mcpServers={})}async handleStdioMode(e,t,s){s.args&&(s.args=s.args.map((e=>"string"==typeof e?e.replace(/\\/g,"/"):e))),e.mcpServers[t]={type:"stdio",command:s.command,args:s.args,env:s.env||{}}}async install(e,t,s){const a=this.generateOperationId(),n=InstallOperationManager.getInstance(s||e.name,e.name);return await n.recording((async()=>{const s=await n.recording((()=>this.setupInstallConfig(e,t)),{stepName:RecordingConstants.STEP_SETUP_INSTALLATION_CONFIG});e.mode&&(s.mode=e.mode);const r=await n.recording((()=>this.updateClaudeSettings(e.name,s)),{stepName:"Update Claude Desktop Settings",onResult:e=>e?.some((e=>e.success))}),i=r.some((e=>e.success)),o=r.filter((e=>e.success)).map((e=>e.path)),l=r.filter((e=>!e.success)).map((e=>e.error));return{status:i?"completed":"failed",type:"install",target:"server",message:i?`Successfully installed ${this.clientName} client. Updated settings in: ${o.join(", ")}`:`Failed to install ${this.clientName} client. Errors: ${l.join("; ")}`,operationId:a,error:i?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:a,error:e instanceof Error?e.message:String(e)},message:t}}})}}
2
+ //# sourceMappingURL=ClaudeCodeInstaller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BaseClientInstaller","Logger","fs","path","SUPPORTED_CLIENTS","InstallOperationManager","RecordingConstants","ClaudeCodeInstaller","clientName","updateClaudeSettings","serverName","installConfig","debug","results","settingPath","this","codeSettingPath","setupClientSettings","push","success","error","errorMessage","Error","message","String","settingsDir","dirname","mkdir","recursive","settings","existingContent","readFile","JSON","parse","initializeSettings","mode","handleStdioMode","handleSseAndStreamableMode","writeFile","stringify","mcpServers","finalConfig","args","map","arg","replace","type","command","env","install","serverConfig","options","categoryName","operationId","generateOperationId","recorder","getInstance","name","recording","async","setupInstallConfig","stepName","STEP_SETUP_INSTALLATION_CONFIG","onResult","result","some","r","anySuccess","successPaths","filter","errors","status","target","join","undefined","STEP_INSTALLATION","endMessage","onError","errorMsg"],"sources":["../../../../src/core/installers/clients/ClaudeCodeInstaller.ts"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{MSRooCodeInstaller}from"./MSRooCodeInstaller.js";import{ClineInstaller}from"./ClineInstaller.js";import{GithubCopilotInstaller}from"./GithubCopilotInstaller.js";import{VisualStudioInstaller}from"./VisualStudioInstaller.js";import{SUPPORTED_CLIENTS}from"../../metadatas/constants.js";export class ClientInstallerFactory{static installerMap={[Object.keys(SUPPORTED_CLIENTS)[0]]:MSRooCodeInstaller,[Object.keys(SUPPORTED_CLIENTS)[1]]:ClineInstaller,[Object.keys(SUPPORTED_CLIENTS)[2]]:GithubCopilotInstaller,[Object.keys(SUPPORTED_CLIENTS)[3]]:VisualStudioInstaller};static getInstaller(t){if(!SUPPORTED_CLIENTS[t])return;const l=this.installerMap[t];return l?new l:void 0}static isClientSupported(t){return!!SUPPORTED_CLIENTS[t]}}
1
+ import{MSRooCodeInstaller}from"./MSRooCodeInstaller.js";import{ClineInstaller}from"./ClineInstaller.js";import{GithubCopilotInstaller}from"./GithubCopilotInstaller.js";import{VisualStudioInstaller}from"./VisualStudioInstaller.js";import{ClaudeCodeInstaller}from"./ClaudeCodeInstaller.js";import{SUPPORTED_CLIENTS}from"../../metadatas/constants.js";export class ClientInstallerFactory{static installerMap={[Object.keys(SUPPORTED_CLIENTS)[0]]:MSRooCodeInstaller,[Object.keys(SUPPORTED_CLIENTS)[1]]:ClineInstaller,[Object.keys(SUPPORTED_CLIENTS)[2]]:GithubCopilotInstaller,[Object.keys(SUPPORTED_CLIENTS)[3]]:ClaudeCodeInstaller,[Object.keys(SUPPORTED_CLIENTS)[4]]:VisualStudioInstaller};static getInstaller(t){if(!SUPPORTED_CLIENTS[t])return;const l=this.installerMap[t];return l?new l:void 0}static isClientSupported(t){return!!SUPPORTED_CLIENTS[t]}}
2
2
  //# sourceMappingURL=ClientInstallerFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MSRooCodeInstaller","ClineInstaller","GithubCopilotInstaller","VisualStudioInstaller","SUPPORTED_CLIENTS","ClientInstallerFactory","static","Object","keys","getInstaller","clientName","InstallerClass","this","installerMap","undefined","isClientSupported"],"sources":["../../../../src/core/installers/clients/ClientInstallerFactory.ts"],"mappings":"OAASA,uBAA0B,iCAC1BC,mBAAsB,6BACtBC,2BAA8B,qCAC9BC,0BAA6B,oCAE7BC,sBAAyB,sCAM5B,MAAOC,uBACDC,oBAA8E,CAClF,CAACC,OAAOC,KAAKJ,mBAAmB,IAAKJ,mBACrC,CAACO,OAAOC,KAAKJ,mBAAmB,IAAKH,eACrC,CAACM,OAAOC,KAAKJ,mBAAmB,IAAKF,uBACrC,CAACK,OAAOC,KAAKJ,mBAAmB,IAAKD,uBAQzC,mBAAOM,CACHC,GAGA,IAAKN,kBAAkBM,GACnB,OAGJ,MAAMC,EAAiBC,KAAKC,aAAaH,GACzC,OAAOC,EAAiB,IAAIA,OAAmBG,CACnD,CAOA,wBAAOC,CAAkBL,GACrB,QAASN,kBAAkBM,EAC/B","ignoreList":[]}
1
+ {"version":3,"names":["MSRooCodeInstaller","ClineInstaller","GithubCopilotInstaller","VisualStudioInstaller","ClaudeCodeInstaller","SUPPORTED_CLIENTS","ClientInstallerFactory","static","Object","keys","getInstaller","clientName","InstallerClass","this","installerMap","undefined","isClientSupported"],"sources":["../../../../src/core/installers/clients/ClientInstallerFactory.ts"],"mappings":"OAASA,uBAA0B,iCAC1BC,mBAAsB,6BACtBC,2BAA8B,qCAC9BC,0BAA6B,oCAC7BC,wBAA2B,kCAE3BC,sBAAyB,sCAM5B,MAAOC,uBACDC,oBAA8E,CAClF,CAACC,OAAOC,KAAKJ,mBAAmB,IAAKL,mBACrC,CAACQ,OAAOC,KAAKJ,mBAAmB,IAAKJ,eACrC,CAACO,OAAOC,KAAKJ,mBAAmB,IAAKH,uBACrC,CAACM,OAAOC,KAAKJ,mBAAmB,IAAKD,oBACrC,CAACI,OAAOC,KAAKJ,mBAAmB,IAAKF,uBAQzC,mBAAOO,CACHC,GAGA,IAAKN,kBAAkBM,GACnB,OAGJ,MAAMC,EAAiBC,KAAKC,aAAaH,GACzC,OAAOC,EAAiB,IAAIA,OAAmBG,CACnD,CAOA,wBAAOC,CAAkBL,GACrB,QAASN,kBAAkBM,EAC/B","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")},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","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","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,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.17",
4
4
  "description": "Node.js SDK for Model Context Protocol (MCP)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",