setThinkingEnabled method

Future<void> setThinkingEnabled(
  1. bool enabled
)

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,
      );
    }
  }
}