refactor: route channel runtime via plugin api

This commit is contained in:
Peter Steinberger
2026-01-18 11:00:19 +00:00
parent 676d41d415
commit ee6e534ccb
82 changed files with 1253 additions and 3167 deletions

View File

@@ -7,7 +7,7 @@ import { resolveTelegramAccount } from "../telegram/accounts.js";
import { normalizeE164 } from "../utils.js";
import { resolveWhatsAppAccount } from "../web/accounts.js";
import { normalizeWhatsAppTarget } from "../whatsapp/normalize.js";
import { getActivePluginRegistry } from "../plugins/runtime.js";
import { requireActivePluginRegistry } from "../plugins/runtime.js";
import {
resolveDiscordGroupRequireMention,
resolveIMessageGroupRequireMention,
@@ -320,8 +320,7 @@ function buildDockFromPlugin(plugin: ChannelPlugin): ChannelDock {
}
function listPluginDockEntries(): Array<{ id: ChannelId; dock: ChannelDock; order?: number }> {
const registry = getActivePluginRegistry();
if (!registry) return [];
const registry = requireActivePluginRegistry();
const entries: Array<{ id: ChannelId; dock: ChannelDock; order?: number }> = [];
const seen = new Set<string>();
for (const entry of registry.channels) {
@@ -358,8 +357,8 @@ export function listChannelDocks(): ChannelDock[] {
export function getChannelDock(id: ChannelId): ChannelDock | undefined {
const core = DOCKS[id as ChatChannelId];
if (core) return core;
const registry = getActivePluginRegistry();
const pluginEntry = registry?.channels.find((entry) => entry.plugin.id === id);
const registry = requireActivePluginRegistry();
const pluginEntry = registry.channels.find((entry) => entry.plugin.id === id);
if (!pluginEntry) return undefined;
return pluginEntry.dock ?? buildDockFromPlugin(pluginEntry.plugin);
}