@darkiceinteractive/mcp-conductor 3.0.0-beta.2 → 3.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.
Files changed (129) hide show
  1. package/README.md +168 -286
  2. package/dist/bin/cli.d.ts +2 -2
  3. package/dist/bin/cli.js +37 -14
  4. package/dist/bin/cli.js.map +1 -1
  5. package/dist/bridge/http-server.d.ts.map +1 -1
  6. package/dist/bridge/http-server.js +11 -5
  7. package/dist/bridge/http-server.js.map +1 -1
  8. package/dist/cache/disk.d.ts.map +1 -1
  9. package/dist/cache/disk.js +36 -3
  10. package/dist/cache/disk.js.map +1 -1
  11. package/dist/cli/clients/adapter.d.ts +103 -0
  12. package/dist/cli/clients/adapter.d.ts.map +1 -0
  13. package/dist/cli/clients/adapter.js +24 -0
  14. package/dist/cli/clients/adapter.js.map +1 -0
  15. package/dist/cli/clients/claude-code.d.ts +15 -0
  16. package/dist/cli/clients/claude-code.d.ts.map +1 -0
  17. package/dist/cli/clients/claude-code.js +110 -0
  18. package/dist/cli/clients/claude-code.js.map +1 -0
  19. package/dist/cli/clients/claude-desktop.d.ts +26 -0
  20. package/dist/cli/clients/claude-desktop.d.ts.map +1 -0
  21. package/dist/cli/clients/claude-desktop.js +118 -0
  22. package/dist/cli/clients/claude-desktop.js.map +1 -0
  23. package/dist/cli/clients/cline.d.ts +40 -0
  24. package/dist/cli/clients/cline.d.ts.map +1 -0
  25. package/dist/cli/clients/cline.js +134 -0
  26. package/dist/cli/clients/cline.js.map +1 -0
  27. package/dist/cli/clients/codex.d.ts +30 -0
  28. package/dist/cli/clients/codex.d.ts.map +1 -0
  29. package/dist/cli/clients/codex.js +176 -0
  30. package/dist/cli/clients/codex.js.map +1 -0
  31. package/dist/cli/clients/continue.d.ts +41 -0
  32. package/dist/cli/clients/continue.d.ts.map +1 -0
  33. package/dist/cli/clients/continue.js +150 -0
  34. package/dist/cli/clients/continue.js.map +1 -0
  35. package/dist/cli/clients/cursor.d.ts +20 -0
  36. package/dist/cli/clients/cursor.d.ts.map +1 -0
  37. package/dist/cli/clients/cursor.js +110 -0
  38. package/dist/cli/clients/cursor.js.map +1 -0
  39. package/dist/cli/clients/gemini-cli.d.ts +42 -0
  40. package/dist/cli/clients/gemini-cli.d.ts.map +1 -0
  41. package/dist/cli/clients/gemini-cli.js +169 -0
  42. package/dist/cli/clients/gemini-cli.js.map +1 -0
  43. package/dist/cli/clients/index.d.ts +28 -0
  44. package/dist/cli/clients/index.d.ts.map +1 -0
  45. package/dist/cli/clients/index.js +44 -0
  46. package/dist/cli/clients/index.js.map +1 -0
  47. package/dist/cli/clients/kimi-code.d.ts +33 -0
  48. package/dist/cli/clients/kimi-code.d.ts.map +1 -0
  49. package/dist/cli/clients/kimi-code.js +177 -0
  50. package/dist/cli/clients/kimi-code.js.map +1 -0
  51. package/dist/cli/clients/opencode.d.ts +21 -0
  52. package/dist/cli/clients/opencode.d.ts.map +1 -0
  53. package/dist/cli/clients/opencode.js +150 -0
  54. package/dist/cli/clients/opencode.js.map +1 -0
  55. package/dist/cli/clients/registry.d.ts +51 -0
  56. package/dist/cli/clients/registry.d.ts.map +1 -0
  57. package/dist/cli/clients/registry.js +169 -0
  58. package/dist/cli/clients/registry.js.map +1 -0
  59. package/dist/cli/clients/zed.d.ts +41 -0
  60. package/dist/cli/clients/zed.d.ts.map +1 -0
  61. package/dist/cli/clients/zed.js +171 -0
  62. package/dist/cli/clients/zed.js.map +1 -0
  63. package/dist/cli/commands/doctor.d.ts +27 -0
  64. package/dist/cli/commands/doctor.d.ts.map +1 -1
  65. package/dist/cli/commands/doctor.js +71 -0
  66. package/dist/cli/commands/doctor.js.map +1 -1
  67. package/dist/cli/commands/export-servers.d.ts +60 -0
  68. package/dist/cli/commands/export-servers.d.ts.map +1 -1
  69. package/dist/cli/commands/export-servers.js +85 -1
  70. package/dist/cli/commands/export-servers.js.map +1 -1
  71. package/dist/cli/commands/import-servers.d.ts +13 -2
  72. package/dist/cli/commands/import-servers.d.ts.map +1 -1
  73. package/dist/cli/commands/import-servers.js +42 -5
  74. package/dist/cli/commands/import-servers.js.map +1 -1
  75. package/dist/cli/wizard/setup.d.ts +29 -3
  76. package/dist/cli/wizard/setup.d.ts.map +1 -1
  77. package/dist/cli/wizard/setup.js +204 -7
  78. package/dist/cli/wizard/setup.js.map +1 -1
  79. package/dist/config/defaults.d.ts.map +1 -1
  80. package/dist/config/defaults.js +1 -0
  81. package/dist/config/defaults.js.map +1 -1
  82. package/dist/config/loader.d.ts +10 -1
  83. package/dist/config/loader.d.ts.map +1 -1
  84. package/dist/config/loader.js +14 -24
  85. package/dist/config/loader.js.map +1 -1
  86. package/dist/config/schema.d.ts +7 -0
  87. package/dist/config/schema.d.ts.map +1 -1
  88. package/dist/daemon/client.d.ts.map +1 -1
  89. package/dist/daemon/client.js +14 -6
  90. package/dist/daemon/client.js.map +1 -1
  91. package/dist/daemon/server.d.ts +9 -0
  92. package/dist/daemon/server.d.ts.map +1 -1
  93. package/dist/daemon/server.js +80 -9
  94. package/dist/daemon/server.js.map +1 -1
  95. package/dist/metrics/index.d.ts +1 -1
  96. package/dist/metrics/index.d.ts.map +1 -1
  97. package/dist/metrics/index.js +1 -1
  98. package/dist/metrics/index.js.map +1 -1
  99. package/dist/metrics/metrics-collector.d.ts +120 -0
  100. package/dist/metrics/metrics-collector.d.ts.map +1 -1
  101. package/dist/metrics/metrics-collector.js +136 -0
  102. package/dist/metrics/metrics-collector.js.map +1 -1
  103. package/dist/runtime/pool/recycle.d.ts +8 -2
  104. package/dist/runtime/pool/recycle.d.ts.map +1 -1
  105. package/dist/runtime/pool/recycle.js.map +1 -1
  106. package/dist/runtime/pool/worker-pool.d.ts.map +1 -1
  107. package/dist/runtime/pool/worker-pool.js +17 -10
  108. package/dist/runtime/pool/worker-pool.js.map +1 -1
  109. package/dist/runtime/pool/worker.d.ts +7 -1
  110. package/dist/runtime/pool/worker.d.ts.map +1 -1
  111. package/dist/runtime/pool/worker.js +9 -1
  112. package/dist/runtime/pool/worker.js.map +1 -1
  113. package/dist/server/mcp-server.d.ts +15 -3
  114. package/dist/server/mcp-server.d.ts.map +1 -1
  115. package/dist/server/mcp-server.js +81 -7
  116. package/dist/server/mcp-server.js.map +1 -1
  117. package/dist/utils/backup.d.ts +24 -0
  118. package/dist/utils/backup.d.ts.map +1 -0
  119. package/dist/utils/backup.js +40 -0
  120. package/dist/utils/backup.js.map +1 -0
  121. package/dist/utils/tokenize.d.ts +8 -0
  122. package/dist/utils/tokenize.d.ts.map +1 -1
  123. package/dist/utils/tokenize.js +8 -0
  124. package/dist/utils/tokenize.js.map +1 -1
  125. package/dist/version.d.ts +3 -3
  126. package/dist/version.d.ts.map +1 -1
  127. package/dist/version.js +3 -3
  128. package/dist/version.js.map +1 -1
  129. package/package.json +23 -2
