feat(channels): add mattermost adapter and wiring

This commit is contained in:
William Valentin
2026-02-16 12:09:44 -08:00
parent 813a0dc5c5
commit de0c1f41b3
16 changed files with 645 additions and 6 deletions
+15 -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, SignalAdapter, TeamsAdapter, GoogleChatAdapter, BlueBubblesAdapter, PairingManager } from '../channels/index.js';
import { ChannelRegistry, TelegramAdapter, WebChatAdapter, DiscordAdapter, SlackAdapter, WhatsAppAdapter, MatrixAdapter, SignalAdapter, MattermostAdapter, TeamsAdapter, GoogleChatAdapter, BlueBubblesAdapter, PairingManager } from '../channels/index.js';
import { CronScheduler, WebhookHandler, GmailWatcher } from '../automation/index.js';
import type { GatewayServer } from '../gateway/index.js';
@@ -101,6 +101,20 @@ export function registerChannels(deps: ChannelsDeps): ChannelsResult {
channelRegistry.register(signalAdapter);
}
// Register Mattermost adapter (if configured)
if (config.mattermost) {
const mattermostAdapter = new MattermostAdapter({
serverUrl: config.mattermost.server_url,
botToken: config.mattermost.bot_token,
allowedChannelIds: config.mattermost.allowed_channel_ids.length > 0 ? config.mattermost.allowed_channel_ids : undefined,
requireMention: config.mattermost.require_mention,
mentionName: config.mattermost.mention_name,
pollIntervalMs: config.mattermost.poll_interval_ms,
pairingManager,
});
channelRegistry.register(mattermostAdapter);
}
// Register Microsoft Teams adapter (if configured)
if (config.teams) {
const teamsAdapter = new TeamsAdapter({