@wowok/skills 1.2.8 → 1.3.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.
package/README.md CHANGED
@@ -1,19 +1,25 @@
1
1
  # WoWok Skills
2
2
 
3
- WoWok AI Skills for Claude Code, OpenAI Codex, Trae IDE, CodeBuddy, Cursor, and GitHub Copilot — Helping AI use WoWok MCP tools correctly.
3
+ WoWok AI Skills for Claude Code, OpenAI Codex, ChatGPT Desktop (Codex Mode), Trae IDE, CodeBuddy, Cursor, Windsurf, Qoder, Roo Code, and GitHub Copilot — Helping AI use WoWok MCP tools correctly.
4
4
 
5
5
  ## Supported AI Clients
6
6
 
7
- | Client | Skills Directory | Format |
8
- |--------|-----------------|--------|
9
- | **Claude Code** | `.claude/skills/` | SKILL.md (native) |
10
- | **OpenAI Codex** | `.codex/skills/` | SKILL.md (native) |
11
- | **Trae IDE** | `.agents/skills/` | SKILL.md (native) |
12
- | **CodeBuddy** | `.codebuddy/skills/` | SKILL.md (native) |
13
- | **Cursor IDE** | `.cursor/rules/` | `.mdc` (frontmatter adapted) |
14
- | **GitHub Copilot** | `.github/prompts/` | `.prompt.md` (plain markdown) |
7
+ | Client | Skills Directory | Format | MCP Support |
8
+ |--------|-----------------|--------|-------------|
9
+ | **Claude Code** | `.claude/skills/` | SKILL.md (native) | ✅ `~/.claude/settings.json` |
10
+ | **OpenAI Codex CLI** | `.codex/skills/` | SKILL.md (native) | ✅ `~/.codex/config.toml` |
11
+ | **ChatGPT Desktop (Codex Mode)** | `.codex/skills/` | SKILL.md (native) | ✅ Shares Codex CLI config (`~/.codex/config.toml`) |
12
+ | **Trae IDE** | `.agents/skills/` | SKILL.md (native) | ⚙️ IDE-managed via `~/.trae-cn/mcps/` |
13
+ | **CodeBuddy** | `.codebuddy/skills/` | SKILL.md (native) | ✅ `~/.codebuddy/mcp.json` |
14
+ | **Cursor IDE** | `.cursor/rules/` | `.mdc` (frontmatter adapted) | ✅ Project-level `.cursor/mcp.json` |
15
+ | **Windsurf** | `.windsurf/skills/` | SKILL.md (native) | ✅ `~/.codeium/windsurf/mcp_config.json` |
16
+ | **Qoder** | `.qoder/skills/` | SKILL.md (native) | ✅ `~/.qoder/mcp-settings.json` (project: `.qoder/mcp.json`) |
17
+ | **Roo Code** | `.roo/skills/` | SKILL.md (native) | ✅ `~/.roo/mcp_settings.json` (project: `.roo/mcp.json`) |
18
+ | **GitHub Copilot** | `.github/prompts/` | `.prompt.md` (plain markdown) | ✅ `~/.copilot/mcp-config.json` |
15
19
 
