@machina.ai/cell-cli 1.49.0-rc5 → 1.50.0-rc1

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 (37) hide show
  1. package/dist/package.json +3 -3
  2. package/dist/src/acp/acpSession.test.js +5 -1
  3. package/dist/src/acp/acpSession.test.js.map +1 -1
  4. package/dist/src/config/config.js +23 -3
  5. package/dist/src/config/config.js.map +1 -1
  6. package/dist/src/config/config.test.js +2 -2
  7. package/dist/src/config/config.test.js.map +1 -1
  8. package/dist/src/config/settings.d.ts +4 -0
  9. package/dist/src/config/settings.js +73 -1
  10. package/dist/src/config/settings.js.map +1 -1
  11. package/dist/src/config/settings.test.js +161 -16
  12. package/dist/src/config/settings.test.js.map +1 -1
  13. package/dist/src/config/settingsSchema.d.ts +24 -0
  14. package/dist/src/config/settingsSchema.js +26 -0
  15. package/dist/src/config/settingsSchema.js.map +1 -1
  16. package/dist/src/generated/git-commit.d.ts +2 -2
  17. package/dist/src/generated/git-commit.js +2 -2
  18. package/dist/src/ui/components/AsciiArt.d.ts +6 -6
  19. package/dist/src/ui/components/AsciiArt.js +6 -6
  20. package/dist/src/ui/components/InputPrompt.test.js +52 -1
  21. package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  22. package/dist/src/ui/components/ModelDialog.js +248 -80
  23. package/dist/src/ui/components/ModelDialog.js.map +1 -1
  24. package/dist/src/ui/components/ModelDialog.test.js +158 -9
  25. package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
  26. package/dist/src/ui/components/VoiceModelDialog.js +16 -6
  27. package/dist/src/ui/components/VoiceModelDialog.js.map +1 -1
  28. package/dist/src/ui/components/shared/TextInput.d.ts +2 -1
  29. package/dist/src/ui/components/shared/TextInput.js +7 -6
  30. package/dist/src/ui/components/shared/TextInput.js.map +1 -1
  31. package/dist/src/ui/hooks/useGeminiStream.js +11 -1
  32. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  33. package/dist/src/ui/hooks/useVoiceMode.js +3 -2
  34. package/dist/src/ui/hooks/useVoiceMode.js.map +1 -1
  35. package/dist/src/utils/handleAutoUpdate.test.js +2 -2
  36. package/dist/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +3 -3
@@ -3,19 +3,55 @@ import { useCallback, useContext, useMemo, useState, useEffect } from 'react';
3
3
  import { Box, Text } from 'ink';
4
4
  import { ModelQuotaDisplay } from './ModelQuotaDisplay.js';
5
5
  import { useUIState } from '../contexts/UIStateContext.js';
6
- import { PREVIEW_GEMINI_MODEL, PREVIEW_GEMINI_3_1_MODEL, PREVIEW_GEMINI_FLASH_MODEL, PREVIEW_GEMINI_FLASH_LITE_MODEL, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, GEMINI_MODEL_ALIAS_AUTO, AUTO_GEMINI_3_5_MODEL, GEMMA_4_31B_IT_MODEL, GEMMA_4_26B_A4B_IT_MODEL, ModelSlashCommandEvent, logModelSlashCommand, getDisplayString, AuthType, PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL, isProModel, getAutoModelDescription, } from '@google/gemini-cli-core';
6
+ import { PREVIEW_GEMINI_MODEL, PREVIEW_GEMINI_3_1_MODEL, PREVIEW_GEMINI_FLASH_MODEL, PREVIEW_GEMINI_FLASH_LITE_MODEL, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, GEMINI_MODEL_ALIAS_AUTO, AUTO_GEMINI_3_5_MODEL, AUTO_GROK_4_5_MODEL, AUTO_GPT_5_6_FRONTIER_MODEL, AUTO_GPT_5_4_MODEL, GEMMA_4_31B_IT_MODEL, GEMMA_4_26B_A4B_IT_MODEL, GROK_4_5_MODEL, ModelSlashCommandEvent, logModelSlashCommand, getDisplayString, AuthType, PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL, isProModel, getAutoModelDescription, fetchLocalModels, } from '@google/gemini-cli-core';
7
7
  import { useKeypress } from '../hooks/useKeypress.js';
8
8
  import { theme } from '../semantic-colors.js';
