diff --git a/agents/k8s/gmail-agent-deployment.yaml b/agents/k8s/gmail-agent-deployment.yaml index f3eb99b..a1ef1c2 100644 --- a/agents/k8s/gmail-agent-deployment.yaml +++ b/agents/k8s/gmail-agent-deployment.yaml @@ -52,7 +52,10 @@ spec: - name: WHATSAPP_GATEWAY_URL value: http://whatsapp-gateway.ai-agents.svc.cluster.local:5001/api/send-message - name: WHATSAPP_TO - value: "+14085505485" + valueFrom: + configMapKeyRef: + name: whatsapp-config + key: personal-number - name: OLLAMA_MODEL value: "qwen2.5:0.5b" volumeMounts: diff --git a/agents/k8s/reminder-service-deployment.yaml b/agents/k8s/reminder-service-deployment.yaml index c814340..d0b09f5 100644 --- a/agents/k8s/reminder-service-deployment.yaml +++ b/agents/k8s/reminder-service-deployment.yaml @@ -58,7 +58,10 @@ spec: - name: GATEWAY_URL value: http://whatsapp-gateway.ai-agents.svc.cluster.local:5001/send-message - name: PERSONAL_NUM - value: "+14085505485" + valueFrom: + configMapKeyRef: + name: whatsapp-config + key: personal-number - name: GROUP_URL valueFrom: configMapKeyRef: diff --git a/agents/k8s/trip-service-deployment.yaml b/agents/k8s/trip-service-deployment.yaml index 970aa4a..9ee6375 100644 --- a/agents/k8s/trip-service-deployment.yaml +++ b/agents/k8s/trip-service-deployment.yaml @@ -59,7 +59,10 @@ spec: - name: OLLAMA_URL value: http://ollama.ai-agents.svc.cluster.local:11434/api/generate - name: PERSONAL_NUM - value: "+14085505485" + valueFrom: + configMapKeyRef: + name: whatsapp-config + key: personal-number - name: GROUP_URL valueFrom: configMapKeyRef: diff --git a/agents/k8s/weather-cronjob.yaml b/agents/k8s/weather-cronjob.yaml index 2bcd9e4..1415dfd 100644 --- a/agents/k8s/weather-cronjob.yaml +++ b/agents/k8s/weather-cronjob.yaml @@ -25,6 +25,11 @@ spec: configMapKeyRef: name: whatsapp-config key: default-group-url + - name: PERSONAL_NUMBER + valueFrom: + configMapKeyRef: + name: whatsapp-config + key: personal-number command: - "node" - "-e" @@ -35,7 +40,7 @@ spec: const ZIP = '16046'; const GATEWAY = 'http://whatsapp-gateway.ai-agents.svc.cluster.local:5001/send-message'; const CONFIG_API = 'http://hq-dashboard.ai-agents.svc.cluster.local/api/config/whatsapp'; - const PERSONAL = '+14085505485'; + const PERSONAL = process.env.PERSONAL_NUMBER; function fetchConfig() { return new Promise((resolve) => { @@ -50,9 +55,9 @@ spec: return; } } catch (e) {} - resolve('https://chat.whatsapp.com/0Txfg7iZBbvIuvTbTqqgAX'); + resolve(process.env.GROUP_URL); }); - }).on('error', () => resolve('https://chat.whatsapp.com/0Txfg7iZBbvIuvTbTqqgAX')); + }).on('error', () => resolve(process.env.GROUP_URL)); }); } @@ -180,7 +185,7 @@ spec: // Send to group then personal number fetchConfig().then(GROUP => { sendTo(GROUP, 'WhatsApp Group') - .then(() => sendTo(PERSONAL, 'Personal (+14085505485)')) + .then(() => sendTo(PERSONAL, 'Personal (' + PERSONAL + ')')) .catch(e => { console.error('[WeatherBot] Fatal:', e.message); process.exit(1); }); }); diff --git a/agents/k8s/whatsapp-config.yaml b/agents/k8s/whatsapp-config.yaml index a05569a..8308932 100644 --- a/agents/k8s/whatsapp-config.yaml +++ b/agents/k8s/whatsapp-config.yaml @@ -4,5 +4,6 @@ metadata: name: whatsapp-config namespace: ai-agents data: - trip-group-url: "https://chat.whatsapp.com/HN2z93yhXPyEJPuoib3dws" - default-group-url: "https://chat.whatsapp.com/0Txfg7iZBbvIuvTbTqqgAX" + personal-number: "+14085505485" + trip-group-url: "https://chat.whatsapp.com/BbJdJrilnx40YAz9s9cApf" + default-group-url: "https://chat.whatsapp.com/BbJdJrilnx40YAz9s9cApf" diff --git a/agents/ops_agent/ops_agent/tools.py b/agents/ops_agent/ops_agent/tools.py index a88a777..4cad0bb 100644 --- a/agents/ops_agent/ops_agent/tools.py +++ b/agents/ops_agent/ops_agent/tools.py @@ -151,7 +151,7 @@ def proxmox_clean_disk(vmid: str) -> str: def send_whatsapp_alert(message_body: str) -> str: """Dispatches a WhatsApp alert using the local gateway (if running) or falls back to Twilio.""" - admin_number = os.environ.get("ADMIN_WHATSAPP_NUMBER") or os.environ.get("PHYSICIAN_WHATSAPP_NUMBER", "whatsapp:+14085505485") + admin_number = os.environ.get("ADMIN_WHATSAPP_NUMBER") or os.environ.get("PHYSICIAN_WHATSAPP_NUMBER") # 1. Attempt local WhatsApp Web Gateway first (if enabled/running) use_local = os.environ.get("USE_LOCAL_WHATSAPP", "true").lower() == "true" diff --git a/gmail-agent/index.js b/gmail-agent/index.js index 47f9cc6..a4150d7 100644 --- a/gmail-agent/index.js +++ b/gmail-agent/index.js @@ -16,7 +16,7 @@ function getCredentials() { const OLLAMA_URL = process.env.OLLAMA_URL || 'http://ollama.ai-agents.svc.cluster.local:11434/api/generate'; const WHATSAPP_GATEWAY_URL = process.env.WHATSAPP_GATEWAY_URL || 'http://whatsapp-gateway.ai-agents.svc.cluster.local:5001/api/send-message'; -const WHATSAPP_TO = process.env.WHATSAPP_TO || '+14085505485'; +const WHATSAPP_TO = process.env.WHATSAPP_TO; const OLLAMA_MODEL = process.env.OLLAMA_MODEL || 'qwen2.5:0.5b'; let baseOAuth2Client; diff --git a/gmail-agent/k8s/deployment.yaml b/gmail-agent/k8s/deployment.yaml index 348abd9..ce6ac96 100644 --- a/gmail-agent/k8s/deployment.yaml +++ b/gmail-agent/k8s/deployment.yaml @@ -40,7 +40,10 @@ spec: - name: WHATSAPP_GATEWAY_URL value: http://whatsapp-gateway.ai-agents.svc.cluster.local:5001/api/send-message - name: WHATSAPP_TO - value: "+14085505485" + valueFrom: + configMapKeyRef: + name: whatsapp-config + key: personal-number - name: OLLAMA_MODEL value: "qwen2.5:0.5b" volumeMounts: diff --git a/interface/hq-dashboard/app/api/send-whatsapp/route.js b/interface/hq-dashboard/app/api/send-whatsapp/route.js index 0f49a1d..2b81540 100644 --- a/interface/hq-dashboard/app/api/send-whatsapp/route.js +++ b/interface/hq-dashboard/app/api/send-whatsapp/route.js @@ -1,10 +1,8 @@ import { NextResponse } from 'next/server'; -const GATEWAY = process.env.WHATSAPP_GATEWAY_URL || - 'http://whatsapp-gateway.ai-agents.svc.cluster.local:5001/send-message'; -const DEFAULT_GROUP = process.env.WHATSAPP_GROUP || - 'https://chat.whatsapp.com/FXO0SCLA8DpJwClNNWdhhx'; -const PERSONAL_NUMBER = process.env.WHATSAPP_PERSONAL || '+14085505485'; +const GATEWAY = process.env.WHATSAPP_GATEWAY_URL; +const GROUP_URL = process.env.WHATSAPP_GROUP; +const PERSONAL_NUMBER = process.env.WHATSAPP_PERSONAL; async function sendToRecipient(to, message) { const res = await fetch(GATEWAY, { diff --git a/reminder-service/server.js b/reminder-service/server.js index cfe9774..4cb0bbd 100644 --- a/reminder-service/server.js +++ b/reminder-service/server.js @@ -9,8 +9,8 @@ app.use(express.json()); const DATA_FILE = process.env.DATA_FILE || '/data/reminders.json'; const GATEWAY = process.env.GATEWAY_URL || 'http://whatsapp-gateway.ai-agents.svc.cluster.local:5001/send-message'; -const PERSONAL = process.env.PERSONAL_NUM || '+14085505485'; -const GROUP = process.env.GROUP_URL || 'https://chat.whatsapp.com/FXO0SCLA8DpJwClNNWdhhx'; +const PERSONAL = process.env.PERSONAL_NUM; +const GROUP = process.env.GROUP_URL; const PORT = parseInt(process.env.PORT) || 6001; // ── Persistence ────────────────────────────────────────────────────────────── diff --git a/trip-service/server.js b/trip-service/server.js index 5143946..1808597 100644 --- a/trip-service/server.js +++ b/trip-service/server.js @@ -19,8 +19,9 @@ async function getGroupUrl(type = 'trip-group-url') { } } catch (e) { console.error('[Redis] Failed to fetch config:', e.message); + return process.env.GROUP_URL; } - return process.env.GROUP_URL || 'https://chat.whatsapp.com/HN2z93yhXPyEJPuoib3dws'; + return process.env.GROUP_URL; } const app = express(); @@ -29,8 +30,8 @@ app.use(express.json({ limit: '1mb' })); const DATA_FILE = process.env.DATA_FILE || '/data/trips.json'; const GATEWAY_URL = process.env.GATEWAY_URL || 'http://whatsapp-gateway.ai-agents.svc.cluster.local:5001/send-message'; const OLLAMA_URL = process.env.OLLAMA_URL || 'http://ollama.ai-agents.svc.cluster.local:11434/api/generate'; -const PERSONAL_NUM = process.env.PERSONAL_NUM || '+14085505485'; -const GROUP_URL = process.env.GROUP_URL || 'https://chat.whatsapp.com/HN2z93yhXPyEJPuoib3dws'; +const PERSONAL_NUM = process.env.PERSONAL_NUM; +const GROUP_URL = process.env.GROUP_URL; const PORT = parseInt(process.env.PORT) || 6002; // ── Persistence ────────────────────────────────────────────────────────────── diff --git a/trip-service/smoky-mountains.json b/trip-service/smoky-mountains.json index 425c427..a7535dd 100644 --- a/trip-service/smoky-mountains.json +++ b/trip-service/smoky-mountains.json @@ -3,7 +3,7 @@ "briefingTime": "07:00", "sendToGroup": true, "groupUrls": [ - "https://chat.whatsapp.com/FXO0SCLA8DpJwClNNWdhhx" + "" ], "npsParkCode": "grsm", "days": [