import 'dart:io'; import 'dart:convert'; import '../lib/secrets.dart'; void main() async { print('Checking available Gemini models via API...'); final apiKey = Secrets.geminiApiKey; if (apiKey.isEmpty) { print('API Key is empty in Secrets.'); return; } // Use v1beta API to list models final url = 'https://generativelanguage.googleapis.com/v1beta/models?key=$apiKey'; try { final httpClient = HttpClient(); final request = await httpClient.getUrl(Uri.parse(url)); final response = await request.close(); if (response.statusCode == 200) { final responseBody = await response.transform(utf8.decoder).join(); final json = jsonDecode(responseBody); print('\n--- Available Models ---'); if (json['models'] != null) { for (var model in json['models']) { // Filter for "generateContent" supported models final supportedMethods = model['supportedGenerationMethods'] as List?; if (supportedMethods != null && supportedMethods.contains('generateContent')) { print('Name: ${model['name']}'); print('Display Name: ${model['displayName']}'); print('Description: ${model['description']}'); print('-------------------------'); } } } else { print('No models found in response.'); } } else { print('Failed to list models. Status Code: ${response.statusCode}'); final responseBody = await response.transform(utf8.decoder).join(); print('Response: $responseBody'); } httpClient.close(); } catch (e) { print('Error checking models: $e'); } }