@@ -1,5 +1,5 @@
1
1
  /**
2
- * import-servers command: read Claude config files, show diff, copy to ~/.mcp-conductor.json
2
+ * import-servers command: read MCP client config files, show diff, copy to ~/.mcp-conductor.json
3
3
  * @module cli/commands/import-servers
4
4
  */
5
5
  export interface ImportOptions {
@@ -38,7 +38,14 @@ export declare function findClaudeConfigsWithServers(configPaths?: string[]): Ar
38
38
  }>;
39
39
  }>;
40
40
  /**
41
- * Write a .bak file alongside the original.
41
+ * Write a timestamped backup file alongside the original.
42
+ *
43
+ * B10: Uses a `.bak.YYYYMMDDHHMMSS` suffix so repeat runs produce distinct
44
+ * files rather than silently overwriting the previous backup. If a file with
45
+ * the same timestamp already exists (sub-second collision), a random 4-char
46
+ * hex suffix is appended to guarantee uniqueness.
47
+ *
48
+ * @returns The path of the backup file that was written.
42
49
  */
43
50
  export declare function writeBackup(filePath: string): string;
44
51
  /**
@@ -52,6 +59,10 @@ export declare function stripServersFromConfig(filePath: string, serverNames: st
52
59
  export declare function importServers(options?: ImportOptions): ImportResult[];
53
60
  /**
54
61
  * Format import results as human-readable text (for CLI output).
62
+ *
63
+ * B5: env values are never included in the output — only key names are shown.
64
+ * Inline token-style flags in command/args are redacted to prevent accidental
65
+ * secret exposure in logs or MCP response summaries.
55
66
  */
