This commit is contained in:
Elliot SecOps 2026-01-29 21:53:35 -05:00 committed by GitHub
commit a6dd79228e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,3 +1,6 @@
import fs from "node:fs";
import path from "node:path";
import process from "node:process";
import { resolveChannelDefaultAccountId } from "../channels/plugins/helpers.js";
import { getChannelPlugin, normalizeChannelId } from "../channels/plugins/index.js";
import { DEFAULT_CHAT_CHANNEL } from "../channels/registry.js";
@ -11,6 +14,18 @@ type ChannelAuthOptions = {
verbose?: boolean;
};
const checkDisabledPlugin = (channelInput: string) => {
try {
const extPath = path.join(process.cwd(), "extensions", channelInput);
if (fs.existsSync(extPath) && fs.statSync(extPath).isDirectory()) {
return `Channel '${channelInput}' plugin found but likely disabled. Run 'clawdbot plugins enable ${channelInput}' to use it.`;
}
} catch {
// ignore
}
return `Unsupported channel: ${channelInput}`;
};
export async function runChannelLogin(
opts: ChannelAuthOptions,
runtime: RuntimeEnv = defaultRuntime,
@ -18,7 +33,7 @@ export async function runChannelLogin(
const channelInput = opts.channel ?? DEFAULT_CHAT_CHANNEL;
const channelId = normalizeChannelId(channelInput);
if (!channelId) {
throw new Error(`Unsupported channel: ${channelInput}`);
throw new Error(checkDisabledPlugin(channelInput));
}
const plugin = getChannelPlugin(channelId);
if (!plugin?.auth?.login) {
@ -44,7 +59,7 @@ export async function runChannelLogout(
const channelInput = opts.channel ?? DEFAULT_CHAT_CHANNEL;
const channelId = normalizeChannelId(channelInput);
if (!channelId) {
throw new Error(`Unsupported channel: ${channelInput}`);
throw new Error(checkDisabledPlugin(channelInput));
}
const plugin = getChannelPlugin(channelId);
if (!plugin?.gateway?.logoutAccount) {