@wowok/skills 2.1.3 → 2.2.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 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,14 +1,14 @@
1
1
  /**
2
2
  * Skill role categories for AI selection
3
3
  */
4
- export type SkillRole = 'customer' | 'provider' | 'arbitrator' | 'shared';
4
+ export type SkillRole = 'customer' | 'provider' | 'supplier' | 'collaborator' | 'arbitrator' | 'shared';
5
5
  /**
6
6
  * Skill loading mode
7
7
  * - 'always': Always loaded, metadata in prompt
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' | 'cursor' | 'windsurf' | 'codebuddy' | 'codex' | 'trae' | 'qoder' | 'roo' | 'agents' | 'copilot' | 'all';
11
+ export type ClientTarget = 'claude' | 'cursor' | 'windsurf' | 'codebuddy' | 'codex' | 'trae' | 'qoder' | 'roo' | 'cline' | 'kilo' | '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,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"}
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,UAAU,GAAG,cAAc,GAAG,YAAY,GAAG,QAAQ,CAAC;AAExG;;;;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,OAAO,GACP,MAAM,GACN,QAAQ,GACR,SAAS,GACT,KAAK,CAAC;AAEV,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,CAa1E,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,CAaxE,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
@@ -10,6 +10,8 @@ exports.CLIENT_SKILL_DIRS = {
10
10
  trae: '.agents/skills',
11
11
  qoder: '.qoder/skills',
12
12
  roo: '.roo/skills',
13
+ cline: '.cline/skills',
14
+ kilo: '.kilo/skills',
13
15
  agents: '.agents/skills',
14
16
  copilot: '.github/prompts',
15
17
  };
@@ -22,10 +24,12 @@ exports.CLIENT_FILE_EXT = {
22
24
  trae: '.md',
23
25
  qoder: '.md',
24
26
  roo: '.md',
27
+ cline: '.md',
28
+ kilo: '.md',
25
29
  agents: '.md',
26
30
  copilot: '.prompt.md',
27
31
  };
28
32
  exports.ALL_CLIENT_TARGETS = [
29
- 'claude', 'cursor', 'windsurf', 'codebuddy', 'codex', 'trae', 'qoder', 'roo', 'copilot',
33
+ 'claude', 'cursor', 'windsurf', 'codebuddy', 'codex', 'trae', 'qoder', 'roo', 'cline', 'kilo', 'copilot',
30
34
  ];
31
35
  //# 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":";;;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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA2Ba,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,KAAK,EAAE,eAAe;IACtB,IAAI,EAAE,cAAc;IACpB,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,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,KAAK;IACX,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,OAAO,EAAE,MAAM,EAAE,SAAS;CACzG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wowok/skills",
3
- "version": "2.1.3",
3
+ "version": "2.2.1",
4
4
  "description": "WoWok AI Skills for Claude and other AI assistants - Dialogue orchestration layer on top of the WoWok MCP server (rules/reference knowledge is served by MCP directly since v2.0.0)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -10,6 +10,8 @@
10
10
  "files": [
11
11
  "dist/",
12
12
  "wowok-provider/",
13
+ "wowok-supplier/",
14
+ "wowok-collaborator/",
13
15
  "wowok-arbitrator/",
14
16
  "wowok-machine/",
15
17
  "wowok-order/",
@@ -38,6 +38,9 @@ const SKILL_DIRS = [
38
38
  'wowok-onboard',
39
39
  'wowok-planner',
40
40
  'wowok-auditor',
41
+ 'wowok-supplier',
42
+ 'wowok-collaborator',
43
+ 'wowok-market',
41
44
  ];
42
45
 
43
46
  /**
@@ -69,12 +72,14 @@ const CLIENT_DIRS = {
69
72
  trae: path.join(os.homedir(), '.agents', 'skills'),
70
73
  qoder: path.join(os.homedir(), '.qoder', 'skills'),
71
74
  roo: path.join(os.homedir(), '.roo', 'skills'),
75
+ cline: path.join(os.homedir(), '.cline', 'skills'),
76
+ kilo: path.join(os.homedir(), '.kilo', 'skills'),
72
77
  agents: path.join(os.homedir(), '.agents', 'skills'), // deprecated alias
73
78
  copilot: path.join(os.homedir(), '.github', 'prompts'),
74
79
  };
75
80
 
76
81
  const ALL_CLIENT_TARGETS = [
77
- 'claude', 'cursor', 'windsurf', 'codebuddy', 'codex', 'trae', 'qoder', 'roo', 'copilot',
82
+ 'claude', 'cursor', 'windsurf', 'codebuddy', 'codex', 'trae', 'qoder', 'roo', 'cline', 'kilo', 'copilot',
78
83
  ];
79
84
 
80
85
  function getPackageRoot() {
@@ -341,7 +346,11 @@ function main() {
341
346
  console.log('[wowok-skills] Skills installed GLOBALLY + MCP server registered (all clients).');
342
347
  console.log('[wowok-skills] To ALSO install skills into a project, cd into it and run `wowok-skills init`.');
343
348
  } else if (event === 'preuninstall') {
344
- const targets = Object.keys(CLIENT_DIRS);
349
+ // Use the same target list as postinstall (ALL_CLIENT_TARGETS) so the
350
+ // set of dirs we remove from is symmetric with the set we installed to.
351
+ // Object.keys(CLIENT_DIRS) would additionally include the 'agents' alias
352
+ // which is identical to 'trae' → redundant.
353
+ const targets = [...ALL_CLIENT_TARGETS];
345
354
  console.log('[wowok-skills] Removing skills from all client dirs...');
346
355
 
347
356
  let total = 0;
@@ -374,9 +383,141 @@ function countExisting(targetDir) {
374
383
  /** MCP server npm package name */