56
67
  export declare function formatImportResults(results: ImportResult[], dryRun?: boolean): string;
57
68
  //# sourceMappingURL=import-servers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"import-servers.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/import-servers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,yDAAyD;IACzD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAmBzL;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CASpF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,YAAY,EAAE,CA8CzE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,MAAM,UAAQ,GAAG,MAAM,CAuCnF"}
1
+ {"version":3,"file":"import-servers.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/import-servers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,yDAAyD;IACzD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAmBzL;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAcpD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CASpF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,YAAY,EAAE,CA8CzE;AAeD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,MAAM,UAAQ,GAAG,MAAM,CAgDnF"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * import-servers command: read Claude config files, show diff, copy to ~/.mcp-conductor.json
2
+ * import-servers command: read MCP client config files, show diff, copy to ~/.mcp-conductor.json
3
3
  * @module cli/commands/import-servers
4
4
  */
5
5
  import { existsSync, readFileSync, writeFileSync, copyFileSync } from 'node:fs';
@@ -29,10 +29,25 @@ export function findClaudeConfigsWithServers(configPaths) {
29
29
  return found;
30
30
  }
31
31
  /**
32
- * Write a .bak file alongside the original.
32
+ * Write a timestamped backup file alongside the original.
33
+ *
34
+ * B10: Uses a `.bak.YYYYMMDDHHMMSS` suffix so repeat runs produce distinct
35
+ * files rather than silently overwriting the previous backup. If a file with
36
+ * the same timestamp already exists (sub-second collision), a random 4-char
37
+ * hex suffix is appended to guarantee uniqueness.
38
+ *
39
+ * @returns The path of the backup file that was written.
33
40
  */
34
41
  export function writeBackup(filePath) {
35
- const backupPath = `${filePath}.bak`;
42
+ // Generate YYYYMMDDHHMMSS from current UTC time.
43
+ // toISOString() → "2026-05-04T11:23:45.678Z"; strip non-digits, take first 14.
44
+ const ts = new Date().toISOString().replace(/\D/g, '').slice(0, 14);
45
+ let backupPath = `${filePath}.bak.${ts}`;
46
+ // Sub-second collision guard: append 4 random hex chars.
47
+ if (existsSync(backupPath)) {
48
+ const salt = Math.floor(Math.random() * 0xffff).toString(16).padStart(4, '0');
49
+ backupPath = `${backupPath}.${salt}`;
50
+ }
36
51
  copyFileSync(filePath, backupPath);
37
52
  return backupPath;
38
53
  }
@@ -95,12 +110,27 @@ export function importServers(options = {}) {
95
110
  }
96
111
  return results;
97
112
  }
113
+ // B5: Regex to detect and redact inline token-style flags in command/args strings.
114
+ // Matches patterns like --token=VALUE, --api-key=VALUE, --secret=VALUE, --password=VALUE.
115
+ // The value portion is replaced with *** so the key name remains visible.
116
+ const INLINE_TOKEN_RE = /(--(?:token|api[-_]?key|secret|password|auth|credentials?)[=])\S+/gi;
117
+ /**
118
+ * B5: Redact inline token-style flags from a command or argument string.
119
+ * e.g. "--token=abc123" becomes "--token=***"
120
+ */
121
+ function redactInlineTokens(str) {
122
+ return str.replace(INLINE_TOKEN_RE, '$1***');
123
+ }
98
124
  /**
99
125
  * Format import results as human-readable text (for CLI output).
126
+ *
127
+ * B5: env values are never included in the output — only key names are shown.
128
+ * Inline token-style flags in command/args are redacted to prevent accidental
129
+ * secret exposure in logs or MCP response summaries.
100
130
  */
