pickModelEditValue function
Step 2: picks a preset value or enters a custom one (null on cancel).
Implementation
Future<int?> pickModelEditValue(
Future<TuiPromptAnswer?> Function(TuiPromptSpec) prompt,
bool isContext,
void Function(String message) onResult,
) async {
final presets = isContext
? [4096, 8192, 16384, 32768, 65536, 131072, 204800, 1048576]
: [4096, 8192, 16384, 32768, 65536];
final result = await prompt(
AskPromptSpec(
header: 'Model Edit',
question: '${isContext ? 'Context window' : 'Max tokens'} size:',
index: 0,
total: 1,
options: [
for (final p in presets) AskOption(label: formatTokenPreset(p)),
const AskOption(
label: 'Custom…',
description: 'Enter a number manually',
),
],
),
);
if (result == null || result is! AskPromptAnswer) return null;
final picked = result.value.selected.first;
if (picked != 'Custom…') return parseTokenPreset(picked);
return _pickCustomTokenValue(prompt, onResult);
}