feat(channels): add signal-cli channel adapter

This commit is contained in:
William Valentin
2026-02-16 01:54:54 -08:00
parent 113751ef1b
commit 0269c6032d
11 changed files with 555 additions and 2 deletions
+17 -1
View File
@@ -1,6 +1,6 @@
import type { Config } from '../config/index.js';
import type { HookEngine } from '../hooks/index.js';
import { ChannelRegistry, TelegramAdapter, WebChatAdapter, DiscordAdapter, SlackAdapter, WhatsAppAdapter, MatrixAdapter, PairingManager } from '../channels/index.js';
import { ChannelRegistry, TelegramAdapter, WebChatAdapter, DiscordAdapter, SlackAdapter, WhatsAppAdapter, MatrixAdapter, SignalAdapter, PairingManager } from '../channels/index.js';
import { CronScheduler, WebhookHandler, GmailWatcher } from '../automation/index.js';
import type { GatewayServer } from '../gateway/index.js';
@@ -85,6 +85,22 @@ export function registerChannels(deps: ChannelsDeps): ChannelsResult {
channelRegistry.register(matrixAdapter);
}
// Register Signal adapter (if configured)
if (config.signal) {
const signalAdapter = new SignalAdapter({
account: config.signal.account,
signalCliPath: config.signal.signal_cli_path,
allowedNumbers: config.signal.allowed_numbers.length > 0 ? config.signal.allowed_numbers : undefined,
allowedGroupIds: config.signal.allowed_group_ids.length > 0 ? config.signal.allowed_group_ids : undefined,
requireMention: config.signal.require_mention,
mentionName: config.signal.mention_name,
pollIntervalMs: config.signal.poll_interval_ms,
sendTimeoutMs: config.signal.send_timeout_ms,
pairingManager,
});
channelRegistry.register(signalAdapter);
}
// Register WebChat adapter (wraps the gateway)
const webChatAdapter = new WebChatAdapter({ gateway });
channelRegistry.register(webChatAdapter);