gemini-designer 0.1.8 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,eAAO,MAAM,WAAW,SAoJlB,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,eAAO,MAAM,WAAW,SAoLlB,CAAC"}
@@ -6,7 +6,7 @@ import { Command } from 'commander';
6
6
  import chalk from 'chalk';
7
7
  import Enquirer from 'enquirer';
8
8
  import { detectClients } from '../clients/index.js';
9
- const { Select, MultiSelect, Password } = Enquirer;
9
+ const { Select, MultiSelect, Password, Confirm } = Enquirer;
10
10
  const REMOTE_ENDPOINT = 'https://api.gemini-designer.dev/mcp';
11
11
  export const initCommand = new Command('init')
12
12
  .description('Initialize Gemini Designer MCP for your development environment')
@@ -64,6 +64,22 @@ export const initCommand = new Command('init')
64
64
  console.log(chalk.yellow('\n⚠️ No client selected. Exiting.\n'));
65
65
  return;
66
66
  }
67
+ // Check if already configured
68
+ const existingConfig = selectedClient.getExistingConfig();
69
+ const isAlreadyConfigured = existingConfig && (existingConfig.mcpServers?.['gemini-designer'] ||
70
+ existingConfig.mcpServers?.['Gemini Designer']);
71
+ if (isAlreadyConfigured) {
72
+ console.log(chalk.yellow(`\n⚠️ Gemini Designer is already configured in ${selectedClient.displayName}.`));
73
+ const confirmUpdate = new Confirm({
74
+ name: 'update',
75
+ message: 'Replace existing configuration?',
76
+ initial: true,
77
+ });
78
+ if (!(await confirmUpdate.run())) {
79
+ console.log(chalk.gray('Cancelled. Existing config unchanged.\n'));
80
+ return;
81
+ }
82
+ }
67
83
  const selectedClients = [selectedClient];
68
84
  // Get API key
69
85
  let config;
@@ -121,8 +137,16 @@ export const initCommand = new Command('init')
121
137
  console.log(chalk.gray('\nConfiguring clients...'));
122
138
  for (const client of selectedClients) {
123
139
  try {
140
+ const existingConfig = client.getExistingConfig();
141
+ const isUpdate = existingConfig && (existingConfig.mcpServers?.['gemini-designer'] ||
142
+ existingConfig.mcpServers?.['Gemini Designer']);
124
143
  client.configure(config);
125
- console.log(chalk.green(`✓ ${client.displayName}`));
144
+ if (isUpdate) {
145
+ console.log(chalk.green(`✓ ${client.displayName} (updated)`));
146
+ }
147
+ else {
148
+ console.log(chalk.green(`✓ ${client.displayName} (added)`));
149
+ }
126
150
  }
127
151
  catch (error) {
128
152
  console.log(chalk.red(`✗ ${client.displayName}: ${error}`));
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gemini-designer",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "CLI installer for Gemini Designer MCP server",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",
@@ -8,10 +8,11 @@ import chalk from 'chalk';
8
8
  import Enquirer from 'enquirer';
9
9
  import { detectClients, type ClientAdapter, type McpServerConfig } from '../clients/index.js';
10
10
 
11
- const { Select, MultiSelect, Password } = Enquirer as unknown as {
11
+ const { Select, MultiSelect, Password, Confirm } = Enquirer as unknown as {
12
12
  Select: new (options: Record<string, unknown>) => { run: () => Promise<string> };
13
13
  MultiSelect: new (options: Record<string, unknown>) => { run: () => Promise<string[]> };
14
14
  Password: new (options: Record<string, unknown>) => { run: () => Promise<string> };
15
+ Confirm: new (options: Record<string, unknown>) => { run: () => Promise<boolean> };
15
16
  };
16
17
 
17
18
  const REMOTE_ENDPOINT = 'https://api.gemini-designer.dev/mcp';
@@ -78,6 +79,27 @@ export const initCommand = new Command('init')
78
79
  return;
79
80
  }
80
81
 
82
+ // Check if already configured
83
+ const existingConfig = selectedClient.getExistingConfig();
84
+ const isAlreadyConfigured = existingConfig && (
85
+ (existingConfig.mcpServers as Record<string, unknown>)?.['gemini-designer'] ||
86
+ (existingConfig.mcpServers as Record<string, unknown>)?.['Gemini Designer']
87
+ );
88
+
89
+ if (isAlreadyConfigured) {
90
+ console.log(chalk.yellow(`\n⚠️ Gemini Designer is already configured in ${selectedClient.displayName}.`));
91
+ const confirmUpdate = new Confirm({
92
+ name: 'update',
93
+ message: 'Replace existing configuration?',
94
+ initial: true,
95
+ });
96
+
97
+ if (!(await confirmUpdate.run())) {
98
+ console.log(chalk.gray('Cancelled. Existing config unchanged.\n'));
99
+ return;
100
+ }
101
+ }
102
+
81
103
  const selectedClients = [selectedClient];
82
104
 
83
105
  // Get API key
@@ -145,8 +167,19 @@ export const initCommand = new Command('init')
145
167
 
146
168
  for (const client of selectedClients) {
147
169
  try {
170
+ const existingConfig = client.getExistingConfig();
171
+ const isUpdate = existingConfig && (
172
+ (existingConfig.mcpServers as Record<string, unknown>)?.['gemini-designer'] ||
173
+ (existingConfig.mcpServers as Record<string, unknown>)?.['Gemini Designer']
174
+ );
175
+
148
176
  client.configure(config);
149
- console.log(chalk.green(`✓ ${client.displayName}`));
177
+
178
+ if (isUpdate) {
179
+ console.log(chalk.green(`✓ ${client.displayName} (updated)`));
180
+ } else {
181
+ console.log(chalk.green(`✓ ${client.displayName} (added)`));
182
+ }
150
183
  } catch (error) {
151
184
  console.log(chalk.red(`✗ ${client.displayName}: ${error}`));
152
185
  }