diff --git a/whatsapp-gateway/server.js b/whatsapp-gateway/server.js index b287557..25f2885 100644 --- a/whatsapp-gateway/server.js +++ b/whatsapp-gateway/server.js @@ -74,9 +74,11 @@ client.on('disconnected', (reason) => { io.emit('disconnected', reason); }); +const AGENTS_API_URL = process.env.AGENTS_API_URL || 'http://agents-api.ai-agents.svc.cluster.local:8000/webhook'; + // Incoming messages handler -client.on('message', async msg => { - if (ENABLE_INCOMING_MESSAGES) { +client.on('message_create', async msg => { + if (!msg.fromMe && ENABLE_INCOMING_MESSAGES) { console.log(`[WhatsApp Bot] Received message from ${msg.from}: ${msg.body}`); io.emit('incoming_message', { from: msg.from, body: msg.body }); } @@ -86,6 +88,29 @@ client.on('message', async msg => { msg.reply('pong'); } } + + // Forward @bot messages to agents-runtime orchestrator + const text = msg.body.trim(); + if (text.toLowerCase().startsWith('@bot')) { + console.log(`[WhatsApp Bot] Bot command detected: ${text}`); + + // Target Jid is where the bot should reply. + const targetJid = msg.fromMe ? msg.to : msg.from; + + try { + await fetch(AGENTS_API_URL, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + text: text, + sender: msg.author || msg.from, + targetJid: targetJid + }) + }); + } catch (err) { + console.error('[WhatsApp Bot] Failed to forward message to agents-runtime:', err.message); + } + } }); // Real-time connections