375
384
  const MCP_PACKAGE = '@wowok/agent-mcp';
376
385
 
386
+ /**
387
+ * Resolve CodeBuddy MCP config file according to its official priority rules.
388
+ * Reference: https://www.codebuddy.ai/docs/cli/mcp#configuration-file-locations
389
+ *
390
+ * USER scope priority (highest → lowest):
391
+ * 1. ~/.codebuddy/.mcp.json (recommended)
392
+ * 2. ~/.codebuddy/mcp.json (deprecated)
393
+ * 3. ~/.codebuddy.json (legacy)
394
+ *
395
+ * Read rule : pick the FIRST existing candidate.
396
+ * Write rule: if any file exists, merge into that first existing file;
397
+ * if none exist, create the highest-priority one (.mcp.json).
398
+ */
399
+ function resolveCodeBuddyMcpFile() {
400
+ const home = os.homedir();
401
+ const candidates = [
402
+ path.join(home, '.codebuddy', '.mcp.json'), // 1. recommended
403
+ path.join(home, '.codebuddy', 'mcp.json'), // 2. deprecated
404
+ path.join(home, '.codebuddy.json'), // 3. legacy
405
+ ];
406
+ const existing = candidates.find((p) => fs.existsSync(p));
407
+ return existing || candidates[0];
408
+ }
409
+
410
+ /**
411
+ * Resolve VS Code globalStorage MCP settings files for a given extension ID.
412
+ *
413
+ * VS Code extensions store their settings under:
414
+ * <user-data>/User/globalStorage/<extensionId>/settings/<fileName>
415
+ *
416
+ * Where <user-data> depends on the platform and the installed VS Code
417
+ * *variant* (Code, Code - Insiders, VSCodium, Cursor). Only variants whose
418
+ * User directory actually exists on disk are returned.
419
+ *
420
+ * macOS: ~/Library/Application Support/{Code,Code - Insiders,VSCodium,Cursor}
421
+ * Windows: %APPDATA%\{Code,Code - Insiders,VSCodium,Cursor}
422
+ * Linux: ~/.config/{Code,Code - Insiders,VSCodium,Cursor}
423
+ */
424
+ function resolveVscodeGlobalStorageFiles(extensionId, fileName) {
425
+ const home = os.homedir();
426
+ const vsBaseDirs = (() => {
427
+ switch (process.platform) {
428
+ case 'darwin':
429
+ return [path.join(home, 'Library', 'Application Support')];
430
+ case 'win32':
431
+ return [process.env.APPDATA || path.join(home, 'AppData', 'Roaming')];
432
+ default:
433
+ return [process.env.XDG_CONFIG_HOME || path.join(home, '.config')];
434
+ }
435
+ })();
436
+
437
+ const results = [];
438
+ const vsVariants = ['Code', 'Code - Insiders', 'VSCodium', 'Cursor'];
439
+ for (const base of vsBaseDirs) {
440
+ for (const variant of vsVariants) {
441
+ const vsUserDir = path.join(base, variant, 'User');
442
+ if (fs.existsSync(vsUserDir)) {
443
+ results.push(path.join(
444
+ vsUserDir,
445
+ 'globalStorage',
446
+ extensionId,
447
+ 'settings',
448
+ fileName,
449
+ ));
450
+ }
451
+ }
452
+ }
453
+ return results;
454
+ }
455
+
456
+ /**
457
+ * Resolve ALL Roo Code MCP config files that should receive the wowok entry.
458
+ * Roo Code ships in two forms and we should cover BOTH:
459
+ *
460
+ * (A) Standalone CLI config → ~/.roo/mcp_settings.json
461
+ * Reference: https://mcp.harishgarg.com/use/apple-script/mcp-server/with/43
462
+ *
463
+ * (B) VS Code extension (rooveterinaryinc.roo-cline) config. The extension
464
+ * stores MCP settings inside VS Code's globalStorage under its
465
+ * extension ID.
466
+ * References:
467
+ * - Path convention : https://www.skillmd.ai/skills/mcp-installer-1/
468
+ * - macOS/Windows : https://crosstrade.io/learn/connect-roo-code-to-ninjatrader-8-mcp
469
+ */
470
+ function resolveRooMcpFiles() {
471
+ const results = [];
472
+ // (A) Standalone CLI config — always include this target
473
+ results.push(path.join(os.homedir(), '.roo', 'mcp_settings.json'));
474
+ // (B) VS Code extension globalStorage entries
475
+ results.push(...resolveVscodeGlobalStorageFiles(
476
+ 'rooveterinaryinc.roo-cline',
477
+ 'cline_mcp_settings.json',
478
+ ));
479
+ return results;
480
+ }
481
+
482
+ /**
483
+ * Resolve ALL Cline (VS Code) MCP config files.
484
+ * Cline is a VS Code extension that stores MCP settings in globalStorage
485
+ * under its extension ID (saoudrizwan.claude-dev), filename cline_mcp_settings.json.
486
+ * Reference: https://www.skillmd.ai/skills/mcp-installer-1/
487
+ */
488
+ function resolveClineMcpFiles() {
489
+ return resolveVscodeGlobalStorageFiles(
490
+ 'saoudrizwan.claude-dev',
491
+ 'cline_mcp_settings.json',
492
+ );
493
+ }
494
+
495
+ /**
496
+ * Resolve ALL Kilo Code MCP config files.
497
+ * Kilo Code reads MCP settings from two separate places (documented by Kilo):
498
+ * (A) VS Code extension → globalStorage/kilocode.kilo-code/settings/mcp_settings.json
499
+ * (B) CLI → ~/.kilocode/cli/global/settings/mcp_settings.json
500
+ * References:
501
+ * - https://kilo.ai/docs/features/mcp/using-mcp-in-cli
502
+ * - https://github.com/Kilo-Org/kilocode/blob/main/docs/file-locations.md
503
+ */
504
+ function resolveKiloMcpFiles() {
505
+ const results = [];
506
+ results.push(...resolveVscodeGlobalStorageFiles(
507
+ 'kilocode.kilo-code',
508
+ 'mcp_settings.json',
509
+ ));
510
+ results.push(path.join(os.homedir(), '.kilocode', 'cli', 'global', 'settings', 'mcp_settings.json'));
511
+ return results;
512
+ }
513
+
377
514
  /**
378
515
  * MCP config entries per client target.
379
516
  * null means the client does not support MCP or manages it internally.
517
+ * Each entry may either provide a static `configPath` string, or a
518
+ * `resolveConfigPaths()` function that returns an array of concrete paths
519
+ * (for clients like CodeBuddy with priority-resolution rules, or Roo with
520
+ * multiple simultaneous install targets).
380
521
  */
