ai-consultation-mcp 1.0.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.
Files changed (109) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +193 -0
  3. package/dist/api/index.d.ts +27 -0
  4. package/dist/api/index.js +213 -0
  5. package/dist/api/index.js.map +1 -0
  6. package/dist/api/middleware/security.d.ts +6 -0
  7. package/dist/api/middleware/security.js +28 -0
  8. package/dist/api/middleware/security.js.map +1 -0
  9. package/dist/api/routes/chat.d.ts +2 -0
  10. package/dist/api/routes/chat.js +78 -0
  11. package/dist/api/routes/chat.js.map +1 -0
  12. package/dist/api/routes/config.d.ts +2 -0
  13. package/dist/api/routes/config.js +81 -0
  14. package/dist/api/routes/config.js.map +1 -0
  15. package/dist/api/routes/providers.d.ts +2 -0
  16. package/dist/api/routes/providers.js +225 -0
  17. package/dist/api/routes/providers.js.map +1 -0
  18. package/dist/api/standalone-server.d.ts +12 -0
  19. package/dist/api/standalone-server.js +117 -0
  20. package/dist/api/standalone-server.js.map +1 -0
  21. package/dist/config/defaults.d.ts +17 -0
  22. package/dist/config/defaults.js +30 -0
  23. package/dist/config/defaults.js.map +1 -0
  24. package/dist/config/encryption.d.ts +12 -0
  25. package/dist/config/encryption.js +85 -0
  26. package/dist/config/encryption.js.map +1 -0
  27. package/dist/config/index.d.ts +5 -0
  28. package/dist/config/index.js +6 -0
  29. package/dist/config/index.js.map +1 -0
  30. package/dist/config/manager.d.ts +62 -0
  31. package/dist/config/manager.js +210 -0
  32. package/dist/config/manager.js.map +1 -0
  33. package/dist/config/prompts.d.ts +10 -0
  34. package/dist/config/prompts.js +168 -0
  35. package/dist/config/prompts.js.map +1 -0
  36. package/dist/config/schema.d.ts +141 -0
  37. package/dist/config/schema.js +54 -0
  38. package/dist/config/schema.js.map +1 -0
  39. package/dist/index.d.ts +2 -0
  40. package/dist/index.js +260 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/installer/detector.d.ts +48 -0
  43. package/dist/installer/detector.js +164 -0
  44. package/dist/installer/detector.js.map +1 -0
  45. package/dist/installer/index.d.ts +7 -0
  46. package/dist/installer/index.js +10 -0
  47. package/dist/installer/index.js.map +1 -0
  48. package/dist/installer/installer.d.ts +16 -0
  49. package/dist/installer/installer.js +262 -0
  50. package/dist/installer/installer.js.map +1 -0
  51. package/dist/installer/tools.d.ts +16 -0
  52. package/dist/installer/tools.js +327 -0
  53. package/dist/installer/tools.js.map +1 -0
  54. package/dist/installer/types.d.ts +68 -0
  55. package/dist/installer/types.js +5 -0
  56. package/dist/installer/types.js.map +1 -0
  57. package/dist/providers/base.d.ts +44 -0
  58. package/dist/providers/base.js +84 -0
  59. package/dist/providers/base.js.map +1 -0
  60. package/dist/providers/deepseek.d.ts +30 -0
  61. package/dist/providers/deepseek.js +148 -0
  62. package/dist/providers/deepseek.js.map +1 -0
  63. package/dist/providers/index.d.ts +5 -0
  64. package/dist/providers/index.js +8 -0
  65. package/dist/providers/index.js.map +1 -0
  66. package/dist/providers/openai.d.ts +30 -0
  67. package/dist/providers/openai.js +123 -0
  68. package/dist/providers/openai.js.map +1 -0
  69. package/dist/providers/registry.d.ts +37 -0
  70. package/dist/providers/registry.js +65 -0
  71. package/dist/providers/registry.js.map +1 -0
  72. package/dist/providers/types.d.ts +71 -0
  73. package/dist/providers/types.js +2 -0
  74. package/dist/providers/types.js.map +1 -0
  75. package/dist/server/conversation.d.ts +105 -0
  76. package/dist/server/conversation.js +279 -0
  77. package/dist/server/conversation.js.map +1 -0
  78. package/dist/server/index.d.ts +2 -0
  79. package/dist/server/index.js +3 -0
  80. package/dist/server/index.js.map +1 -0
  81. package/dist/server/tools/consult.d.ts +15 -0
  82. package/dist/server/tools/consult.js +164 -0
  83. package/dist/server/tools/consult.js.map +1 -0
  84. package/dist/server/tools/index.d.ts +1 -0
  85. package/dist/server/tools/index.js +2 -0
  86. package/dist/server/tools/index.js.map +1 -0
  87. package/dist/types/config.d.ts +20 -0
  88. package/dist/types/config.js +2 -0
  89. package/dist/types/config.js.map +1 -0
  90. package/dist/types/index.d.ts +3 -0
  91. package/dist/types/index.js +4 -0
  92. package/dist/types/index.js.map +1 -0
  93. package/dist/types/messages.d.ts +48 -0
  94. package/dist/types/messages.js +2 -0
  95. package/dist/types/messages.js.map +1 -0
  96. package/dist/types/models.d.ts +39 -0
  97. package/dist/types/models.js +66 -0
  98. package/dist/types/models.js.map +1 -0
  99. package/dist/ui/index.html +1244 -0
  100. package/dist/utils/errors.d.ts +32 -0
  101. package/dist/utils/errors.js +53 -0
  102. package/dist/utils/errors.js.map +1 -0
  103. package/dist/utils/index.d.ts +2 -0
  104. package/dist/utils/index.js +3 -0
  105. package/dist/utils/index.js.map +1 -0
  106. package/dist/utils/logger.d.ts +13 -0
  107. package/dist/utils/logger.js +73 -0
  108. package/dist/utils/logger.js.map +1 -0
  109. package/package.json +65 -0
