setThinkingEnabled method
Implementation
Future<void> setThinkingEnabled(bool enabled) async {
thinkingEnabled.value = enabled;
update();
final String assistantIdValue = assistant.value?.id ?? "";
if (assistantIdValue.trim().isNotEmpty && isThinkingSupported()) {
// Fire-and-forget: persist user preference server-side.
SettingsService.setUserSettings(
settings: <Setting>[
Setting(
id: Settings.assistantThinkingEnabledId,
assistantId: assistantIdValue,
settingValues: <SettingValue>[
SettingValue(
settingName: Settings.settingEnableName,
settingData: enabled,
),
],
),
],
isMarketplace: isMarketplace,
);
}
if (!enabled) return;
// Ensure we have a valid effort when enabling.
if (thinkingEffort.value.trim().isEmpty &&
supportedThinkingEfforts().isNotEmpty) {
final List<String> efforts = supportedThinkingEfforts();
thinkingEffort.value = efforts[(efforts.length / 2).floor()];
final String normalizedEffort = thinkingEffort.value.trim();
if (assistantIdValue.trim().isNotEmpty &&
isThinkingSupported() &&
normalizedEffort.isNotEmpty) {
SettingsService.setUserSettings(
settings: <Setting>[
Setting(
id: Settings.assistantThinkingEffortId,
assistantId: assistantIdValue,
settingValues: <SettingValue>[
SettingValue(
settingName: Settings.assistantThinkingEffortName,
settingData: normalizedEffort,
),
],
),
],
isMarketplace: isMarketplace,
);
}
}
}