@intlayer/mcp 8.1.0 → 8.1.1

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,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
- let node_path = require("node:path");
4
3
  let node_fs = require("node:fs");
4
+ let node_path = require("node:path");
5
5
  let node_url = require("node:url");
6
6
  let _intlayer_config = require("@intlayer/config");
7
7
  let _modelcontextprotocol_sdk_client_index_js = require("@modelcontextprotocol/sdk/client/index.js");
@@ -3,8 +3,8 @@ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
3
  const require_tools_cli = require('../tools/cli.cjs');
4
4
  const require_tools_docs = require('../tools/docs.cjs');
5
5
  const require_tools_installSkills = require('../tools/installSkills.cjs');
6
- let node_path = require("node:path");
7
6
  let node_fs = require("node:fs");
7
+ let node_path = require("node:path");
8
8
  let node_url = require("node:url");
9
9
  let _intlayer_config = require("@intlayer/config");
10
10
  let _modelcontextprotocol_sdk_server_mcp_js = require("@modelcontextprotocol/sdk/server/mcp.js");
@@ -14,9 +14,39 @@ const loadInstallSkillsTool = (server) => {
14
14
  inputSchema: {
15
15
  platform: zod.default.enum([
16
16
  "Cursor",
17
- "VSCode",
17
+ "Windsurf",
18
+ "Trae",
18
19
  "OpenCode",
20
+ "GitHub",
19
21
  "Claude",
22
+ "VSCode",
23
+ "Antigravity",
24
+ "Augment",
25
+ "OpenClaw",
26
+ "Cline",
27
+ "CodeBuddy",
28
+ "CommandCode",
29
+ "Continue",
30
+ "Crush",
31
+ "Droid",
32
+ "Goose",
33
+ "Junie",
34
+ "IFlow",
35
+ "KiloCode",
36
+ "Kiro",
37
+ "Kode",
38
+ "MCPJam",
39
+ "MistralVibe",
40
+ "Mux",
41
+ "OpenHands",
42
+ "Pi",
43
+ "Qoder",
44
+ "Qwen",
45
+ "RooCode",
46
+ "TraeCN",
47
+ "Zencoder",
48
+ "Neovate",
49
+ "Pochi",
20
50
  "Other"
21
51
  ]).describe("The platform to install skills for"),
22
52
  skills: zod.default.array(zod.default.enum(_intlayer_chokidar.SKILLS)).describe("List of skills to install"),
@@ -48,12 +78,42 @@ const runInstallSkillsCLI = async () => {
48
78
  try {
49
79
  console.log("Install Intlayer Skills");
50
80
  console.log("-----------------------");
51
- const platformInput = await question("Which platform are you using? (Cursor, VSCode, OpenCode, Claude, Other): ");
81
+ const platformInput = await question("Which platform are you using? (Cursor, Windsurf, Trae, OpenCode, GitHub, Claude, VSCode, Cline, RooCode, etc. or \"Other\"): ");
52
82
  const platform = [
53
83
  "Cursor",
54
- "VSCode",
84
+ "Windsurf",
85
+ "Trae",
55
86
  "OpenCode",
87
+ "GitHub",
56
88
  "Claude",
89
+ "VSCode",
90
+ "Antigravity",
91
+ "Augment",
92
+ "OpenClaw",
93
+ "Cline",
94
+ "CodeBuddy",
95
+ "CommandCode",
96
+ "Continue",
97
+ "Crush",
98
+ "Droid",
99
+ "Goose",
100
+ "Junie",
101
+ "IFlow",
102
+ "KiloCode",
103
+ "Kiro",
104
+ "Kode",
105
+ "MCPJam",
106
+ "MistralVibe",
107
+ "Mux",
108
+ "OpenHands",
109
+ "Pi",
110
+ "Qoder",
111
+ "Qwen",
112
+ "RooCode",
113
+ "TraeCN",
114
+ "Zencoder",
115
+ "Neovate",
116
+ "Pochi",
57
117
  "Other"
58
118
  ].find((p) => p.toLowerCase() === platformInput.trim().toLowerCase()) || "Other";
59
119
  console.log(`Selected platform: ${platform}`);
@@ -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/chokidar';\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(['Cursor', 'VSCode', 'OpenCode', 'Claude', 'Other'])\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, VSCode, OpenCode, Claude, Other): '\n );\n const platform = (['Cursor', 'VSCode', 'OpenCode', 'Claude', 'Other'].find(\n (p) => p.toLowerCase() === platformInput.trim().toLowerCase()\n ) || 'Other') as 'Cursor' | 'VSCode' | 'OpenCode' | 'Claude' | 'Other';\n\n console.log(`Selected platform: ${platform}`);\n\n const availableSkills = SKILLS;\n console.log('\\nAvailable skills:');\n availableSkills.forEach((s, i) => {\n console.log(`${i + 1}. ${s}`);\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 = [...availableSkills];\n } else {\n const indices = skillsInput\n .split(',')\n .map((s) => parseInt(s.trim()) - 1)\n .filter((i) => !isNaN(i) && i >= 0 && i < availableSkills.length);\n selectedSkills = indices.map((i) => availableSkills[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":";;;;;;;;;AAKA,MAAa,yBAAyB,WAA4B;AAChE,QAAO,aACL,2BACA;EACE,OAAO;EACP,aACE;EACF,aAAa;GACX,UAAUA,YACP,KAAK;IAAC;IAAU;IAAU;IAAY;IAAU;IAAQ,CAAC,CACzD,SAAS,qCAAqC;GACjD,QAAQA,YAAE,MAAMA,YAAE,KAAKC,0BAAO,CAAC,CAAC,SAAS,4BAA4B;GACrE,aAAaD,YACV,QAAQ,CACR,UAAU,CACV,SACC,gEACD;GACJ;EACF,EACD,OAAO,EAAE,UAAU,QAAQ,kBAAkB;AAC3C,MAAI;AAQF,UAAO,EACL,SAAS,CACP;IACE,MAAM;IACN,MAVU,4CADH,eAAe,QAAQ,KAAK,EAGvC,UACA,OACD;IAOI,CACF,EACF;WACM,OAAO;AACd,UAAO;IACL,SAAS,CACP;KACE,MAAM;KACN,MAAM,6BAA6B,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;KAC1F,CACF;IACD,SAAS;IACV;;GAGN;;AAGH,MAAa,sBAAsB,YAA2B;CAC5D,MAAM,KAAKE,cAAS,gBAAgB;EAClC,OAAO,QAAQ;EACf,QAAQ,QAAQ;EACjB,CAAC;CAEF,MAAM,YAAY,UAChB,IAAI,SAAS,YAAY,GAAG,SAAS,OAAO,QAAQ,CAAC;AAEvD,KAAI;AACF,UAAQ,IAAI,0BAA0B;AACtC,UAAQ,IAAI,0BAA0B;EAEtC,MAAM,gBAAgB,MAAM,SAC1B,4EACD;EACD,MAAM,WAAY;GAAC;GAAU;GAAU;GAAY;GAAU;GAAQ,CAAC,MACnE,MAAM,EAAE,aAAa,KAAK,cAAc,MAAM,CAAC,aAAa,CAC9D,IAAI;AAEL,UAAQ,IAAI,sBAAsB,WAAW;EAE7C,MAAM,kBAAkBD;AACxB,UAAQ,IAAI,sBAAsB;AAClC,kBAAgB,SAAS,GAAG,MAAM;AAChC,WAAQ,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI;IAC7B;EAEF,MAAM,cAAc,MAAM,SACxB,4FACD;EAED,IAAI,iBAA0B,EAAE;AAChC,MAAI,YAAY,MAAM,CAAC,aAAa,KAAK,MACvC,kBAAiB,CAAC,GAAG,gBAAgB;MAMrC,kBAJgB,YACb,MAAM,IAAI,CACV,KAAK,MAAM,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,CAClC,QAAQ,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,KAAK,IAAI,gBAAgB,OAAO,CAC1C,KAAK,MAAM,gBAAgB,GAAU;AAGhE,MAAI,eAAe,WAAW,GAAG;AAC/B,WAAQ,IAAI,qCAAqC;AACjD,MAAG,OAAO;AACV;;AAGF,UAAQ,IAAI,sBAAsB,eAAe,KAAK,KAAK,CAAC,KAAK;EACjE,MAAM,SAAS,4CAAoB,QAAQ,KAAK,EAAE,UAAU,eAAe;AAC3E,UAAQ,IAAI,OAAO;UACZ,OAAO;AACd,UAAQ,MAAM,UAAU,MAAM;WACtB;AACR,KAAG,OAAO"}
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/chokidar';\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([\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 const platform = ([\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 ].find((p) => p.toLowerCase() === platformInput.trim().toLowerCase()) ||\n 'Other') as\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 console.log(`Selected platform: ${platform}`);\n\n const availableSkills = SKILLS;\n console.log('\\nAvailable skills:');\n availableSkills.forEach((s, i) => {\n console.log(`${i + 1}. ${s}`);\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 = [...availableSkills];\n } else {\n const indices = skillsInput\n .split(',')\n .map((s) => parseInt(s.trim()) - 1)\n .filter((i) => !isNaN(i) && i >= 0 && i < availableSkills.length);\n selectedSkills = indices.map((i) => availableSkills[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":";;;;;;;;;AAKA,MAAa,yBAAyB,WAA4B;AAChE,QAAO,aACL,2BACA;EACE,OAAO;EACP,aACE;EACF,aAAa;GACX,UAAUA,YACP,KAAK;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACD,CAAC,CACD,SAAS,qCAAqC;GACjD,QAAQA,YAAE,MAAMA,YAAE,KAAKC,0BAAO,CAAC,CAAC,SAAS,4BAA4B;GACrE,aAAaD,YACV,QAAQ,CACR,UAAU,CACV,SACC,gEACD;GACJ;EACF,EACD,OAAO,EAAE,UAAU,QAAQ,kBAAkB;AAC3C,MAAI;AAQF,UAAO,EACL,SAAS,CACP;IACE,MAAM;IACN,MAVU,4CADH,eAAe,QAAQ,KAAK,EAGvC,UACA,OACD;IAOI,CACF,EACF;WACM,OAAO;AACd,UAAO;IACL,SAAS,CACP;KACE,MAAM;KACN,MAAM,6BAA6B,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;KAC1F,CACF;IACD,SAAS;IACV;;GAGN;;AAGH,MAAa,sBAAsB,YAA2B;CAC5D,MAAM,KAAKE,cAAS,gBAAgB;EAClC,OAAO,QAAQ;EACf,QAAQ,QAAQ;EACjB,CAAC;CAEF,MAAM,YAAY,UAChB,IAAI,SAAS,YAAY,GAAG,SAAS,OAAO,QAAQ,CAAC;AAEvD,KAAI;AACF,UAAQ,IAAI,0BAA0B;AACtC,UAAQ,IAAI,0BAA0B;EAEtC,MAAM,gBAAgB,MAAM,SAC1B,gIACD;EACD,MAAM,WAAY;GAChB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC,MAAM,MAAM,EAAE,aAAa,KAAK,cAAc,MAAM,CAAC,aAAa,CAAC,IACnE;AAqCF,UAAQ,IAAI,sBAAsB,WAAW;EAE7C,MAAM,kBAAkBD;AACxB,UAAQ,IAAI,sBAAsB;AAClC,kBAAgB,SAAS,GAAG,MAAM;AAChC,WAAQ,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI;IAC7B;EAEF,MAAM,cAAc,MAAM,SACxB,4FACD;EAED,IAAI,iBAA0B,EAAE;AAChC,MAAI,YAAY,MAAM,CAAC,aAAa,KAAK,MACvC,kBAAiB,CAAC,GAAG,gBAAgB;MAMrC,kBAJgB,YACb,MAAM,IAAI,CACV,KAAK,MAAM,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,CAClC,QAAQ,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,KAAK,IAAI,gBAAgB,OAAO,CAC1C,KAAK,MAAM,gBAAgB,GAAU;AAGhE,MAAI,eAAe,WAAW,GAAG;AAC/B,WAAQ,IAAI,qCAAqC;AACjD,MAAG,OAAO;AACV;;AAGF,UAAQ,IAAI,sBAAsB,eAAe,KAAK,KAAK,CAAC,KAAK;EACjE,MAAM,SAAS,4CAAoB,QAAQ,KAAK,EAAE,UAAU,eAAe;AAC3E,UAAQ,IAAI,OAAO;UACZ,OAAO;AACd,UAAQ,MAAM,UAAU,MAAM;WACtB;AACR,KAAG,OAAO"}
@@ -10,9 +10,39 @@ const loadInstallSkillsTool = (server) => {
10
10
  inputSchema: {
11
11
  platform: z.enum([
12
12
  "Cursor",
13
- "VSCode",
13
+ "Windsurf",
14
+ "Trae",
14
15
  "OpenCode",
16
+ "GitHub",
15
17
  "Claude",
18
+ "VSCode",
19
+ "Antigravity",
20
+ "Augment",
21
+ "OpenClaw",
22
+ "Cline",
23
+ "CodeBuddy",
24
+ "CommandCode",
25
+ "Continue",
26
+ "Crush",
27
+ "Droid",
28
+ "Goose",
29
+ "Junie",
30
+ "IFlow",
31
+ "KiloCode",
32
+ "Kiro",
33
+ "Kode",
34
+ "MCPJam",
35
+ "MistralVibe",
36
+ "Mux",
37
+ "OpenHands",
38
+ "Pi",
39
+ "Qoder",
40
+ "Qwen",
41
+ "RooCode",
42
+ "TraeCN",
43
+ "Zencoder",
44
+ "Neovate",
45
+ "Pochi",
16
46
  "Other"
17
47
  ]).describe("The platform to install skills for"),
18
48
  skills: z.array(z.enum(SKILLS)).describe("List of skills to install"),
@@ -44,12 +74,42 @@ const runInstallSkillsCLI = async () => {
44
74
  try {
45
75
  console.log("Install Intlayer Skills");
46
76
  console.log("-----------------------");
47
- const platformInput = await question("Which platform are you using? (Cursor, VSCode, OpenCode, Claude, Other): ");
77
+ const platformInput = await question("Which platform are you using? (Cursor, Windsurf, Trae, OpenCode, GitHub, Claude, VSCode, Cline, RooCode, etc. or \"Other\"): ");
48
78
  const platform = [
49
79
  "Cursor",
50
- "VSCode",
80
+ "Windsurf",
81
+ "Trae",
51
82
  "OpenCode",
83
+ "GitHub",
52
84
  "Claude",
85
+ "VSCode",
86
+ "Antigravity",
87
+ "Augment",
88
+ "OpenClaw",
89
+ "Cline",
90
+ "CodeBuddy",
91
+ "CommandCode",
92
+ "Continue",
93
+ "Crush",
94
+ "Droid",
95
+ "Goose",
96
+ "Junie",
97
+ "IFlow",
98
+ "KiloCode",
99
+ "Kiro",
100
+ "Kode",
101
+ "MCPJam",
102
+ "MistralVibe",
103
+ "Mux",
104
+ "OpenHands",
105
+ "Pi",
106
+ "Qoder",
107
+ "Qwen",
108
+ "RooCode",
109
+ "TraeCN",
110
+ "Zencoder",
111
+ "Neovate",
112
+ "Pochi",
53
113
  "Other"
54
114
  ].find((p) => p.toLowerCase() === platformInput.trim().toLowerCase()) || "Other";
55
115
  console.log(`Selected platform: ${platform}`);
@@ -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/chokidar';\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(['Cursor', 'VSCode', 'OpenCode', 'Claude', 'Other'])\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, VSCode, OpenCode, Claude, Other): '\n );\n const platform = (['Cursor', 'VSCode', 'OpenCode', 'Claude', 'Other'].find(\n (p) => p.toLowerCase() === platformInput.trim().toLowerCase()\n ) || 'Other') as 'Cursor' | 'VSCode' | 'OpenCode' | 'Claude' | 'Other';\n\n console.log(`Selected platform: ${platform}`);\n\n const availableSkills = SKILLS;\n console.log('\\nAvailable skills:');\n availableSkills.forEach((s, i) => {\n console.log(`${i + 1}. ${s}`);\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 = [...availableSkills];\n } else {\n const indices = skillsInput\n .split(',')\n .map((s) => parseInt(s.trim()) - 1)\n .filter((i) => !isNaN(i) && i >= 0 && i < availableSkills.length);\n selectedSkills = indices.map((i) => availableSkills[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":";;;;;AAKA,MAAa,yBAAyB,WAA4B;AAChE,QAAO,aACL,2BACA;EACE,OAAO;EACP,aACE;EACF,aAAa;GACX,UAAU,EACP,KAAK;IAAC;IAAU;IAAU;IAAY;IAAU;IAAQ,CAAC,CACzD,SAAS,qCAAqC;GACjD,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,CAAC,SAAS,4BAA4B;GACrE,aAAa,EACV,QAAQ,CACR,UAAU,CACV,SACC,gEACD;GACJ;EACF,EACD,OAAO,EAAE,UAAU,QAAQ,kBAAkB;AAC3C,MAAI;AAQF,UAAO,EACL,SAAS,CACP;IACE,MAAM;IACN,MAVU,MAAM,cADT,eAAe,QAAQ,KAAK,EAGvC,UACA,OACD;IAOI,CACF,EACF;WACM,OAAO;AACd,UAAO;IACL,SAAS,CACP;KACE,MAAM;KACN,MAAM,6BAA6B,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;KAC1F,CACF;IACD,SAAS;IACV;;GAGN;;AAGH,MAAa,sBAAsB,YAA2B;CAC5D,MAAM,KAAK,SAAS,gBAAgB;EAClC,OAAO,QAAQ;EACf,QAAQ,QAAQ;EACjB,CAAC;CAEF,MAAM,YAAY,UAChB,IAAI,SAAS,YAAY,GAAG,SAAS,OAAO,QAAQ,CAAC;AAEvD,KAAI;AACF,UAAQ,IAAI,0BAA0B;AACtC,UAAQ,IAAI,0BAA0B;EAEtC,MAAM,gBAAgB,MAAM,SAC1B,4EACD;EACD,MAAM,WAAY;GAAC;GAAU;GAAU;GAAY;GAAU;GAAQ,CAAC,MACnE,MAAM,EAAE,aAAa,KAAK,cAAc,MAAM,CAAC,aAAa,CAC9D,IAAI;AAEL,UAAQ,IAAI,sBAAsB,WAAW;EAE7C,MAAM,kBAAkB;AACxB,UAAQ,IAAI,sBAAsB;AAClC,kBAAgB,SAAS,GAAG,MAAM;AAChC,WAAQ,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI;IAC7B;EAEF,MAAM,cAAc,MAAM,SACxB,4FACD;EAED,IAAI,iBAA0B,EAAE;AAChC,MAAI,YAAY,MAAM,CAAC,aAAa,KAAK,MACvC,kBAAiB,CAAC,GAAG,gBAAgB;MAMrC,kBAJgB,YACb,MAAM,IAAI,CACV,KAAK,MAAM,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,CAClC,QAAQ,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,KAAK,IAAI,gBAAgB,OAAO,CAC1C,KAAK,MAAM,gBAAgB,GAAU;AAGhE,MAAI,eAAe,WAAW,GAAG;AAC/B,WAAQ,IAAI,qCAAqC;AACjD,MAAG,OAAO;AACV;;AAGF,UAAQ,IAAI,sBAAsB,eAAe,KAAK,KAAK,CAAC,KAAK;EACjE,MAAM,SAAS,MAAM,cAAc,QAAQ,KAAK,EAAE,UAAU,eAAe;AAC3E,UAAQ,IAAI,OAAO;UACZ,OAAO;AACd,UAAQ,MAAM,UAAU,MAAM;WACtB;AACR,KAAG,OAAO"}
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/chokidar';\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([\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 const platform = ([\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 ].find((p) => p.toLowerCase() === platformInput.trim().toLowerCase()) ||\n 'Other') as\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 console.log(`Selected platform: ${platform}`);\n\n const availableSkills = SKILLS;\n console.log('\\nAvailable skills:');\n availableSkills.forEach((s, i) => {\n console.log(`${i + 1}. ${s}`);\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 = [...availableSkills];\n } else {\n const indices = skillsInput\n .split(',')\n .map((s) => parseInt(s.trim()) - 1)\n .filter((i) => !isNaN(i) && i >= 0 && i < availableSkills.length);\n selectedSkills = indices.map((i) => availableSkills[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":";;;;;AAKA,MAAa,yBAAyB,WAA4B;AAChE,QAAO,aACL,2BACA;EACE,OAAO;EACP,aACE;EACF,aAAa;GACX,UAAU,EACP,KAAK;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACD,CAAC,CACD,SAAS,qCAAqC;GACjD,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,CAAC,SAAS,4BAA4B;GACrE,aAAa,EACV,QAAQ,CACR,UAAU,CACV,SACC,gEACD;GACJ;EACF,EACD,OAAO,EAAE,UAAU,QAAQ,kBAAkB;AAC3C,MAAI;AAQF,UAAO,EACL,SAAS,CACP;IACE,MAAM;IACN,MAVU,MAAM,cADT,eAAe,QAAQ,KAAK,EAGvC,UACA,OACD;IAOI,CACF,EACF;WACM,OAAO;AACd,UAAO;IACL,SAAS,CACP;KACE,MAAM;KACN,MAAM,6BAA6B,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;KAC1F,CACF;IACD,SAAS;IACV;;GAGN;;AAGH,MAAa,sBAAsB,YAA2B;CAC5D,MAAM,KAAK,SAAS,gBAAgB;EAClC,OAAO,QAAQ;EACf,QAAQ,QAAQ;EACjB,CAAC;CAEF,MAAM,YAAY,UAChB,IAAI,SAAS,YAAY,GAAG,SAAS,OAAO,QAAQ,CAAC;AAEvD,KAAI;AACF,UAAQ,IAAI,0BAA0B;AACtC,UAAQ,IAAI,0BAA0B;EAEtC,MAAM,gBAAgB,MAAM,SAC1B,gIACD;EACD,MAAM,WAAY;GAChB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC,MAAM,MAAM,EAAE,aAAa,KAAK,cAAc,MAAM,CAAC,aAAa,CAAC,IACnE;AAqCF,UAAQ,IAAI,sBAAsB,WAAW;EAE7C,MAAM,kBAAkB;AACxB,UAAQ,IAAI,sBAAsB;AAClC,kBAAgB,SAAS,GAAG,MAAM;AAChC,WAAQ,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI;IAC7B;EAEF,MAAM,cAAc,MAAM,SACxB,4FACD;EAED,IAAI,iBAA0B,EAAE;AAChC,MAAI,YAAY,MAAM,CAAC,aAAa,KAAK,MACvC,kBAAiB,CAAC,GAAG,gBAAgB;MAMrC,kBAJgB,YACb,MAAM,IAAI,CACV,KAAK,MAAM,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,CAClC,QAAQ,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,KAAK,IAAI,gBAAgB,OAAO,CAC1C,KAAK,MAAM,gBAAgB,GAAU;AAGhE,MAAI,eAAe,WAAW,GAAG;AAC/B,WAAQ,IAAI,qCAAqC;AACjD,MAAG,OAAO;AACV;;AAGF,UAAQ,IAAI,sBAAsB,eAAe,KAAK,KAAK,CAAC,KAAK;EACjE,MAAM,SAAS,MAAM,cAAc,QAAQ,KAAK,EAAE,UAAU,eAAe;AAC3E,UAAQ,IAAI,OAAO;UACZ,OAAO;AACd,UAAQ,MAAM,UAAU,MAAM;WACtB;AACR,KAAG,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"installSkills.d.ts","names":[],"sources":["../../../src/tools/installSkills.ts"],"mappings":";;;cAKa,qBAAA,GAAyB,MAAA,EAAQ,SAAA;AAAA,cAoDjC,mBAAA,QAAgC,OAAA"}
1
+ {"version":3,"file":"installSkills.d.ts","names":[],"sources":["../../../src/tools/installSkills.ts"],"mappings":";;;cAKa,qBAAA,GAAyB,MAAA,EAAQ,SAAA;AAAA,cAwFjC,mBAAA,QAAgC,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/mcp",
3
- "version": "8.1.0",
3
+ "version": "8.1.1",
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,19 +96,19 @@
96
96
  "typecheck": "tsc --noEmit --project tsconfig.types.json"
97
97
  },
98
98
  "dependencies": {
99
- "@intlayer/api": "8.1.0",
100
- "@intlayer/chokidar": "8.1.0",
101
- "@intlayer/cli": "8.1.0",
102
- "@intlayer/config": "8.1.0",
103
- "@intlayer/docs": "8.1.0",
104
- "@intlayer/types": "8.1.0",
99
+ "@intlayer/api": "8.1.1",
100
+ "@intlayer/chokidar": "8.1.1",
101
+ "@intlayer/cli": "8.1.1",
102
+ "@intlayer/config": "8.1.1",
103
+ "@intlayer/docs": "8.1.1",
104
+ "@intlayer/types": "8.1.1",
105
105
  "@modelcontextprotocol/sdk": "1.25.3",
106
106
  "dotenv": "17.3.1",
107
107
  "express": "5.2.1",
108
108
  "zod": "4.3.6"
109
109
  },
110
110
  "devDependencies": {
111
- "@intlayer/types": "8.1.0",
111
+ "@intlayer/types": "8.1.1",
112
112
  "@modelcontextprotocol/inspector": "0.19.0",
113
113
  "@types/express": "5.0.6",
114
114
  "@types/node": "25.2.3",