@@ -0,0 +1,262 @@
1
+ /**
2
+ * Multi-tool MCP installer
3
+ */
4
+ import * as fs from 'fs';
5
+ import * as path from 'path';
6
+ import { detectAllTools, getConfigPath, getPlatform, fileExists, } from './detector.js';
7
+ /**
8
+ * Set nested value in object using dot notation
9
+ */
10
+ function setNestedValue(obj, keyPath, key, value) {
11
+ const keys = keyPath.split('.');
12
+ let current = obj;
13
+ // Navigate to the parent object, creating intermediate objects as needed
14
+ for (const k of keys) {
15
+ if (!(k in current) || typeof current[k] !== 'object' || current[k] === null) {
16
+ current[k] = {};
17
+ }
18
+ current = current[k];
19
+ }
20
+ // Set the value
21
+ current[key] = value;
22
+ }
23
+ /**
24
+ * Get nested value from object using dot notation
25
+ */
26
+ function getNestedValue(obj, keyPath) {
27
+ const keys = keyPath.split('.');
28
+ let current = obj;
29
+ for (const key of keys) {
30
+ if (current === null || typeof current !== 'object') {
31
+ return undefined;
32
+ }
33
+ current = current[key];
34
+ }
35
+ return current;
36
+ }
37
+ /**
38
+ * Create MCP server configuration object
39
+ */
40
+ function createMcpServerConfig(tool) {
41
+ // Special handling for Zed (uses different format)
42
+ if (tool.id === 'zed') {
43
+ return {
44
+ command: tool.mcpConfig.command,
45
+ args: tool.mcpConfig.args,
46
+ };
47
+ }
48
+ // Special handling for Continue (uses transport wrapper)
49
+ if (tool.id === 'continue') {
50
+ return {
51
+ transport: {
52
+ type: 'stdio',
53
+ command: tool.mcpConfig.command,
54
+ args: tool.mcpConfig.args,
55
+ },
56
+ };
57
+ }
58
+ // Special handling for OpenCode (uses type, command as array, enabled)
59
+ if (tool.id === 'opencode') {
60
+ return {
61
+ type: 'local',
62
+ command: [tool.mcpConfig.command, ...tool.mcpConfig.args],
63
+ enabled: true,
64
+ };
65
+ }
66
+ // Special handling for Claude Code (uses type: stdio with env)
67
+ if (tool.id === 'claude-code') {
68
+ return {
69
+ type: 'stdio',
70
+ command: tool.mcpConfig.command,
71
+ args: tool.mcpConfig.args,
72
+ env: {},
73
+ };
74
+ }
75
+ // Special handling for VSCode Copilot (uses type: stdio)
76
+ if (tool.id === 'vscode-copilot') {
77
+ return {
78
+ type: 'stdio',
79
+ command: tool.mcpConfig.command,
80
+ args: tool.mcpConfig.args,
81
+ };
82
+ }
83
+ // Standard format for most tools
84
+ return {
85
+ command: tool.mcpConfig.command,
86
+ args: tool.mcpConfig.args,
87
+ };
88
+ }
89
+ /**
90
+ * Install MCP to a specific tool
91
+ */
92
+ export function installToTool(detected) {
93
+ const { tool } = detected;
94
+ const configPath = getConfigPath(tool);
95
+ if (!configPath) {
96
+ return {
97
+ tool,
98
+ success: false,
99
+ message: `No config path for platform ${getPlatform()}`,
100
+ error: 'Platform not supported',
101
+ };
102
+ }
103
+ const platform = getPlatform();
104
+ const configPathObj = tool.configPaths[platform];
105
+ if (!configPathObj) {
106
+ return {
107
+ tool,
108
+ success: false,
109
+ message: `No config path for platform ${platform}`,
110
+ error: 'Platform not supported',
111
+ };
112
+ }
113
+ try {
114
+ // Ensure directory exists
115
+ const configDir = path.dirname(configPath);
116
+ if (!fs.existsSync(configDir)) {
117
+ fs.mkdirSync(configDir, { recursive: true });
118
+ }
119
+ // Read existing config or create new one
120
+ let config = {};
121
+ if (fileExists(configPath)) {
122
+ try {
123
+ const content = fs.readFileSync(configPath, 'utf-8');
124
+ config = JSON.parse(content);
125
+ }
126
+ catch {
127
+ // If parse fails, start with empty config
128
+ config = {};
129
+ }
130
+ }
131
+ // Check if already installed
132
+ const mcpServers = getNestedValue(config, configPathObj.mcpKey);
133
+ if (mcpServers &&
134
+ typeof mcpServers === 'object' &&
135
+ tool.mcpConfig.serverName in mcpServers) {
136
+ return {
137
+ tool,
138
+ success: true,
139
+ message: 'Already installed',
140
+ configPath,
141
+ };
142
+ }
143
+ // Create MCP server config
144
+ const serverConfig = createMcpServerConfig(tool);
145
+ // Add MCP to config
146
+ setNestedValue(config, configPathObj.mcpKey, tool.mcpConfig.serverName, serverConfig);
147
+ // Write config
148
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
149
+ return {
150
+ tool,
151
+ success: true,
152
+ message: tool.notes || 'Installed successfully',
153
+ configPath,
154
+ };
155
+ }
156
+ catch (error) {
157
+ return {
158
+ tool,
159
+ success: false,
160
+ message: 'Installation failed',
161
+ configPath,
162
+ error: error instanceof Error ? error.message : 'Unknown error',
163
+ };
164
+ }
165
+ }
166
+ /**
167
+ * Install MCP to all detected tools
168
+ */
169
+ export function installToAllTools() {
170
+ const allTools = detectAllTools();
171
+ const detected = [];
172
+ const installed = [];
173
+ const skipped = [];
174
+ const errors = [];
175
+ for (const tool of allTools) {
176
+ if (!tool.installed) {
177
+ // Tool not installed on system
178
+ continue;
179
+ }
180
+ detected.push(tool);
181
+ if (tool.mcpAlreadyInstalled) {
182
+ // MCP already installed, skip
183
+ skipped.push(tool);
184
+ continue;
185
+ }
186
+ // Install MCP
187
+ const result = installToTool(tool);
188
+ if (result.success) {
189
+ installed.push(result);
190
+ }
191
+ else {
192
+ errors.push(result);
193
+ }
194
+ }
195
+ return { detected, installed, skipped, errors };
196
+ }
197
+ /**
198
+ * Print installation summary to console
199
+ */
200
+ export function printInstallSummary(summary) {
201
+ console.log('\n📊 Installation Summary\n');
202
+ console.log('─'.repeat(50));
203
+ // Detected tools
204
+ if (summary.detected.length === 0) {
205
+ console.log('❌ No supported AI tools detected on this system.\n');
206
+ console.log('Supported tools:');
207
+ console.log(' - Claude Code (Anthropic CLI)');
208
+ console.log(' - Cursor');
209
+ console.log(' - Windsurf');
210
+ console.log(' - OpenCode');
211
+ console.log(' - VSCode Copilot (GitHub Copilot)');
212
+ console.log(' - Cline (VSCode extension)');
213
+ console.log(' - Continue (VSCode extension)');
214
+ console.log(' - Zed');
215
+ console.log(' - Roo Code (VSCode extension)\n');
216
+ return;
217
+ }
218
+ console.log(`\n🔍 Detected ${summary.detected.length} tool(s):\n`);
219
+ for (const tool of summary.detected) {
220
+ const status = tool.mcpAlreadyInstalled ? '✅ (already configured)' : '📦';
221
+ console.log(` ${status} ${tool.tool.name}`);
222
+ }
223
+ // Installed
224
+ if (summary.installed.length > 0) {
225
+ console.log(`\n✅ Installed to ${summary.installed.length} tool(s):\n`);
226
+ for (const result of summary.installed) {
227
+ console.log(` • ${result.tool.name}`);
228
+ console.log(` 📍 ${result.configPath}`);
229
+ if (result.tool.requiresRestart) {
230
+ console.log(` ⚠️ ${result.message}`);
231
+ }
232
+ }
233
+ }
234
+ // Skipped (already installed)
235
+ if (summary.skipped.length > 0) {
236
+ console.log(`\n⏭️ Skipped ${summary.skipped.length} tool(s) (already configured):\n`);
237
+ for (const tool of summary.skipped) {
238
+ console.log(` • ${tool.tool.name}`);
239
+ }
240
+ }
241
+ // Errors
242
+ if (summary.errors.length > 0) {
243
+ console.log(`\n❌ Failed to install to ${summary.errors.length} tool(s):\n`);
244
+ for (const result of summary.errors) {
245
+ console.log(` • ${result.tool.name}: ${result.error}`);
246
+ }
247
+ }
248
+ // Next steps
249
+ console.log('\n' + '─'.repeat(50));
250
+ console.log('\n🚀 Next steps:\n');
251
+ const needsRestart = summary.installed.filter((r) => r.tool.requiresRestart);
252
+ if (needsRestart.length > 0) {
253
+ console.log(' 1. Restart the following tools to load the MCP:');
254
+ for (const result of needsRestart) {
255
+ console.log(` - ${result.tool.name}`);
256
+ }
257
+ console.log('');
258
+ }
259
+ console.log(' 2. Configure your API key:');
260
+ console.log(' npx agent-consultation-mcp --config\n');
261
+ }
262
+ //# sourceMappingURL=installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/installer/installer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Tool definitions for multi-tool MCP installer
3
+ */
4
+ import { ToolDefinition } from './types.js';
5
+ /**
6
+ * All supported tools with their configurations
7
+ */
8
+ export declare const SUPPORTED_TOOLS: ToolDefinition[];
9
+ /**
10
+ * Get tool by ID
11
+ */
12
+ export declare function getToolById(id: string): ToolDefinition | undefined;
13
+ /**
14
+ * Get all tool IDs
15
+ */
16
+ export declare function getToolIds(): string[];
@@ -0,0 +1,327 @@
1
+ /**
2
+ * Tool definitions for multi-tool MCP installer
3
+ */
4
+ /**
5
+ * Default MCP configuration for agent-consultation
6
+ */
7
+ const DEFAULT_MCP_CONFIG = {
8
+ serverName: 'agent-consultation',
9
+ command: 'npx',
10
+ args: ['-y', 'agent-consultation-mcp'],
11
+ };
12
+ /**
13
+ * All supported tools with their configurations
14
+ */
15
+ export const SUPPORTED_TOOLS = [
16
+ // Claude Code (Official Anthropic CLI)
17
+ {
18
+ id: 'claude-code',
19
+ name: 'Claude Code',
20
+ description: 'Anthropic\'s official CLI for Claude',
21
+ configPaths: {
22
+ darwin: {
23
+ path: '.claude.json',
24
+ relative: true,
25
+ mcpKey: 'mcpServers',
26
+ format: 'json',
27
+ },
28
+ linux: {
29
+ path: '.claude.json',
30
+ relative: true,
31
+ mcpKey: 'mcpServers',
32
+ format: 'json',
33
+ },
34
+ win32: {
35
+ path: '.claude.json',
36
+ relative: true,
37
+ mcpKey: 'mcpServers',
38
+ format: 'json',
39
+ },
40
+ },
41
+ detection: {
42
+ binary: 'claude',
43
+ directory: '.claude',
44
+ },
45
+ mcpConfig: DEFAULT_MCP_CONFIG,
46
+ requiresRestart: true,
47
+ notes: 'Restart Claude Code to load the MCP',
48
+ },
49
+ // Cursor
50
+ {
51
+ id: 'cursor',
52
+ name: 'Cursor',
53
+ description: 'AI-first code editor',
54
+ configPaths: {
55
+ darwin: {
56
+ path: '.cursor/mcp.json',
57
+ relative: true,
58
+ mcpKey: 'mcpServers',
59
+ format: 'json',
60
+ },
61
+ linux: {
62
+ path: '.cursor/mcp.json',
63
+ relative: true,
64
+ mcpKey: 'mcpServers',
65
+ format: 'json',
66
+ },
67
+ win32: {
68
+ path: '.cursor/mcp.json',
69
+ relative: true,
70
+ mcpKey: 'mcpServers',
71
+ format: 'json',
72
+ },
73
+ },
74
+ detection: {
75
+ binary: 'cursor',
76
+ directory: '.cursor',
77
+ },
78
+ mcpConfig: DEFAULT_MCP_CONFIG,
79
+ requiresRestart: true,
80
+ notes: 'Restart Cursor to load the MCP',
81
+ },
82
+ // Windsurf (Codeium)
83
+ {
84
+ id: 'windsurf',
85
+ name: 'Windsurf',
86
+ description: 'Codeium\'s AI-powered IDE',
87
+ configPaths: {
88
+ darwin: {
89
+ path: '.codeium/windsurf/mcp_config.json',
90
+ relative: true,
91
+ mcpKey: 'mcpServers',
92
+ format: 'json',
93
+ },
94
+ linux: {
95
+ path: '.codeium/windsurf/mcp_config.json',
96
+ relative: true,
97
+ mcpKey: 'mcpServers',
98
+ format: 'json',
99
+ },
100
+ win32: {
101
+ path: '.codeium/windsurf/mcp_config.json',
102
+ relative: true,
103
+ mcpKey: 'mcpServers',
104
+ format: 'json',
105
+ },
106
+ },
107
+ detection: {
108
+ binary: 'windsurf',
109
+ directory: '.codeium/windsurf',
110
+ },
111
+ mcpConfig: DEFAULT_MCP_CONFIG,
112
+ requiresRestart: true,
113
+ notes: 'Restart Windsurf to load the MCP',
114
+ },
115
+ // Cline (VSCode Extension)
116
+ {
117
+ id: 'cline',
118
+ name: 'Cline',
119
+ description: 'Autonomous coding agent for VSCode',
120
+ configPaths: {
121
+ darwin: {
122
+ path: 'Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json',
123
+ relative: true,
124
+ mcpKey: 'mcpServers',
125
+ format: 'json',
126
+ },
127
+ linux: {
128
+ path: '.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json',
129
+ relative: true,
130
+ mcpKey: 'mcpServers',
131
+ format: 'json',
132
+ },
133
+ win32: {
134
+ path: 'AppData/Roaming/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json',
135
+ relative: true,
136
+ mcpKey: 'mcpServers',
137
+ format: 'json',
138
+ },
139
+ },
140
+ detection: {
141
+ vscodeExtension: 'saoudrizwan.claude-dev',
142
+ configFile: true,
143
+ },
144
+ mcpConfig: DEFAULT_MCP_CONFIG,
145
+ requiresRestart: false,
146
+ notes: 'Reload VSCode window or restart Cline extension',
147
+ },
148
+ // Continue (VSCode/JetBrains Extension)
149
+ {
150
+ id: 'continue',
151
+ name: 'Continue',
152
+ description: 'Open-source AI code assistant',
153
+ configPaths: {
154
+ darwin: {
155
+ path: '.continue/config.json',
156
+ relative: true,
157
+ mcpKey: 'experimental.modelContextProtocolServers',
158
+ format: 'json',
159
+ },
160
+ linux: {
161
+ path: '.continue/config.json',
162
+ relative: true,
163
+ mcpKey: 'experimental.modelContextProtocolServers',
164
+ format: 'json',
165
+ },
166
+ win32: {
167
+ path: '.continue/config.json',
168
+ relative: true,
169
+ mcpKey: 'experimental.modelContextProtocolServers',
170
+ format: 'json',
171
+ },
172
+ },
173
+ detection: {
174
+ directory: '.continue',
175
+ vscodeExtension: 'Continue.continue',
176
+ },
177
+ mcpConfig: {
178
+ serverName: 'agent-consultation',
179
+ command: 'npx',
180
+ args: ['-y', 'agent-consultation-mcp'],
181
+ },
182
+ requiresRestart: false,
183
+ notes: 'Reload Continue extension to load the MCP',
184
+ },
185
+ // Zed
186
+ {
187
+ id: 'zed',
188
+ name: 'Zed',
189
+ description: 'High-performance code editor',
190
+ configPaths: {
191
+ darwin: {
192
+ path: '.config/zed/settings.json',
193
+ relative: true,
194
+ mcpKey: 'context_servers',
195
+ format: 'json',
196
+ },
197
+ linux: {
198
+ path: '.config/zed/settings.json',
199
+ relative: true,
200
+ mcpKey: 'context_servers',
201
+ format: 'json',
202
+ },
203
+ },
204
+ detection: {
205
+ binary: 'zed',
206
+ directory: '.config/zed',
207
+ },
208
+ mcpConfig: {
209
+ serverName: 'agent-consultation',
210
+ command: 'npx',
211
+ args: ['-y', 'agent-consultation-mcp'],
212
+ },
213
+ requiresRestart: false,
214
+ notes: 'Zed will auto-reload the configuration',
215
+ },
216
+ // Roo Code (VSCode Extension - Roo-Cline fork)
217
+ {
218
+ id: 'roo-code',
219
+ name: 'Roo Code',
220
+ description: 'AI coding assistant (Cline fork)',
221
+ configPaths: {
222
+ darwin: {
223
+ path: 'Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json',
224
+ relative: true,
225
+ mcpKey: 'mcpServers',
226
+ format: 'json',
227
+ },
228
+ linux: {
229
+ path: '.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json',
230
+ relative: true,
231
+ mcpKey: 'mcpServers',
232
+ format: 'json',
233
+ },
234
+ win32: {
235
+ path: 'AppData/Roaming/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json',
236
+ relative: true,
237
+ mcpKey: 'mcpServers',
238
+ format: 'json',
239
+ },
240
+ },
241
+ detection: {
242
+ vscodeExtension: 'rooveterinaryinc.roo-cline',
243
+ configFile: true,
244
+ },
245
+ mcpConfig: DEFAULT_MCP_CONFIG,
246
+ requiresRestart: false,
247
+ notes: 'Reload VSCode window to load the MCP',
248
+ },
249
+ // OpenCode
250
+ {
251
+ id: 'opencode',
252
+ name: 'OpenCode',
253
+ description: 'AI-powered terminal coding assistant',
254
+ configPaths: {
255
+ darwin: {
256
+ path: '.config/opencode/opencode.json',
257
+ relative: true,
258
+ mcpKey: 'mcp',
259
+ format: 'json',
260
+ },
261
+ linux: {
262
+ path: '.config/opencode/opencode.json',
263
+ relative: true,
264
+ mcpKey: 'mcp',
265
+ format: 'json',
266
+ },
267
+ win32: {
268
+ path: '.config/opencode/opencode.json',
269
+ relative: true,
270
+ mcpKey: 'mcp',
271
+ format: 'json',
272
+ },
273
+ },
274
+ detection: {
275
+ binary: 'opencode',
276
+ directory: '.config/opencode',
277
+ },
278
+ mcpConfig: DEFAULT_MCP_CONFIG,
279
+ requiresRestart: false,
280
+ notes: 'OpenCode will auto-detect the new MCP server',
281
+ },
282
+ // VSCode GitHub Copilot (User MCP Config)
283
+ {
284
+ id: 'vscode-copilot',
285
+ name: 'VSCode Copilot',
286
+ description: 'GitHub Copilot in Visual Studio Code',
287
+ configPaths: {
288
+ darwin: {
289
+ path: 'Library/Application Support/Code/User/mcp.json',
290
+ relative: true,
291
+ mcpKey: 'servers',
292
+ format: 'json',
293
+ },
294
+ linux: {
295
+ path: '.config/Code/User/mcp.json',
296
+ relative: true,
297
+ mcpKey: 'servers',
298
+ format: 'json',
299
+ },
300
+ win32: {
301
+ path: 'AppData/Roaming/Code/User/mcp.json',
302
+ relative: true,
303
+ mcpKey: 'servers',
304
+ format: 'json',
305
+ },
306
+ },
307
+ detection: {
308
+ configFile: true,
309
+ },
310
+ mcpConfig: DEFAULT_MCP_CONFIG,
311
+ requiresRestart: false,
312
+ notes: 'Reload VSCode window to load the MCP',
313
+ },
314
+ ];
315
+ /**
316
+ * Get tool by ID
317
+ */
318
+ export function getToolById(id) {
319
+ return SUPPORTED_TOOLS.find((tool) => tool.id === id);
320
+ }
321
+ /**
322
+ * Get all tool IDs
323
+ */
324
+ export function getToolIds() {
325
+ return SUPPORTED_TOOLS.map((tool) => tool.id);
326
+ }
327
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/installer/tools.ts"],"names":[],"mappings":"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"}