101
131
  export function formatImportResults(results, dryRun = false) {
102
132
  if (results.length === 0) {
103
- return 'No Claude config files with MCP servers found.';
133
+ return 'No MCP client config files with MCP servers found.';
104
134
  }
105
135
  const lines = [];
106
136
  let totalImported = 0;
@@ -110,7 +140,14 @@ export function formatImportResults(results, dryRun = false) {
110
140
  if (r.imported.length > 0) {
111
141
  lines.push(` ${dryRun ? 'Would import' : 'Imported'} (${r.imported.length}):`);
112
142
  for (const s of r.imported) {
113
- lines.push(` + ${s.name} [${s.command}${s.args?.length ? ' ' + s.args.join(' ') : ''}]`);
143
+ // B5: Redact inline token flags before rendering command/args.
144
+ const safeCommand = redactInlineTokens(s.command);
145
+ const safeArgs = s.args?.map(redactInlineTokens) ?? [];
146
+ const cmdStr = `${safeCommand}${safeArgs.length ? ' ' + safeArgs.join(' ') : ''}`;
147
+ // B5: Show only env key names — never values.
148
+ const envKeys = Object.keys(s.env ?? {});
149
+ const envStr = envKeys.length > 0 ? ` env: [${envKeys.join(', ')}]` : '';
150
+ lines.push(` + ${s.name} [${cmdStr}]${envStr}`);
114
151
  }
115
152
  }
116
153
  if (r.skipped.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"import-servers.js","sourceRoot":"","sources":["../../../src/cli/commands/import-servers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import-servers.js","sourceRoot":"","sources":["../../../src/cli/commands/import-servers.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,38 @@
1
1
  /**
2
2
  * Interactive setup wizard using @inquirer/prompts.
3
- * Guides the user through discovering Claude configs, importing servers,
4
- * and optionally cleaning up source configs.
3
+ *
4
+ * MC3: multi-client discovery mode (default).
5
+ * 1. Discover all MCP client config locations via getMCPClientConfigPaths().
6
+ * 2. For each existing config, parse it via the registered adapter.
7
+ * 3. Present a per-client summary diff and ask for confirmation.
8
+ * 4. On confirm: migrate that client's servers into ~/.mcp-conductor.json
9
+ * and write the conductor entry back into the client config.
10
+ *
11
+ * Legacy (single-Claude) mode is preserved under runLegacySetupWizard() and
12
+ * is reachable via `runSetupWizard({ legacy: true })` (or the CLI --legacy flag).
13
+ *
5
14
  * @module cli/wizard/setup
6
15
  */
16
+ /**
17
+ * Legacy setup wizard: operates only on Claude config files (the pre-MC3
18
+ * behaviour). Reachable via `runSetupWizard({ legacy: true })` or the CLI
19
+ * `mcp-conductor-cli setup --legacy` flag.
20
+ */
21
+ export declare function runLegacySetupWizard(): Promise<void>;
22
+ export interface SetupWizardOptions {
23
+ /**
24
+ * When `true`, run the legacy single-client wizard instead of the new
25
+ * multi-client wizard. Activated via `mcp-conductor-cli setup --legacy`.
26
+ */
27
+ legacy?: boolean;
28
+ }
7
29
  /**
8
30
  * Run the full interactive setup wizard.
31
+ *
32
+ * By default (MC3) scans all known MCP clients and migrates each independently.
33
+ * Pass `{ legacy: true }` to use the pre-MC3 single-Claude flow.
34
+ *
9
35
  * Falls back to non-interactive mode if TTY is not available (CI).
10
36
  */
11
- export declare function runSetupWizard(): Promise<void>;
37
+ export declare function runSetupWizard(options?: SetupWizardOptions): Promise<void>;
12
38
  //# sourceMappingURL=setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/cli/wizard/setup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAmEpD"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/cli/wizard/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAwNH;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAmE1D;AAMD,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpF"}
@@ -1,25 +1,208 @@
1
1
  /**
2
2
  * Interactive setup wizard using @inquirer/prompts.
3
- * Guides the user through discovering Claude configs, importing servers,
4
- * and optionally cleaning up source configs.
3
+ *
4
+ * MC3: multi-client discovery mode (default).
5
+ * 1. Discover all MCP client config locations via getMCPClientConfigPaths().
6
+ * 2. For each existing config, parse it via the registered adapter.
7
+ * 3. Present a per-client summary diff and ask for confirmation.
8
+ * 4. On confirm: migrate that client's servers into ~/.mcp-conductor.json
9
+ * and write the conductor entry back into the client config.
10
+ *
11
+ * Legacy (single-Claude) mode is preserved under runLegacySetupWizard() and
12
+ * is reachable via `runSetupWizard({ legacy: true })` (or the CLI --legacy flag).
13
+ *
5
14
  * @module cli/wizard/setup
6
15
  */
7
16
  import pc from 'picocolors';
17
+ import { getMCPClientConfigPaths, ADAPTERS } from '../clients/index.js';
18
+ import { loadConductorConfig, saveConductorConfig, getDefaultConductorConfigPath, } from '../../config/index.js';
8
19
  import { findClaudeConfigsWithServers, importServers, formatImportResults } from '../commands/import-servers.js';
9
20
  import { runDoctor, formatDoctorResults } from '../commands/doctor.js';
21
+ // ---------------------------------------------------------------------------
22
+ // Shared constants
23
+ // ---------------------------------------------------------------------------
10
24
  /**
11
- * Run the full interactive setup wizard.
12
- * Falls back to non-interactive mode if TTY is not available (CI).
25
+ * The conductor entry written into every client config during setup.
26
+ */
27
+ const CONDUCTOR_ENTRY = {
28
+ command: 'npx',
29
+ args: ['-y', '@darkiceinteractive/mcp-conductor@latest'],
30
+ };
31
+ // ---------------------------------------------------------------------------
32
+ // MC3: Multi-client wizard helpers
33
+ // ---------------------------------------------------------------------------
34
+ /**
35
+ * Migrate servers from a parsed client config into ~/.mcp-conductor.json.
36
+ * De-duplicates by name (existing conductor entries are not overwritten).
37
+ * The `mcp-conductor` entry itself is never imported as a server.
38
+ *
39
+ * Returns the names of newly added servers.
40
+ */
41
+ function mergeIntoConductor(servers) {
42
+ const conductorPath = getDefaultConductorConfigPath();
43
+ const conductorConfig = loadConductorConfig() ?? { exclusive: false, servers: {} };
44
+ const added = [];
45
+ for (const [name, entry] of Object.entries(servers)) {
46
+ if (name === 'mcp-conductor')
47
+ continue; // never import conductor itself
48
+ if (conductorConfig.servers[name])
49
+ continue; // already present — skip
50
+ conductorConfig.servers[name] = {
51
+ command: entry.command,
52
+ args: entry.args ?? [],
53
+ env: entry.env ?? {},
54
+ };
55
+ added.push(name);
56
+ }
57
+ if (added.length > 0) {
58
+ saveConductorConfig(conductorConfig, conductorPath);
59
+ }
60
+ return added;
61
+ }
62
+ // ---------------------------------------------------------------------------
63
+ // MC3: Multi-client wizard
64
+ // ---------------------------------------------------------------------------
65
+ /**
66
+ * Run the multi-client setup wizard.
67
+ *
68
+ * Discovers all MCP client configs that exist on disk, presents a per-client
69
+ * diff, and migrates on per-client confirmation. Each client is independent —
70
+ * the user can opt-out per client.
13
71
  */
14
- export async function runSetupWizard() {
72
+ async function runMultiClientSetupWizard() {
15
73
  const isTTY = process.stdout.isTTY && process.stdin.isTTY;
16
74
  console.log(pc.bold(pc.cyan('\nMCP Conductor — Setup Wizard\n')));
75
+ console.log('This wizard scans all known MCP client configs on your machine,');
76
+ console.log('migrates their servers into ~/.mcp-conductor.json, and installs');
77
+ console.log('the conductor entry back into each client.\n');
78
+ // Step 1: discover all client config locations.
79
+ const locations = getMCPClientConfigPaths({ includeProject: true });
80
+ const existingLocations = locations.filter((loc) => loc.exists);
81
+ if (existingLocations.length === 0) {
82
+ console.log(pc.yellow('No MCP client config files found on this machine.'));
83
+ console.log('Add servers manually with: mcp-conductor-cli add <name> <command> [args...]');
84
+ return;
85
+ }
86
+ const parsedLocations = [];
87
+ for (const loc of existingLocations) {
88
+ const adapter = ADAPTERS.get(loc.client);
89
+ if (!adapter)
90
+ continue; // no adapter registered — skip gracefully
91
+ try {
92
+ const parsed = adapter.parse(loc.path);
93
+ if (!parsed)
94
+ continue; // no MCP servers in this file
95
+ const serverNames = Object.keys(parsed.servers).filter((n) => n !== 'mcp-conductor');
96
+ const hasConductor = 'mcp-conductor' in parsed.servers;
97
+ if (serverNames.length === 0 && hasConductor) {
98
+ // Already fully configured — nothing to do for this client.
99
+ console.log(pc.dim(` ${loc.displayName}: already has conductor entry — skipping.`));
100
+ continue;
101
+ }
102
+ parsedLocations.push({ loc, serverNames, hasConductor });
103
+ }
104
+ catch {
105
+ // Parse errors are non-fatal — skip the location.
106
+ continue;
107
+ }
108
+ }
109
+ if (parsedLocations.length === 0) {
110
+ console.log(pc.green('\nAll detected client configs already have the conductor entry installed.'));
111
+ console.log(pc.dim('Nothing to migrate.\n'));
112
+ return;
113
+ }
114
+ // Step 3 & 4: per-client confirm + migrate.
115
+ const updatedClients = [];
116
+ const allMovedServers = [];
117
+ const hadBackups = [];
118
+ for (const { loc, serverNames } of parsedLocations) {
119
+ console.log(pc.bold(`\n${loc.displayName}`) + pc.dim(` (${loc.path})`));
120
+ if (serverNames.length > 0) {
121
+ console.log(` ${serverNames.length} server(s) found → move into conductor + install conductor entry:`);
122
+ for (const name of serverNames) {
123
+ console.log(pc.dim(` • ${name}`));
124
+ }
125
+ }
126
+ else {
127
+ console.log(` 0 non-conductor servers — will just install the conductor entry.`);
128
+ }
129
+ let doMigrate = true;
130
+ if (isTTY) {
131
+ const { confirm } = await import('@inquirer/prompts');
132
+ doMigrate = await confirm({
133
+ message: `Migrate ${loc.displayName}?`,
134
+ default: true,
135
+ });
136
+ }
137
+ else {
138
+ console.log(pc.dim(' (Non-interactive — proceeding automatically)\n'));
139
+ }
140
+ if (!doMigrate) {
141
+ console.log(pc.dim(` Skipped ${loc.displayName}.`));
142
+ continue;
143
+ }
144
+ // Re-parse to get the full NormalisedClientConfig for the adapter write.
145
+ const adapter = ADAPTERS.get(loc.client);
146
+ const parsed = adapter.parse(loc.path);
147
+ if (!parsed)
148
+ continue; // should not happen since we parsed above
149
+ // Merge non-conductor servers into ~/.mcp-conductor.json.
150
+ const added = mergeIntoConductor(parsed.servers);
151
+ // Write conductor entry back into the client config.
152
+ try {
153
+ adapter.serialize(loc.path, parsed, {
154
+ keepOnlyConductor: false,
155
+ conductorEntry: CONDUCTOR_ENTRY,
156
+ });
157
+ updatedClients.push(`${loc.displayName} (${loc.path})`);
158
+ allMovedServers.push(...added);
159
+ hadBackups.push(true);
160
+ const movedMsg = added.length > 0 ? `${added.length} server(s) moved.` : 'Conductor entry installed.';
161
+ console.log(pc.green(` [OK] ${loc.displayName} updated. ${movedMsg}`));
162
+ }
163
+ catch (err) {
164
+ console.log(pc.red(` [FAIL] Failed to update ${loc.displayName}: ${String(err)}`));
165
+ }
166
+ }
167
+ // Step 5: final summary.
168
+ console.log(pc.bold(pc.green('\nSetup complete!\n')));
169
+ if (updatedClients.length > 0) {
170
+ console.log(`Clients updated (${updatedClients.length}):`);
171
+ for (const c of updatedClients) {
172
+ console.log(` • ${c}`);
173
+ }
174
+ }
175
+ if (allMovedServers.length > 0) {
176
+ console.log(`\nServers moved into conductor (${allMovedServers.length}):`);
177
+ for (const s of allMovedServers) {
178
+ console.log(` • ${s}`);
179
+ }
180
+ }
181
+ if (hadBackups.length > 0) {
182
+ console.log(pc.dim(`\nBackup files created alongside each updated config (*.bak.YYYYMMDDHHMMSS).`));
183
+ }
184
+ console.log('\nNext steps:');
185
+ console.log(' 1. Restart your MCP client(s) to pick up the new conductor config.');
186
+ console.log(' 2. Use mcp-conductor-cli list to verify all servers are visible.');
187
+ console.log(' 3. Use mcp-conductor-cli doctor to check for any issues.\n');
188
+ }
189
+ // ---------------------------------------------------------------------------
190
+ // Legacy: single-Claude wizard (pre-MC3 behaviour)
191
+ // ---------------------------------------------------------------------------
192
+ /**
193
+ * Legacy setup wizard: operates only on Claude config files (the pre-MC3
194
+ * behaviour). Reachable via `runSetupWizard({ legacy: true })` or the CLI
195
+ * `mcp-conductor-cli setup --legacy` flag.
196
+ */
197
+ export async function runLegacySetupWizard() {
198
+ const isTTY = process.stdout.isTTY && process.stdin.isTTY;
199
+ console.log(pc.bold(pc.cyan('\nMCP Conductor — Setup Wizard (legacy mode)\n')));
17
200
  console.log('This wizard will help you move your MCP servers into Conductor.');
18
201
  console.log('Conductor proxies all your servers through a single MCP endpoint.\n');
19
202
  // Step 1: discover Claude configs
20
203
  const sources = findClaudeConfigsWithServers();
21
204
  if (sources.length === 0) {
22
- console.log(pc.yellow('No Claude config files with MCP servers found.'));
205
+ console.log(pc.yellow('No MCP client config files with MCP servers found.'));
23
206
  console.log('Add servers manually with: mcp-conductor-cli add <name> <command> [args...]');
24
207
  return;
25
208
  }
@@ -64,8 +247,22 @@ export async function runSetupWizard() {
64
247
  // Step 4: next steps
65
248
  console.log(pc.bold(pc.green('\nSetup complete!\n')));
66
249
  console.log('Next steps:');
67
- console.log(' 1. Restart Claude to pick up the new mcp-conductor config.');
250
+ console.log(' 1. Restart your MCP client(s) to pick up the new mcp-conductor config.');
68
251
  console.log(' 2. Use mcp-conductor-cli list to verify all servers are visible.');
69
252
  console.log(' 3. Use mcp-conductor-cli doctor to check for any issues.\n');
70
253
  }
254
+ /**
255
+ * Run the full interactive setup wizard.
256
+ *
257
+ * By default (MC3) scans all known MCP clients and migrates each independently.
258
+ * Pass `{ legacy: true }` to use the pre-MC3 single-Claude flow.
259
+ *
260
+ * Falls back to non-interactive mode if TTY is not available (CI).
261
+ */
262
+ export async function runSetupWizard(options = {}) {
263
+ if (options.legacy) {
264
+ return runLegacySetupWizard();
265
+ }
266
+ return runMultiClientSetupWizard();
267
+ }
71
268
  //# sourceMappingURL=setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/wizard/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/wizard/setup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,iBAqC5B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;CAeX,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;CAGpC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;CAWrB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,mBAAmB,OAAO,CAAC"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,iBAsC5B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;CAeX,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;CAGpC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;CAWrB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,mBAAmB,OAAO,CAAC"}
@@ -47,6 +47,7 @@ export const DEFAULT_CONFIG = {
47
47
  enabled: true,
48
48
  logToFile: false,
49
49
  logPath: null,
50
+ alwaysShowTokenSavings: false,
50
51
  },
51
52
  servers: {
52
53
  allowList: ['*'],
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,EAAE,2DAA2D;QACpE,IAAI,EAAE,WAAW;KAClB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,gBAAgB,EAAE,KAAK;QACvB,YAAY,EAAE,MAAM;QACpB,gBAAgB,EAAE,IAAI;KACvB;IACD,OAAO,EAAE;QACP,WAAW,EAAE,GAAG;QAChB,eAAe,EAAE,CAAC,WAAW,CAAC;QAC9B,0EAA0E;QAC1E,wEAAwE;QACxE,6CAA6C;QAC7C,sBAAsB,EAAE,CAAC;QACzB,cAAc,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;KAC1C;IACD,MAAM,EAAE;QACN,IAAI,EAAE,IAAI;QACV,eAAe,EAAE,IAAI;KACtB;IACD,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,GAAG;KAChB;IACD,OAAO,EAAE;QACP,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,IAAI;KACd;IACD,OAAO,EAAE;QACP,SAAS,EAAE,CAAC,GAAG,CAAC;QAChB,QAAQ,EAAE,EAAE;KACb;CACF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,sBAAsB;IAC/B,WAAW,EAAE,0BAA0B;IACvC,SAAS,EAAE,wBAAwB;IACnC,MAAM,EAAE,qBAAqB;IAC7B,aAAa,EAAE,4BAA4B;IAC3C,gBAAgB,EAAE,sBAAsB;IACxC,WAAW,EAAE,0BAA0B;IACvC,YAAY,EAAE,2BAA2B;IACzC,YAAY,EAAE,2BAA2B;IACzC,cAAc,EAAE,6BAA6B;IAC7C,eAAe,EAAE,8BAA8B;IAC/C,aAAa,EAAE,4BAA4B;CACnC,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,mBAAmB,EAAE,MAAM;IAC3B,qBAAqB,EAAE,KAAK;IAC5B,mBAAmB,EAAE,CAAC,GAAG,MAAM;IAC/B,uBAAuB,EAAE,EAAE,GAAG,MAAM;IACpC,mBAAmB,EAAE,EAAE,GAAG,MAAM;IAChC,0BAA0B,EAAE,MAAM;IAClC,sBAAsB,EAAE,MAAM;IAC9B,qBAAqB,EAAE,EAAE,GAAG,MAAM;IAClC,kCAAkC,EAAE,CAAC,GAAG,MAAM;IAC9C,wBAAwB,EAAE,MAAM;CACxB,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,EAAE,2DAA2D;QACpE,IAAI,EAAE,WAAW;KAClB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,gBAAgB,EAAE,KAAK;QACvB,YAAY,EAAE,MAAM;QACpB,gBAAgB,EAAE,IAAI;KACvB;IACD,OAAO,EAAE;QACP,WAAW,EAAE,GAAG;QAChB,eAAe,EAAE,CAAC,WAAW,CAAC;QAC9B,0EAA0E;QAC1E,wEAAwE;QACxE,6CAA6C;QAC7C,sBAAsB,EAAE,CAAC;QACzB,cAAc,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;KAC1C;IACD,MAAM,EAAE;QACN,IAAI,EAAE,IAAI;QACV,eAAe,EAAE,IAAI;KACtB;IACD,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,GAAG;KAChB;IACD,OAAO,EAAE;QACP,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,IAAI;QACb,sBAAsB,EAAE,KAAK;KAC9B;IACD,OAAO,EAAE;QACP,SAAS,EAAE,CAAC,GAAG,CAAC;QAChB,QAAQ,EAAE,EAAE;KACb;CACF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,sBAAsB;IAC/B,WAAW,EAAE,0BAA0B;IACvC,SAAS,EAAE,wBAAwB;IACnC,MAAM,EAAE,qBAAqB;IAC7B,aAAa,EAAE,4BAA4B;IAC3C,gBAAgB,EAAE,sBAAsB;IACxC,WAAW,EAAE,0BAA0B;IACvC,YAAY,EAAE,2BAA2B;IACzC,YAAY,EAAE,2BAA2B;IACzC,cAAc,EAAE,6BAA6B;IAC7C,eAAe,EAAE,8BAA8B;IAC/C,aAAa,EAAE,4BAA4B;CACnC,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,mBAAmB,EAAE,MAAM;IAC3B,qBAAqB,EAAE,KAAK;IAC5B,mBAAmB,EAAE,CAAC,GAAG,MAAM;IAC/B,uBAAuB,EAAE,EAAE,GAAG,MAAM;IACpC,mBAAmB,EAAE,EAAE,GAAG,MAAM;IAChC,0BAA0B,EAAE,MAAM;IAClC,sBAAsB,EAAE,MAAM;IAC9B,qBAAqB,EAAE,EAAE,GAAG,MAAM;IAClC,kCAAkC,EAAE,CAAC,GAAG,MAAM;IAC9C,wBAAwB,EAAE,MAAM;CACxB,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC"}
@@ -11,7 +11,16 @@ export declare function getDefaultConfigPath(): string;
11
11
  */
12
12
  export declare function loadConfig(configPath?: string): MCPExecutorConfig;
13
13
  /**
14
- * Claude config file search paths (cross-platform)
14
+ * Claude config file search paths (cross-platform).
15
+ *
16
+ * @deprecated Use `getMCPClientConfigPaths()` from `src/cli/clients/registry.ts`
17
+ * for multi-client discovery. This function is kept as a backwards-compat
18
+ * shim so existing callers (`import-servers`, `wizard/setup`, tests) continue
19
+ * to work without modification.
20
+ *
21
+ * Delegates to `getMCPClientConfigPaths({ includeProject: true })` and filters
22
+ * to Claude-only clients, preserving the original return type (`string[]`) and
23
+ * including project-local paths for full parity with the old implementation.
15
24
  */
16
25
  export declare function getClaudeConfigPaths(): string[];
17
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAiB,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA+GnG;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAgBjE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CA0B/C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAkChD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAkBzE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAQlD;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAgBnD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAmB/E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,eAAe,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAyBpD"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAiB,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAgHnG;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAgBjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAI/C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAkChD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAkBzE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAQlD;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAgBnD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAmB/E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,eAAe,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAyBpD"}
@@ -6,6 +6,7 @@ import { homedir } from 'node:os';
6
6
  import { join, dirname } from 'node:path';
7
7
  import { DEFAULT_CONFIG, DEFAULT_CONDUCTOR_CONFIG, ENV_VARS } from './defaults.js';
8
8
  import { logger, safeJsonParse } from '../utils/index.js';
9
+ import { getMCPClientConfigPaths } from '../cli/clients/registry.js';
9
10
  /**
10
11
  * Load configuration from environment variables
11
12
  */
@@ -121,32 +122,21 @@ export function loadConfig(configPath) {
121
122
  return config;
122
123
  }
123
124
  /**
124
- * Claude config file search paths (cross-platform)
125
+ * Claude config file search paths (cross-platform).
126
+ *
127
+ * @deprecated Use `getMCPClientConfigPaths()` from `src/cli/clients/registry.ts`
128
+ * for multi-client discovery. This function is kept as a backwards-compat
129
+ * shim so existing callers (`import-servers`, `wizard/setup`, tests) continue
130
+ * to work without modification.
131
+ *
132
+ * Delegates to `getMCPClientConfigPaths({ includeProject: true })` and filters
133
+ * to Claude-only clients, preserving the original return type (`string[]`) and
134
+ * including project-local paths for full parity with the old implementation.
125
135
  */
126
136
  export function getClaudeConfigPaths() {
127
- const home = homedir();
128
- const paths = [
129
- // Claude Code settings (primary for Claude Code CLI)
130
- join(home, '.claude', 'settings.json'),
131
- // Claude Code configs
132
- join(home, '.claude.json'),
133
- join(home, 'Library', 'Application Support', 'Claude Code', 'claude_code_config.json'),
134
- join(home, 'Library', 'Application Support', 'Claude', 'claude_code_config.json'),
135
- // Claude Desktop configs
136
- join(home, 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json'),
137
- join(home, '.config', 'claude', 'claude_desktop_config.json'),
138
- // Linux XDG paths
139
- join(home, '.config', 'Claude Code', 'claude_code_config.json'),
140
- // Project local configs
141
- join(process.cwd(), 'claude_code_config.json'),
142
- join(process.cwd(), 'claude_desktop_config.json'),
143
- ];
144
- // Windows paths
145
- const appData = process.env['APPDATA'];
146
- if (process.platform === 'win32' && appData) {
147
- paths.push(join(appData, 'Claude', 'claude_desktop_config.json'));
148
- }
149
- return paths;
137
+ return getMCPClientConfigPaths({ includeProject: true })
138
+ .filter((loc) => loc.client.startsWith('claude-'))
139
+ .map((loc) => loc.path);
150
140
  }
151
141
  /**
152
142
  * Find the Claude config file
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,13 @@ export interface MetricsConfig {
30
30
  enabled: boolean;
31
31
  logToFile: boolean;
32
32
  logPath: string | null;
33
+ /**
34
+ * When true, every execute_code response automatically includes a
35
+ * tokenSavings block without requiring the per-call show_token_savings flag.
36
+ * Corresponds to ~/.mcp-conductor.json `metrics.alwaysShowTokenSavings`.
37
+ * Default: false.
38
+ */
39
+ alwaysShowTokenSavings?: boolean;
33
40
  }
34
41
  export interface ServersConfig {
35
42
  allowList: string[];