@intlayer/mcp 8.1.11 → 8.2.0

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,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`@intlayer/cli`),n=require(`node:readline`);n=e.__toESM(n);let r=require(`zod`);r=e.__toESM(r);const i=`Cursor.Windsurf.Trae.OpenCode.GitHub.Claude.VSCode.Antigravity.Augment.OpenClaw.Cline.CodeBuddy.CommandCode.Continue.Crush.Droid.Goose.Junie.IFlow.KiloCode.Kiro.Kode.MCPJam.MistralVibe.Mux.OpenHands.Pi.Qoder.Qwen.RooCode.TraeCN.Zencoder.Neovate.Pochi.Other`.split(`.`),a=e=>{e.registerTool(`intlayer-install-skills`,{title:`Install Intlayer Skills`,description:`Install Intlayer documentation and skills to the project to assist AI agents. Ask the user for the platform (Cursor, VSCode, OpenCode, Claude, etc.) and which skills they want to install before calling this tool.`,inputSchema:{platform:r.default.enum(`Cursor.Windsurf.Trae.OpenCode.GitHub.Claude.VSCode.Antigravity.Augment.OpenClaw.Cline.CodeBuddy.CommandCode.Continue.Crush.Droid.Goose.Junie.IFlow.KiloCode.Kiro.Kode.MCPJam.MistralVibe.Mux.OpenHands.Pi.Qoder.Qwen.RooCode.TraeCN.Zencoder.Neovate.Pochi.Other`.split(`.`)).describe(`The platform to install skills for`),skills:r.default.array(r.default.enum(t.SKILLS)).describe(`List of skills to install`),projectRoot:r.default.string().optional().describe(`Root directory of the project. Defaults to current directory.`)}},async({platform:e,skills:n,projectRoot:r})=>{try{return{content:[{type:`text`,text:await(0,t.installSkills)(r||process.cwd(),e,n)}]}}catch(e){return{content:[{type:`text`,text:`Failed to install skills: ${e instanceof Error?e.message:String(e)}`}],isError:!0}}})},o=async()=>{let e=n.createInterface({input:process.stdin,output:process.stdout}),r=t=>new Promise(n=>e.question(t,n));try{console.log(`Install Intlayer Skills`),console.log(`-----------------------`);let n=await r(`Which platform are you using? (Cursor, Windsurf, Trae, OpenCode, GitHub, Claude, VSCode, Cline, RooCode, etc. or "Other"): `),a=i.find(e=>e.toLowerCase()===n.trim().toLowerCase())||`Other`;console.log(`Selected platform: ${a}`),console.log(`
2
- Available skills:`),t.SKILLS.forEach((e,t)=>{console.log(`${t+1}. ${e}`)});let o=await r(`
3
- Which skills do you want to install? (comma separated numbers, e.g. 1,2,3 or "all"): `),s=[];if(s=o.trim().toLowerCase()===`all`?[...t.SKILLS]:o.split(`,`).map(e=>parseInt(e.trim(),10)-1).filter(e=>!Number.isNaN(e)&&e>=0&&e<t.SKILLS.length).map(e=>t.SKILLS[e]),s.length===0){console.log(`No valid skills selected. Exiting.`),e.close();return}console.log(`Installing skills: ${s.join(`, `)}...`);let c=await(0,t.installSkills)(process.cwd(),a,s);console.log(c)}catch(e){console.error(`Error:`,e)}finally{e.close()}};exports.loadInstallSkillsTool=a,exports.runInstallSkillsCLI=o;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`@intlayer/cli`),n=require(`node:readline`);n=e.__toESM(n);let r=require(`zod`);r=e.__toESM(r);const i=e=>{e.registerTool(`intlayer-install-skills`,{title:`Install Intlayer Skills`,description:`Install Intlayer documentation and skills to the project to assist AI agents. Ask the user for the platform (Cursor, VSCode, OpenCode, Claude, etc.) and which skills they want to install before calling this tool.`,inputSchema:{platform:r.default.enum(t.PLATFORMS).describe(`The platform to install skills for`),skills:r.default.array(r.default.enum(t.SKILLS)).describe(`List of skills to install`),projectRoot:r.default.string().optional().describe(`Root directory of the project. Defaults to current directory.`)}},async({platform:e,skills:n,projectRoot:r})=>{try{return{content:[{type:`text`,text:await(0,t.installSkills)(r||process.cwd(),e,n)}]}}catch(e){return{content:[{type:`text`,text:`Failed to install skills: ${e instanceof Error?e.message:String(e)}`}],isError:!0}}})},a=async()=>{let e=n.createInterface({input:process.stdin,output:process.stdout}),r=t=>new Promise(n=>e.question(t,n));try{console.log(`Install Intlayer Skills`),console.log(`-----------------------`);let n=await r(`Which platform are you using? (Cursor, Windsurf, Trae, OpenCode, GitHub, Claude, VSCode, Cline, RooCode, etc. or "Other"): `),i=t.PLATFORMS.find(e=>e.toLowerCase()===n.trim().toLowerCase())||`Other`;console.log(`Selected platform: ${i}`),console.log(`
2
+ Available skills:`),t.SKILLS.forEach((e,t)=>{console.log(`${t+1}. ${e}`)});let a=await r(`
3
+ Which skills do you want to install? (comma separated numbers, e.g. 1,2,3 or "all"): `),o=[];if(o=a.trim().toLowerCase()===`all`?[...t.SKILLS]:a.split(`,`).map(e=>parseInt(e.trim(),10)-1).filter(e=>!Number.isNaN(e)&&e>=0&&e<t.SKILLS.length).map(e=>t.SKILLS[e]),o.length===0){console.log(`No valid skills selected. Exiting.`),e.close();return}console.log(`Installing skills: ${o.join(`, `)}...`);let s=await(0,t.installSkills)(process.cwd(),i,o);console.log(s)}catch(e){console.error(`Error:`,e)}finally{e.close()}};exports.loadInstallSkillsTool=i,exports.runInstallSkillsCLI=a;
4
4
  //# sourceMappingURL=installSkills.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"installSkills.cjs","names":["z","SKILLS","readline"],"sources":["../../../src/tools/installSkills.ts"],"sourcesContent":["import * as readline from 'node:readline';\nimport { installSkills, SKILLS, type Skill } from '@intlayer/cli';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport z from 'zod';\n\nconst PLATFORMS = [\n 'Cursor',\n 'Windsurf',\n 'Trae',\n 'OpenCode',\n 'GitHub',\n 'Claude',\n 'VSCode',\n 'Antigravity',\n 'Augment',\n 'OpenClaw',\n 'Cline',\n 'CodeBuddy',\n 'CommandCode',\n 'Continue',\n 'Crush',\n 'Droid',\n 'Goose',\n 'Junie',\n 'IFlow',\n 'KiloCode',\n 'Kiro',\n 'Kode',\n 'MCPJam',\n 'MistralVibe',\n 'Mux',\n 'OpenHands',\n 'Pi',\n 'Qoder',\n 'Qwen',\n 'RooCode',\n 'TraeCN',\n 'Zencoder',\n 'Neovate',\n 'Pochi',\n 'Other',\n] as const;\n\nexport const loadInstallSkillsTool = (server: McpServer): void => {\n server.registerTool(\n 'intlayer-install-skills',\n {\n title: 'Install Intlayer Skills',\n description:\n 'Install Intlayer documentation and skills to the project to assist AI agents. Ask the user for the platform (Cursor, VSCode, OpenCode, Claude, etc.) and which skills they want to install before calling this tool.',\n inputSchema: {\n platform: z\n .enum([\n 'Cursor',\n 'Windsurf',\n 'Trae',\n 'OpenCode',\n 'GitHub',\n 'Claude',\n 'VSCode',\n 'Antigravity',\n 'Augment',\n 'OpenClaw',\n 'Cline',\n 'CodeBuddy',\n 'CommandCode',\n 'Continue',\n 'Crush',\n 'Droid',\n 'Goose',\n 'Junie',\n 'IFlow',\n 'KiloCode',\n 'Kiro',\n 'Kode',\n 'MCPJam',\n 'MistralVibe',\n 'Mux',\n 'OpenHands',\n 'Pi',\n 'Qoder',\n 'Qwen',\n 'RooCode',\n 'TraeCN',\n 'Zencoder',\n 'Neovate',\n 'Pochi',\n 'Other',\n ])\n .describe('The platform to install skills for'),\n skills: z.array(z.enum(SKILLS)).describe('List of skills to install'),\n projectRoot: z\n .string()\n .optional()\n .describe(\n 'Root directory of the project. Defaults to current directory.'\n ),\n },\n },\n async ({ platform, skills, projectRoot }) => {\n try {\n const root = projectRoot || process.cwd();\n const message = await installSkills(\n root,\n platform as any,\n skills as any\n );\n\n return {\n content: [\n {\n type: 'text',\n text: message,\n },\n ],\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text',\n text: `Failed to install skills: ${error instanceof Error ? error.message : String(error)}`,\n },\n ],\n isError: true,\n };\n }\n }\n );\n};\n\nexport const runInstallSkillsCLI = async (): Promise<void> => {\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n const question = (query: string): Promise<string> =>\n new Promise((resolve) => rl.question(query, resolve));\n\n try {\n console.log('Install Intlayer Skills');\n console.log('-----------------------');\n\n const platformInput = await question(\n 'Which platform are you using? (Cursor, Windsurf, Trae, OpenCode, GitHub, Claude, VSCode, Cline, RooCode, etc. or \"Other\"): '\n );\n\n // we only accept a single platform here, not an array like the main CLI\n const platform =\n PLATFORMS.find(\n (platform) =>\n platform.toLowerCase() === platformInput.trim().toLowerCase()\n ) || ('Other' as const);\n\n console.log(`Selected platform: ${platform}`);\n\n console.log('\\nAvailable skills:');\n\n SKILLS.forEach((skill, i) => {\n console.log(`${i + 1}. ${skill}`);\n });\n\n const skillsInput = await question(\n '\\nWhich skills do you want to install? (comma separated numbers, e.g. 1,2,3 or \"all\"): '\n );\n\n let selectedSkills: Skill[] = [];\n if (skillsInput.trim().toLowerCase() === 'all') {\n selectedSkills = [...SKILLS];\n } else {\n const indices = skillsInput\n .split(',')\n .map((skill) => parseInt(skill.trim(), 10) - 1)\n .filter(\n (skill) => !Number.isNaN(skill) && skill >= 0 && skill < SKILLS.length\n );\n selectedSkills = indices.map((i) => SKILLS[i] as any);\n }\n\n if (selectedSkills.length === 0) {\n console.log('No valid skills selected. Exiting.');\n rl.close();\n return;\n }\n\n console.log(`Installing skills: ${selectedSkills.join(', ')}...`);\n const result = await installSkills(process.cwd(), platform, selectedSkills);\n console.log(result);\n } catch (error) {\n console.error('Error:', error);\n } finally {\n rl.close();\n }\n};\n"],"mappings":"qOAKA,MAAM,EAAY,6QAoCjB,CAEY,EAAyB,GAA4B,CAChE,EAAO,aACL,0BACA,CACE,MAAO,0BACP,YACE,uNACF,YAAa,CACX,SAAUA,EAAAA,QACP,KAAK,6QAoCL,CAAC,CACD,SAAS,qCAAqC,CACjD,OAAQA,EAAAA,QAAE,MAAMA,EAAAA,QAAE,KAAKC,EAAAA,OAAO,CAAC,CAAC,SAAS,4BAA4B,CACrE,YAAaD,EAAAA,QACV,QAAQ,CACR,UAAU,CACV,SACC,gEACD,CACJ,CACF,CACD,MAAO,CAAE,WAAU,SAAQ,iBAAkB,CAC3C,GAAI,CAQF,MAAO,CACL,QAAS,CACP,CACE,KAAM,OACN,KAVU,MAAA,EAAA,EAAA,eADH,GAAe,QAAQ,KAAK,CAGvC,EACA,EACD,CAOI,CACF,CACF,OACM,EAAO,CACd,MAAO,CACL,QAAS,CACP,CACE,KAAM,OACN,KAAM,6BAA6B,aAAiB,MAAQ,EAAM,QAAU,OAAO,EAAM,GAC1F,CACF,CACD,QAAS,GACV,GAGN,EAGU,EAAsB,SAA2B,CAC5D,IAAM,EAAKE,EAAS,gBAAgB,CAClC,MAAO,QAAQ,MACf,OAAQ,QAAQ,OACjB,CAAC,CAEI,EAAY,GAChB,IAAI,QAAS,GAAY,EAAG,SAAS,EAAO,EAAQ,CAAC,CAEvD,GAAI,CACF,QAAQ,IAAI,0BAA0B,CACtC,QAAQ,IAAI,0BAA0B,CAEtC,IAAM,EAAgB,MAAM,EAC1B,8HACD,CAGK,EACJ,EAAU,KACP,GACC,EAAS,aAAa,GAAK,EAAc,MAAM,CAAC,aAAa,CAChE,EAAK,QAER,QAAQ,IAAI,sBAAsB,IAAW,CAE7C,QAAQ,IAAI;mBAAsB,CAElC,EAAA,OAAO,SAAS,EAAO,IAAM,CAC3B,QAAQ,IAAI,GAAG,EAAI,EAAE,IAAI,IAAQ,EACjC,CAEF,IAAM,EAAc,MAAM,EACxB;uFACD,CAEG,EAA0B,EAAE,CAahC,GAZA,AASE,EATE,EAAY,MAAM,CAAC,aAAa,GAAK,MACtB,CAAC,GAAGD,EAAAA,OAAO,CAEZ,EACb,MAAM,IAAI,CACV,IAAK,GAAU,SAAS,EAAM,MAAM,CAAE,GAAG,CAAG,EAAE,CAC9C,OACE,GAAU,CAAC,OAAO,MAAM,EAAM,EAAI,GAAS,GAAK,EAAQA,EAAAA,OAAO,OACjE,CACsB,IAAK,GAAMA,EAAAA,OAAO,GAAU,CAGnD,EAAe,SAAW,EAAG,CAC/B,QAAQ,IAAI,qCAAqC,CACjD,EAAG,OAAO,CACV,OAGF,QAAQ,IAAI,sBAAsB,EAAe,KAAK,KAAK,CAAC,KAAK,CACjE,IAAM,EAAS,MAAA,EAAA,EAAA,eAAoB,QAAQ,KAAK,CAAE,EAAU,EAAe,CAC3E,QAAQ,IAAI,EAAO,OACZ,EAAO,CACd,QAAQ,MAAM,SAAU,EAAM,QACtB,CACR,EAAG,OAAO"}
