run method

Future<void> run(
  1. FlutterSecureStorage storage
)

Implementation

Future<void> run(FlutterSecureStorage storage) async {
  if (EnvConfig.isLocalLlmAvailable) return;
  final done = await storage.read(key: doneKey);
  if (done == 'true') return;

  try {
    final dir = await getApplicationSupportDirectory();
    final modelsDir = Directory('${dir.path}/$_modelsDirName');
    if (await modelsDir.exists()) {
      await modelsDir.delete(recursive: true);
      dev.log(
        'Deleted ${modelsDir.path} to reclaim disk space.',
        name: 'LocalLlmCleanup',
      );
    }
  } catch (e) {
    // IO failure (sandbox permissions, locked file). Skip stamping the
    // flag so the cleanup retries next launch.
    dev.log('cleanup failed: $e', name: 'LocalLlmCleanup');
    return;
  }

  final current = await storage.read(
    key: AiProviderConfig.providerStorageKey,
  );
  if (current == AiProvider.local.name) {
    await storage.write(
      key: AiProviderConfig.providerStorageKey,
      value: AiProvider.claude.name,
    );
  }
  await storage.delete(key: AiProvider.local.modelStorageKey);

  await storage.write(key: doneKey, value: 'true');
}