ccconfig 1.5.1 → 1.5.2
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/ccconfig.js +26 -11
- package/package.json +1 -1
package/ccconfig.js
CHANGED
|
@@ -180,46 +180,61 @@ class ReadlineHelper {
|
|
|
180
180
|
|
|
181
181
|
async ask(question, defaultValue = '', options = {}) {
|
|
182
182
|
this.ensureInterface();
|
|
183
|
-
const {brackets = 'parentheses'} = options;
|
|
183
|
+
const {brackets = 'parentheses', prefill = false} = options;
|
|
184
184
|
const left = brackets === 'square' ? '[' : '(';
|
|
185
185
|
const right = brackets === 'square' ? ']' : ')';
|
|
186
|
-
|
|
186
|
+
// Don't show value in brackets if it will be pre-filled
|
|
187
|
+
const suffix = (defaultValue && !prefill) ? ` ${left}${defaultValue}${right}` : '';
|
|
187
188
|
|
|
188
189
|
return new Promise(resolve => {
|
|
189
190
|
this.rl.question(`${question}${suffix}: `, answer => {
|
|
190
191
|
const trimmed = answer.trim();
|
|
191
192
|
resolve(trimmed || defaultValue);
|
|
192
193
|
});
|
|
194
|
+
// Pre-fill input with default value if prefill option is enabled
|
|
195
|
+
if (prefill && defaultValue) {
|
|
196
|
+
this.rl.write(defaultValue);
|
|
197
|
+
}
|
|
193
198
|
});
|
|
194
199
|
}
|
|
195
200
|
|
|
196
201
|
async askEnvVars(existingEnv = {}) {
|
|
202
|
+
const hasExisting = key => !!existingEnv[key];
|
|
203
|
+
|
|
197
204
|
const baseUrl = await this.ask(
|
|
198
205
|
'ANTHROPIC_BASE_URL (press Enter to keep current/default)',
|
|
199
|
-
existingEnv.ANTHROPIC_BASE_URL || 'https://api.anthropic.com',
|
|
200
|
-
|
|
206
|
+
existingEnv.ANTHROPIC_BASE_URL || 'https://api.anthropic.com', {
|
|
207
|
+
brackets: hasExisting('ANTHROPIC_BASE_URL') ? 'square' : 'parentheses',
|
|
208
|
+
prefill: hasExisting('ANTHROPIC_BASE_URL')
|
|
209
|
+
});
|
|
201
210
|
|
|
202
211
|
const authToken = await this.ask(
|
|
203
212
|
'ANTHROPIC_AUTH_TOKEN (press Enter to keep current/set empty)',
|
|
204
213
|
existingEnv.ANTHROPIC_AUTH_TOKEN || '', {
|
|
205
|
-
brackets:
|
|
214
|
+
brackets: hasExisting('ANTHROPIC_AUTH_TOKEN') ? 'square' : 'parentheses',
|
|
215
|
+
prefill: hasExisting('ANTHROPIC_AUTH_TOKEN')
|
|
206
216
|
});
|
|
207
217
|
|
|
208
218
|
const apiKey = await this.ask(
|
|
209
219
|
'ANTHROPIC_API_KEY (press Enter to keep current/set empty)',
|
|
210
|
-
existingEnv.ANTHROPIC_API_KEY || '',
|
|
211
|
-
|
|
220
|
+
existingEnv.ANTHROPIC_API_KEY || '', {
|
|
221
|
+
brackets: hasExisting('ANTHROPIC_API_KEY') ? 'square' : 'parentheses',
|
|
222
|
+
prefill: hasExisting('ANTHROPIC_API_KEY')
|
|
223
|
+
});
|
|
212
224
|
|
|
213
225
|
const model = await this.ask(
|
|
214
226
|
'ANTHROPIC_MODEL (press Enter to skip/keep current)',
|
|
215
|
-
existingEnv.ANTHROPIC_MODEL || '',
|
|
216
|
-
|
|
227
|
+
existingEnv.ANTHROPIC_MODEL || '', {
|
|
228
|
+
brackets: hasExisting('ANTHROPIC_MODEL') ? 'square' : 'parentheses',
|
|
229
|
+
prefill: hasExisting('ANTHROPIC_MODEL')
|
|
230
|
+
});
|
|
217
231
|
|
|
218
232
|
const smallFastModel = await this.ask(
|
|
219
233
|
'ANTHROPIC_SMALL_FAST_MODEL (press Enter to skip/keep current)',
|
|
220
234
|
existingEnv.ANTHROPIC_SMALL_FAST_MODEL || '', {
|
|
221
|
-
brackets:
|
|
222
|
-
|
|
235
|
+
brackets:
|
|
236
|
+
hasExisting('ANTHROPIC_SMALL_FAST_MODEL') ? 'square' : 'parentheses',
|
|
237
|
+
prefill: hasExisting('ANTHROPIC_SMALL_FAST_MODEL')
|
|
223
238
|
});
|
|
224
239
|
|
|
225
240
|
const envVars = {
|