11import { Separator , TextDisplay } from "@buape/carbon" ;
2- import { resolveOutboundSendDep } from "../../../src/infra/outbound/send-deps.js" ;
32import {
43 buildAccountScopedAllowlistConfigEditor ,
54 buildAccountScopedDmSecurityPolicy ,
6- collectOpenGroupPolicyConfiguredRouteWarnings ,
75 collectOpenProviderGroupPolicyWarnings ,
8- } from "../../../src/plugin-sdk-internal/channel-config.js" ;
6+ collectOpenGroupPolicyConfiguredRouteWarnings ,
7+ } from "openclaw/plugin-sdk/compat" ;
98import {
109 buildAgentSessionKey ,
1110 resolveThreadSessionKeys ,
1211 type RoutePeer ,
13- } from "../../../src/ plugin-sdk-internal /core.js " ;
12+ } from "openclaw/ plugin-sdk/core" ;
1413import {
1514 buildComputedAccountStatusSnapshot ,
16- buildChannelConfigSchema ,
1715 buildTokenChannelStatusSummary ,
1816 DEFAULT_ACCOUNT_ID ,
19- DiscordConfigSchema ,
20- getChatChannelMeta ,
2117 listDiscordDirectoryGroupsFromConfig ,
2218 listDiscordDirectoryPeersFromConfig ,
2319 PAIRING_APPROVED_MESSAGE ,
@@ -28,7 +24,8 @@ import {
2824 type ChannelMessageActionAdapter ,
2925 type ChannelPlugin ,
3026 type OpenClawConfig ,
31- } from "../../../src/plugin-sdk-internal/discord.js" ;
27+ } from "openclaw/plugin-sdk/discord" ;
28+ import { resolveOutboundSendDep } from "../../../src/infra/outbound/send-deps.js" ;
3229import { normalizeMessageChannel } from "../../../src/utils/message-channel.js" ;
3330import {
3431 listDiscordAccountIds ,
@@ -45,12 +42,12 @@ import {
4542 normalizeDiscordMessagingTarget ,
4643 normalizeDiscordOutboundTarget ,
4744} from "./normalize.js" ;
48- import { discordConfigAccessors , discordConfigBase , discordSetupWizard } from "./plugin-shared.js" ;
4945import type { DiscordProbe } from "./probe.js" ;
5046import { resolveDiscordUserAllowlist } from "./resolve-users.js" ;
5147import { getDiscordRuntime } from "./runtime.js" ;
5248import { fetchChannelPermissionsDiscord } from "./send.js" ;
5349import { discordSetupAdapter } from "./setup-core.js" ;
50+ import { createDiscordPluginBase , discordConfigAccessors } from "./shared.js" ;
5451import { collectDiscordStatusIssues } from "./status-issues.js" ;
5552import { parseDiscordTarget } from "./targets.js" ;
5653import { DiscordUiContainer } from "./ui.js" ;
@@ -59,7 +56,6 @@ type DiscordSendFn = ReturnType<
5956 typeof getDiscordRuntime
6057> [ "channel" ] [ "discord" ] [ "sendMessageDiscord" ] ;
6158
62- const meta = getChatChannelMeta ( "discord" ) ;
6359const REQUIRED_DISCORD_PERMISSIONS = [ "ViewChannel" , "SendMessages" ] as const ;
6460
6561function formatDiscordIntents ( intents ?: {
@@ -297,11 +293,9 @@ function resolveDiscordOutboundSessionRoute(params: {
297293}
298294
299295export const discordPlugin : ChannelPlugin < ResolvedDiscordAccount > = {
300- id : "discord" ,
301- meta : {
302- ...meta ,
303- } ,
304- setupWizard : discordSetupWizard ,
296+ ...createDiscordPluginBase ( {
297+ setup : discordSetupAdapter ,
298+ } ) ,
305299 pairing : {
306300 idLabel : "discordUserId" ,
307301 normalizeAllowEntry : ( entry ) => entry . replace ( / ^ ( d i s c o r d | u s e r ) : / i, "" ) ,
@@ -312,31 +306,6 @@ export const discordPlugin: ChannelPlugin<ResolvedDiscordAccount> = {
312306 ) ;
313307 } ,
314308 } ,
315- capabilities : {
316- chatTypes : [ "direct" , "channel" , "thread" ] ,
317- polls : true ,
318- reactions : true ,
319- threads : true ,
320- media : true ,
321- nativeCommands : true ,
322- } ,
323- streaming : {
324- blockStreamingCoalesceDefaults : { minChars : 1500 , idleMs : 1000 } ,
325- } ,
326- reload : { configPrefixes : [ "channels.discord" ] } ,
327- configSchema : buildChannelConfigSchema ( DiscordConfigSchema ) ,
328- config : {
329- ...discordConfigBase ,
330- isConfigured : ( account ) => Boolean ( account . token ?. trim ( ) ) ,
331- describeAccount : ( account ) => ( {
332- accountId : account . accountId ,
333- name : account . name ,
334- enabled : account . enabled ,
335- configured : Boolean ( account . token ?. trim ( ) ) ,
336- tokenSource : account . tokenSource ,
337- } ) ,
338- ...discordConfigAccessors ,
339- } ,
340309 allowlist : {
341310 supportsScope : ( { scope } ) => scope === "dm" ,
342311 readConfig : ( { cfg, accountId } ) =>
0 commit comments