check-heartbeat-status.cjsโข2.04 kB
#!/usr/bin/env node
// Check heartbeat status and provide guidance
const { SimpleEGWDatabase } = require('./apps/local-server/src/database-utils.js');
console.log('๐ Checking Heartbeat Status...\n');
// Check current heartbeat status
const heartbeatStatus = SimpleEGWDatabase.getHeartbeatStatus();
const warmerStatus = SimpleEGWDatabase.getWarmerStatus();
console.log('๐ Current System Status:');
console.log(`๐ Heartbeat: ${heartbeatStatus.isActive ? 'ACTIVE' : 'INACTIVE'}`);
console.log(`๐ฅ Warmer: ${warmerStatus.isWarm ? 'WARM' : 'COLD'}`);
console.log(`๐ Last heartbeat: ${heartbeatStatus.lastHeartbeat ? heartbeatStatus.lastHeartbeat.toISOString() : 'Never'}`);
console.log(`๐ฅ Last warmup: ${warmerStatus.lastWarmup ? warmerStatus.lastWarmup.toISOString() : 'Never'}`);
console.log(`โฑ๏ธ Heartbeat timeout: ${heartbeatStatus.timeout}ms`);
if (!heartbeatStatus.isActive) {
console.log('\nโ No active heartbeat detected in this process.');
console.log('\n๐ก Solution: Run heartbeat and tools in the SAME process:');
console.log(' Option 1: Use the integrated test (recommended)');
console.log(' Option 2: Start heartbeat, then test in same terminal');
console.log(' Option 3: Modify tools to share heartbeat across processes');
console.log('\n๐ Recommended: Run integrated test instead:');
console.log(' node test-integrated-warming.cjs');
console.log(' (This includes both heartbeat AND database testing)');
} else {
console.log('\nโ
Heartbeat is active! You can run database tools now.');
console.log('\n๐งช Test with:');
console.log(' node test-heartbeat-enforced.cjs');
}
// Provide process-specific guidance
console.log('\n๐ Available Options:');
console.log('1. ๐ Integrated Test: node test-integrated-warming.cjs');
console.log('2. ๐ Heartbeat Only: node test-heartbeat-warming.cjs');
console.log('3. ๐งช Tools Test: node test-database-tools.cjs (requires same process)');
console.log('4. โ
Validation: node test-heartbeat-enforced.cjs');