import 'dart:io'; import 'lexicon.dart'; class Config { final String telegramToken; final Set allowedChatIds; final String defaultTopic; final int claudeTimeoutSeconds; final String mcpConfigPath; Config({ required this.telegramToken, required this.allowedChatIds, required this.defaultTopic, required this.claudeTimeoutSeconds, required this.mcpConfigPath, }); factory Config.fromEnv() { final e = Platform.environment; final allowed = (e['ALLOWED_CHAT_IDS'] ?? '') .split(',') .map((s) => s.trim()) .where((s) => s.isNotEmpty) .map(int.parse) .toSet(); return Config( telegramToken: e['TELEGRAM_BOT_TOKEN'] ?? '', allowedChatIds: allowed, defaultTopic: e['DEFAULT_TOPIC'] ?? Lexicon.defaultTopic, claudeTimeoutSeconds: int.tryParse(e['CLAUDE_TIMEOUT_SECONDS'] ?? '600') ?? 600, mcpConfigPath: e['MCP_CONFIG_PATH'] ?? '/app/claude-config/mcp.json', ); } }