
























@@ -1,20 +1,14 @@
1-import {
2-createUnionActionGate,
3-listTokenSourcedAccounts,
4-} from "openclaw/plugin-sdk/channel-actions";
1+import { createUnionActionGate } from "openclaw/plugin-sdk/channel-actions";
52import type {
63ChannelMessageActionAdapter,
74ChannelMessageActionName,
85ChannelMessageToolDiscovery,
96} from "openclaw/plugin-sdk/channel-contract";
10-import type { DiscordActionConfig } from "openclaw/plugin-sdk/config-types";
7+import type { DiscordActionConfig, OpenClawConfig } from "openclaw/plugin-sdk/config-types";
118import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
129import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
13-import {
14-createDiscordActionGate,
15-listEnabledDiscordAccounts,
16-resolveDiscordAccount,
17-} from "./accounts.js";
10+import { inspectDiscordAccount } from "./account-inspect.js";
11+import { createDiscordActionGate, listDiscordAccountIds } from "./accounts.js";
18121913let discordChannelActionsRuntimePromise:
2014| Promise<typeof import("./channel-actions.runtime.js")>
@@ -25,8 +19,14 @@ async function loadDiscordChannelActionsRuntime() {
2519return await discordChannelActionsRuntimePromise;
2620}
272128-function resolveDiscordActionDiscovery(cfg: Parameters<typeof listEnabledDiscordAccounts>[0]) {
29-const accounts = listTokenSourcedAccounts(listEnabledDiscordAccounts(cfg));
22+function listDiscoverableDiscordAccounts(cfg: OpenClawConfig) {
23+return listDiscordAccountIds(cfg)
24+.map((accountId) => inspectDiscordAccount({ cfg, accountId }))
25+.filter((account) => account.enabled && account.configured);
26+}
27+28+function resolveDiscordActionDiscovery(cfg: OpenClawConfig) {
29+const accounts = listDiscoverableDiscordAccounts(cfg);
3030if (accounts.length === 0) {
3131return null;
3232}
@@ -43,14 +43,14 @@ function resolveDiscordActionDiscovery(cfg: Parameters<typeof listEnabledDiscord
4343}
44444545function resolveScopedDiscordActionDiscovery(params: {
46-cfg: Parameters<typeof listEnabledDiscordAccounts>[0];
46+cfg: OpenClawConfig;
4747accountId?: string | null;
4848}) {
4949if (!params.accountId) {
5050return resolveDiscordActionDiscovery(params.cfg);
5151}
52-const account = resolveDiscordAccount({ cfg: params.cfg, accountId: params.accountId });
53-if (!account.enabled || !account.token.trim()) {
52+const account = inspectDiscordAccount({ cfg: params.cfg, accountId: params.accountId });
53+if (!account.enabled || !account.configured) {
5454return null;
5555}
5656const gate = createDiscordActionGate({
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。