16
20
  > **Format notes**: For Cursor, the YAML frontmatter is adapted to `description` + `alwaysApply`. For Copilot, frontmatter is stripped — pure Markdown instructions. Codex follows the [Agent Skills](https://agentskills.io) open standard natively. All other clients use the native SKILL.md format directly.
21
+ >
22
+ > **ChatGPT Desktop (Chat Mode)** does **not** support local skills or stdio MCP. Only the **Codex Mode** (built into ChatGPT Desktop) inherits Codex CLI's skills and MCP configuration. Full MCP (write operations) in ChatGPT Desktop requires **Business, Enterprise, or Edu** plans (beta).
17
23
 
18
24
 
19
25
  ## How It Works
@@ -23,13 +29,17 @@ Each skill is a `SKILL.md` file with YAML frontmatter. AI clients discover them
23
29
  ```
24
30
  npm install -g @wowok/skills
25
31
 
26
- └── postinstall ──→ Copies SKILL.md to ~/.claude/skills/wowok-*/
27
- AI discovers them on next session ✅
32
+ ├── postinstall ──→ Copies SKILL.md to ~/.claude/skills/wowok-*/
33
+ └── auto MCP ──→ Installs/upgrades @wowok/agent-mcp
34
+ Registers MCP in client config
35
+ Restarts MCP server process
36
+ AI discovers on next session ✅
28
37
 
29
38
  # For other clients, set the WOWOK_SKILLS_TARGETS env var:
30
39
  WOWOK_SKILLS_TARGETS=claude,agents npm install -g @wowok/skills
31
40
 
32
- └── postinstall ──→ Copies to ~/.claude/skills/ AND ~/.agents/skills/
41
+ ├── postinstall ──→ Copies to ~/.claude/skills/ AND ~/.agents/skills/
42
+ └── auto MCP ──→ Same MCP install/register/restart for each client
33
43
  ```
34
44
 
35
45
  **Two loading modes:**
@@ -43,7 +53,9 @@ WOWOK_SKILLS_TARGETS=claude,agents npm install -g @wowok/skills
43
53
 
44
54
  ### 1. Prerequisites
45
55
 
46
- Setup WoWok Agent (MCP Server) in your Claude Code MCP configuration:
56
+ The `@wowok/skills` package will **automatically install and configure** the `@wowok/agent-mcp` MCP server for you. No manual setup needed.
57
+
58
+ To configure MCP manually for a specific client, see the [MCP Support](#supported-ai-clients) table above. The standard WoWok MCP server entry is:
47
59
 
48
60
  ```json
49
61
  {
@@ -68,7 +80,7 @@ npm install -g @wowok/skills
68
80
  WOWOK_SKILLS_TARGETS=claude,agents npm install -g @wowok/skills
69
81
 
70
82
  # All supported clients:
71
- WOWOK_SKILLS_TARGETS=claude,codex,agents,codebuddy,cursor,copilot npm install -g @wowok/skills
83
+ WOWOK_SKILLS_TARGETS=claude,codex,agents,codebuddy,cursor,windsurf,qoder,roo,copilot npm install -g @wowok/skills
72
84
  ```
73
85
 
74
86
  This copies skills to the respective `~/.*/skills/` directories. They will be available in your next session.
@@ -82,7 +94,7 @@ cd your-project
82
94
  # Claude Code (default):
83
95
  wowok-skills init
84
96
 
85
- # OpenAI Codex:
97
+ # OpenAI Codex / ChatGPT Desktop (Codex Mode):
86
98
  wowok-skills init --target codex
87
99
 
88
100
  # Trae IDE:
@@ -145,15 +157,20 @@ wowok-skills uninit
145
157
  | `wowok-skills role <role>` | — | List skills by role |
146
158
  | `wowok-skills recommend <intent>` | — | Recommend skills by intent |
147
159
  | `wowok-skills init` | Project | Install to `.claude/skills/` (default) |
148
- | `wowok-skills init --target codex` | Project | Install to `.codex/skills/` (Codex) |
160
+ | `wowok-skills init --target codex` | Project | Install to `.codex/skills/` (Codex / ChatGPT Desktop) |
149
161
  | `wowok-skills init --target agents` | Project | Install to `.agents/skills/` (Trae) |
150
162
  | `wowok-skills init --target cursor` | Project | Install to `.cursor/rules/` (Cursor) |
151
163
  | `wowok-skills init --target copilot` | Project | Install to `.github/prompts/` (Copilot) |
152
- | `wowok-skills init --target all` | Project | Install to all 6 clients |
164
+ | `wowok-skills init --target windsurf` | Project | Install to `.windsurf/skills/` (Windsurf) |
165
+ | `wowok-skills init --target qoder` | Project | Install to `.qoder/skills/` (Qoder) |
166
+ | `wowok-skills init --target roo` | Project | Install to `.roo/skills/` (Roo Code) |
167
+ | `wowok-skills init --target all` | Project | Install to all 10 clients |
153
168
  | `wowok-skills uninit` | Project | Remove from `.claude/skills/` (default) |
154
169
  | `wowok-skills uninit --target all` | Project | Remove from all clients |
155
170
 
156
171
  > **Note**: `init` / `uninit` require `@wowok/skills` to be globally installed first.
172
+ >
173
+ > **MCP auto-install**: `npm install -g @wowok/skills` (postinstall) and `wowok-skills init` automatically install/upgrade the `@wowok/agent-mcp` MCP server and register it in each client's config. Set `WOWOK_SKILLS_NO_MCP=1` to skip MCP management.
157
174
 
158
175
  ## Programmatic API
159
176
 
package/dist/cli.js CHANGED
@@ -36,6 +36,8 @@ var __importStar = (this && this.__importStar) || (function () {
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
+ const child_process_1 = require("child_process");
40
+ const os = __importStar(require("os"));
39
41
  const skills_1 = require("./skills");
40
42
  const types_1 = require("./types");
41
43
  /**
@@ -166,6 +168,280 @@ function convertSkillContent(content, target, skillDir) {
166
168
  return convertToCopilot(content);
167
169
  return content;
168
170
  }
171
+ // =========================================================================
172
+ // MCP Server Management — shared by postinstall and `wowok-skills init`
173
+ // =========================================================================
174
+ const MCP_PACKAGE = '@wowok/agent-mcp';
175
+ const MCP_TARGET_CONFIGS = {
176
+ claude: {
177
+ configPath: path.join(os.homedir(), '.claude', 'settings.json'),
178
+ merge: (config) => {
179
+ config.mcpServers = config.mcpServers || {};
180
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
181
+ return config;
182
+ },
183
+ },
184
+ codebuddy: {
185
+ configPath: path.join(os.homedir(), '.codebuddy', 'mcp.json'),
186
+ merge: (config) => {
187
+ config.mcpServers = config.mcpServers || {};
188
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
189
+ return config;
190
+ },
191
+ },
192
+ windsurf: {
193
+ configPath: path.join(os.homedir(), '.codeium', 'windsurf', 'mcp_config.json'),
194
+ merge: (config) => {
195
+ config.mcpServers = config.mcpServers || {};
196
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
197
+ return config;
198
+ },
199
+ },
200
+ qoder: {
201
+ configPath: process.platform === 'win32'
202
+ ? path.join(process.env.APPDATA || path.join(os.homedir(), 'AppData', 'Roaming'), 'Qoder', 'mcp-settings.json')
203
+ : path.join(os.homedir(), '.config', 'qoder', 'mcp-settings.json'),
204
+ merge: (config) => {
205
+ config.mcpServers = config.mcpServers || {};
206
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
207
+ return config;
208
+ },
209
+ },
210
+ roo: {
211
+ configPath: path.join(os.homedir(), '.roo', 'mcp_settings.json'),
212
+ merge: (config) => {
213
+ config.mcpServers = config.mcpServers || {};
214
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
215
+ return config;
216
+ },
217
+ },
218
+ // trae / agents: IDE-managed MCP via ~/.trae-cn/mcps/ directory structure
219
+ trae: null,
220
+ agents: null,
221
+ // cursor: project-level only
222
+ cursor: null,
223
+ // copilot: user-level MCP config (Copilot CLI)
224
+ copilot: {
225
+ configPath: path.join(os.homedir(), '.copilot', 'mcp-config.json'),
226
+ merge: (config) => {
227
+ config.mcpServers = config.mcpServers || {};
228
+ config.mcpServers.wowok = { type: 'local', command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
229
+ return config;
230
+ },
231
+ },
232
+ // codex: global TOML config (~/.codex/config.toml)
233
+ codex: {
234
+ configPath: path.join(os.homedir(), '.codex', 'config.toml'),
235
+ format: 'toml',
236
+ },
237
+ };
238
+ /** Project-level MCP configs (written relative to cwd). */
239
+ const MCP_PROJECT_CONFIGS = {
240
+ cursor: {
241
+ configPath: '.cursor/mcp.json',
242
+ merge: (config) => {
243
+ config.mcpServers = config.mcpServers || {};
244
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
245
+ return config;
246
+ },
247
+ },
248
+ windsurf: {
249
+ configPath: '.windsurf/mcp.json',
250
+ merge: (config) => {
251
+ config.mcpServers = config.mcpServers || {};
252
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
253
+ return config;
254
+ },
255
+ },
256
+ trae: {
257
+ configPath: '.trae/mcp.json',
258
+ merge: (config) => {
259
+ config.mcpServers = config.mcpServers || {};
260
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
261
+ return config;
262
+ },
263
+ },
264
+ agents: {
265
+ configPath: '.trae/mcp.json',
266
+ merge: (config) => {
267
+ config.mcpServers = config.mcpServers || {};
268
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
269
+ return config;
270
+ },
271
+ },
272
+ qoder: {
273
+ configPath: '.qoder/mcp.json',
274
+ merge: (config) => {
275
+ config.mcpServers = config.mcpServers || {};
276
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
277
+ return config;
278
+ },
279
+ },
280
+ roo: {
281
+ configPath: '.roo/mcp.json',
282
+ merge: (config) => {
283
+ config.mcpServers = config.mcpServers || {};
284
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
285
+ return config;
286
+ },
287
+ },
288
+ };
289
+ function getInstalledMcpVersion() {
290
+ try {
291
+ const output = (0, child_process_1.execSync)(`npm ls -g ${MCP_PACKAGE} --depth=0 --json`, {
292
+ encoding: 'utf-8',
293
+ stdio: 'pipe',
294
+ timeout: 15000,
295
+ });
296
+ const parsed = JSON.parse(output);
297
+ const pkg = parsed.dependencies?.[MCP_PACKAGE] || parsed[MCP_PACKAGE];
298
+ return pkg?.version || null;
299
+ }
300
+ catch {
301
+ return null;
302
+ }
303
+ }
304
+ function getLatestMcpVersion() {
305
+ try {
306
+ const output = (0, child_process_1.execSync)(`npm view ${MCP_PACKAGE} version`, {
307
+ encoding: 'utf-8',
308
+ stdio: 'pipe',
309
+ timeout: 15000,
310
+ });
311
+ return output.trim();
312
+ }
313
+ catch {
314
+ return null;
315
+ }
316
+ }
317
+ function semverMajor(version) {
318
+ if (!version)
319
+ return 0;
320
+ const parts = version.split('.');
321
+ return parseInt(parts[0], 10) || 0;
322
+ }
323
+ function npmInstallGlobal(pkg, retries = 2) {
324
+ for (let attempt = 1; attempt <= retries; attempt++) {
325
+ try {
326
+ (0, child_process_1.execSync)(`npm install -g ${pkg}`, { stdio: 'inherit', timeout: 120000 });
327
+ return true;
328
+ }
329
+ catch (err) {
330
+ if (attempt < retries) {
331
+ console.log(`[wowok-skills] npm install attempt ${attempt} failed, retrying...`);
332
+ const waitCmd = process.platform === 'win32'
333
+ ? 'ping -n 3 127.0.0.1 >nul'
334
+ : 'sleep 2';
335
+ (0, child_process_1.execSync)(waitCmd, { stdio: 'pipe', timeout: 5000 });
336
+ }
337
+ else {
338
+ console.error(`[wowok-skills] npm install failed after ${retries} attempts: ${err.message}`);
339
+ return false;
340
+ }
341
+ }
342
+ }
343
+ return false;
344
+ }
345
+ function ensureMcpServer() {
346
+ const currentVersion = getInstalledMcpVersion();
347
+ const latestVersion = getLatestMcpVersion();
348
+ if (currentVersion) {
349
+ console.log(`[wowok-skills] MCP server ${MCP_PACKAGE} v${currentVersion} found.`);
350
+ if (!latestVersion) {
351
+ console.log(`[wowok-skills] Cannot check latest version (offline or registry unreachable). Keeping v${currentVersion}.`);
352
+ return false;
353
+ }
354
+ if (currentVersion === latestVersion) {
355
+ console.log(`[wowok-skills] MCP server is up to date (v${currentVersion}).`);
356
+ return false;
357
+ }
358
+ const currentMajor = semverMajor(currentVersion);
359
+ const latestMajor = semverMajor(latestVersion);
360
+ if (latestMajor > currentMajor) {
361
+ console.warn(`[wowok-skills] ⚠ WARNING: Major version bump detected v${currentVersion} → v${latestVersion}.`);
362
+ console.warn(`[wowok-skills] Skipping auto-upgrade to avoid breaking changes.`);
363
+ console.warn(`[wowok-skills] To upgrade manually: npm install -g ${MCP_PACKAGE}@latest`);
364
+ return false;
365
+ }
366
+ console.log(`[wowok-skills] Upgrading MCP server v${currentVersion} → v${latestVersion}...`);
367
+ if (npmInstallGlobal(`${MCP_PACKAGE}@latest`)) {
368
+ console.log(`[wowok-skills] MCP server upgraded to v${latestVersion}.`);
369
+ return true;
370
+ }
371
+ console.error(`[wowok-skills] MCP server upgrade FAILED. Keeping v${currentVersion}.`);
372
+ return false;
373
+ }
374
+ console.log(`[wowok-skills] Installing MCP server ${MCP_PACKAGE}...`);
375
+ if (npmInstallGlobal(MCP_PACKAGE)) {
376
+ console.log(`[wowok-skills] MCP server installed.`);
377
+ return true;
378
+ }
379
+ console.error(`[wowok-skills] MCP server installation FAILED.`);
380
+ return false;
381
+ }
382
+ function writeMcpConfig(target, configMap, cwd) {
383
+ const cfg = configMap[target];
384
+ if (!cfg) {
385
+ console.log(`[wowok-skills] MCP config: ${target} does not support external MCP registration (skipped).`);
386
+ return false;
387
+ }
388
+ try {
389
+ const configPath = cwd ? path.join(cwd, cfg.configPath) : cfg.configPath;
390
+ // ── TOML format (Codex CLI uses ~/.codex/config.toml) ──────────────
391
+ if (cfg.format === 'toml') {
392
+ const tomlEntry = '\n[mcp_servers.wowok]\ncommand = "npx"\nargs = ["-y", "@wowok/agent-mcp"]\n';
393
+ let content = '';
394
+ if (fs.existsSync(configPath)) {
395
+ content = fs.readFileSync(configPath, 'utf-8');
396
+ }
397
+ if (content.includes('[mcp_servers.wowok]')) {
398
+ console.log(`[wowok-skills] MCP config already up to date: ${configPath}`);
399
+ return false;
400
+ }
401
+ fs.mkdirSync(path.dirname(configPath), { recursive: true });
402
+ fs.writeFileSync(configPath, content + tomlEntry, 'utf-8');
403
+ console.log(`[wowok-skills] MCP config written: ${configPath}`);
404
+ return true;
405
+ }
406
+ // ── JSON format (all other clients) ────────────────────────────────
407
+ let config = {};
408
+ if (fs.existsSync(configPath)) {
409
+ config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
410
+ }
411
+ const before = JSON.stringify(config);
412
+ config = cfg.merge(config);
413
+ const after = JSON.stringify(config);
414
+ if (before !== after) {
415
+ fs.mkdirSync(path.dirname(configPath), { recursive: true });
416
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
417
+ console.log(`[wowok-skills] MCP config written: ${configPath}`);
418
+ return true;
419
+ }
420
+ console.log(`[wowok-skills] MCP config already up to date: ${configPath}`);
421
+ return false;
422
+ }
423
+ catch (err) {
424
+ console.error(`[wowok-skills] ERROR writing MCP config for ${target}: ${err.message}`);
425
+ return false;
426
+ }
427
+ }
428
+ function restartMcpServer() {
429
+ try {
430
+ if (process.platform === 'win32') {
431
+ const psScript = 'Get-CimInstance Win32_Process -Filter "Name=\'node.exe\' AND CommandLine LIKE \'%wowok%agent-mcp%\'" | ' +
432
+ 'ForEach-Object { Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue }';
433
+ const encoded = Buffer.from(psScript, 'utf16le').toString('base64');
434
+ (0, child_process_1.execSync)(`powershell -NoProfile -EncodedCommand ${encoded}`, { stdio: 'pipe', timeout: 10000 });
435
+ }
436
+ else {
437
+ (0, child_process_1.execSync)('pkill -f "wowok.*agent-mcp" 2>/dev/null || true', { stdio: 'pipe', timeout: 5000 });
438
+ }
439
+ console.log('[wowok-skills] MCP server process terminated (IDE will auto-restart).');
440
+ }
441
+ catch {
442
+ console.log('[wowok-skills] No running MCP server process found. Start your IDE to launch it.');
443
+ }
444
+ }
169
445
  function getTargets(targetArg) {
170
446
  if (!targetArg || targetArg === 'claude') {
171
447
  return ['claude'];
@@ -177,10 +453,10 @@ function getTargets(targetArg) {
177
453
  return [targetArg];
178
454
  }
179
455
  console.error(`Invalid target: ${targetArg}`);
180
- console.error(`Valid targets: claude, codex, agents, codebuddy, cursor, copilot, all`);
456
+ console.error(`Valid targets: claude, cursor, windsurf, codebuddy, codex, trae, qoder, roo, copilot, all`);
181
457
  process.exit(1);
182
458
  }
183
- function cmdInit(targetArg) {
459
+ function cmdInit(targetArg, withMcp) {
184
460
  const cwd = process.cwd();
185
461
  const pkgRoot = getPackageRoot();
186
462
  const targets = getTargets(targetArg);
@@ -215,6 +491,28 @@ function cmdInit(targetArg) {
215
491
  if (targets.length > 1) {
216
492
  console.log(`[wowok-skills] Total: ${totalCount} skills across ${targets.length} clients.`);
217
493
  }
494
+ // ─── MCP setup (default: enabled, use --no-mcp to skip) ────────────
495
+ if (withMcp) {
496
+ console.log('');
497
+ console.log('[wowok-skills] Setting up MCP server (use --no-mcp to skip)...');
498
+ const mcpChanged = ensureMcpServer();
499
+ console.log('[wowok-skills] Registering MCP server in client config...');
500
+ for (const target of targets) {
501
+ // Global-level config (Claude, CodeBuddy, Windsurf, Qoder, Roo)
502
+ writeMcpConfig(target, MCP_TARGET_CONFIGS);
503
+ // Project-level config (Cursor, Windsurf, Trae, Qoder, Roo)
504
+ writeMcpConfig(target, MCP_PROJECT_CONFIGS, cwd);
505
+ }
506
+ if (mcpChanged) {
507
+ console.log('[wowok-skills] Restarting MCP server...');
508
+ restartMcpServer();
509
+ }
510
+ console.log('[wowok-skills] MCP server setup complete.');
511
+ }
512
+ else {
513
+ console.log('');
514
+ console.log('[wowok-skills] --no-mcp: MCP server setup skipped (skills only).');
515
+ }
218
516
  }
219
517
  function cmdUninit(targetArg) {
220
518
  const cwd = process.cwd();
@@ -316,16 +614,20 @@ function printUsage() {
316
614
  console.log(' get <name> Show skill details');
317
615
  console.log(' role <role> List skills for a role (customer|provider|arbitrator|shared)');
318
616
  console.log(' recommend <intent> Recommend skills based on user intent');
319
- console.log(' init [--target <t>] Install skills to project (default: .claude/skills/)');
617
+ console.log(' init [--target <t>] [--no-mcp] Install skills to project (default: .claude/skills/ with MCP)');
618
+ console.log(' --no-mcp Skip MCP server setup (skills only)');
320
619
  console.log(' uninit [--target <t>] Remove skills from project');
321
620
  console.log('');
322
621
  console.log('Targets:');
323
- console.log(' claude .claude/skills/ (Claude Code, default)');
324
- console.log(' codex .codex/skills/ (OpenAI Codex)');
325
- console.log(' agents .agents/skills/ (Trae IDE)');
326
- console.log(' codebuddy .codebuddy/skills/ (CodeBuddy)');
622
+ console.log(' claude .claude/skills/ (Claude Code)');
327
623
  console.log(' cursor .cursor/rules/ (Cursor IDE)');
328
- console.log(' copilot .github/prompts/ (GitHub Copilot)');
624
+ console.log(' windsurf .windsurf/skills/ (Windsurf / Codeium)');
625
+ console.log(' codebuddy .codebuddy/skills/ (CodeBuddy)');
626
+ console.log(' codex .codex/skills/ (OpenAI Codex, no MCP)');
627
+ console.log(' trae .agents/skills/ (Trae CN & Trae Work)');
628
+ console.log(' qoder .qoder/skills/ (Qoder / Qoder CN)');
629
+ console.log(' roo .roo/skills/ (Roo Code)');
630
+ console.log(' copilot .github/prompts/ (GitHub Copilot, no MCP)');
329
631
  console.log(' all All of the above');
330
632
  console.log('');
331
633
  console.log('Examples:');
@@ -336,6 +638,8 @@ function printUsage() {
336
638
  console.log(' wowok-skills init');
337
639
  console.log(' wowok-skills init --target agents');
338
640
  console.log(' wowok-skills init --target all');
641
+ console.log(' wowok-skills init --no-mcp');
642
+ console.log(' wowok-skills init --target cursor --no-mcp');
339
643
  }
340
644
  function main() {
341
645
  const args = process.argv.slice(2);
@@ -369,9 +673,11 @@ function main() {
369
673
  }
370
674
  cmdRecommend(args.slice(1).join(' '));
371
675
  break;
372
- case 'init':
373
- cmdInit(parseTargetArg(args.slice(1)));
676
+ case 'init': {
677
+ const withMcp = !args.includes('--no-mcp');
678
+ cmdInit(parseTargetArg(args.slice(1)), withMcp);
374
679
  break;
680
+ }
375
681
  case 'uninit':
376
682
  cmdUninit(parseTargetArg(args.slice(1)));
377
683
  break;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -8,7 +8,7 @@ export type SkillRole = 'customer' | 'provider' | 'arbitrator' | 'shared';
8
8
  * - 'on-demand': Loaded only when description matches task
9
9
  */
10
10
  export type LoadingMode = 'always' | 'on-demand';
11
- export type ClientTarget = 'claude' | 'codex' | 'agents' | 'codebuddy' | 'cursor' | 'copilot' | 'all';
11
+ export type ClientTarget = 'claude' | 'cursor' | 'windsurf' | 'codebuddy' | 'codex' | 'trae' | 'qoder' | 'roo' | 'agents' | 'copilot' | 'all';
12
12
  export declare const CLIENT_SKILL_DIRS: Record<Exclude<ClientTarget, 'all'>, string>;
13
13
  export declare const CLIENT_FILE_EXT: Record<Exclude<ClientTarget, 'all'>, string>;
14
14
  export declare const ALL_CLIENT_TARGETS: Exclude<ClientTarget, 'all'>[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;AAE1E;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;AAEtG,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,CAO1E,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,CAOxE,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAoE,CAAC;AAElI;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,mBAAmB;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;AAE1E;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEjD,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,WAAW,GACX,OAAO,GACP,MAAM,GACN,OAAO,GACP,KAAK,GACL,QAAQ,GACR,SAAS,GACT,KAAK,CAAC;AAEV,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,CAW1E,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,CAWxE,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAE5D,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,mBAAmB;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB"}
package/dist/types.js CHANGED
@@ -3,19 +3,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ALL_CLIENT_TARGETS = exports.CLIENT_FILE_EXT = exports.CLIENT_SKILL_DIRS = void 0;
4
4
  exports.CLIENT_SKILL_DIRS = {
5
5
  claude: '.claude/skills',
6
+ cursor: '.cursor/rules',
7
+ windsurf: '.windsurf/skills',
8
+ codebuddy: '.codebuddy/skills',
6
9
  codex: '.codex/skills',
10
+ trae: '.agents/skills',
11
+ qoder: '.qoder/skills',
12
+ roo: '.roo/skills',
7
13
  agents: '.agents/skills',
8
- codebuddy: '.codebuddy/skills',
9
- cursor: '.cursor/rules',
10
14
  copilot: '.github/prompts',
11
15
  };
12
16
  exports.CLIENT_FILE_EXT = {
13
17
  claude: '.md',
18
+ cursor: '.mdc',
19
+ windsurf: '.md',
20
+ codebuddy: '.md',
14
21
  codex: '.md',
22
+ trae: '.md',
23
+ qoder: '.md',
24
+ roo: '.md',
15
25
  agents: '.md',
16
- codebuddy: '.md',
17
- cursor: '.mdc',
18
26
  copilot: '.prompt.md',
19
27
  };
20
- exports.ALL_CLIENT_TARGETS = ['claude', 'codex', 'agents', 'codebuddy', 'cursor', 'copilot'];
28
+ exports.ALL_CLIENT_TARGETS = [
29
+ 'claude', 'cursor', 'windsurf', 'codebuddy', 'codex', 'trae', 'qoder', 'roo', 'copilot',
30
+ ];
21
31
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAca,QAAA,iBAAiB,GAAiD;IAC7E,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,iBAAiB;CAC3B,CAAC;AAEW,QAAA,eAAe,GAAiD;IAC3E,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,YAAY;CACtB,CAAC;AAEW,QAAA,kBAAkB,GAAmC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAyBa,QAAA,iBAAiB,GAAiD;IAC7E,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,eAAe;IACvB,QAAQ,EAAE,kBAAkB;IAC5B,SAAS,EAAE,mBAAmB;IAC9B,KAAK,EAAE,eAAe;IACtB,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,eAAe;IACtB,GAAG,EAAE,aAAa;IAClB,MAAM,EAAE,gBAAgB;IACxB,OAAO,EAAE,iBAAiB;CAC3B,CAAC;AAEW,QAAA,eAAe,GAAiD;IAC3E,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,KAAK;IACZ,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,YAAY;CACtB,CAAC;AAEW,QAAA,kBAAkB,GAAmC;IAChE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS;CACxF,CAAC"}
@@ -420,7 +420,7 @@ Create a Contact object to enable encrypted communication between customers and
420
420
  "tool": "messenger_operation",
421
421
  "data": {
422
422
  "messenger": {
423
- "m": "myshop_merchant_messenger",
423
+ "enabled": true,
424
424
  "name_or_account": "myshop_merchant"
425
425
  }
426
426
  }
@@ -1050,7 +1050,7 @@ After creating the order, the customer sends their shipping address and contact
1050
1050
  "tool": "messenger_operation",
1051
1051
  "data": {
1052
1052
  "messenger": {
1053
- "m": "customer_messenger",
1053
+ "enabled": true,
1054
1054
  "name_or_account": "myshop_customer"
1055
1055
  }
1056
1056
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wowok/skills",
3
- "version": "1.2.8",
3
+ "version": "1.3.0",
4
4
  "description": "WoWok AI Skills for Claude and other AI assistants - Helping AI use WoWok MCP tools correctly",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -6,13 +6,15 @@
6
6
  * preuninstall → remove SKILL.md folders from all installed client dirs
7
7
  *
8
8
  * Environment variables:
9
- * WOWOK_SKILLS_TARGETS Comma-separated client targets (claude,codex,agents,codebuddy,cursor,copilot)
10
- * Defaults to "claude". Example: "claude,agents,cursor"
9
+ * WOWOK_SKILLS_TARGETS Comma-separated client targets (claude,cursor,windsurf,codebuddy,codex,trae,qoder,roo,copilot)
10
+ * Defaults to "claude". Example: "claude,cursor,trae"
11
+ * WOWOK_SKILLS_NO_MCP Set to "1" or "true" to skip MCP server management (default: auto-install MCP)
11
12
  */
12
13
 
13
14
  const fs = require('fs');
14
15
  const path = require('path');
15
16
  const os = require('os');
17
+ const { execSync } = require('child_process');
16
18
 
17
19
  const SKILL_DIRS = [
18
20
  'wowok-provider',
@@ -32,10 +34,14 @@ const SKILL_DIRS = [
32
34
 
33
35
  const CLIENT_DIRS = {
34
36
  claude: path.join(os.homedir(), '.claude', 'skills'),
35
- codex: path.join(os.homedir(), '.codex', 'skills'),
36
- agents: path.join(os.homedir(), '.agents', 'skills'),
37
- codebuddy: path.join(os.homedir(), '.codebuddy', 'skills'),
38
37
  cursor: path.join(os.homedir(), '.cursor', 'rules'),
38
+ windsurf: path.join(os.homedir(), '.windsurf', 'skills'),
39
+ codebuddy: path.join(os.homedir(), '.codebuddy', 'skills'),
40
+ codex: path.join(os.homedir(), '.codex', 'skills'),
41
+ trae: path.join(os.homedir(), '.agents', 'skills'),
42
+ qoder: path.join(os.homedir(), '.qoder', 'skills'),
43
+ roo: path.join(os.homedir(), '.roo', 'skills'),
44
+ agents: path.join(os.homedir(), '.agents', 'skills'), // deprecated alias
39
45
  copilot: path.join(os.homedir(), '.github', 'prompts'),
40
46
  };
41
47
 
@@ -188,6 +194,7 @@ function getTargets() {
188
194
 
189
195
  function main() {
190
196
  const event = process.env.npm_lifecycle_event || '';
197
+ const skipMcp = process.env.WOWOK_SKILLS_NO_MCP === '1' || process.env.WOWOK_SKILLS_NO_MCP === 'true';
191
198
 
192
199
  if (event === 'postinstall') {
193
200
  const targets = getTargets();
@@ -202,6 +209,34 @@ function main() {
202
209
  }
203
210
 
204
211
  console.log(`[wowok-skills] Done — ${total} skills installed across ${targets.length} client(s).`);
212
+
213
+ // ─── MCP Server Management ───────────────────────────────────────
214
+ console.log('');
215
+
216
+ if (skipMcp) {
217
+ console.log('[wowok-skills] WOWOK_SKILLS_NO_MCP=1 — skipping MCP server management.');
218
+ } else {
219
+ console.log('[wowok-skills] Checking MCP server...');
220
+
221
+ // Step 1: Install or upgrade the MCP server
222
+ const mcpChanged = ensureMcpServer();
223
+
224
+ // Step 2: Write MCP config for each target client
225
+ console.log('[wowok-skills] Registering MCP server in client config...');
226
+ for (const target of targets) {
227
+ writeMcpConfig(target);
228
+ }
229
+
230
+ // Step 3: Restart MCP server so the new version takes effect
231
+ if (mcpChanged) {
232
+ console.log('[wowok-skills] Restarting MCP server (so IDE picks up the new version)...');
233
+ restartMcpServer();
234
+ } else {
235
+ console.log('[wowok-skills] MCP server unchanged — no restart needed.');
236
+ }
237
+
238
+ console.log('[wowok-skills] MCP server setup complete.');
239
+ }
205
240
  } else if (event === 'preuninstall') {
206
241
  const targets = Object.keys(CLIENT_DIRS);
207
242
  console.log('[wowok-skills] Removing skills from all client dirs...');
@@ -229,4 +264,306 @@ function countExisting(targetDir) {
229
264
  return count;
230
265
  }
231
266
 
267
+ // =========================================================================
268
+ // MCP Server Management — auto-install, upgrade, config, and restart
269
+ // =========================================================================
270
+
271
+ /** MCP server npm package name */
272
+ const MCP_PACKAGE = '@wowok/agent-mcp';
273
+
274
+ /**
275
+ * MCP config entries per client target.
276
+ * null means the client does not support MCP or manages it internally.
277
+ */
278
+ const MCP_TARGET_CONFIGS = {
279
+ claude: {
280
+ configPath: path.join(os.homedir(), '.claude', 'settings.json'),
281
+ merge: (config) => {
282
+ config.mcpServers = config.mcpServers || {};
283
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
284
+ return config;
285
+ }
286
+ },
287
+ codebuddy: {
288
+ configPath: path.join(os.homedir(), '.codebuddy', 'mcp.json'),
289
+ merge: (config) => {
290
+ config.mcpServers = config.mcpServers || {};
291
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
292
+ return config;
293
+ }
294
+ },
295
+ windsurf: {
296
+ configPath: path.join(os.homedir(), '.codeium', 'windsurf', 'mcp_config.json'),
297
+ merge: (config) => {
298
+ config.mcpServers = config.mcpServers || {};
299
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
300
+ return config;
301
+ }
302
+ },
303
+ qoder: {
304
+ configPath: process.platform === 'win32'
305
+ ? path.join(process.env.APPDATA || path.join(os.homedir(), 'AppData', 'Roaming'), 'Qoder', 'mcp-settings.json')
306
+ : path.join(os.homedir(), '.config', 'qoder', 'mcp-settings.json'),
307
+ merge: (config) => {
308
+ config.mcpServers = config.mcpServers || {};
309
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
310
+ return config;
311
+ }
312
+ },
313
+ roo: {
314
+ configPath: path.join(os.homedir(), '.roo', 'mcp_settings.json'),
315
+ merge: (config) => {
316
+ config.mcpServers = config.mcpServers || {};
317
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
318
+ return config;
319
+ }
320
+ },
321
+ // trae / agents: IDE-managed MCP via ~/.trae-cn/mcps/ directory structure — skip global config
322
+ trae: null,
323
+ agents: null,
324
+ // cursor: MCP config is project-level, handled by `wowok-skills init` in project dir
325
+ cursor: null,
326
+ // copilot: user-level MCP config (Copilot CLI)
327
+ copilot: {
328
+ configPath: path.join(os.homedir(), '.copilot', 'mcp-config.json'),
329
+ merge: (config) => {
330
+ config.mcpServers = config.mcpServers || {};
331
+ config.mcpServers.wowok = { type: 'local', command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
332
+ return config;
333
+ }
334
+ },
335
+ // codex: global TOML config (~/.codex/config.toml)
336
+ codex: {
337
+ configPath: path.join(os.homedir(), '.codex', 'config.toml'),
338
+ format: 'toml',
339
+ },
340
+ };
341
+
342
+ /**
343
+ * Parse a semver string to its major version number.
344
+ * Returns 0 for invalid/missing versions.
345
+ */
346
+ function semverMajor(version) {
347
+ if (!version) return 0;
348
+ const parts = version.split('.');
349
+ return parseInt(parts[0], 10) || 0;
350
+ }
351
+
352
+ /**
353
+ * Get the currently installed global version of the MCP server.
354
+ * Uses `npm ls -g <package>` (targeted, no tree scan) for speed.
355
+ * Returns null if not installed.
356
+ */
357
+ function getInstalledMcpVersion() {
358
+ try {
359
+ // npm ls -g <pkg> is faster than npm list -g because it skips
360
+ // scanning unrelated packages in the global node_modules.
361
+ const output = execSync(`npm ls -g ${MCP_PACKAGE} --depth=0 --json`, {
362
+ encoding: 'utf-8',
363
+ stdio: 'pipe',
364
+ timeout: 15000,
365
+ });
366
+ const parsed = JSON.parse(output);
367
+ // npm ls output has the package as a top-level key, not under dependencies
368
+ const pkg = parsed.dependencies?.[MCP_PACKAGE] || parsed[MCP_PACKAGE];
369
+ return pkg?.version || null;
370
+ } catch {
371
+ return null;
372
+ }
373
+ }
374
+
375
+ /**
376
+ * Get the latest available version from the npm registry.
377
+ * Returns null on failure (offline, registry unreachable, etc.).
378
+ */
379
+ function getLatestMcpVersion() {
380
+ try {
381
+ const output = execSync(`npm view ${MCP_PACKAGE} version`, {
382
+ encoding: 'utf-8',
383
+ stdio: 'pipe',
384
+ timeout: 15000,
385
+ });
386
+ return output.trim();
387
+ } catch {
388
+ return null;
389
+ }
390
+ }
391
+
392
+ /**
393
+ * Install an npm package globally with retry logic.
394
+ * Retries up to 2 times on failure (covers transient network errors).
395
+ */
396
+ function npmInstallGlobal(pkg, retries = 2) {
397
+ for (let attempt = 1; attempt <= retries; attempt++) {
398
+ try {
399
+ execSync(`npm install -g ${pkg}`, { stdio: 'inherit', timeout: 120000 });
400
+ return true;
401
+ } catch (err) {
402
+ if (attempt < retries) {
403
+ console.log(`[wowok-skills] npm install attempt ${attempt} failed, retrying...`);
404
+ // Wait 2s before retry to let network recover
405
+ execSync('ping -n 3 127.0.0.1 >nul', { stdio: 'pipe', timeout: 5000 });
406
+ } else {
407
+ console.error(`[wowok-skills] npm install failed after ${retries} attempts: ${err.message}`);
408
+ return false;
409
+ }
410
+ }
411
+ }
412
+ return false;
413
+ }
414
+
415
+ /**
416
+ * Ensure the MCP server is installed and up to date.
417
+ *
418
+ * - Not installed → install latest
419
+ * - Outdated (same major) → upgrade to latest
420
+ * - Major version bump → warn user, skip auto-upgrade
421
+ * - Up to date → skip
422
+ *
423
+ * Returns true if the package was installed or upgraded (changed).
424
+ */
425
+ function ensureMcpServer() {
426
+ const currentVersion = getInstalledMcpVersion();
427
+ const latestVersion = getLatestMcpVersion();
428
+
429
+ if (currentVersion) {
430
+ console.log(`[wowok-skills] MCP server ${MCP_PACKAGE} v${currentVersion} found.`);
431
+
432
+ if (!latestVersion) {
433
+ console.log(`[wowok-skills] Cannot check latest version (offline or registry unreachable). Keeping v${currentVersion}.`);
434
+ return false;
435
+ }
436
+
437
+ if (currentVersion === latestVersion) {
438
+ console.log(`[wowok-skills] MCP server is up to date (v${currentVersion}).`);
439
+ return false;
440
+ }
441
+
442
+ // Major version guard: warn if the latest version has a different major
443
+ const currentMajor = semverMajor(currentVersion);
444
+ const latestMajor = semverMajor(latestVersion);
445
+
446
+ if (latestMajor > currentMajor) {
447
+ console.warn(`[wowok-skills] ⚠ WARNING: Major version bump detected v${currentVersion} → v${latestVersion}.`);
448
+ console.warn(`[wowok-skills] Skipping auto-upgrade to avoid breaking changes.`);
449
+ console.warn(`[wowok-skills] To upgrade manually: npm install -g ${MCP_PACKAGE}@latest`);
450
+ return false;
451
+ }
452
+
453
+ console.log(`[wowok-skills] Upgrading MCP server v${currentVersion} → v${latestVersion}...`);
454
+ if (npmInstallGlobal(`${MCP_PACKAGE}@latest`)) {
455
+ console.log(`[wowok-skills] MCP server upgraded to v${latestVersion}.`);
456
+ return true;
457
+ }
458
+ console.error(`[wowok-skills] MCP server upgrade FAILED. Keeping v${currentVersion}.`);
459
+ return false;
460
+ }
461
+
462
+ console.log(`[wowok-skills] Installing MCP server ${MCP_PACKAGE}...`);
463
+ if (npmInstallGlobal(MCP_PACKAGE)) {
464
+ console.log(`[wowok-skills] MCP server installed.`);
465
+ return true;
466
+ }
467
+ console.error(`[wowok-skills] MCP server installation FAILED.`);
468
+ return false;
469
+ }
470
+
471
+ /**
472
+ * Write MCP server config entry for a given client target.
473
+ * Safely merges with any existing MCP configuration.
474
+ * Supports JSON format (most clients) and TOML format (Codex).
475
+ */
476
+ function writeMcpConfig(target) {
477
+ const cfg = MCP_TARGET_CONFIGS[target];
478
+ if (!cfg) {
479
+ console.log(`[wowok-skills] MCP config: ${target} does not support external MCP registration (skipped).`);
480
+ return false;
481
+ }
482
+
483
+ // ── TOML format (Codex CLI uses ~/.codex/config.toml) ──────────────
484
+ if (cfg.format === 'toml') {
485
+ try {
486
+ const tomlEntry = '\n[mcp_servers.wowok]\ncommand = "npx"\nargs = ["-y", "@wowok/agent-mcp"]\n';
487
+ let content = '';
488
+ if (fs.existsSync(cfg.configPath)) {
489
+ content = fs.readFileSync(cfg.configPath, 'utf-8');
490
+ }
491
+ if (content.includes('[mcp_servers.wowok]')) {
492
+ console.log(`[wowok-skills] MCP config already up to date: ${cfg.configPath}`);
493
+ return false;
494
+ }
495
+ fs.mkdirSync(path.dirname(cfg.configPath), { recursive: true });
496
+ fs.writeFileSync(cfg.configPath, content + tomlEntry, 'utf-8');
497
+ console.log(`[wowok-skills] MCP config written: ${cfg.configPath}`);
498
+ return true;
499
+ } catch (err) {
500
+ console.error(`[wowok-skills] ERROR writing MCP config for ${target}: ${err.message}`);
501
+ return false;
502
+ }
503
+ }
504
+
505
+ // ── JSON format (all other clients) ────────────────────────────────
506
+ try {
507
+ let config = {};
508
+ const dir = path.dirname(cfg.configPath);
509
+ if (fs.existsSync(cfg.configPath)) {
510
+ config = JSON.parse(fs.readFileSync(cfg.configPath, 'utf-8'));
511
+ }
512
+
513
+ const before = JSON.stringify(config);
514
+ config = cfg.merge(config);
515
+ const after = JSON.stringify(config);
516
+
517
+ if (before !== after) {
518
+ fs.mkdirSync(dir, { recursive: true });
519
+ fs.writeFileSync(cfg.configPath, JSON.stringify(config, null, 2), 'utf-8');
520
+ console.log(`[wowok-skills] MCP config written: ${cfg.configPath}`);
521
+ return true;
522
+ }
523
+
524
+ console.log(`[wowok-skills] MCP config already up to date: ${cfg.configPath}`);
525
+ return false;
526
+ } catch (err) {
527
+ console.error(`[wowok-skills] ERROR writing MCP config for ${target}: ${err.message}`);
528
+ return false;
529
+ }
530
+ }
531
+
532
+ /**
533
+ * Attempt to restart the running MCP server process.
534
+ *
535
+ * The MCP server is a child process of the IDE (Claude Code, Trae, etc.).
536
+ * We cannot directly "start" it — only kill the existing process so the IDE
537
+ * detects the exit and auto-restarts it with the new version.
538
+ *
539
+ * Best-effort: if the kill fails (no process running), it's harmless.
540
+ */
541
+ function restartMcpServer() {
542
+ try {
543
+ if (process.platform === 'win32') {
544
+ // Windows: use PowerShell (via -EncodedCommand to avoid quoting hell)
545
+ const psScript =
546
+ 'Get-CimInstance Win32_Process -Filter "Name=\'node.exe\' AND CommandLine LIKE \'%wowok%agent-mcp%\'" | ' +
547
+ 'ForEach-Object { Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue }';
548
+ const encoded = Buffer.from(psScript, 'utf16le').toString('base64');
549
+ execSync(`powershell -NoProfile -EncodedCommand ${encoded}`, {
550
+ stdio: 'pipe',
551
+ timeout: 10000,
552
+ });
553
+ } else {
554
+ // Unix: pkill by command-line pattern
555
+ execSync('pkill -f "wowok.*agent-mcp" 2>/dev/null || true', {
556
+ stdio: 'pipe',
557
+ timeout: 5000,
558
+ shell: true,
559
+ });
560
+ }
561
+ console.log('[wowok-skills] MCP server process terminated (IDE will auto-restart).');
562
+ return true;
563
+ } catch (e) {
564
+ console.log('[wowok-skills] No running MCP server process found. Start your IDE to launch it.');
565
+ return false;
566
+ }
567
+ }
568
+
232
569
  main();