From 296db3a858f153eddf466d3addb49c8d7e3eed85 Mon Sep 17 00:00:00 2001 From: Cameron Date: Thu, 12 Feb 2026 18:40:46 -0800 Subject: [PATCH] fix: expose WhatsApp/Signal connection fields in per-agent config (#294) --- src/config/types.ts | 4 ++++ src/main.ts | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/config/types.ts b/src/config/types.ts index af5bb99..9bc56b8 100644 --- a/src/config/types.ts +++ b/src/config/types.ts @@ -230,6 +230,7 @@ export interface SlackConfig { export interface WhatsAppConfig { enabled: boolean; + sessionPath?: string; // Auth/session directory (default: ./data/whatsapp-session) selfChat?: boolean; dmPolicy?: 'pairing' | 'allowlist' | 'open'; allowedUsers?: string[]; @@ -246,6 +247,9 @@ export interface WhatsAppConfig { export interface SignalConfig { enabled: boolean; phone?: string; + cliPath?: string; // Path to signal-cli binary (default: "signal-cli") + httpHost?: string; // Daemon HTTP host (default: "127.0.0.1") + httpPort?: number; // Daemon HTTP port (default: 8090) selfChat?: boolean; dmPolicy?: 'pairing' | 'allowlist' | 'open'; allowedUsers?: string[]; diff --git a/src/main.ts b/src/main.ts index fc8555e..0ca9806 100644 --- a/src/main.ts +++ b/src/main.ts @@ -344,7 +344,7 @@ function createChannelsForAgent( console.warn('[WhatsApp] Only use this if this is a dedicated bot number, not your personal WhatsApp.'); } adapters.push(new WhatsAppAdapter({ - sessionPath: process.env.WHATSAPP_SESSION_PATH || './data/whatsapp-session', + sessionPath: agentConfig.channels.whatsapp.sessionPath || process.env.WHATSAPP_SESSION_PATH || './data/whatsapp-session', dmPolicy: agentConfig.channels.whatsapp.dmPolicy || 'pairing', allowedUsers: agentConfig.channels.whatsapp.allowedUsers && agentConfig.channels.whatsapp.allowedUsers.length > 0 ? agentConfig.channels.whatsapp.allowedUsers @@ -365,9 +365,9 @@ function createChannelsForAgent( } adapters.push(new SignalAdapter({ phoneNumber: agentConfig.channels.signal.phone, - cliPath: process.env.SIGNAL_CLI_PATH || 'signal-cli', - httpHost: process.env.SIGNAL_HTTP_HOST || '127.0.0.1', - httpPort: parseInt(process.env.SIGNAL_HTTP_PORT || '8090', 10), + cliPath: agentConfig.channels.signal.cliPath || process.env.SIGNAL_CLI_PATH || 'signal-cli', + httpHost: agentConfig.channels.signal.httpHost || process.env.SIGNAL_HTTP_HOST || '127.0.0.1', + httpPort: agentConfig.channels.signal.httpPort || parseInt(process.env.SIGNAL_HTTP_PORT || '8090', 10), dmPolicy: agentConfig.channels.signal.dmPolicy || 'pairing', allowedUsers: agentConfig.channels.signal.allowedUsers && agentConfig.channels.signal.allowedUsers.length > 0 ? agentConfig.channels.signal.allowedUsers