autoresponder.js
1 /** 2 * Autoresponder Cron Job 3 * 4 * Runs every 5 minutes via the cron_jobs table. 5 * Processes inbound messages and generates auto-replies using Claude Opus. 6 */ 7 8 import { processInboundQueue } from '../inbound/autoresponder.js'; 9 import Logger from '../utils/logger.js'; 10 11 const logger = new Logger('CronAutoresponder'); 12 13 /** 14 * Cron handler — called by src/cron.js HANDLERS registry 15 * 16 * @returns {Promise<{ summary: string, details: Object, metrics: Object }>} 17 */ 18 export async function runAutoresponder() { 19 logger.info('Starting autoresponder cycle...'); 20 21 try { 22 const result = await processInboundQueue(); 23 24 return { 25 summary: `Autoresponder: ${result.sent} sent, ${result.skipped} skipped, ${result.failed} failed`, 26 details: result, 27 metrics: { 28 processed: result.processed, 29 sent: result.sent, 30 skipped: result.skipped, 31 failed: result.failed, 32 }, 33 }; 34 } catch (err) { 35 logger.error('Autoresponder cron failed', err); 36 throw err; 37 } 38 } 39 40 export default { runAutoresponder };