Spaces:
Paused
Paused
File size: 1,657 Bytes
ee826ee | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | // Loader script - runs BEFORE index.js
// v5.8.4 - Resilient startup with keep-alive
process.on('unhandledRejection', (reason, promise) => {
console.warn('[Global] UnhandledRejection:', reason?.message ?? String(reason).substring(0, 100));
});
process.on('uncaughtException', (err) => {
console.error('[Global] UncaughtException:', err.message?.substring(0, 100));
if (err.message?.includes('ENOMEM') || err.message?.includes('heap')) {
process.exit(1);
}
});
console.log('[Loader] Global error handlers installed');
console.log('[Loader] Node version:', process.version);
console.log('[Loader] Platform:', process.platform, process.arch);
// Test network connectivity
const testUrls = [
'https://discordapp.com/api/v10/gateway',
'https://api.groq.com/openai/v1/models',
'https://router.huggingface.co/v1/models',
];
for (const url of testUrls) {
try {
const res = await fetch(url, { signal: AbortSignal.timeout(5000) });
console.log(`[Loader] ${url} → ${res.status}`);
} catch (e) {
console.warn(`[Loader] ${url} → FAILED: ${e.message?.substring(0, 60)}`);
}
}
// Keep the process alive even if the bot fails
setInterval(() => {
const mem = process.memoryUsage();
console.log(`[KeepAlive] RSS: ${(mem.rss/1024/1024).toFixed(1)}MB | Heap: ${(mem.heapUsed/1024/1024).toFixed(1)}MB | Uptime: ${Math.floor(process.uptime())}s`);
}, 60000);
// Load the bot
try {
await import('./index.js');
console.log('[Loader] Bot loaded successfully');
} catch (err) {
console.error('[Loader] Bot load error:', err.message);
console.log('[Loader] Bot failed to load, but process stays alive for health checks');
}
|