UNPKG

@tomisakae/tomibot

Version:

TomiBot - AI Chatbot CLI với Google Genkit. Một chatbot AI thông minh chạy trên command line với giao diện đẹp.

61 lines 2.4 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const bot_1 = require("./core/bot"); const logger_util_1 = require("./utils/logger.util"); const display_util_1 = require("./ui/utils/display.util"); const logger = new logger_util_1.Logger('Main'); async function main() { let bot = null; try { logger.info('Starting TomiBot application...'); bot = new bot_1.TomiBot(); setupGracefulShutdown(bot); await bot.start(); } catch (error) { logger.error('Fatal error in main:', error); console.log('\n' + display_util_1.DisplayUtils.error('❌ Đã xảy ra lỗi nghiêm trọng!')); if (error instanceof Error) { console.log(display_util_1.DisplayUtils.dim(`Chi tiết: ${error.message}`)); } console.log(display_util_1.DisplayUtils.info('💡 Vui lòng kiểm tra cấu hình và thử lại.')); process.exit(1); } } function setupGracefulShutdown(bot) { const shutdown = async (signal) => { logger.info(`Received ${signal}, shutting down gracefully...`); try { if (bot && bot.isRunning) { await bot.stop(); } console.log('\n' + display_util_1.DisplayUtils.success('👋 TomiBot đã thoát an toàn!')); process.exit(0); } catch (error) { logger.error('Error during shutdown:', error); process.exit(1); } }; process.on('SIGINT', () => shutdown('SIGINT')); process.on('SIGTERM', () => shutdown('SIGTERM')); process.on('uncaughtException', error => { logger.error('Uncaught exception:', error); console.log('\n' + display_util_1.DisplayUtils.error('❌ Lỗi không mong muốn!')); process.exit(1); }); process.on('unhandledRejection', (reason, promise) => { logger.error('Unhandled rejection at:', promise, 'reason:', reason); console.log('\n' + display_util_1.DisplayUtils.error('❌ Lỗi promise không được xử lý!')); process.exit(1); }); } if (require.main === module) { main().catch(error => { logger.error('Unhandled error in main:', error); console.log('\n' + display_util_1.DisplayUtils.error('❌ Lỗi không thể khôi phục!')); process.exit(1); }); } //# sourceMappingURL=index.js.map