1
+ {"version":3,"file":"installSkills.cjs","names":["z","PLATFORMS","SKILLS","readline"],"sources":["../../../src/tools/installSkills.ts"],"sourcesContent":["import * as readline from 'node:readline';\nimport { installSkills, PLATFORMS, SKILLS, type Skill } from '@intlayer/cli';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport z from 'zod';\n\nexport const loadInstallSkillsTool = (server: McpServer): void => {\n server.registerTool(\n 'intlayer-install-skills',\n {\n title: 'Install Intlayer Skills',\n description:\n 'Install Intlayer documentation and skills to the project to assist AI agents. Ask the user for the platform (Cursor, VSCode, OpenCode, Claude, etc.) and which skills they want to install before calling this tool.',\n inputSchema: {\n platform: z\n .enum(PLATFORMS)\n .describe('The platform to install skills for'),\n skills: z.array(z.enum(SKILLS)).describe('List of skills to install'),\n projectRoot: z\n .string()\n .optional()\n .describe(\n 'Root directory of the project. Defaults to current directory.'\n ),\n },\n },\n\n async ({ platform, skills, projectRoot }) => {\n try {\n const root = projectRoot || process.cwd();\n const message = await installSkills(\n root,\n platform as any,\n skills as any\n );\n\n return {\n content: [\n {\n type: 'text',\n text: message,\n },\n ],\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text',\n text: `Failed to install skills: ${error instanceof Error ? error.message : String(error)}`,\n },\n ],\n isError: true,\n };\n }\n }\n );\n};\n\nexport const runInstallSkillsCLI = async (): Promise<void> => {\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n const question = (query: string): Promise<string> =>\n new Promise((resolve) => rl.question(query, resolve));\n\n try {\n console.log('Install Intlayer Skills');\n console.log('-----------------------');\n\n const platformInput = await question(\n 'Which platform are you using? (Cursor, Windsurf, Trae, OpenCode, GitHub, Claude, VSCode, Cline, RooCode, etc. or \"Other\"): '\n );\n\n // we only accept a single platform here, not an array like the main CLI\n const platform =\n PLATFORMS.find(\n (platform) =>\n platform.toLowerCase() === platformInput.trim().toLowerCase()\n ) || ('Other' as const);\n\n console.log(`Selected platform: ${platform}`);\n\n console.log('\\nAvailable skills:');\n\n SKILLS.forEach((skill, i) => {\n console.log(`${i + 1}. ${skill}`);\n });\n\n const skillsInput = await question(\n '\\nWhich skills do you want to install? (comma separated numbers, e.g. 1,2,3 or \"all\"): '\n );\n\n let selectedSkills: Skill[] = [];\n if (skillsInput.trim().toLowerCase() === 'all') {\n selectedSkills = [...SKILLS];\n } else {\n const indices = skillsInput\n .split(',')\n .map((skill) => parseInt(skill.trim(), 10) - 1)\n .filter(\n (skill) => !Number.isNaN(skill) && skill >= 0 && skill < SKILLS.length\n );\n selectedSkills = indices.map((i) => SKILLS[i] as any);\n }\n\n if (selectedSkills.length === 0) {\n console.log('No valid skills selected. Exiting.');\n rl.close();\n return;\n }\n\n console.log(`Installing skills: ${selectedSkills.join(', ')}...`);\n const result = await installSkills(process.cwd(), platform, selectedSkills);\n console.log(result);\n } catch (error) {\n console.error('Error:', error);\n } finally {\n rl.close();\n }\n};\n"],"mappings":"qOAKA,MAAa,EAAyB,GAA4B,CAChE,EAAO,aACL,0BACA,CACE,MAAO,0BACP,YACE,uNACF,YAAa,CACX,SAAUA,EAAAA,QACP,KAAKC,EAAAA,UAAU,CACf,SAAS,qCAAqC,CACjD,OAAQD,EAAAA,QAAE,MAAMA,EAAAA,QAAE,KAAKE,EAAAA,OAAO,CAAC,CAAC,SAAS,4BAA4B,CACrE,YAAaF,EAAAA,QACV,QAAQ,CACR,UAAU,CACV,SACC,gEACD,CACJ,CACF,CAED,MAAO,CAAE,WAAU,SAAQ,iBAAkB,CAC3C,GAAI,CAQF,MAAO,CACL,QAAS,CACP,CACE,KAAM,OACN,KAVU,MAAA,EAAA,EAAA,eADH,GAAe,QAAQ,KAAK,CAGvC,EACA,EACD,CAOI,CACF,CACF,OACM,EAAO,CACd,MAAO,CACL,QAAS,CACP,CACE,KAAM,OACN,KAAM,6BAA6B,aAAiB,MAAQ,EAAM,QAAU,OAAO,EAAM,GAC1F,CACF,CACD,QAAS,GACV,GAGN,EAGU,EAAsB,SAA2B,CAC5D,IAAM,EAAKG,EAAS,gBAAgB,CAClC,MAAO,QAAQ,MACf,OAAQ,QAAQ,OACjB,CAAC,CAEI,EAAY,GAChB,IAAI,QAAS,GAAY,EAAG,SAAS,EAAO,EAAQ,CAAC,CAEvD,GAAI,CACF,QAAQ,IAAI,0BAA0B,CACtC,QAAQ,IAAI,0BAA0B,CAEtC,IAAM,EAAgB,MAAM,EAC1B,8HACD,CAGK,EACJF,EAAAA,UAAU,KACP,GACC,EAAS,aAAa,GAAK,EAAc,MAAM,CAAC,aAAa,CAChE,EAAK,QAER,QAAQ,IAAI,sBAAsB,IAAW,CAE7C,QAAQ,IAAI;mBAAsB,CAElC,EAAA,OAAO,SAAS,EAAO,IAAM,CAC3B,QAAQ,IAAI,GAAG,EAAI,EAAE,IAAI,IAAQ,EACjC,CAEF,IAAM,EAAc,MAAM,EACxB;uFACD,CAEG,EAA0B,EAAE,CAahC,GAZA,AASE,EATE,EAAY,MAAM,CAAC,aAAa,GAAK,MACtB,CAAC,GAAGC,EAAAA,OAAO,CAEZ,EACb,MAAM,IAAI,CACV,IAAK,GAAU,SAAS,EAAM,MAAM,CAAE,GAAG,CAAG,EAAE,CAC9C,OACE,GAAU,CAAC,OAAO,MAAM,EAAM,EAAI,GAAS,GAAK,EAAQA,EAAAA,OAAO,OACjE,CACsB,IAAK,GAAMA,EAAAA,OAAO,GAAU,CAGnD,EAAe,SAAW,EAAG,CAC/B,QAAQ,IAAI,qCAAqC,CACjD,EAAG,OAAO,CACV,OAGF,QAAQ,IAAI,sBAAsB,EAAe,KAAK,KAAK,CAAC,KAAK,CACjE,IAAM,EAAS,MAAA,EAAA,EAAA,eAAoB,QAAQ,KAAK,CAAE,EAAU,EAAe,CAC3E,QAAQ,IAAI,EAAO,OACZ,EAAO,CACd,QAAQ,MAAM,SAAU,EAAM,QACtB,CACR,EAAG,OAAO"}
@@ -1,4 +1,4 @@
1
- import{SKILLS as e,installSkills as t}from"@intlayer/cli";import*as n from"node:readline";import r from"zod";const i=`Cursor.Windsurf.Trae.OpenCode.GitHub.Claude.VSCode.Antigravity.Augment.OpenClaw.Cline.CodeBuddy.CommandCode.Continue.Crush.Droid.Goose.Junie.IFlow.KiloCode.Kiro.Kode.MCPJam.MistralVibe.Mux.OpenHands.Pi.Qoder.Qwen.RooCode.TraeCN.Zencoder.Neovate.Pochi.Other`.split(`.`),a=n=>{n.registerTool(`intlayer-install-skills`,{title:`Install Intlayer Skills`,description:`Install Intlayer documentation and skills to the project to assist AI agents. Ask the user for the platform (Cursor, VSCode, OpenCode, Claude, etc.) and which skills they want to install before calling this tool.`,inputSchema:{platform:r.enum(`Cursor.Windsurf.Trae.OpenCode.GitHub.Claude.VSCode.Antigravity.Augment.OpenClaw.Cline.CodeBuddy.CommandCode.Continue.Crush.Droid.Goose.Junie.IFlow.KiloCode.Kiro.Kode.MCPJam.MistralVibe.Mux.OpenHands.Pi.Qoder.Qwen.RooCode.TraeCN.Zencoder.Neovate.Pochi.Other`.split(`.`)).describe(`The platform to install skills for`),skills:r.array(r.enum(e)).describe(`List of skills to install`),projectRoot:r.string().optional().describe(`Root directory of the project. Defaults to current directory.`)}},async({platform:e,skills:n,projectRoot:r})=>{try{return{content:[{type:`text`,text:await t(r||process.cwd(),e,n)}]}}catch(e){return{content:[{type:`text`,text:`Failed to install skills: ${e instanceof Error?e.message:String(e)}`}],isError:!0}}})},o=async()=>{let r=n.createInterface({input:process.stdin,output:process.stdout}),a=e=>new Promise(t=>r.question(e,t));try{console.log(`Install Intlayer Skills`),console.log(`-----------------------`);let n=await a(`Which platform are you using? (Cursor, Windsurf, Trae, OpenCode, GitHub, Claude, VSCode, Cline, RooCode, etc. or "Other"): `),o=i.find(e=>e.toLowerCase()===n.trim().toLowerCase())||`Other`;console.log(`Selected platform: ${o}`),console.log(`
2
- Available skills:`),e.forEach((e,t)=>{console.log(`${t+1}. ${e}`)});let s=await a(`
3
- Which skills do you want to install? (comma separated numbers, e.g. 1,2,3 or "all"): `),c=[];if(c=s.trim().toLowerCase()===`all`?[...e]:s.split(`,`).map(e=>parseInt(e.trim(),10)-1).filter(t=>!Number.isNaN(t)&&t>=0&&t<e.length).map(t=>e[t]),c.length===0){console.log(`No valid skills selected. Exiting.`),r.close();return}console.log(`Installing skills: ${c.join(`, `)}...`);let l=await t(process.cwd(),o,c);console.log(l)}catch(e){console.error(`Error:`,e)}finally{r.close()}};export{a as loadInstallSkillsTool,o as runInstallSkillsCLI};
1
+ import{PLATFORMS as e,SKILLS as t,installSkills as n}from"@intlayer/cli";import*as r from"node:readline";import i from"zod";const a=r=>{r.registerTool(`intlayer-install-skills`,{title:`Install Intlayer Skills`,description:`Install Intlayer documentation and skills to the project to assist AI agents. Ask the user for the platform (Cursor, VSCode, OpenCode, Claude, etc.) and which skills they want to install before calling this tool.`,inputSchema:{platform:i.enum(e).describe(`The platform to install skills for`),skills:i.array(i.enum(t)).describe(`List of skills to install`),projectRoot:i.string().optional().describe(`Root directory of the project. Defaults to current directory.`)}},async({platform:e,skills:t,projectRoot:r})=>{try{return{content:[{type:`text`,text:await n(r||process.cwd(),e,t)}]}}catch(e){return{content:[{type:`text`,text:`Failed to install skills: ${e instanceof Error?e.message:String(e)}`}],isError:!0}}})},o=async()=>{let i=r.createInterface({input:process.stdin,output:process.stdout}),a=e=>new Promise(t=>i.question(e,t));try{console.log(`Install Intlayer Skills`),console.log(`-----------------------`);let r=await a(`Which platform are you using? (Cursor, Windsurf, Trae, OpenCode, GitHub, Claude, VSCode, Cline, RooCode, etc. or "Other"): `),o=e.find(e=>e.toLowerCase()===r.trim().toLowerCase())||`Other`;console.log(`Selected platform: ${o}`),console.log(`
2
+ Available skills:`),t.forEach((e,t)=>{console.log(`${t+1}. ${e}`)});let s=await a(`
3
+ Which skills do you want to install? (comma separated numbers, e.g. 1,2,3 or "all"): `),c=[];if(c=s.trim().toLowerCase()===`all`?[...t]:s.split(`,`).map(e=>parseInt(e.trim(),10)-1).filter(e=>!Number.isNaN(e)&&e>=0&&e<t.length).map(e=>t[e]),c.length===0){console.log(`No valid skills selected. Exiting.`),i.close();return}console.log(`Installing skills: ${c.join(`, `)}...`);let l=await n(process.cwd(),o,c);console.log(l)}catch(e){console.error(`Error:`,e)}finally{i.close()}};export{a as loadInstallSkillsTool,o as runInstallSkillsCLI};
4
4
  //# sourceMappingURL=installSkills.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"installSkills.mjs","names":[],"sources":["../../../src/tools/installSkills.ts"],"sourcesContent":["import * as readline from 'node:readline';\nimport { installSkills, SKILLS, type Skill } from '@intlayer/cli';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport z from 'zod';\n\nconst PLATFORMS = [\n 'Cursor',\n 'Windsurf',\n 'Trae',\n 'OpenCode',\n 'GitHub',\n 'Claude',\n 'VSCode',\n 'Antigravity',\n 'Augment',\n 'OpenClaw',\n 'Cline',\n 'CodeBuddy',\n 'CommandCode',\n 'Continue',\n 'Crush',\n 'Droid',\n 'Goose',\n 'Junie',\n 'IFlow',\n 'KiloCode',\n 'Kiro',\n 'Kode',\n 'MCPJam',\n 'MistralVibe',\n 'Mux',\n 'OpenHands',\n 'Pi',\n 'Qoder',\n 'Qwen',\n 'RooCode',\n 'TraeCN',\n 'Zencoder',\n 'Neovate',\n 'Pochi',\n 'Other',\n] as const;\n\nexport const loadInstallSkillsTool = (server: McpServer): void => {\n server.registerTool(\n 'intlayer-install-skills',\n {\n title: 'Install Intlayer Skills',\n description:\n 'Install Intlayer documentation and skills to the project to assist AI agents. Ask the user for the platform (Cursor, VSCode, OpenCode, Claude, etc.) and which skills they want to install before calling this tool.',\n inputSchema: {\n platform: z\n .enum([\n 'Cursor',\n 'Windsurf',\n 'Trae',\n 'OpenCode',\n 'GitHub',\n 'Claude',\n 'VSCode',\n 'Antigravity',\n 'Augment',\n 'OpenClaw',\n 'Cline',\n 'CodeBuddy',\n 'CommandCode',\n 'Continue',\n 'Crush',\n 'Droid',\n 'Goose',\n 'Junie',\n 'IFlow',\n 'KiloCode',\n 'Kiro',\n 'Kode',\n 'MCPJam',\n 'MistralVibe',\n 'Mux',\n 'OpenHands',\n 'Pi',\n 'Qoder',\n 'Qwen',\n 'RooCode',\n 'TraeCN',\n 'Zencoder',\n 'Neovate',\n 'Pochi',\n 'Other',\n ])\n .describe('The platform to install skills for'),\n skills: z.array(z.enum(SKILLS)).describe('List of skills to install'),\n projectRoot: z\n .string()\n .optional()\n .describe(\n 'Root directory of the project. Defaults to current directory.'\n ),\n },\n },\n async ({ platform, skills, projectRoot }) => {\n try {\n const root = projectRoot || process.cwd();\n const message = await installSkills(\n root,\n platform as any,\n skills as any\n );\n\n return {\n content: [\n {\n type: 'text',\n text: message,\n },\n ],\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text',\n text: `Failed to install skills: ${error instanceof Error ? error.message : String(error)}`,\n },\n ],\n isError: true,\n };\n }\n }\n );\n};\n\nexport const runInstallSkillsCLI = async (): Promise<void> => {\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n const question = (query: string): Promise<string> =>\n new Promise((resolve) => rl.question(query, resolve));\n\n try {\n console.log('Install Intlayer Skills');\n console.log('-----------------------');\n\n const platformInput = await question(\n 'Which platform are you using? (Cursor, Windsurf, Trae, OpenCode, GitHub, Claude, VSCode, Cline, RooCode, etc. or \"Other\"): '\n );\n\n // we only accept a single platform here, not an array like the main CLI\n const platform =\n PLATFORMS.find(\n (platform) =>\n platform.toLowerCase() === platformInput.trim().toLowerCase()\n ) || ('Other' as const);\n\n console.log(`Selected platform: ${platform}`);\n\n console.log('\\nAvailable skills:');\n\n SKILLS.forEach((skill, i) => {\n console.log(`${i + 1}. ${skill}`);\n });\n\n const skillsInput = await question(\n '\\nWhich skills do you want to install? (comma separated numbers, e.g. 1,2,3 or \"all\"): '\n );\n\n let selectedSkills: Skill[] = [];\n if (skillsInput.trim().toLowerCase() === 'all') {\n selectedSkills = [...SKILLS];\n } else {\n const indices = skillsInput\n .split(',')\n .map((skill) => parseInt(skill.trim(), 10) - 1)\n .filter(\n (skill) => !Number.isNaN(skill) && skill >= 0 && skill < SKILLS.length\n );\n selectedSkills = indices.map((i) => SKILLS[i] as any);\n }\n\n if (selectedSkills.length === 0) {\n console.log('No valid skills selected. Exiting.');\n rl.close();\n return;\n }\n\n console.log(`Installing skills: ${selectedSkills.join(', ')}...`);\n const result = await installSkills(process.cwd(), platform, selectedSkills);\n console.log(result);\n } catch (error) {\n console.error('Error:', error);\n } finally {\n rl.close();\n }\n};\n"],"mappings":"6GAKA,MAAM,EAAY,6QAoCjB,CAEY,EAAyB,GAA4B,CAChE,EAAO,aACL,0BACA,CACE,MAAO,0BACP,YACE,uNACF,YAAa,CACX,SAAU,EACP,KAAK,6QAoCL,CAAC,CACD,SAAS,qCAAqC,CACjD,OAAQ,EAAE,MAAM,EAAE,KAAK,EAAO,CAAC,CAAC,SAAS,4BAA4B,CACrE,YAAa,EACV,QAAQ,CACR,UAAU,CACV,SACC,gEACD,CACJ,CACF,CACD,MAAO,CAAE,WAAU,SAAQ,iBAAkB,CAC3C,GAAI,CAQF,MAAO,CACL,QAAS,CACP,CACE,KAAM,OACN,KAVU,MAAM,EADT,GAAe,QAAQ,KAAK,CAGvC,EACA,EACD,CAOI,CACF,CACF,OACM,EAAO,CACd,MAAO,CACL,QAAS,CACP,CACE,KAAM,OACN,KAAM,6BAA6B,aAAiB,MAAQ,EAAM,QAAU,OAAO,EAAM,GAC1F,CACF,CACD,QAAS,GACV,GAGN,EAGU,EAAsB,SAA2B,CAC5D,IAAM,EAAK,EAAS,gBAAgB,CAClC,MAAO,QAAQ,MACf,OAAQ,QAAQ,OACjB,CAAC,CAEI,EAAY,GAChB,IAAI,QAAS,GAAY,EAAG,SAAS,EAAO,EAAQ,CAAC,CAEvD,GAAI,CACF,QAAQ,IAAI,0BAA0B,CACtC,QAAQ,IAAI,0BAA0B,CAEtC,IAAM,EAAgB,MAAM,EAC1B,8HACD,CAGK,EACJ,EAAU,KACP,GACC,EAAS,aAAa,GAAK,EAAc,MAAM,CAAC,aAAa,CAChE,EAAK,QAER,QAAQ,IAAI,sBAAsB,IAAW,CAE7C,QAAQ,IAAI;mBAAsB,CAElC,EAAO,SAAS,EAAO,IAAM,CAC3B,QAAQ,IAAI,GAAG,EAAI,EAAE,IAAI,IAAQ,EACjC,CAEF,IAAM,EAAc,MAAM,EACxB;uFACD,CAEG,EAA0B,EAAE,CAahC,GAZA,AASE,EATE,EAAY,MAAM,CAAC,aAAa,GAAK,MACtB,CAAC,GAAG,EAAO,CAEZ,EACb,MAAM,IAAI,CACV,IAAK,GAAU,SAAS,EAAM,MAAM,CAAE,GAAG,CAAG,EAAE,CAC9C,OACE,GAAU,CAAC,OAAO,MAAM,EAAM,EAAI,GAAS,GAAK,EAAQ,EAAO,OACjE,CACsB,IAAK,GAAM,EAAO,GAAU,CAGnD,EAAe,SAAW,EAAG,CAC/B,QAAQ,IAAI,qCAAqC,CACjD,EAAG,OAAO,CACV,OAGF,QAAQ,IAAI,sBAAsB,EAAe,KAAK,KAAK,CAAC,KAAK,CACjE,IAAM,EAAS,MAAM,EAAc,QAAQ,KAAK,CAAE,EAAU,EAAe,CAC3E,QAAQ,IAAI,EAAO,OACZ,EAAO,CACd,QAAQ,MAAM,SAAU,EAAM,QACtB,CACR,EAAG,OAAO"}