381
522
  const MCP_TARGET_CONFIGS = {
382
523
  claude: {
@@ -388,7 +529,7 @@ const MCP_TARGET_CONFIGS = {
388
529
  }
389
530
  },
390
531
  codebuddy: {
391
- configPath: path.join(os.homedir(), '.codebuddy', 'mcp.json'),
532
+ resolveConfigPaths: () => [resolveCodeBuddyMcpFile()],
392
533
  merge: (config) => {
393
534
  config.mcpServers = config.mcpServers || {};
394
535
  config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
@@ -404,9 +545,26 @@ const MCP_TARGET_CONFIGS = {
404
545
  }
405
546
  },
406
547
  qoder: {
407
- configPath: process.platform === 'win32'
408
- ? path.join(process.env.APPDATA || path.join(os.homedir(), 'AppData', 'Roaming'), 'Qoder', 'mcp-settings.json')
409
- : path.join(os.homedir(), '.config', 'qoder', 'mcp-settings.json'),
548
+ configPath: (() => {
549
+ // Qoder MCP config paths — confirmed by community guides:
550
+ // Windows : %APPDATA%\Qoder\mcp-settings.json
551
+ // macOS : ~/Library/Application Support/Qoder/mcp-settings.json
552
+ // Linux : ~/.config/qoder/mcp-settings.json
553
+ // Reference: github.com/oscar-wang-xin/mcp-session-saver/docs/MULTI_IDE_SETUP.md
554
+ if (process.platform === 'win32') {
555
+ return path.join(
556
+ process.env.APPDATA || path.join(os.homedir(), 'AppData', 'Roaming'),
557
+ 'Qoder', 'mcp-settings.json',
558
+ );
559
+ }
560
+ if (process.platform === 'darwin') {
561
+ return path.join(os.homedir(), 'Library', 'Application Support', 'Qoder', 'mcp-settings.json');
562
+ }
563
+ return path.join(
564
+ process.env.XDG_CONFIG_HOME || path.join(os.homedir(), '.config'),
565
+ 'qoder', 'mcp-settings.json',
566
+ );
567
+ })(),
410
568
  merge: (config) => {
411
569
  config.mcpServers = config.mcpServers || {};
412
570
  config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
@@ -414,7 +572,23 @@ const MCP_TARGET_CONFIGS = {
414
572
  }
415
573
  },
416
574
  roo: {
417
- configPath: path.join(os.homedir(), '.roo', 'mcp_settings.json'),
575
+ resolveConfigPaths: resolveRooMcpFiles,
576
+ merge: (config) => {
577
+ config.mcpServers = config.mcpServers || {};
578
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
579
+ return config;
580
+ }
581
+ },
582
+ cline: {
583
+ resolveConfigPaths: resolveClineMcpFiles,
584
+ merge: (config) => {
585
+ config.mcpServers = config.mcpServers || {};
586
+ config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
587
+ return config;
588
+ }
589
+ },
590
+ kilo: {
591
+ resolveConfigPaths: resolveKiloMcpFiles,
418
592
  merge: (config) => {
419
593
  config.mcpServers = config.mcpServers || {};
420
594
  config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
@@ -481,7 +655,10 @@ function getInstalledMcpVersion() {
481
655
  */
482
656
  function getLatestMcpVersion() {
483
657
  try {
484
- const output = execSync(`npm view ${MCP_PACKAGE} version`, {
658
+ // --prefer-online forces npm to bypass local cache and hit the registry
659
+ // directly. Without this flag, stale cache can return outdated version
660
+ // numbers (see project memory: components.mjs fix).
661
+ const output = execSync(`npm view --prefer-online ${MCP_PACKAGE} version`, {
485
662
  encoding: 'utf-8',
486
663
  stdio: 'pipe',
487
664
  timeout: 15000,
@@ -575,6 +752,11 @@ function ensureMcpServer() {
575
752
  * Write MCP server config entry for a given client target.
576
753
  * Safely merges with any existing MCP configuration.
577
754
  * Supports JSON format (most clients) and TOML format (Codex).
755
+ *
756
+ * When the target's MCP_TARGET_CONFIGS entry has `resolveConfigPaths()`
757
+ * (instead of a single `configPath` string) the function will iterate the
758
+ * returned array so multi-target clients (Roo, CodeBuddy with priority
759
+ * resolution) get every applicable location written to.
578
760
  */
579
761
  function writeMcpConfig(target) {
580
762
  const cfg = MCP_TARGET_CONFIGS[target];
@@ -591,7 +773,10 @@ function writeMcpConfig(target) {
591
773
  if (fs.existsSync(cfg.configPath)) {
592
774
  content = fs.readFileSync(cfg.configPath, 'utf-8');
593
775
  }
594
- if (content.includes('[mcp_servers.wowok]')) {
776
+ // Line-level regex detection. Avoids false positives when the header
777
+ // appears inside a comment (e.g. `; [mcp_servers.wowok]`) or a
778
+ // multi-line string literal.
779
+ if (/^\s*\[mcp_servers\.wowok\]\s*$/m.test(content)) {
595
780
  console.log(`[wowok-skills] MCP config already up to date: ${cfg.configPath}`);
596
781
  return false;
597
782
  }
@@ -606,30 +791,43 @@ function writeMcpConfig(target) {
606
791
  }
607
792
 
608
793
  // ── JSON format (all other clients) ────────────────────────────────
609
- try {
610
- let config = {};
611
- const dir = path.dirname(cfg.configPath);
612
- if (fs.existsSync(cfg.configPath)) {
613
- config = JSON.parse(fs.readFileSync(cfg.configPath, 'utf-8'));
614
- }
794
+ // Expand to an array of concrete paths so a single target can cover
795
+ // multiple physical files (priority resolution for CodeBuddy, CLI +
796
+ // VS Code variants for Roo/Cline/Kilo).
797
+ const configPaths = cfg.resolveConfigPaths ? cfg.resolveConfigPaths() : [cfg.configPath];
798
+ let anyWritten = false;
799
+
800
+ if (configPaths.length === 0) {
801
+ console.log(`[wowok-skills] MCP config: no config file detected for ${target} (client not installed) — skipped.`);
802
+ return false;
803
+ }
615
804
 
616
- const before = JSON.stringify(config);
617
- config = cfg.merge(config);
618
- const after = JSON.stringify(config);
805
+ for (const configPath of configPaths) {
806
+ try {
807
+ let config = {};
808
+ const dir = path.dirname(configPath);
809
+ if (fs.existsSync(configPath)) {
810
+ config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
811
+ }
619
812
 
620
- if (before !== after) {
621
- fs.mkdirSync(dir, { recursive: true });
622
- fs.writeFileSync(cfg.configPath, JSON.stringify(config, null, 2), 'utf-8');
623
- console.log(`[wowok-skills] MCP config written: ${cfg.configPath}`);
624
- return true;
625
- }
813
+ const before = JSON.stringify(config);
814
+ config = cfg.merge(config);
815
+ const after = JSON.stringify(config);
626
816
 
627
- console.log(`[wowok-skills] MCP config already up to date: ${cfg.configPath}`);
628
- return false;
629
- } catch (err) {
630
- console.error(`[wowok-skills] ERROR writing MCP config for ${target}: ${err.message}`);
631
- return false;
817
+ if (before !== after) {
818
+ fs.mkdirSync(dir, { recursive: true });
819
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
820
+ console.log(`[wowok-skills] MCP config written: ${configPath}`);
821
+ anyWritten = true;
822
+ } else {
823
+ console.log(`[wowok-skills] MCP config already up to date: ${configPath}`);
824
+ }
825
+ } catch (err) {
826
+ console.error(`[wowok-skills] ERROR writing MCP config for ${target} at ${configPath}: ${err.message}`);
827
+ }
632
828
  }
829
+
830
+ return anyWritten;
633
831
  }
634
832
 
635
833
  /**
@@ -169,7 +169,7 @@ Customer dispute creates Arb directly at (1). State (0) entered only via `reset`
169
169
  | **Messenger** (preferred) | Specific evidence, privacy-sensitive | Encrypted, off-chain |
170
170
  | **on-chain feedback** | General clarification, procedural | Public, permanent |
171
171
 
172
- **Best-move advice** (`evaluation_operation` → `arb_game`): pass `status` (7-state) + `perspective` (`disputant`/`arbitrator`/`voter`) to get ranked moves (optimal + payoff + risk). Read the result; the role decides and acts.
172
+ **Best-move advice** (`evaluation_operation` → `arb_game`): pass `status` (7-state) + `perspective` (`customer`/`merchant`/`arbitrator`) to get ranked moves (optimal + payoff + risk). Read the result; the role decides and acts.
173
173
 
174
174
  ---
175
175
 
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: wowok-collaborator
3
+ description: |
4
+ WoWok Collaborator — the canonical skill for process collaborators who execute
5
+ workflow forwards on behalf of a merchant: internal staff (permission entities)
6
+ and external operators (named operators).
7
+
8
+ Covers permission-index and named-operator routing, guard-gated evidence
9
+ submission, and reputation protection. The collaborator carries PROCESS
10
+ responsibility (no direct settlement stake) — the goal is to keep the workflow
11
+ flowing and avoid stall blame.
12
+
13
+ For the merchant who owns the Service, see wowok-provider. For the supplier who
14
+ presents to Demands, see wowok-supplier.
15
+ when_to_use:
16
+ - User is an operator/employee executing workflow steps (permission index)
17
+ - User is an external named operator advancing a Machine forward
18
+ - User wants to submit guard evidence (proof/repository) for a forward
19
+ - User mentions "collaborator", "operator", "permission index", "named operator", "execute forward"
20
+ ---
21
+
22
+ # WoWok Collaborator Guide
23
+
24
+ > **Role**: Collaborator (internal permission entity OR external named operator)
25
+ > **Related Skills**: [wowok-provider](../wowok-provider/SKILL.md) (merchant), [wowok-machine](../wowok-machine/SKILL.md) (workflow), [wowok-messenger](../wowok-messenger/SKILL.md) (evidence exchange)
26
+
27
+ ---
28
+
29
+ ## MCP Knowledge Layer
30
+
31
+ The following content has been pushed down to the MCP knowledge layer and is applied automatically — this Skill does NOT duplicate it:
32
+
33
+ | Content | Access via (MCP action) | Applied Via |
34
+ |---------|--------------------------|-------------|
35
+ | Collaborator interest analysis (fund_flow / responsibility / leverage / stakes) | `project_operation` action='participation_radar' | role derivation → `collaborator-interest` |
36
+ | Progress routing rule (namedOperator vs permissionIndex) | `schema_query` action='get_safety_rules' | `onchain_operations` progress/order |
37
+ | Guard design + submission patterns | `schema_query` action='get_guard_design_patterns' | guard-gated forwards |
38
+ | Node game (threshold cooperation) | `evaluation_operation` action='node_game' | multi-role forward evaluation |
39
+
40
+ This Skill keeps the collaborator **conversation flow** — what you can execute now, what evidence to submit, and how to stay in scope.
41
+
42
+ ---
43
+
44
+ ## Role: process responsibility, not settlement
45
+
46
+ The collaborator has **no direct settlement stake**. Your compensation is typically outside the on-chain order (salary/contract) unless the allocation explicitly routes a slot to you. Your stake is **reputation** — the stall/dispute metrics are public and read by future counterparties.
47
+
48
+ Two sub-kinds (derived on-chain, never asserted):
49
+ - **permission entity** (internal staff): granted a `permissionIndex` in the Service's Permission.
50
+ - **named operator** (external): resolved via Progress.namedOperator → LocalMark.
51
+
52
+ ---
53
+
54
+ ## Core Interaction Principles
55
+
56
+ 1. **Review-first**: State what you understand + what you can execute + the interaction contract before acting.
57
+ 2. **User-driven**: the AI surfaces options; you decide; never auto-advance.
58
+ 3. **Stay in scope**: only execute forwards your permission/named-operator grants — out-of-scope action creates semantic responsibility without authority.
59
+ 4. **Default-config disclosure**: disclose defaults + caveats before acting.
60
+
61
+ ---
62
+
63
+ ## What You Can Execute Now
64
+
65
+ Run `project_operation` action='participation_radar' with your account + the order's Progress. It returns:
66
+
67
+ - `operable` — forwards YOU can execute right now (permission / named-operator path).
68
+ - `waiting_on` — what the workflow waits on from other roles.
69
+ - `collaborator_kind` — internal vs external.
70
+ - `interest_analysis` → `collaborator-interest` (fund_flow / responsibility / leverage / stakes).
71
+
72
+ Present it neutrally; the collaborator decides.
73
+
74
+ ---
75
+
76
+ ## Routing
77
+
78
+ - Empty `namedOperator` (`""`) → `order.progress` (the order holder, NOT you).
79
+ - Non-empty role name → `progress.operate` with the named operator.
80
+ - `permissionIndex` → `progress.operate` with your granted index.
81
+
82
+ Wrong path → "Permission denied" (abort code 5). The MCP safety rules carry the authoritative classification.
83
+
84
+ ---
85
+
86
+ ## Guard-gated Forwards
87
+
88
+ A forward with a guard requires a `b_submission` (retained submission) before execution. Prepare your evidence (Repository/proof) in advance:
89
+
90
+ 1. Upload evidence (Repository/proof data).
91
+ 2. Execute the forward (two-phase: call → submission prompt → re-call with submission).
92
+ 3. Advance the workflow.
93
+
94
+ Uploading evidence BEFORE executing reduces dispute probability and pre-builds the merchant's arbitration defense — your diligence is visible on-chain.
95
+
96
+ ---
97
+
98
+ ## Design Principles
99
+
100
+ - **Momentum**: advance when you can; the stall is publicly visible.
101
+ - **Scope discipline**: never interfere outside your permission/named-operator scope.
102
+ - **Evidence first**: guard-gated forwards are only as strong as the submission behind them.
103
+ - **Neutrality**: the AI surfaces trade-offs, never chooses the branch for you.
104
+
105
+ ## Quick Reference
106
+
107
+ - You carry no settlement stake — your currency is reputation.
108
+ - `permissionIndex` → `progress.operate`; `namedOperator` role name → `progress.operate`.
109
+ - Guard-gated forward needs `b_submission` evidence before execution.
110
+ - Threshold cooperation (`node_game`) surfaces multi-role forward needs when a pair's threshold > 1.
@@ -221,10 +221,7 @@ Each round below lists: **Semantic meaning**, **Core elements to confirm**, **De
221
221
 
222
222
  ### R11 — Publish Service
223
223
 
224
- - **Semantic meaning**: Make the service live. Irreversible — `machine`, `order_allocators`, and `arbitrations` become permanently frozen.
225
- - **Core elements to confirm**: confirm publish (Phase 2: only flips `publish: true`; all L1 fields were set in R5–R9).
226
- - **Default config**: n/a — confirmation gate.
227
- - **Reuse / Customize / Discover**: n/a.
224
+ - **Semantic meaning**: Make the service live. Irreversible — `machine`, `order_allocators`, and `arbitrations` become permanently frozen. Confirmation gate (Phase 2: only flips `publish: true`; all L1 fields were set in R5–R9). After publish the Service is immediately orderable — `publish` auto-sets `bPaused=false` (per MCP `ServicePublishedEvent` semantic; do NOT call a separate `pause:false`/unpause operation).
228
225
  - **Dependencies**: R10 audit passed.
229
226
 
230
227
  ### R12 — Test Order (user-driven, next-node disclosure)
@@ -233,11 +230,12 @@ Each round below lists: **Semantic meaning**, **Core elements to confirm**, **De
233
230
  - **Core elements to confirm**:
234
231
  - **Test account**: which account places the order — default is the **service-creation account**, but the user may choose another account to simulate a buyer.
235
232
  - **Advance path**: at each node, the user chooses which next node to advance to.
236
- - **Per-node disclosure (before each advance)**: state current node + all reachable next nodes; for each, the operation (`order.progress` for `namedOperator=""` / `progress.operate` otherwise), required permission, Guard acceptance (`retained_submission`), and business meaning.
233
+ - **Per-node disclosure (before each advance)**: the MCP injects `semantic.workflow_guidance` (on query_toolkit Progress results: `_workflow_guidance` / `_workflow_guidance_text`) listing **ALL** reachable next nodes with their operator (`namedOperator=""` → order holder / `permissionIndex` → role / named operator), forward, weight, guard, business meaning, and a K3-framed recommendation (gains/risks/consistency). Relay this full list to the user (who can act, with which permission/account), then let the user choose — **AI 推荐、人决策** (K3 P3).
234
+ - **After each advance**: relay `semantic.workflow_receipt` — which account did what, whether the node migrated; if it did NOT migrate and threshold > 0, report threshold / accumulated weight / remaining / who must act next (K3 G4 阈值配合).
237
235
  - **Default config**: test account = service-creation account.
238
236
  - **Reuse / Customize / Discover**: n/a (verification).
239
237
  - **Dependencies**: Service published (R11) — `order_new` requires `bPublished=true`.
240
- - **Sequence**: `order_new` → query current node's forwards → user picks a next node → advance (`order.progress` / `progress.operate`) → repeat until terminal → `allocation.alloc_by_guard` → verify fund distribution.
238
+ - **Sequence**: `order_new` → read `workflow_guidance` (current node + reachable nodes) → user picks a next node → advance (`order.progress` for `namedOperator=""` / `progress.operate` otherwise) → relay `workflow_receipt` → repeat until terminal → `allocation.alloc_by_guard` → verify fund distribution.
241
239
 
242
240
  ---
243
241