genbox 1.0.192 → 1.0.193
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.
- package/dist/commands/new.js +48 -0
- package/dist/utils/gemini-auth.js +1 -1
- package/package.json +2 -1
package/dist/commands/new.js
CHANGED
|
@@ -9,6 +9,7 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
9
9
|
const select_1 = __importDefault(require("@inquirer/select"));
|
|
10
10
|
const input_1 = __importDefault(require("@inquirer/input"));
|
|
11
11
|
const confirm_1 = __importDefault(require("@inquirer/confirm"));
|
|
12
|
+
const checkbox_1 = __importDefault(require("@inquirer/checkbox"));
|
|
12
13
|
const ora_1 = __importDefault(require("ora"));
|
|
13
14
|
const api_1 = require("../api");
|
|
14
15
|
const utils_1 = require("../utils");
|
|
@@ -139,6 +140,42 @@ exports.newCommand = new commander_1.Command('new')
|
|
|
139
140
|
default: size,
|
|
140
141
|
});
|
|
141
142
|
}
|
|
143
|
+
// AI CLI selection
|
|
144
|
+
let installClaudeCode = false;
|
|
145
|
+
let installGeminiCli = false;
|
|
146
|
+
// Check which CLIs are configured
|
|
147
|
+
const claudeConfigured = preferences.claudeCredentials === 'configured';
|
|
148
|
+
const geminiConfigured = preferences.geminiCredentials === 'configured';
|
|
149
|
+
const configuredCount = (claudeConfigured ? 1 : 0) + (geminiConfigured ? 1 : 0);
|
|
150
|
+
if (!options.yes && configuredCount > 1) {
|
|
151
|
+
// Multiple CLIs configured - ask which to install
|
|
152
|
+
const aiChoices = [];
|
|
153
|
+
if (claudeConfigured) {
|
|
154
|
+
aiChoices.push({
|
|
155
|
+
name: `Claude Code ${chalk_1.default.green('(credentials synced)')}`,
|
|
156
|
+
value: 'claude',
|
|
157
|
+
checked: true,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
if (geminiConfigured) {
|
|
161
|
+
aiChoices.push({
|
|
162
|
+
name: `Gemini CLI ${chalk_1.default.green('(credentials synced)')}`,
|
|
163
|
+
value: 'gemini',
|
|
164
|
+
checked: true,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
const selectedAiClis = await (0, checkbox_1.default)({
|
|
168
|
+
message: 'Install AI CLIs:',
|
|
169
|
+
choices: aiChoices,
|
|
170
|
+
});
|
|
171
|
+
installClaudeCode = selectedAiClis.includes('claude');
|
|
172
|
+
installGeminiCli = selectedAiClis.includes('gemini');
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
// Only one or no CLI configured - auto-select configured ones
|
|
176
|
+
installClaudeCode = claudeConfigured;
|
|
177
|
+
installGeminiCli = geminiConfigured;
|
|
178
|
+
}
|
|
142
179
|
// Check credits
|
|
143
180
|
const creditsPerHour = CREDITS_PER_HOUR[size] || 2;
|
|
144
181
|
let totalCredits = 0;
|
|
@@ -161,6 +198,15 @@ exports.newCommand = new commander_1.Command('new')
|
|
|
161
198
|
console.log(` ${chalk_1.default.bold('Name:')} ${projectName}`);
|
|
162
199
|
console.log(` ${chalk_1.default.bold('Size:')} ${size} (${creditsPerHour} credit${creditsPerHour > 1 ? 's' : ''}/hr)`);
|
|
163
200
|
console.log(` ${chalk_1.default.bold('Features:')} ${template.features.join(', ')}`);
|
|
201
|
+
// Show AI CLIs to be installed
|
|
202
|
+
const aiClisToInstall = [];
|
|
203
|
+
if (installClaudeCode)
|
|
204
|
+
aiClisToInstall.push('Claude Code');
|
|
205
|
+
if (installGeminiCli)
|
|
206
|
+
aiClisToInstall.push('Gemini CLI');
|
|
207
|
+
if (aiClisToInstall.length > 0) {
|
|
208
|
+
console.log(` ${chalk_1.default.bold('AI CLIs:')} ${aiClisToInstall.join(', ')}`);
|
|
209
|
+
}
|
|
164
210
|
console.log(` ${chalk_1.default.bold('Credits:')} ${totalCredits} available (~${Math.floor(totalCredits / creditsPerHour)} hours)`);
|
|
165
211
|
console.log(chalk_1.default.dim('───────────────────────────────────────────────'));
|
|
166
212
|
// Confirm
|
|
@@ -187,6 +233,8 @@ exports.newCommand = new commander_1.Command('new')
|
|
|
187
233
|
files: [],
|
|
188
234
|
postDetails: [],
|
|
189
235
|
repos: {},
|
|
236
|
+
installClaudeCode,
|
|
237
|
+
installGeminiCli,
|
|
190
238
|
};
|
|
191
239
|
// If template uses createCommand, set it up
|
|
192
240
|
if (template.createCommand) {
|
|
@@ -118,7 +118,7 @@ function getCredentialsFromOAuthFile() {
|
|
|
118
118
|
*/
|
|
119
119
|
function getGeminiAuthInstructions() {
|
|
120
120
|
return `To authenticate Gemini CLI:
|
|
121
|
-
1. Install Gemini CLI: npm install -g @
|
|
121
|
+
1. Install Gemini CLI: npm install -g @google/gemini-cli
|
|
122
122
|
2. Run 'gemini' in your terminal
|
|
123
123
|
3. Follow the browser authentication flow
|
|
124
124
|
4. Your credentials will be stored in ~/.gemini/oauth_creds.json
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "genbox",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.193",
|
|
4
4
|
"description": "Genbox CLI - AI-Powered Development Environments",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
"typescript": "^5.9.3"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
+
"@inquirer/checkbox": "^5.0.3",
|
|
53
54
|
"@inquirer/confirm": "^6.0.2",
|
|
54
55
|
"@inquirer/input": "^5.0.3",
|
|
55
56
|
"@inquirer/prompts": "^8.0.2",
|