refactor: collapse bundled channel metadata into plugin manifests

This commit is contained in:
Peter Steinberger
2026-03-27 02:29:15 +00:00
parent ea60bc01b9
commit dd098596cf
23 changed files with 15042 additions and 15094 deletions

View File

@@ -1,13 +1,4 @@
import type { GroupPolicy } from "./types.base.js";
import type { DiscordConfig } from "./types.discord.js";
import type { GoogleChatConfig } from "./types.googlechat.js";
import type { IMessageConfig } from "./types.imessage.js";
import type { IrcConfig } from "./types.irc.js";
import type { MSTeamsConfig } from "./types.msteams.js";
import type { SignalConfig } from "./types.signal.js";
import type { SlackConfig } from "./types.slack.js";
import type { TelegramConfig } from "./types.telegram.js";
import type { WhatsAppConfig } from "./types.whatsapp.js";
export type ChannelHeartbeatVisibilityConfig = {
/** Show HEARTBEAT_OK acknowledgments in chat (default: false). */
@@ -52,20 +43,11 @@ export type ExtensionChannelConfig = {
[key: string]: unknown;
};
export type ChannelsConfig = {
export interface ChannelsConfig {
defaults?: ChannelDefaultsConfig;
/** Map provider -> channel id -> model override. */
modelByChannel?: ChannelModelByChannelConfig;
whatsapp?: WhatsAppConfig;
telegram?: TelegramConfig;
discord?: DiscordConfig;
irc?: IrcConfig;
googlechat?: GoogleChatConfig;
slack?: SlackConfig;
signal?: SignalConfig;
imessage?: IMessageConfig;
msteams?: MSTeamsConfig;
// Extension channels use dynamic keys - use ExtensionChannelConfig in extensions
/** Channel sections are plugin-owned; concrete channel files augment this interface. */
// eslint-disable-next-line @typescript-eslint/no-explicit-any
[key: string]: any;
};
}