@idealyst/cli 1.2.1 → 1.2.3

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.
@@ -51,9 +51,13 @@ const constants_1 = require("../constants");
51
51
  * Initialize a React Native project with correct identifiers
52
52
  */
53
53
  async function initializeReactNative(options) {
54
- const { projectName, displayName, bundleId, packageName, directory, skipInstall } = options;
54
+ const { projectName, displayName, bundleId, packageName, directory, skipInstall, interactive } = options;
55
+ // Use spinner in interactive mode, regular logging otherwise
56
+ const spinner = interactive ? logger_1.logger.spinner('Installing React Native project...') : null;
55
57
  try {
56
- logger_1.logger.info('Initializing React Native with native platform support...');
58
+ if (!interactive) {
59
+ logger_1.logger.info('Initializing React Native with native platform support...');
60
+ }
57
61
  // Build the React Native CLI command
58
62
  const args = [
59
63
  '@react-native-community/cli@latest',
@@ -70,19 +74,33 @@ async function initializeReactNative(options) {
70
74
  const result = await (0, shell_1.runCommand)('npx', args, {
71
75
  cwd: directory,
72
76
  timeout: constants_1.RN_TIMEOUT,
73
- silent: false,
77
+ silent: interactive, // Hide output in interactive mode
74
78
  });
75
79
  if (result.exitCode !== 0) {
76
80
  throw new Error('React Native CLI failed');
77
81
  }
82
+ if (spinner) {
83
+ spinner.text = 'Configuring iOS bundle identifier...';
84
+ }
78
85
  // Update iOS bundle identifier (RN CLI only sets Android package name)
79
86
  await updateIosBundleId(path_1.default.join(directory, projectName), bundleId, projectName);
80
- // Configure Android Vector Icons
81
- await configureAndroidVectorIcons(path_1.default.join(directory, projectName));
87
+ if (spinner) {
88
+ spinner.text = 'Configuring Android for monorepo...';
89
+ }
90
+ // Fix Android gradle files for monorepo node_modules paths
91
+ await fixMonorepoGradlePaths(path_1.default.join(directory, projectName));
92
+ if (spinner) {
93
+ spinner.succeed('React Native project installed');
94
+ }
82
95
  return { success: true };
83
96
  }
84
97
  catch (error) {
85
- logger_1.logger.warn('React Native CLI initialization failed');
98
+ if (spinner) {
99
+ spinner.fail('React Native initialization failed');
100
+ }
101
+ else {
102
+ logger_1.logger.warn('React Native CLI initialization failed');
103
+ }
86
104
  logger_1.logger.dim('Native folders could not be created automatically.');
87
105
  logger_1.logger.dim('You may need to run React Native init manually or use Expo.');
88
106
  return {
@@ -102,44 +120,102 @@ async function updateIosBundleId(projectPath, bundleId, projectName) {
102
120
  // RN CLI uses org.reactjs.native.example.{projectName} by default
103
121
  content = content.replace(/PRODUCT_BUNDLE_IDENTIFIER = "[^"]+"/g, `PRODUCT_BUNDLE_IDENTIFIER = "${bundleId}"`);
104
122
  await fs_extra_1.default.writeFile(pbxprojPath, content);
105
- logger_1.logger.success(`Updated iOS bundle identifier to: ${bundleId}`);
106
123
  }
107
124
  }
108
125
  /**
109
- * Configure Android Vector Icons in build.gradle
126
+ * Fix Android gradle files for monorepo structure
127
+ *
128
+ * In a Yarn workspace monorepo, dependencies are hoisted to the root node_modules.
129
+ * The React Native CLI generates paths assuming node_modules is in the package directory,
130
+ * but we need to point to the monorepo root instead.
131
+ *
132
+ * Directory structure:
133
+ * monorepo-root/
134
+ * node_modules/ <- hoisted dependencies here
135
+ * packages/
136
+ * mobile/
137
+ * android/
138
+ * settings.gradle <- needs ../../../node_modules (3 levels up)
139
+ * app/
140
+ * build.gradle <- needs ../../../../node_modules (4 levels up)
110
141
  */
111
- async function configureAndroidVectorIcons(projectPath) {
142
+ async function fixMonorepoGradlePaths(projectPath) {
143
+ await fixSettingsGradle(projectPath);
144
+ await fixAppBuildGradle(projectPath);
145
+ }
146
+ /**
147
+ * Fix settings.gradle for monorepo paths
148
+ */
149
+ async function fixSettingsGradle(projectPath) {
150
+ const settingsPath = path_1.default.join(projectPath, 'android', 'settings.gradle');
151
+ if (!await fs_extra_1.default.pathExists(settingsPath)) {
152
+ return;
153
+ }
154
+ let content = await fs_extra_1.default.readFile(settingsPath, 'utf8');
155
+ // Add monorepo comment at the top if not already present
156
+ if (!content.includes('MONOREPO NOTE')) {
157
+ const monorepoComment = `// MONOREPO NOTE: In a Yarn workspace monorepo, dependencies are hoisted to the root node_modules.
158
+ // Paths must point to the monorepo root (../../../node_modules) not the package's node_modules.
159
+ `;
160
+ content = monorepoComment + content;
161
+ }
162
+ // Fix pluginManagement includeBuild path
163
+ content = content.replace(/includeBuild\s*\(\s*["']\.\.\/node_modules\/@react-native\/gradle-plugin["']\s*\)/g, 'includeBuild("../../../node_modules/@react-native/gradle-plugin")');
164
+ // Fix any other includeBuild paths for @react-native/gradle-plugin at the end of the file
165
+ content = content.replace(/includeBuild\s*\(\s*["']\.\.\/node_modules\/@react-native\/gradle-plugin["']\s*\)(?!.*pluginManagement)/g, 'includeBuild(\'../../../node_modules/@react-native/gradle-plugin\')');
166
+ await fs_extra_1.default.writeFile(settingsPath, content);
167
+ }
168
+ /**
169
+ * Fix app/build.gradle for monorepo paths and add vector icons
170
+ */
171
+ async function fixAppBuildGradle(projectPath) {
112
172
  const buildGradlePath = path_1.default.join(projectPath, 'android', 'app', 'build.gradle');
113
- if (await fs_extra_1.default.pathExists(buildGradlePath)) {
114
- let content = await fs_extra_1.default.readFile(buildGradlePath, 'utf8');
115
- // Check if vector icons is already configured
116
- if (content.includes('react-native-vector-icons')) {
117
- return;
118
- }
119
- // Add vector icons configuration after the android block
120
- const vectorIconsLine = 'apply from: file("../../node_modules/react-native-vector-icons/fonts.gradle")';
121
- // Find a good place to add it (after the last apply statement or at the end)
122
- if (content.includes('apply plugin:')) {
123
- // Add after the last apply plugin line
124
- const lines = content.split('\n');
125
- let lastApplyIndex = -1;
126
- for (let i = 0; i < lines.length; i++) {
127
- if (lines[i].includes('apply plugin:') || lines[i].includes('apply from:')) {
128
- lastApplyIndex = i;
129
- }
130
- }
131
- if (lastApplyIndex !== -1) {
132
- lines.splice(lastApplyIndex + 1, 0, vectorIconsLine);
133
- content = lines.join('\n');
173
+ if (!await fs_extra_1.default.pathExists(buildGradlePath)) {
174
+ return;
175
+ }
176
+ let content = await fs_extra_1.default.readFile(buildGradlePath, 'utf8');
177
+ // Add vector icons configuration if not present
178
+ if (!content.includes('react-native-vector-icons')) {
179
+ // Add after the apply plugin lines with monorepo comment
180
+ const vectorIconsBlock = `
181
+ // MONOREPO NOTE: In a Yarn workspace monorepo, dependencies are hoisted to the root node_modules.
182
+ // Paths must point to the monorepo root (../../../../node_modules from android/app) not the package's node_modules.
183
+ apply from: file("../../../../node_modules/react-native-vector-icons/fonts.gradle")
184
+ `;
185
+ // Find the last apply plugin/from line and insert after it
186
+ const lines = content.split('\n');
187
+ let lastApplyIndex = -1;
188
+ for (let i = 0; i < lines.length; i++) {
189
+ if (lines[i].includes('apply plugin:') || lines[i].includes('apply from:')) {
190
+ lastApplyIndex = i;
134
191
  }
135
192
  }
136
- else {
137
- // Append at the end
138
- content += '\n' + vectorIconsLine + '\n';
193
+ if (lastApplyIndex !== -1) {
194
+ lines.splice(lastApplyIndex + 1, 0, vectorIconsBlock);
195
+ content = lines.join('\n');
196
+ }
197
+ }
198
+ // Fix the react block to use monorepo paths
199
+ // We need to uncomment and update the root, reactNativeDir, codegenDir, and cliFile paths
200
+ // First, check if the react block exists
201
+ if (content.includes('react {')) {
202
+ // Update or add the monorepo paths in the react block
203
+ const reactBlockRegex = /(react\s*\{[\s\S]*?)(\/\*\s*Folders\s*\*\/[\s\S]*?)(\/\*\s*Variants\s*\*\/)/;
204
+ const match = content.match(reactBlockRegex);
205
+ if (match) {
206
+ const newFoldersSection = `/* Folders */
207
+ // MONOREPO: Point to monorepo root where package.json and node_modules live
208
+ root = file("../../../..")
209
+ // MONOREPO: Point to hoisted node_modules
210
+ reactNativeDir = file("../../../../node_modules/react-native")
211
+ codegenDir = file("../../../../node_modules/@react-native/codegen")
212
+ cliFile = file("../../../../node_modules/react-native/cli.js")
213
+
214
+ `;
215
+ content = content.replace(reactBlockRegex, `$1${newFoldersSection}$3`);
139
216
  }
140
- await fs_extra_1.default.writeFile(buildGradlePath, content);
141
- logger_1.logger.success('Configured Android vector icons');
142
217
  }
218
+ await fs_extra_1.default.writeFile(buildGradlePath, content);
143
219
  }
144
220
  /**
145
221
  * Check if native folders exist in a mobile package
@@ -1 +1 @@
1
- {"version":3,"file":"reactNative.js","sourceRoot":"","sources":["../../src/generators/reactNative.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactNative.js","sourceRoot":"","sources":["../../src/generators/reactNative.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,9 @@ async function generateWorkspaceFiles(projectPath, data) {
49
49
  // Generate README.md
50
50
  const readme = createReadme(data);
51
51
  await fs_extra_1.default.writeFile(path_1.default.join(projectPath, 'README.md'), readme);
52
+ // Generate react-native.config.js for monorepo setup
53
+ const rnConfig = createReactNativeConfig(data);
54
+ await fs_extra_1.default.writeFile(path_1.default.join(projectPath, 'react-native.config.js'), rnConfig);
52
55
  }
53
56
  /**
54
57
  * Create root package.json content
@@ -269,4 +272,32 @@ ${data.projectName}/
269
272
  \`\`\`
270
273
  `;
271
274
  }
275
+ /**
276
+ * Create react-native.config.js for monorepo setup
277
+ *
278
+ * This file tells the React Native CLI where to find the mobile project
279
+ * and its dependencies in a Yarn workspace monorepo structure.
280
+ */
281
+ function createReactNativeConfig(data) {
282
+ return `/**
283
+ * React Native configuration for monorepo setup
284
+ *
285
+ * This file tells the React Native CLI where to find the mobile project
286
+ * and its dependencies in a Yarn workspace monorepo structure.
287
+ */
288
+ module.exports = {
289
+ project: {
290
+ android: {
291
+ sourceDir: './packages/mobile/android',
292
+ appName: 'app',
293
+ packageName: '${data.androidPackageName}',
294
+ },
295
+ ios: {
296
+ sourceDir: './packages/mobile/ios',
297
+ },
298
+ },
299
+ // Dependencies are auto-detected from node_modules
300
+ };
301
+ `;
302
+ }
272
303
  //# sourceMappingURL=workspace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/generators/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/generators/workspace.ts"],"names":[],"mappings":"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"}
@@ -36,14 +36,20 @@ export declare const DEPENDENCIES: {
36
36
  readonly mobile: {
37
37
  readonly react: "^19.1.0";
38
38
  readonly 'react-native': "^0.83.0";
39
- readonly 'react-native-unistyles': "^3.0.15";
39
+ readonly 'react-native-nitro-modules': "^0.32.0";
40
+ readonly 'react-native-unistyles': "^3.0.21";
40
41
  readonly '@react-navigation/native': "^7.0.0";
41
42
  readonly '@react-navigation/native-stack': "^7.0.0";
42
- readonly 'react-native-safe-area-context': "^4.10.0";
43
+ readonly '@react-navigation/bottom-tabs': "^7.0.0";
44
+ readonly '@react-navigation/drawer': "^7.0.0";
45
+ readonly 'react-native-safe-area-context': "^5.6.0";
43
46
  readonly 'react-native-screens': "^4.4.0";
47
+ readonly 'react-native-svg': "^15.11.0";
44
48
  readonly 'react-native-gesture-handler': "^2.20.0";
45
- readonly 'react-native-reanimated': "^3.16.0";
49
+ readonly 'react-native-reanimated': "^4.2.0";
50
+ readonly 'react-native-worklets': "^0.7.0";
46
51
  readonly 'react-native-vector-icons': "^10.2.0";
52
+ readonly '@react-native-vector-icons/material-design-icons': "^12.0.0";
47
53
  };
48
54
  readonly trpc: {
49
55
  readonly '@trpc/client': "^11.5.0";
@@ -6,6 +6,7 @@ export interface MobileGeneratorOptions extends TemplateData {
6
6
  bundleId: string;
7
7
  packageName: string;
8
8
  skipInstall?: boolean;
9
+ interactive?: boolean;
9
10
  }
10
11
  /**
11
12
  * Generate the mobile package
@@ -34,7 +34,37 @@ export interface DevcontainerConfig {
34
34
  redis: boolean;
35
35
  chrome: boolean;
36
36
  claudeCode: boolean;
37
+ mcpServers: string[];
37
38
  }
39
+ /**
40
+ * Available MCP servers for Claude Code
41
+ */
42
+ export declare const AVAILABLE_MCP_SERVERS: readonly [{
43
+ readonly id: "idealyst";
44
+ readonly name: "Idealyst";
45
+ readonly description: "Idealyst component documentation and examples";
46
+ readonly requiresChrome: false;
47
+ readonly requiresPostgres: false;
48
+ }, {
49
+ readonly id: "serena";
50
+ readonly name: "Serena";
51
+ readonly description: "Code navigation and semantic search";
52
+ readonly requiresChrome: false;
53
+ readonly requiresPostgres: false;
54
+ }, {
55
+ readonly id: "playwright";
56
+ readonly name: "Playwright";
57
+ readonly description: "Browser automation and testing (requires Chrome)";
58
+ readonly requiresChrome: true;
59
+ readonly requiresPostgres: false;
60
+ }, {
61
+ readonly id: "postgres";
62
+ readonly name: "PostgreSQL";
63
+ readonly description: "Query PostgreSQL database (requires PostgreSQL)";
64
+ readonly requiresChrome: false;
65
+ readonly requiresPostgres: true;
66
+ }];
67
+ export type McpServerId = typeof AVAILABLE_MCP_SERVERS[number]['id'];
38
68
  /**
39
69
  * CLI arguments before processing
40
70
  */
@@ -124,6 +154,7 @@ export interface ReactNativeInitOptions {
124
154
  packageName: string;
125
155
  directory: string;
126
156
  skipInstall: boolean;
157
+ interactive: boolean;
127
158
  }
128
159
  /**
129
160
  * Types of projects that can be added to workspace
@@ -1,7 +1,13 @@
1
1
  /**
2
2
  * Logger utility for consistent CLI output
3
3
  */
4
+ import { Ora } from 'ora';
4
5
  export declare const logger: {
6
+ /**
7
+ * Create and start a spinner with a message
8
+ * Returns the ora spinner instance for control
9
+ */
10
+ spinner(message: string): Ora;
5
11
  /**
6
12
  * Log an info message
7
13
  */
package/dist/types.js CHANGED
@@ -3,7 +3,40 @@
3
3
  * Core type definitions for the CLI-Beta package
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.InvalidExtensionError = exports.NotInWorkspaceError = exports.MissingArgumentsError = void 0;
6
+ exports.InvalidExtensionError = exports.NotInWorkspaceError = exports.MissingArgumentsError = exports.AVAILABLE_MCP_SERVERS = void 0;
7
+ /**
8
+ * Available MCP servers for Claude Code
9
+ */
10
+ exports.AVAILABLE_MCP_SERVERS = [
11
+ {
12
+ id: 'idealyst',
13
+ name: 'Idealyst',
14
+ description: 'Idealyst component documentation and examples',
15
+ requiresChrome: false,
16
+ requiresPostgres: false,
17
+ },
18
+ {
19
+ id: 'serena',
20
+ name: 'Serena',
21
+ description: 'Code navigation and semantic search',
22
+ requiresChrome: false,
23
+ requiresPostgres: false,
24
+ },
25
+ {
26
+ id: 'playwright',
27
+ name: 'Playwright',
28
+ description: 'Browser automation and testing (requires Chrome)',
29
+ requiresChrome: true,
30
+ requiresPostgres: false,
31
+ },
32
+ {
33
+ id: 'postgres',
34
+ name: 'PostgreSQL',
35
+ description: 'Query PostgreSQL database (requires PostgreSQL)',
36
+ requiresChrome: false,
37
+ requiresPostgres: true,
38
+ },
39
+ ];
7
40
  // ============================================
8
41
  // ERROR TYPES
9
42
  // ============================================
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAqLH,+CAA+C;AAC/C,cAAc;AACd,+CAA+C;AAE/C;;GAEG;AACH,MAAa,qBAAsB,SAAQ,KAAK;IAI9C,YACE,WAAqB,EACrB,YAAqC;QAErC,MAAM,OAAO,GAAG,+BAA+B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACvE,wFAAwF,CAAC;QAC3F,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;AAfD,sDAeC;AAED;;GAEG;AACH,MAAa,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,SAAiB;QAC3B,KAAK,CAAC,QAAQ,SAAS,0DAA0D,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AALD,kDAKC;AAED;;GAEG;AACH,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,SAAiB,EAAE,WAAmB;QAChD,KAAK,CAAC,cAAc,SAAS,eAAe,WAAW,kBAAkB,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AALD,sDAKC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAoDH;;GAEG;AACU,QAAA,qBAAqB,GAAG;IACnC;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,+CAA+C;QAC5D,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,KAAK;KACxB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,qCAAqC;QAClD,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,KAAK;KACxB;IACD;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,kDAAkD;QAC/D,cAAc,EAAE,IAAI;QACpB,gBAAgB,EAAE,KAAK;KACxB;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,iDAAiD;QAC9D,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,IAAI;KACvB;CACO,CAAC;AAuIX,+CAA+C;AAC/C,cAAc;AACd,+CAA+C;AAE/C;;GAEG;AACH,MAAa,qBAAsB,SAAQ,KAAK;IAI9C,YACE,WAAqB,EACrB,YAAqC;QAErC,MAAM,OAAO,GAAG,+BAA+B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACvE,wFAAwF,CAAC;QAC3F,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;AAfD,sDAeC;AAED;;GAEG;AACH,MAAa,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,SAAiB;QAC3B,KAAK,CAAC,QAAQ,SAAS,0DAA0D,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AALD,kDAKC;AAED;;GAEG;AACH,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,SAAiB,EAAE,WAAmB;QAChD,KAAK,CAAC,cAAc,SAAS,eAAe,WAAW,kBAAkB,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AALD,sDAKC"}
@@ -8,7 +8,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.logger = void 0;
10
10
  const chalk_1 = __importDefault(require("chalk"));
11
+ const ora_1 = __importDefault(require("ora"));
11
12
  exports.logger = {
13
+ /**
14
+ * Create and start a spinner with a message
15
+ * Returns the ora spinner instance for control
16
+ */
17
+ spinner(message) {
18
+ return (0, ora_1.default)({
19
+ text: message,
20
+ color: 'cyan',
21
+ }).start();
22
+ },
12
23
  /**
13
24
  * Log an info message
14
25
  */
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AAEH,kDAA0B;AAEb,QAAA,MAAM,GAAG;IACpB;;OAEG;IACH,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAe,EAAE,QAA+C,OAAO;QAC5E,MAAM,OAAO,GAAG,eAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,OAAe;QACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAe;QACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,GAAW,EAAE,KAAa;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;CACF,CAAC;AAEF,kBAAe,cAAM,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AAEH,kDAA0B;AAC1B,8CAA+B;AAElB,QAAA,MAAM,GAAG;IACpB;;;OAGG;IACH,OAAO,CAAC,OAAe;QACrB,OAAO,IAAA,aAAG,EAAC;YACT,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,MAAM;SACd,CAAC,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;IACD;;OAEG;IACH,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAe,EAAE,QAA+C,OAAO;QAC5E,MAAM,OAAO,GAAG,eAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,OAAe;QACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAe;QACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,GAAW,EAAE,KAAa;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;CACF,CAAC;AAEF,kBAAe,cAAM,CAAC"}
@@ -19,7 +19,7 @@ async function runCommand(command, args, options = {}) {
19
19
  return new Promise((resolve, reject) => {
20
20
  const child = (0, child_process_1.spawn)(command, args, {
21
21
  cwd,
22
- shell: true,
22
+ shell: false,
23
23
  stdio: silent ? 'pipe' : 'inherit',
24
24
  });
25
25
  let stdout = '';
@@ -1 +1 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/utils/shell.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAqBH,gCAsDC;AAKD,kDAmBC;AAKD,sCAOC;AAKD,wCAOC;AAKD,wCAOC;AArID,iDAAsC;AACtC,4CAA+C;AAC/C,qCAAkC;AAclC;;GAEG;AACI,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,IAAc,EACd,UAA0B,EAAE;IAE5B,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,2BAAe,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAEnE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE;YACjC,GAAG;YACH,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SACnC,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,iBAAiB;QACjB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,OAAO,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC,EAAE,OAAO,CAAC,CAAC;QAEZ,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,CAAC;gBACN,MAAM;gBACN,MAAM;gBACN,QAAQ,EAAE,IAAI,IAAI,CAAC;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,wDAAwD;QACxD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,mBAAmB,CACvC,SAAiB,EACjB,UAAgC,EAAE;IAElC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,eAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE;QACnD,GAAG,EAAE,SAAS;QACd,MAAM;QACN,OAAO,EAAE,2BAAe;KACzB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,OAAO,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/utils/shell.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.devcontainerExtensionStep = void 0;
10
10
  const inquirer_1 = __importDefault(require("inquirer"));
11
11
  const chalk_1 = __importDefault(require("chalk"));
12
+ const types_1 = require("../../types");
12
13
  exports.devcontainerExtensionStep = {
13
14
  id: 'devcontainer',
14
15
  async prompt(_currentConfig) {
@@ -50,11 +51,6 @@ exports.devcontainerExtensionStep = {
50
51
  value: 'redis',
51
52
  checked: false,
52
53
  },
53
- {
54
- name: 'Chrome - Headless browser for Playwright testing',
55
- value: 'chrome',
56
- checked: false,
57
- },
58
54
  {
59
55
  name: 'Claude Code - AI assistant with MCP servers',
60
56
  value: 'claudeCode',
@@ -63,12 +59,69 @@ exports.devcontainerExtensionStep = {
63
59
  ],
64
60
  },
65
61
  ]);
62
+ const hasPostgres = services.includes('postgres');
63
+ const hasClaudeCode = services.includes('claudeCode');
64
+ let mcpServers = [];
65
+ let needsChrome = false;
66
+ // If Claude Code is selected, prompt for MCP server selection
67
+ if (hasClaudeCode) {
68
+ console.log('');
69
+ console.log(chalk_1.default.gray('Select which MCP servers to configure for Claude Code:'));
70
+ console.log('');
71
+ // Build choices - Idealyst auto-selected, Playwright shows Chrome will be added, Postgres MCP disabled without Postgres
72
+ const mcpChoices = types_1.AVAILABLE_MCP_SERVERS.map((server) => {
73
+ // Postgres MCP requires PostgreSQL service
74
+ if (server.requiresPostgres && !hasPostgres) {
75
+ return {
76
+ name: `${server.name} - ${server.description} ${chalk_1.default.yellow('(requires PostgreSQL)')}`,
77
+ value: server.id,
78
+ checked: false,
79
+ disabled: 'Requires PostgreSQL service',
80
+ };
81
+ }
82
+ // Playwright will auto-add Chrome
83
+ if (server.requiresChrome) {
84
+ return {
85
+ name: `${server.name} - ${server.description} ${chalk_1.default.cyan('(will add Chrome service)')}`,
86
+ value: server.id,
87
+ checked: false,
88
+ disabled: false,
89
+ };
90
+ }
91
+ // Idealyst is auto-selected by default
92
+ const isAutoSelected = server.id === 'idealyst';
93
+ return {
94
+ name: `${server.name} - ${server.description}`,
95
+ value: server.id,
96
+ checked: isAutoSelected,
97
+ disabled: false,
98
+ };
99
+ });
100
+ const { selectedMcpServers } = await inquirer_1.default.prompt([
101
+ {
102
+ type: 'checkbox',
103
+ name: 'selectedMcpServers',
104
+ message: 'MCP servers:',
105
+ choices: mcpChoices,
106
+ },
107
+ ]);
108
+ mcpServers = selectedMcpServers;
109
+ // Check if any selected MCP server requires Chrome
110
+ needsChrome = mcpServers.some((serverId) => {
111
+ const server = types_1.AVAILABLE_MCP_SERVERS.find((s) => s.id === serverId);
112
+ return server?.requiresChrome ?? false;
113
+ });
114
+ if (needsChrome) {
115
+ console.log(chalk_1.default.cyan(' ℹ Chrome service will be added for Playwright MCP'));
116
+ }
117
+ }
66
118
  return {
67
119
  enabled: true,
68
- postgres: services.includes('postgres'),
120
+ postgres: hasPostgres,
69
121
  redis: services.includes('redis'),
70
- chrome: services.includes('chrome'),
71
- claudeCode: services.includes('claudeCode'),
122
+ chrome: needsChrome,
123
+ claudeCode: hasClaudeCode,
124
+ mcpServers,
72
125
  };
73
126
  },
74
127
  validate(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"devcontainerExtension.js","sourceRoot":"","sources":["../../../src/wizard/steps/devcontainerExtension.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AAEH,wDAAgC;AAChC,kDAA0B;AAGb,QAAA,yBAAyB,GAA2C;IAC/E,EAAE,EAAE,cAAc;IAElB,KAAK,CAAC,MAAM,CAAC,cAAsC;QACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACnD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,4BAA4B;gBACrC,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACzC;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,oBAAoB;gBAC7B,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,8BAA8B;wBACpC,KAAK,EAAE,UAAU;wBACjB,OAAO,EAAE,KAAK;qBACf;oBACD;wBACE,IAAI,EAAE,iCAAiC;wBACvC,KAAK,EAAE,OAAO;wBACd,OAAO,EAAE,KAAK;qBACf;oBACD;wBACE,IAAI,EAAE,kDAAkD;wBACxD,KAAK,EAAE,QAAQ;wBACf,OAAO,EAAE,KAAK;qBACf;oBACD;wBACE,IAAI,EAAE,6CAA6C;wBACnD,KAAK,EAAE,YAAY;wBACnB,OAAO,EAAE,KAAK;qBACf;iBACF;aACF;SACF,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;YACvC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YACjC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;SAC5C,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAiC;QACxC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"devcontainerExtension.js","sourceRoot":"","sources":["../../../src/wizard/steps/devcontainerExtension.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.summaryStep = void 0;
10
10
  const inquirer_1 = __importDefault(require("inquirer"));
11
11
  const chalk_1 = __importDefault(require("chalk"));
12
+ const types_1 = require("../../types");
12
13
  const identifiers_1 = require("../../identifiers");
13
14
  exports.summaryStep = {
14
15
  id: 'confirm',
@@ -82,6 +83,17 @@ exports.summaryStep = {
82
83
  services.push('Claude Code');
83
84
  const serviceList = services.length > 0 ? services.join(', ') : 'Base only';
84
85
  console.log(` ${chalk_1.default.green('✓')} devcontainer ${chalk_1.default.dim(`- Docker dev environment (${serviceList})`)}`);
86
+ // Show MCP servers if Claude Code is enabled
87
+ if (devConfig.claudeCode && devConfig.mcpServers && devConfig.mcpServers.length > 0) {
88
+ console.log('');
89
+ console.log(chalk_1.default.cyan(' MCP Servers:'));
90
+ for (const serverId of devConfig.mcpServers) {
91
+ const serverInfo = types_1.AVAILABLE_MCP_SERVERS.find(s => s.id === serverId);
92
+ if (serverInfo) {
93
+ console.log(` ${chalk_1.default.green('✓')} ${serverInfo.name.padEnd(12)} ${chalk_1.default.dim(`- ${serverInfo.description}`)}`);
94
+ }
95
+ }
96
+ }
85
97
  }
86
98
  else {
87
99
  console.log(` ${chalk_1.default.green('✓')} devcontainer ${chalk_1.default.dim('- Docker dev environment (all services)')}`);