{"version":3,"file":"installMCP.cjs","names":["path","os","PLATFORMS_METADATA","fs"],"sources":["../../../src/installMCP/installMCP.ts"],"sourcesContent":["import { promises as fs } from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\nimport { PLATFORMS_METADATA, type Platform } from '../installSkills';\n\nexport type MCPTransport = 'stdio' | 'sse';\n\nconst MCP_CONFIG_FILENAME = 'mcp.json';\n\nconst CLAUDE_DESKTOP_CONFIG_PATH =\n  process.platform === 'win32'\n    ? path.join(\n        process.env.APPDATA || '',\n        'Claude',\n        'claude_desktop_config.json'\n      )\n    : path.join(\n        os.homedir(),\n        'Library',\n        'Application Support',\n        'Claude',\n        'claude_desktop_config.json'\n      );\n\n/**\n * Installs the Intlayer MCP server configuration for a specific platform.\n */\nexport const installMCP = async (\n  projectRoot: string,\n  platform: Platform,\n  transport: MCPTransport\n): Promise<string> => {\n  let configPath: string;\n  let configKey = 'mcpServers';\n\n  if (platform === 'Claude') {\n    configPath = CLAUDE_DESKTOP_CONFIG_PATH;\n  } else {\n    const relativeDir = path.dirname(PLATFORMS_METADATA[platform].dir); // e.g. .cursor or .vscode\n    configPath = path.join(projectRoot, relativeDir, MCP_CONFIG_FILENAME);\n\n    if (platform === 'VSCode') {\n      configKey = 'servers';\n    }\n  }\n\n  // Ensure the configuration directory exists\n  await fs.mkdir(path.dirname(configPath), { recursive: true });\n\n  let config: any = {};\n  try {\n    const content = await fs.readFile(configPath, 'utf-8');\n    config = JSON.parse(content);\n  } catch {\n    // File doesn't exist or is invalid JSON, start fresh\n  }\n\n  if (!config[configKey]) {\n    config[configKey] = {};\n  }\n\n  if (transport === 'stdio') {\n    const mcpConfig: any = {\n      command: 'npx',\n      args: ['-y', '@intlayer/mcp'],\n    };\n\n    if (platform === 'VSCode') {\n      mcpConfig.type = 'stdio';\n    }\n\n    config[configKey].intlayer = mcpConfig;\n  } else {\n    const mcpConfig: any = {\n      url: 'https://mcp.intlayer.org',\n    };\n\n    if (platform === 'VSCode') {\n      mcpConfig.type = 'sse';\n    } else {\n      mcpConfig.transport = 'sse';\n    }\n\n    config[configKey].intlayer = mcpConfig;\n  }\n\n  await fs.writeFile(configPath, JSON.stringify(config, null, 2), 'utf-8');\n\n  return `MCP server configuration updated in ${configPath}`;\n};\n"],"mappings":";;;;;;;;;;AAOA,MAAM,sBAAsB;AAE5B,MAAM,6BACJ,QAAQ,aAAa,UACjBA,kBAAK,KACH,QAAQ,IAAI,WAAW,IACvB,UACA,6BACD,GACDA,kBAAK,KACHC,gBAAG,SAAS,EACZ,WACA,uBACA,UACA,6BACD;;;;AAKP,MAAa,aAAa,OACxB,aACA,UACA,cACoB;CACpB,IAAI;CACJ,IAAI,YAAY;AAEhB,KAAI,aAAa,SACf,cAAa;MACR;EACL,MAAM,cAAcD,kBAAK,QAAQE,+CAAmB,UAAU,IAAI;AAClE,eAAaF,kBAAK,KAAK,aAAa,aAAa,oBAAoB;AAErE,MAAI,aAAa,SACf,aAAY;;AAKhB,OAAMG,iBAAG,MAAMH,kBAAK,QAAQ,WAAW,EAAE,EAAE,WAAW,MAAM,CAAC;CAE7D,IAAI,SAAc,EAAE;AACpB,KAAI;EACF,MAAM,UAAU,MAAMG,iBAAG,SAAS,YAAY,QAAQ;AACtD,WAAS,KAAK,MAAM,QAAQ;SACtB;AAIR,KAAI,CAAC,OAAO,WACV,QAAO,aAAa,EAAE;AAGxB,KAAI,cAAc,SAAS;EACzB,MAAM,YAAiB;GACrB,SAAS;GACT,MAAM,CAAC,MAAM,gBAAgB;GAC9B;AAED,MAAI,aAAa,SACf,WAAU,OAAO;AAGnB,SAAO,WAAW,WAAW;QACxB;EACL,MAAM,YAAiB,EACrB,KAAK,4BACN;AAED,MAAI,aAAa,SACf,WAAU,OAAO;MAEjB,WAAU,YAAY;AAGxB,SAAO,WAAW,WAAW;;AAG/B,OAAMA,iBAAG,UAAU,YAAY,KAAK,UAAU,QAAQ,MAAM,EAAE,EAAE,QAAQ;AAExE,QAAO,uCAAuC"}