diff --git a/extensions/discord/src/account-inspect.ts b/extensions/discord/src/account-inspect.ts index f42410814b3..0b3bd3f8fc8 100644 --- a/extensions/discord/src/account-inspect.ts +++ b/extensions/discord/src/account-inspect.ts @@ -1,18 +1,16 @@ -import { - DEFAULT_ACCOUNT_ID, - normalizeAccountId, - type OpenClawConfig, -} from "openclaw/plugin-sdk/account-resolution"; -import { - hasConfiguredSecretInput, - normalizeSecretInputString, -} from "openclaw/plugin-sdk/config-runtime"; -import type { DiscordAccountConfig } from "openclaw/plugin-sdk/discord"; import { mergeDiscordAccountConfig, resolveDefaultDiscordAccountId, resolveDiscordAccountConfig, } from "./accounts.js"; +import { + DEFAULT_ACCOUNT_ID, + normalizeAccountId, + hasConfiguredSecretInput, + normalizeSecretInputString, + type OpenClawConfig, + type DiscordAccountConfig, +} from "./runtime-api.js"; export type DiscordCredentialStatus = "available" | "configured_unavailable" | "missing"; diff --git a/extensions/discord/src/accounts.ts b/extensions/discord/src/accounts.ts index ad50e2e7aa3..ea28be7fb0d 100644 --- a/extensions/discord/src/accounts.ts +++ b/extensions/discord/src/accounts.ts @@ -4,8 +4,9 @@ import { normalizeAccountId, resolveAccountEntry, type OpenClawConfig, -} from "openclaw/plugin-sdk/account-resolution"; -import type { DiscordAccountConfig, DiscordActionConfig } from "openclaw/plugin-sdk/discord"; + type DiscordAccountConfig, + type DiscordActionConfig, +} from "./runtime-api.js"; import { resolveDiscordToken } from "./token.js"; export type ResolvedDiscordAccount = { diff --git a/extensions/discord/src/actions/runtime.guild.ts b/extensions/discord/src/actions/runtime.guild.ts index 71618b073d8..386f7a969aa 100644 --- a/extensions/discord/src/actions/runtime.guild.ts +++ b/extensions/discord/src/actions/runtime.guild.ts @@ -1,4 +1,5 @@ import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import { getPresence } from "../monitor/presence-cache.js"; import { type ActionGate, jsonResult, @@ -7,8 +8,7 @@ import { readStringArrayParam, readStringParam, type DiscordActionConfig, -} from "openclaw/plugin-sdk/discord-core"; -import { getPresence } from "../monitor/presence-cache.js"; +} from "../runtime-api.js"; import { addRoleDiscord, createChannelDiscord, diff --git a/extensions/discord/src/actions/runtime.messaging.ts b/extensions/discord/src/actions/runtime.messaging.ts index e954fd3534e..adbad1bd2d5 100644 --- a/extensions/discord/src/actions/runtime.messaging.ts +++ b/extensions/discord/src/actions/runtime.messaging.ts @@ -1,5 +1,5 @@ import type { AgentToolResult } from "@mariozechner/pi-agent-core"; -import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param"; +import { readDiscordComponentSpec } from "../components.js"; import { assertMediaNotDataUrl, type ActionGate, @@ -12,8 +12,8 @@ import { type DiscordActionConfig, type OpenClawConfig, withNormalizedTimestamp, -} from "openclaw/plugin-sdk/discord-core"; -import { readDiscordComponentSpec } from "../components.js"; + readBooleanParam, +} from "../runtime-api.js"; import { createThreadDiscord, deleteMessageDiscord, diff --git a/extensions/discord/src/actions/runtime.moderation-shared.ts b/extensions/discord/src/actions/runtime.moderation-shared.ts index 9fd7334fce6..e12dd005b04 100644 --- a/extensions/discord/src/actions/runtime.moderation-shared.ts +++ b/extensions/discord/src/actions/runtime.moderation-shared.ts @@ -1,5 +1,5 @@ import { PermissionFlagsBits } from "discord-api-types/v10"; -import { readNumberParam, readStringParam } from "openclaw/plugin-sdk/discord-core"; +import { readNumberParam, readStringParam } from "../runtime-api.js"; export type DiscordModerationAction = "timeout" | "kick" | "ban"; diff --git a/extensions/discord/src/actions/runtime.moderation.ts b/extensions/discord/src/actions/runtime.moderation.ts index f44a39082b9..fed41d40dad 100644 --- a/extensions/discord/src/actions/runtime.moderation.ts +++ b/extensions/discord/src/actions/runtime.moderation.ts @@ -4,7 +4,7 @@ import { jsonResult, readStringParam, type DiscordActionConfig, -} from "openclaw/plugin-sdk/discord-core"; +} from "../runtime-api.js"; import { banMemberDiscord, hasAnyGuildPermissionDiscord, diff --git a/extensions/discord/src/actions/runtime.presence.ts b/extensions/discord/src/actions/runtime.presence.ts index 6691f214c98..1596b8b8ee4 100644 --- a/extensions/discord/src/actions/runtime.presence.ts +++ b/extensions/discord/src/actions/runtime.presence.ts @@ -1,12 +1,12 @@ import type { Activity, UpdatePresenceData } from "@buape/carbon/gateway"; import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import { getGateway } from "../monitor/gateway-registry.js"; import { type ActionGate, jsonResult, readStringParam, type DiscordActionConfig, -} from "openclaw/plugin-sdk/discord-core"; -import { getGateway } from "../monitor/gateway-registry.js"; +} from "../runtime-api.js"; const ACTIVITY_TYPE_MAP: Record = { playing: 0, diff --git a/extensions/discord/src/actions/runtime.shared.ts b/extensions/discord/src/actions/runtime.shared.ts index 0f5b0bb7152..c597fa38c4f 100644 --- a/extensions/discord/src/actions/runtime.shared.ts +++ b/extensions/discord/src/actions/runtime.shared.ts @@ -1,4 +1,4 @@ -import { readStringParam } from "openclaw/plugin-sdk/discord-core"; +import { readStringParam } from "../runtime-api.js"; export function readDiscordParentIdParam( params: Record, diff --git a/extensions/discord/src/actions/runtime.ts b/extensions/discord/src/actions/runtime.ts index 6a8e03d99ef..ab0c8d90f93 100644 --- a/extensions/discord/src/actions/runtime.ts +++ b/extensions/discord/src/actions/runtime.ts @@ -1,6 +1,6 @@ import type { AgentToolResult } from "@mariozechner/pi-agent-core"; -import { readStringParam, type OpenClawConfig } from "openclaw/plugin-sdk/discord-core"; import { createDiscordActionGate } from "../accounts.js"; +import { readStringParam, type OpenClawConfig } from "../runtime-api.js"; import { handleDiscordGuildAction } from "./runtime.guild.js"; import { handleDiscordMessagingAction } from "./runtime.messaging.js"; import { handleDiscordModerationAction } from "./runtime.moderation.js"; diff --git a/extensions/discord/src/channel.setup.ts b/extensions/discord/src/channel.setup.ts index c45ed85fb0b..6bc017a9667 100644 --- a/extensions/discord/src/channel.setup.ts +++ b/extensions/discord/src/channel.setup.ts @@ -1,5 +1,5 @@ -import { type ChannelPlugin } from "openclaw/plugin-sdk/discord"; import { type ResolvedDiscordAccount } from "./accounts.js"; +import { type ChannelPlugin } from "./runtime-api.js"; import { discordSetupAdapter } from "./setup-core.js"; import { createDiscordPluginBase } from "./shared.js"; diff --git a/extensions/discord/src/channel.ts b/extensions/discord/src/channel.ts index 30a5535a6d9..2f5e6b3fd1c 100644 --- a/extensions/discord/src/channel.ts +++ b/extensions/discord/src/channel.ts @@ -14,6 +14,8 @@ import { buildOutboundBaseSessionKey, normalizeOutboundThreadId } from "openclaw import { buildComputedAccountStatusSnapshot, buildTokenChannelStatusSummary, + type ChannelMessageActionAdapter, + type ChannelPlugin, DEFAULT_ACCOUNT_ID, getChatChannelMeta, listDiscordDirectoryGroupsFromConfig, @@ -21,10 +23,8 @@ import { PAIRING_APPROVED_MESSAGE, projectCredentialSnapshotFields, resolveConfiguredFromCredentialStatuses, - type ChannelMessageActionAdapter, - type ChannelPlugin, type OpenClawConfig, -} from "openclaw/plugin-sdk/discord"; +} from "./runtime-api.js"; import { resolveThreadSessionKeys, type RoutePeer } from "openclaw/plugin-sdk/routing"; import { listDiscordAccountIds, diff --git a/extensions/discord/src/runtime-api.ts b/extensions/discord/src/runtime-api.ts new file mode 100644 index 00000000000..d40c74dde89 --- /dev/null +++ b/extensions/discord/src/runtime-api.ts @@ -0,0 +1,43 @@ +export { + buildComputedAccountStatusSnapshot, + buildTokenChannelStatusSummary, + listDiscordDirectoryGroupsFromConfig, + listDiscordDirectoryPeersFromConfig, + PAIRING_APPROVED_MESSAGE, + projectCredentialSnapshotFields, + resolveConfiguredFromCredentialStatuses, +} from "openclaw/plugin-sdk/discord"; +export { + buildChannelConfigSchema, + getChatChannelMeta, + jsonResult, + readNumberParam, + readStringArrayParam, + readStringParam, + type ActionGate, + type ChannelPlugin, + type OpenClawConfig, +} from "openclaw/plugin-sdk/discord-core"; +export { DiscordConfigSchema } from "openclaw/plugin-sdk/discord-core"; +export { readBooleanParam } from "openclaw/plugin-sdk/boolean-param"; +export { + createAccountActionGate, + createAccountListHelpers, + DEFAULT_ACCOUNT_ID, + normalizeAccountId, + resolveAccountEntry, +} from "openclaw/plugin-sdk/account-resolution"; +export type { + ChannelMessageActionAdapter, + ChannelMessageActionName, +} from "openclaw/plugin-sdk/channel-runtime"; +export { withNormalizedTimestamp } from "../../../src/agents/date-time.js"; +export { assertMediaNotDataUrl } from "../../../src/agents/sandbox-paths.js"; +export { parseAvailableTags, readReactionParams } from "openclaw/plugin-sdk/discord-core"; +export { resolvePollMaxSelections } from "../../../src/polls.js"; +export type { DiscordAccountConfig, DiscordActionConfig } from "../config/types.js"; +export { + hasConfiguredSecretInput, + normalizeResolvedSecretInputString, + normalizeSecretInputString, +} from "../../../src/config/types.secrets.js"; diff --git a/extensions/discord/src/shared.ts b/extensions/discord/src/shared.ts index 8d2de525ad2..08b37a8ec41 100644 --- a/extensions/discord/src/shared.ts +++ b/extensions/discord/src/shared.ts @@ -1,15 +1,5 @@ import { formatAllowFromLowercase } from "openclaw/plugin-sdk/allow-from"; -import { - createScopedAccountConfigAccessors, - createScopedChannelConfigBase, -} from "openclaw/plugin-sdk/channel-config-helpers"; import { createChannelPluginBase } from "openclaw/plugin-sdk/core"; -import { - buildChannelConfigSchema, - DiscordConfigSchema, - getChatChannelMeta, - type ChannelPlugin, -} from "openclaw/plugin-sdk/discord-core"; import { inspectDiscordAccount } from "./account-inspect.js"; import { listDiscordAccountIds, @@ -17,6 +7,14 @@ import { resolveDiscordAccount, type ResolvedDiscordAccount, } from "./accounts.js"; +import { + createScopedAccountConfigAccessors, + createScopedChannelConfigBase, + buildChannelConfigSchema, + DiscordConfigSchema, + getChatChannelMeta, + type ChannelPlugin, +} from "./runtime-api.js"; import { createDiscordSetupWizardProxy } from "./setup-core.js"; export const DISCORD_CHANNEL = "discord" as const;