9
9
  import { DescriptiveRadioButtonSelect } from './shared/DescriptiveRadioButtonSelect.js';
10
10
  import { ConfigContext } from '../contexts/ConfigContext.js';
11
11
  import { useSettings } from '../contexts/SettingsContext.js';
12
+ import { TextInput } from './shared/TextInput.js';
13
+ import { useTextBuffer } from './shared/text-buffer.js';
14
+ const isExperimentalFeaturesEnabled = () => {
15
+ const envVal = process.env['CELL_CLI_EXPERIMENTAL_FEATURES'];
16
+ return envVal === '1' || envVal === 'true';
17
+ };
18
+ const isOpenAiCompatibleModel = (modelId) => {
19
+ const id = modelId.toLowerCase();
20
+ return (id === 'local model' ||
21
+ id.startsWith('openai/') ||
22
+ id.startsWith('xai/') ||
23
+ id.includes('grok') ||
24
+ id.includes('gpt-5'));
25
+ };
12
26
  export function ModelDialog({ onClose }) {
13
27
  const config = useContext(ConfigContext);
14
28
  const settings = useSettings();
15
29
  const { terminalWidth } = useUIState();
16
30
  const [hasAccessToProModel, setHasAccessToProModel] = useState(() => !(config?.getProModelNoAccessSync() ?? false));
17
- const [view, setView] = useState(() => config?.getProModelNoAccessSync() ? 'manual' : 'main');
31
+ const [view, setView] = useState(() => (config?.getProModelNoAccessSync() ? 'manual' : 'main'));
18
32
  const [persistMode, setPersistMode] = useState(false);
33
+ const [localModels, setLocalModels] = useState([]);
34
+ const [isFetching, setIsFetching] = useState(false);
35
+ const [fetchError, setFetchError] = useState(null);
36
+ const [focusedField, setFocusedField] = useState('url');
37
+ const urlBuffer = useTextBuffer({
38
+ initialText: config?.getLocalModelUrl?.() || 'http://localhost:1234/v1',
39
+ singleLine: true,
40
+ viewport: {
41
+ width: terminalWidth - 16,
42
+ height: 1,
43
+ },
44
+ });
45
+ const savedApiKey = config?.getLocalModelApiKey?.() || '';
46
+ const initialApiKeyDisplay = savedApiKey ? '*****' : '';
47
+ const apiKeyBuffer = useTextBuffer({
48
+ initialText: initialApiKeyDisplay,
49
+ singleLine: true,
50
+ viewport: {
51
+ width: terminalWidth - 16,
52
+ height: 1,
53
+ },
54
+ });
19
55
  useEffect(() => {
20
56
  async function checkAccess() {
21
57
  if (!config)
@@ -76,8 +112,35 @@ export function ModelDialog({ onClose }) {
76
112
  return true;
77
113
  }
78
114
  return false;
79
- }, { isActive: true });
115
+ }, { isActive: view === 'main' || view === 'manual' });
116
+ useKeypress((key) => {
117
+ if (key.name === 'escape') {
118
+ setView('manual');
119
+ return true;
120
+ }
121
+ if (key.name === 'down' || key.name === 'tab') {
122
+ setFocusedField((f) => (f === 'url' ? 'apiKey' : 'url'));
123
+ return true;
124
+ }
125
+ if (key.name === 'up') {
126
+ setFocusedField((f) => (f === 'url' ? 'apiKey' : 'url'));
127
+ return true;
128
+ }
129
+ return false;
130
+ }, { isActive: view === 'local_config' });
131
+ useKeypress((key) => {
132
+ if (key.name === 'escape') {
133
+ setView('local_config');
134
+ return true;
135
+ }
136
+ if (key.name === 'tab') {
137
+ setPersistMode((prev) => !prev);
138
+ return true;
139
+ }
140
+ return false;
141
+ }, { isActive: view === 'local_list' });
80
142
  const mainOptions = useMemo(() => {
143
+ let list;
81
144
  // --- DYNAMIC PATH ---
82
145
  if (config?.getExperimentalDynamicModelConfiguration?.() === true &&
83
146
  config.getModelConfigService) {
@@ -90,7 +153,7 @@ export function ModelDialog({ onClose }) {
90
153
  hasAccessToPreview: shouldShowPreviewModels,
91
154
  hasAccessToProModel,
92
155
  });
93
- const list = allOptions
156
+ list = allOptions
94
157
  .filter((o) => o.tier === 'auto')
95
158
  .map((o) => ({
96
159
  value: o.modelId,
@@ -106,31 +169,53 @@ export function ModelDialog({ onClose }) {
106
169
  description: 'Manually select a model',
107
170
  key: 'Manual',
108
171
  });
109
- return list;
110
172
  }
111
- // --- LEGACY PATH ---
112
- const list = [
113
- {
114
- value: GEMINI_MODEL_ALIAS_AUTO,
115
- title: getDisplayString(GEMINI_MODEL_ALIAS_AUTO),
116
- description: getAutoModelDescription(shouldShowPreviewModels, useGemini31, useGemini3_5Flash),
117
- key: GEMINI_MODEL_ALIAS_AUTO,
118
- },
119
- {
120
- value: AUTO_GEMINI_3_5_MODEL,
121
- title: getDisplayString(AUTO_GEMINI_3_5_MODEL),
122
- description: 'Let Cell CLI decide the best model for the task: gemini-3.5-flash, gemini-3-flash',
123
- key: AUTO_GEMINI_3_5_MODEL,
124
- },
125
- {
126
- value: 'Manual',
127
- title: manualModelSelected
128
- ? `Manual (${getDisplayString(manualModelSelected)})`
129
- : 'Manual',
130
- description: 'Manually select a model',
131
- key: 'Manual',
132
- },
133
- ];
173
+ else {
174
+ // --- LEGACY PATH ---
175
+ list = [
176
+ {
177
+ value: GEMINI_MODEL_ALIAS_AUTO,
178
+ title: getDisplayString(GEMINI_MODEL_ALIAS_AUTO),
179
+ description: getAutoModelDescription(shouldShowPreviewModels, useGemini31, useGemini3_5Flash),
180
+ key: GEMINI_MODEL_ALIAS_AUTO,
181
+ },
182
+ {
183
+ value: AUTO_GEMINI_3_5_MODEL,
184
+ title: getDisplayString(AUTO_GEMINI_3_5_MODEL),
185
+ description: 'Let Cell CLI decide the best model for the task: gemini-3.5-flash, gemini-3-flash',
186
+ key: AUTO_GEMINI_3_5_MODEL,
187
+ },
188
+ {
189
+ value: AUTO_GROK_4_5_MODEL,
190
+ title: getDisplayString(AUTO_GROK_4_5_MODEL),
191
+ description: 'Let Cell CLI decide the best model for the task: grok-4.5, grok-4-1-fast-reasoning',
192
+ key: AUTO_GROK_4_5_MODEL,
193
+ },
194
+ {
195
+ value: AUTO_GPT_5_6_FRONTIER_MODEL,
196
+ title: getDisplayString(AUTO_GPT_5_6_FRONTIER_MODEL),
197
+ description: 'Let Cell CLI decide the best model for the task: gpt-5.6-terra, gpt-5.6-luna',
198
+ key: AUTO_GPT_5_6_FRONTIER_MODEL,
199
+ },
200
+ {
201
+ value: AUTO_GPT_5_4_MODEL,
202
+ title: getDisplayString(AUTO_GPT_5_4_MODEL),
203
+ description: 'Let Cell CLI decide the best model for the task: gpt-5.4, gpt-5.4-mini',
204
+ key: AUTO_GPT_5_4_MODEL,
205
+ },
206
+ {
207
+ value: 'Manual',
208
+ title: manualModelSelected
209
+ ? `Manual (${getDisplayString(manualModelSelected)})`
210
+ : 'Manual',
211
+ description: 'Manually select a model',
212
+ key: 'Manual',
213
+ },
214
+ ];
215
+ }
216
+ if (!isExperimentalFeaturesEnabled()) {
217
+ list = list.filter((item) => !isOpenAiCompatibleModel(item.value));
218
+ }
134
219
  return list;
135
220
  }, [
136
221
  config,
@@ -142,6 +227,7 @@ export function ModelDialog({ onClose }) {
142
227
  hasAccessToProModel,
143
228
  ]);
144
229
  const manualOptions = useMemo(() => {
230
+ let options;
145
231
  // --- DYNAMIC PATH ---
146
232
  if (config?.getExperimentalDynamicModelConfiguration?.() === true &&
147
233
  config.getModelConfigService) {
@@ -154,75 +240,93 @@ export function ModelDialog({ onClose }) {
154
240
  hasAccessToPreview: shouldShowPreviewModels,
155
241
  hasAccessToProModel,
156
242
  });
157
- return allOptions
243
+ options = allOptions
158
244
  .filter((o) => o.tier !== 'auto')
159
245
  .map((o) => ({
160
246
  value: o.modelId,
161
247
  title: o.name,
162
248
  key: o.modelId,
163
249
  }));
164
- }
165
- // --- LEGACY PATH ---
166
- const showGemmaModels = config?.getExperimentalGemma() ?? false;
167
- const options = [
168
- {
169
- value: DEFAULT_GEMINI_MODEL,
170
- title: getDisplayString(DEFAULT_GEMINI_MODEL),
171
- key: DEFAULT_GEMINI_MODEL,
172
- },
173
- {
174
- value: DEFAULT_GEMINI_FLASH_LITE_MODEL,
175
- title: getDisplayString(DEFAULT_GEMINI_FLASH_LITE_MODEL),
176
- key: DEFAULT_GEMINI_FLASH_LITE_MODEL,
177
- },
178
- {
179
- value: DEFAULT_GEMINI_FLASH_MODEL,
180
- title: getDisplayString(DEFAULT_GEMINI_FLASH_MODEL),
181
- key: DEFAULT_GEMINI_FLASH_MODEL,
182
- },
183
- ];
184
- if (showGemmaModels) {
185
250
  options.push({
186
- value: GEMMA_4_31B_IT_MODEL,
187
- title: getDisplayString(GEMMA_4_31B_IT_MODEL),
188
- key: GEMMA_4_31B_IT_MODEL,
189
- }, {
190
- value: GEMMA_4_26B_A4B_IT_MODEL,
191
- title: getDisplayString(GEMMA_4_26B_A4B_IT_MODEL),
192
- key: GEMMA_4_26B_A4B_IT_MODEL,
251
+ value: 'Local Model',
252
+ title: 'Local Model (OpenAI-compatible)',
253
+ key: 'Local Model',
193
254
  });
194
255
  }
195
- if (shouldShowPreviewModels) {
196
- const previewProModel = useGemini31
197
- ? PREVIEW_GEMINI_3_1_MODEL
198
- : PREVIEW_GEMINI_MODEL;
199
- const previewProValue = useCustomToolModel
200
- ? PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL
201
- : previewProModel;
202
- const previewOptions = [
256
+ else {
257
+ // --- LEGACY PATH ---
258
+ const showGemmaModels = config?.getExperimentalGemma() ?? false;
259
+ options = [
203
260
  {
204
- value: previewProValue,
205
- title: getDisplayString(previewProModel),
206
- key: previewProModel,
261
+ value: DEFAULT_GEMINI_MODEL,
262
+ title: getDisplayString(DEFAULT_GEMINI_MODEL),
263
+ key: DEFAULT_GEMINI_MODEL,
207
264
  },
208
265
  {
209
- value: PREVIEW_GEMINI_FLASH_MODEL,
210
- title: getDisplayString(PREVIEW_GEMINI_FLASH_MODEL),
211
- key: PREVIEW_GEMINI_FLASH_MODEL,
266
+ value: DEFAULT_GEMINI_FLASH_LITE_MODEL,
267
+ title: getDisplayString(DEFAULT_GEMINI_FLASH_LITE_MODEL),
268
+ key: DEFAULT_GEMINI_FLASH_LITE_MODEL,
269
+ },
270
+ {
271
+ value: DEFAULT_GEMINI_FLASH_MODEL,
272
+ title: getDisplayString(DEFAULT_GEMINI_FLASH_MODEL),
273
+ key: DEFAULT_GEMINI_FLASH_MODEL,
212
274
  },
213
275
  ];
214
- if (PREVIEW_GEMINI_FLASH_LITE_MODEL !== 'none') {
215
- previewOptions.push({
216
- value: PREVIEW_GEMINI_FLASH_LITE_MODEL,
217
- title: getDisplayString(PREVIEW_GEMINI_FLASH_LITE_MODEL),
218
- key: PREVIEW_GEMINI_FLASH_LITE_MODEL,
276
+ if (showGemmaModels) {
277
+ options.push({
278
+ value: GEMMA_4_31B_IT_MODEL,
279
+ title: getDisplayString(GEMMA_4_31B_IT_MODEL),
280
+ key: GEMMA_4_31B_IT_MODEL,
281
+ }, {
282
+ value: GEMMA_4_26B_A4B_IT_MODEL,
283
+ title: getDisplayString(GEMMA_4_26B_A4B_IT_MODEL),
284
+ key: GEMMA_4_26B_A4B_IT_MODEL,
285
+ }, {
286
+ value: GROK_4_5_MODEL,
287
+ title: getDisplayString(GROK_4_5_MODEL),
288
+ key: GROK_4_5_MODEL,
219
289
  });
220
290
  }
221
- options.unshift(...previewOptions);
291
+ if (shouldShowPreviewModels) {
292
+ const previewProModel = useGemini31
293
+ ? PREVIEW_GEMINI_3_1_MODEL
294
+ : PREVIEW_GEMINI_MODEL;
295
+ const previewProValue = useCustomToolModel
296
+ ? PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL
297
+ : previewProModel;
298
+ const previewOptions = [
299
+ {
300
+ value: previewProValue,
301
+ title: getDisplayString(previewProModel),
302
+ key: previewProModel,
303
+ },
304
+ {
305
+ value: PREVIEW_GEMINI_FLASH_MODEL,
306
+ title: getDisplayString(PREVIEW_GEMINI_FLASH_MODEL),
307
+ key: PREVIEW_GEMINI_FLASH_MODEL,
308
+ },
309
+ ];
310
+ if (PREVIEW_GEMINI_FLASH_LITE_MODEL !== 'none') {
311
+ previewOptions.push({
312
+ value: PREVIEW_GEMINI_FLASH_LITE_MODEL,
313
+ title: getDisplayString(PREVIEW_GEMINI_FLASH_LITE_MODEL),
314
+ key: PREVIEW_GEMINI_FLASH_LITE_MODEL,
315
+ });
316
+ }
317
+ options.unshift(...previewOptions);
318
+ }
319
+ options = !hasAccessToProModel
320
+ ? options.filter((option) => !isProModel(option.value))
321
+ : options;
322
+ options.push({
323
+ value: 'Local Model',
324
+ title: 'Local Model (OpenAI-compatible)',
325
+ key: 'Local Model',
326
+ });
222
327
  }
223
- if (!hasAccessToProModel) {
224
- // Filter out all Pro models for free tier
225
- return options.filter((option) => !isProModel(option.value));
328
+ if (!isExperimentalFeaturesEnabled()) {
329
+ options = options.filter((item) => !isOpenAiCompatibleModel(item.value));
226
330
  }
227
331
  return options;
228
332
  }, [
@@ -262,6 +366,10 @@ export function ModelDialog({ onClose }) {
262
366
  setView('manual');
263
367
  return;
264
368
  }
369
+ if (model === 'Local Model') {
370
+ setView('local_config');
371
+ return;
372
+ }
265
373
  if (config) {
266
374
  config.setModel(model, persistMode ? false : true);
267
375
  const event = new ModelSlashCommandEvent(model);
@@ -269,6 +377,66 @@ export function ModelDialog({ onClose }) {
269
377
  }
270
378
  onClose();
271
379
  }, [config, onClose, persistMode]);
380
+ const handleConfigSubmit = useCallback(async () => {
381
+ const url = urlBuffer.text.trim();
382
+ let apiKey = apiKeyBuffer.text.trim();
383
+ if (apiKey === '*****') {
384
+ apiKey = config?.getLocalModelApiKey?.() || '';
385
+ }
386
+ if (!url) {
387
+ setFetchError('URL cannot be empty');
388
+ return;
389
+ }
390
+ setIsFetching(true);
391
+ setFetchError(null);
392
+ try {
393
+ const models = await fetchLocalModels(url, apiKey || undefined);
394
+ if (models.length === 0) {
395
+ setFetchError('No models returned from endpoint');
396
+ }
397
+ else {
398
+ setLocalModels(models);
399
+ setView('local_list');
400
+ }
401
+ }
402
+ catch (err) {
403
+ setFetchError(err instanceof Error ? err.message : 'Failed to connect');
404
+ }
405
+ finally {
406
+ setIsFetching(false);
407
+ }
408
+ }, [urlBuffer, apiKeyBuffer, config]);
409
+ const handleLocalModelSelect = useCallback((model) => {
410
+ if (config) {
411
+ const url = urlBuffer.text.trim();
412
+ let apiKey = apiKeyBuffer.text.trim();
413
+ if (apiKey === '*****') {
414
+ apiKey = config.getLocalModelApiKey?.() || '';
415
+ }
416
+ config.setLocalModelConfig(url, apiKey || undefined, persistMode ? false : true);
417
+ config.setModel(model, persistMode ? false : true);
418
+ const event = new ModelSlashCommandEvent(model);
419
+ logModelSlashCommand(config, event);
420
+ }
421
+ onClose();
422
+ }, [config, onClose, persistMode, urlBuffer, apiKeyBuffer]);
423
+ const localModelOptions = useMemo(() => localModels.map((m) => ({
424
+ value: m,
425
+ title: m,
426
+ key: m,
427
+ })), [localModels]);
428
+ if (view === 'local_config') {
429
+ return (_jsxs(Box, { borderStyle: "round", borderColor: theme.border.default, flexDirection: "column", padding: 1, width: "100%", children: [_jsx(Text, { bold: true, children: "Local Model Configuration" }), fetchError && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: theme.status.error, children: fetchError }) })), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Box, { width: 12, children: _jsxs(Text, { color: focusedField === 'url'
430
+ ? theme.text.primary
431
+ : theme.text.secondary, children: ["Base URL:", ' '] }) }), _jsx(TextInput, { buffer: urlBuffer, focus: focusedField === 'url', onSubmit: () => setFocusedField('apiKey') })] }), _jsxs(Box, { marginTop: 1, children: [_jsx(Box, { width: 12, children: _jsxs(Text, { color: focusedField === 'apiKey'
432
+ ? theme.text.primary
433
+ : theme.text.secondary, children: ["API Key:", ' '] }) }), _jsx(TextInput, { buffer: apiKeyBuffer, focus: focusedField === 'apiKey', onSubmit: handleConfigSubmit, mask: "*" })] })] }), _jsx(Box, { marginTop: 1, flexDirection: "column", children: _jsx(Text, { color: theme.text.secondary, children: isFetching
434
+ ? 'Fetching available models...'
435
+ : '> Press Enter on API Key to discover models, or Esc to cancel.' }) })] }));
436
+ }
437
+ if (view === 'local_list') {
438
+ return (_jsxs(Box, { borderStyle: "round", borderColor: theme.border.default, flexDirection: "column", padding: 1, width: "100%", children: [_jsx(Text, { bold: true, children: "Select Local Model" }), _jsx(Box, { marginTop: 1, children: _jsx(DescriptiveRadioButtonSelect, { items: localModelOptions, onSelect: handleLocalModelSelect, initialIndex: 0, showNumbers: true }) }), _jsx(Box, { marginTop: 1, flexDirection: "column", children: _jsxs(Box, { children: [_jsxs(Text, { bold: true, color: theme.text.primary, children: ["Remember model for future sessions:", ' '] }), _jsx(Text, { color: theme.status.success, children: persistMode ? 'true' : 'false' }), _jsx(Text, { color: theme.text.secondary, children: " (Press Tab to toggle)" })] }) }), _jsx(Box, { flexDirection: "column", children: _jsx(Text, { color: theme.text.secondary, children: '> Press Esc to go back to config.' }) })] }));
439
+ }
272
440
  return (_jsxs(Box, { borderStyle: "round", borderColor: theme.border.default, flexDirection: "column", padding: 1, width: "100%", children: [_jsx(Text, { bold: true, children: "Select Model" }), _jsx(Box, { marginTop: 1, children: _jsx(DescriptiveRadioButtonSelect, { items: options, onSelect: handleSelect, initialIndex: initialIndex, showNumbers: true }) }), _jsx(Box, { marginTop: 1, flexDirection: "column", children: _jsxs(Box, { children: [_jsxs(Text, { bold: true, color: theme.text.primary, children: ["Remember model for future sessions:", ' '] }), _jsx(Text, { color: theme.status.success, children: persistMode ? 'true' : 'false' }), _jsx(Text, { color: theme.text.secondary, children: " (Press Tab to toggle)" })] }) }), _jsx(Box, { flexDirection: "column", children: _jsx(Text, { color: theme.text.secondary, children: '> To use a specific Gemini model on startup, use the --model flag.' }) }), _jsx(ModelQuotaDisplay, { buckets: config?.getLastRetrievedQuota()?.buckets, availableWidth: terminalWidth - 2 }), _jsx(Box, { marginTop: 1, flexDirection: "column", children: _jsx(Text, { color: theme.text.secondary, children: "(Press Esc to close)" }) })] }));
273
441
  }
274
442
  //# sourceMappingURL=ModelDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/ModelDialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/ModelDialog.tsx"],"names":[],"mappings":"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"}