interactiveModelEdit function

Future<void> interactiveModelEdit({
  1. required Model current,
  2. required Future<TuiPromptAnswer?> prompt(
    1. TuiPromptSpec
    ),
  3. required void onResult(
    1. String message
    ),
  4. required void onApply({
    1. required bool isContext,
    2. required int value,
    }),
})

Testable core of the TUI model-edit flow. Prompts for field (context window vs max tokens), then a preset or custom value, and calls onApply with the result. Reports messages through onResult.

Implementation

Future<void> interactiveModelEdit({
  required Model current,
  required Future<TuiPromptAnswer?> Function(TuiPromptSpec) prompt,
  required void Function(String message) onResult,
  required void Function({required bool isContext, required int value}) onApply,
}) async {
  final isContext = await pickModelEditField(prompt, current);
  if (isContext == null) return;

  final value = await pickModelEditValue(prompt, isContext, onResult);
  if (value == null) return;

  onApply(isContext: isContext, value: value);
  onResult('${isContext ? 'context window' : 'max tokens'} set to $value');
}