1
+ {"version":3,"file":"installSkills.mjs","names":[],"sources":["../../../src/tools/installSkills.ts"],"sourcesContent":["import * as readline from 'node:readline';\nimport { installSkills, PLATFORMS, SKILLS, type Skill } from '@intlayer/cli';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport z from 'zod';\n\nexport const loadInstallSkillsTool = (server: McpServer): void => {\n server.registerTool(\n 'intlayer-install-skills',\n {\n title: 'Install Intlayer Skills',\n description:\n 'Install Intlayer documentation and skills to the project to assist AI agents. Ask the user for the platform (Cursor, VSCode, OpenCode, Claude, etc.) and which skills they want to install before calling this tool.',\n inputSchema: {\n platform: z\n .enum(PLATFORMS)\n .describe('The platform to install skills for'),\n skills: z.array(z.enum(SKILLS)).describe('List of skills to install'),\n projectRoot: z\n .string()\n .optional()\n .describe(\n 'Root directory of the project. Defaults to current directory.'\n ),\n },\n },\n\n async ({ platform, skills, projectRoot }) => {\n try {\n const root = projectRoot || process.cwd();\n const message = await installSkills(\n root,\n platform as any,\n skills as any\n );\n\n return {\n content: [\n {\n type: 'text',\n text: message,\n },\n ],\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text',\n text: `Failed to install skills: ${error instanceof Error ? error.message : String(error)}`,\n },\n ],\n isError: true,\n };\n }\n }\n );\n};\n\nexport const runInstallSkillsCLI = async (): Promise<void> => {\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n const question = (query: string): Promise<string> =>\n new Promise((resolve) => rl.question(query, resolve));\n\n try {\n console.log('Install Intlayer Skills');\n console.log('-----------------------');\n\n const platformInput = await question(\n 'Which platform are you using? (Cursor, Windsurf, Trae, OpenCode, GitHub, Claude, VSCode, Cline, RooCode, etc. or \"Other\"): '\n );\n\n // we only accept a single platform here, not an array like the main CLI\n const platform =\n PLATFORMS.find(\n (platform) =>\n platform.toLowerCase() === platformInput.trim().toLowerCase()\n ) || ('Other' as const);\n\n console.log(`Selected platform: ${platform}`);\n\n console.log('\\nAvailable skills:');\n\n SKILLS.forEach((skill, i) => {\n console.log(`${i + 1}. ${skill}`);\n });\n\n const skillsInput = await question(\n '\\nWhich skills do you want to install? (comma separated numbers, e.g. 1,2,3 or \"all\"): '\n );\n\n let selectedSkills: Skill[] = [];\n if (skillsInput.trim().toLowerCase() === 'all') {\n selectedSkills = [...SKILLS];\n } else {\n const indices = skillsInput\n .split(',')\n .map((skill) => parseInt(skill.trim(), 10) - 1)\n .filter(\n (skill) => !Number.isNaN(skill) && skill >= 0 && skill < SKILLS.length\n );\n selectedSkills = indices.map((i) => SKILLS[i] as any);\n }\n\n if (selectedSkills.length === 0) {\n console.log('No valid skills selected. Exiting.');\n rl.close();\n return;\n }\n\n console.log(`Installing skills: ${selectedSkills.join(', ')}...`);\n const result = await installSkills(process.cwd(), platform, selectedSkills);\n console.log(result);\n } catch (error) {\n console.error('Error:', error);\n } finally {\n rl.close();\n }\n};\n"],"mappings":"4HAKA,MAAa,EAAyB,GAA4B,CAChE,EAAO,aACL,0BACA,CACE,MAAO,0BACP,YACE,uNACF,YAAa,CACX,SAAU,EACP,KAAK,EAAU,CACf,SAAS,qCAAqC,CACjD,OAAQ,EAAE,MAAM,EAAE,KAAK,EAAO,CAAC,CAAC,SAAS,4BAA4B,CACrE,YAAa,EACV,QAAQ,CACR,UAAU,CACV,SACC,gEACD,CACJ,CACF,CAED,MAAO,CAAE,WAAU,SAAQ,iBAAkB,CAC3C,GAAI,CAQF,MAAO,CACL,QAAS,CACP,CACE,KAAM,OACN,KAVU,MAAM,EADT,GAAe,QAAQ,KAAK,CAGvC,EACA,EACD,CAOI,CACF,CACF,OACM,EAAO,CACd,MAAO,CACL,QAAS,CACP,CACE,KAAM,OACN,KAAM,6BAA6B,aAAiB,MAAQ,EAAM,QAAU,OAAO,EAAM,GAC1F,CACF,CACD,QAAS,GACV,GAGN,EAGU,EAAsB,SAA2B,CAC5D,IAAM,EAAK,EAAS,gBAAgB,CAClC,MAAO,QAAQ,MACf,OAAQ,QAAQ,OACjB,CAAC,CAEI,EAAY,GAChB,IAAI,QAAS,GAAY,EAAG,SAAS,EAAO,EAAQ,CAAC,CAEvD,GAAI,CACF,QAAQ,IAAI,0BAA0B,CACtC,QAAQ,IAAI,0BAA0B,CAEtC,IAAM,EAAgB,MAAM,EAC1B,8HACD,CAGK,EACJ,EAAU,KACP,GACC,EAAS,aAAa,GAAK,EAAc,MAAM,CAAC,aAAa,CAChE,EAAK,QAER,QAAQ,IAAI,sBAAsB,IAAW,CAE7C,QAAQ,IAAI;mBAAsB,CAElC,EAAO,SAAS,EAAO,IAAM,CAC3B,QAAQ,IAAI,GAAG,EAAI,EAAE,IAAI,IAAQ,EACjC,CAEF,IAAM,EAAc,MAAM,EACxB;uFACD,CAEG,EAA0B,EAAE,CAahC,GAZA,AASE,EATE,EAAY,MAAM,CAAC,aAAa,GAAK,MACtB,CAAC,GAAG,EAAO,CAEZ,EACb,MAAM,IAAI,CACV,IAAK,GAAU,SAAS,EAAM,MAAM,CAAE,GAAG,CAAG,EAAE,CAC9C,OACE,GAAU,CAAC,OAAO,MAAM,EAAM,EAAI,GAAS,GAAK,EAAQ,EAAO,OACjE,CACsB,IAAK,GAAM,EAAO,GAAU,CAGnD,EAAe,SAAW,EAAG,CAC/B,QAAQ,IAAI,qCAAqC,CACjD,EAAG,OAAO,CACV,OAGF,QAAQ,IAAI,sBAAsB,EAAe,KAAK,KAAK,CAAC,KAAK,CACjE,IAAM,EAAS,MAAM,EAAc,QAAQ,KAAK,CAAE,EAAU,EAAe,CAC3E,QAAQ,IAAI,EAAO,OACZ,EAAO,CACd,QAAQ,MAAM,SAAU,EAAM,QACtB,CACR,EAAG,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"installSkills.d.ts","names":[],"sources":["../../../src/tools/installSkills.ts"],"mappings":";;;cA2Ca,qBAAA,GAAyB,MAAA,EAAQ,SAAA;AAAA,cAwFjC,mBAAA,QAAgC,OAAA"}
1
+ {"version":3,"file":"installSkills.d.ts","names":[],"sources":["../../../src/tools/installSkills.ts"],"mappings":";;;cAKa,qBAAA,GAAyB,MAAA,EAAQ,SAAA;AAAA,cAqDjC,mBAAA,QAAgC,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/mcp",
3
- "version": "8.1.11",
3
+ "version": "8.2.0",
4
4
  "private": false,
5
5
  "description": "Intlayer MCP server. Handle MCP to help IDE to use Intlayer. It build, fill, pull, push, dictionaries",
6
6
  "keywords": [
@@ -96,17 +96,17 @@
96
96
  },
97
97
  "dependencies": {
98
98
  "@intlayer/api": "8.1.11",
99
- "@intlayer/cli": "8.1.11",
99
+ "@intlayer/cli": "8.2.0",
100
100
  "@intlayer/config": "8.1.11",
101
- "@intlayer/docs": "8.1.11",
102
- "@intlayer/types": "8.1.11",
101
+ "@intlayer/docs": "8.2.0",
102
+ "@intlayer/types": "8.2.0",
103
103
  "@modelcontextprotocol/sdk": "1.25.3",
104
104
  "dotenv": "17.3.1",
105
105
  "express": "5.2.1",
106
106
  "zod": "4.3.6"
107
107
  },
108
108
  "devDependencies": {
109
- "@intlayer/types": "8.1.11",
109
+ "@intlayer/types": "8.2.0",
110
110
  "@modelcontextprotocol/inspector": "0.19.0",
111
111
  "@types/express": "5.0.6",
112
112
  "@types/node": "25.3.3",