From 841b2ca07d3d69e8c1a8801427667f06464fc373 Mon Sep 17 00:00:00 2001 From: Tak Hoffman <781889+Takhoffman@users.noreply.github.com> Date: Wed, 18 Mar 2026 13:54:04 -0500 Subject: [PATCH] refactor: clear remaining plugin-sdk facade imports --- src/channels/bluebubbles/plugin-sdk-bridge.ts | 4 ++++ src/channels/discord/plugin-sdk-bridge.ts | 1 + src/channels/feishu/plugin-sdk-bridge.ts | 5 +++++ src/channels/imessage/api-bridge.ts | 8 ++++++++ src/channels/irc/plugin-sdk-bridge.ts | 7 +++++++ src/channels/line/plugin-sdk-bridge.ts | 1 + src/channels/signal/plugin-sdk-bridge.ts | 1 + src/channels/slack/plugin-sdk-bridge.ts | 4 ++++ src/channels/synology-chat/plugin-sdk-bridge.ts | 4 ++++ src/channels/telegram/plugin-sdk-bridge.ts | 1 + src/channels/whatsapp/action-runtime-bridge.ts | 1 + src/channels/whatsapp/login-qr-bridge.ts | 1 + src/channels/zalo/plugin-sdk-bridge.ts | 1 + src/plugin-sdk/account-resolution.ts | 14 ++++++++++---- src/plugin-sdk/bluebubbles.ts | 6 +++--- src/plugin-sdk/compat.ts | 2 +- src/plugin-sdk/feishu.ts | 4 ++-- src/plugin-sdk/imessage-targets.ts | 2 +- src/plugin-sdk/irc.ts | 4 ++-- src/plugin-sdk/line.ts | 2 +- src/plugin-sdk/slack-targets.ts | 2 +- src/plugin-sdk/synology-chat.ts | 2 +- src/plugin-sdk/whatsapp-action-runtime.ts | 2 +- src/plugin-sdk/whatsapp-core.ts | 2 +- src/plugin-sdk/whatsapp-login-qr.ts | 2 +- src/plugin-sdk/zalo.ts | 4 ++-- 26 files changed, 66 insertions(+), 21 deletions(-) create mode 100644 src/channels/bluebubbles/plugin-sdk-bridge.ts create mode 100644 src/channels/feishu/plugin-sdk-bridge.ts create mode 100644 src/channels/imessage/api-bridge.ts create mode 100644 src/channels/irc/plugin-sdk-bridge.ts create mode 100644 src/channels/line/plugin-sdk-bridge.ts create mode 100644 src/channels/synology-chat/plugin-sdk-bridge.ts create mode 100644 src/channels/whatsapp/action-runtime-bridge.ts create mode 100644 src/channels/whatsapp/login-qr-bridge.ts create mode 100644 src/channels/zalo/plugin-sdk-bridge.ts diff --git a/src/channels/bluebubbles/plugin-sdk-bridge.ts b/src/channels/bluebubbles/plugin-sdk-bridge.ts new file mode 100644 index 00000000000..4af365d835f --- /dev/null +++ b/src/channels/bluebubbles/plugin-sdk-bridge.ts @@ -0,0 +1,4 @@ +export { + resolveBlueBubblesGroupRequireMention, + resolveBlueBubblesGroupToolPolicy, +} from "../../../extensions/bluebubbles/runtime-api.js"; diff --git a/src/channels/discord/plugin-sdk-bridge.ts b/src/channels/discord/plugin-sdk-bridge.ts index b2d5fd7269f..b391a5297ab 100644 --- a/src/channels/discord/plugin-sdk-bridge.ts +++ b/src/channels/discord/plugin-sdk-bridge.ts @@ -20,6 +20,7 @@ export { normalizeDiscordMessagingTarget, normalizeDiscordOutboundTarget, readDiscordComponentSpec, + resolveDiscordAccount, resolveDefaultDiscordAccountId, resolveDiscordChannelId, resolveDiscordGroupRequireMention, diff --git a/src/channels/feishu/plugin-sdk-bridge.ts b/src/channels/feishu/plugin-sdk-bridge.ts new file mode 100644 index 00000000000..f4c2a122562 --- /dev/null +++ b/src/channels/feishu/plugin-sdk-bridge.ts @@ -0,0 +1,5 @@ +export { feishuSetupAdapter, feishuSetupWizard } from "../../../extensions/feishu/setup-api.js"; +export { + buildFeishuConversationId, + parseFeishuConversationId, +} from "../../../extensions/feishu/src/conversation-id.js"; diff --git a/src/channels/imessage/api-bridge.ts b/src/channels/imessage/api-bridge.ts new file mode 100644 index 00000000000..15182550a2f --- /dev/null +++ b/src/channels/imessage/api-bridge.ts @@ -0,0 +1,8 @@ +export { normalizeIMessageHandle } from "../../../extensions/imessage/api.js"; +export type { ParsedChatTarget } from "../../../extensions/imessage/api.js"; +export { + parseChatAllowTargetPrefixes, + parseChatTargetPrefixesOrThrow, + resolveServicePrefixedAllowTarget, + resolveServicePrefixedTarget, +} from "../../../extensions/imessage/api.js"; diff --git a/src/channels/irc/plugin-sdk-bridge.ts b/src/channels/irc/plugin-sdk-bridge.ts new file mode 100644 index 00000000000..209345d15e9 --- /dev/null +++ b/src/channels/irc/plugin-sdk-bridge.ts @@ -0,0 +1,7 @@ +export { + ircSetupAdapter, + ircSetupWizard, + listIrcAccountIds, + resolveDefaultIrcAccountId, + resolveIrcAccount, +} from "../../../extensions/irc/api.js"; diff --git a/src/channels/line/plugin-sdk-bridge.ts b/src/channels/line/plugin-sdk-bridge.ts new file mode 100644 index 00000000000..6185d91142a --- /dev/null +++ b/src/channels/line/plugin-sdk-bridge.ts @@ -0,0 +1 @@ +export { lineSetupAdapter, lineSetupWizard } from "../../../extensions/line/setup-api.js"; diff --git a/src/channels/signal/plugin-sdk-bridge.ts b/src/channels/signal/plugin-sdk-bridge.ts index e9e2b1abec2..cd237746ce0 100644 --- a/src/channels/signal/plugin-sdk-bridge.ts +++ b/src/channels/signal/plugin-sdk-bridge.ts @@ -3,6 +3,7 @@ export type { ResolvedSignalAccount } from "../../../extensions/signal/api.js"; export { listEnabledSignalAccounts, listSignalAccountIds, + resolveSignalAccount, resolveDefaultSignalAccountId, } from "../../../extensions/signal/api.js"; export { signalMessageActions } from "../../../extensions/signal/src/message-actions.js"; diff --git a/src/channels/slack/plugin-sdk-bridge.ts b/src/channels/slack/plugin-sdk-bridge.ts index c98058badd8..c9ff3bb5b57 100644 --- a/src/channels/slack/plugin-sdk-bridge.ts +++ b/src/channels/slack/plugin-sdk-bridge.ts @@ -1,5 +1,6 @@ export type { InspectedSlackAccount, ResolvedSlackAccount } from "../../../extensions/slack/api.js"; export type { SlackActionContext } from "../../../extensions/slack/runtime-api.js"; +export type { SlackTarget, SlackTargetKind } from "../../../extensions/slack/src/targets.js"; export { buildSlackThreadingToolContext, @@ -18,12 +19,15 @@ export { listSlackPins, listSlackReactions, parseSlackBlocksInput, + parseSlackTarget, pinSlackMessage, reactSlackMessage, readSlackMessages, recordSlackThreadParticipation, removeOwnSlackReactions, removeSlackReaction, + resolveSlackAccount, + resolveSlackChannelId, resolveDefaultSlackAccountId, resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy, diff --git a/src/channels/synology-chat/plugin-sdk-bridge.ts b/src/channels/synology-chat/plugin-sdk-bridge.ts new file mode 100644 index 00000000000..646e20b5c65 --- /dev/null +++ b/src/channels/synology-chat/plugin-sdk-bridge.ts @@ -0,0 +1,4 @@ +export { + synologyChatSetupAdapter, + synologyChatSetupWizard, +} from "../../../extensions/synology-chat/setup-api.js"; diff --git a/src/channels/telegram/plugin-sdk-bridge.ts b/src/channels/telegram/plugin-sdk-bridge.ts index 0b17b015e32..829d3ed4fb6 100644 --- a/src/channels/telegram/plugin-sdk-bridge.ts +++ b/src/channels/telegram/plugin-sdk-bridge.ts @@ -28,6 +28,7 @@ export { normalizeTelegramMessagingTarget, parseTelegramReplyToMessageId, parseTelegramThreadId, + resolveTelegramAccount, resolveDefaultTelegramAccountId, resolveTelegramGroupRequireMention, resolveTelegramGroupToolPolicy, diff --git a/src/channels/whatsapp/action-runtime-bridge.ts b/src/channels/whatsapp/action-runtime-bridge.ts new file mode 100644 index 00000000000..d234d06db1f --- /dev/null +++ b/src/channels/whatsapp/action-runtime-bridge.ts @@ -0,0 +1 @@ +export { handleWhatsAppAction } from "../../../extensions/whatsapp/action-runtime-api.js"; diff --git a/src/channels/whatsapp/login-qr-bridge.ts b/src/channels/whatsapp/login-qr-bridge.ts new file mode 100644 index 00000000000..c241f0ec569 --- /dev/null +++ b/src/channels/whatsapp/login-qr-bridge.ts @@ -0,0 +1 @@ +export { startWebLoginWithQr, waitForWebLogin } from "../../../extensions/whatsapp/login-qr-api.js"; diff --git a/src/channels/zalo/plugin-sdk-bridge.ts b/src/channels/zalo/plugin-sdk-bridge.ts new file mode 100644 index 00000000000..ca380b6e1cd --- /dev/null +++ b/src/channels/zalo/plugin-sdk-bridge.ts @@ -0,0 +1 @@ +export { zaloSetupAdapter, zaloSetupWizard } from "../../../extensions/zalo/api.js"; diff --git a/src/plugin-sdk/account-resolution.ts b/src/plugin-sdk/account-resolution.ts index f5f1229a798..94dd74ae5ea 100644 --- a/src/plugin-sdk/account-resolution.ts +++ b/src/plugin-sdk/account-resolution.ts @@ -13,13 +13,19 @@ export { normalizeE164, pathExists, resolveUserPath } from "../utils.js"; export { resolveDiscordAccount, type ResolvedDiscordAccount, -} from "../../extensions/discord/api.js"; -export { resolveSlackAccount, type ResolvedSlackAccount } from "../../extensions/slack/api.js"; +} from "../channels/discord/plugin-sdk-bridge.js"; +export { + resolveSlackAccount, + type ResolvedSlackAccount, +} from "../channels/slack/plugin-sdk-bridge.js"; export { resolveTelegramAccount, type ResolvedTelegramAccount, -} from "../../extensions/telegram/api.js"; -export { resolveSignalAccount, type ResolvedSignalAccount } from "../../extensions/signal/api.js"; +} from "../channels/telegram/plugin-sdk-bridge.js"; +export { + resolveSignalAccount, + type ResolvedSignalAccount, +} from "../channels/signal/plugin-sdk-bridge.js"; /** Resolve an account by id, then fall back to the default account when the primary lacks credentials. */ export function resolveAccountWithDefaultFallback(params: { diff --git a/src/plugin-sdk/bluebubbles.ts b/src/plugin-sdk/bluebubbles.ts index 58438157dda..82b29e642ba 100644 --- a/src/plugin-sdk/bluebubbles.ts +++ b/src/plugin-sdk/bluebubbles.ts @@ -28,7 +28,7 @@ export { buildChannelConfigSchema } from "../channels/plugins/config-schema.js"; export { resolveBlueBubblesGroupRequireMention, resolveBlueBubblesGroupToolPolicy, -} from "../../extensions/bluebubbles/runtime-api.js"; +} from "../channels/bluebubbles/plugin-sdk-bridge.js"; export { formatPairingApproveHint } from "../channels/plugins/helpers.js"; export { resolveChannelMediaMaxBytes } from "../channels/plugins/media-limits.js"; export { @@ -62,13 +62,13 @@ export { export { buildSecretInputSchema } from "./secret-input-schema.js"; export { ToolPolicySchema } from "../config/zod-schema.agent-runtime.js"; export { MarkdownConfigSchema } from "../config/zod-schema.core.js"; -export type { ParsedChatTarget } from "../../extensions/imessage/api.js"; +export type { ParsedChatTarget } from "../channels/imessage/api-bridge.js"; export { parseChatAllowTargetPrefixes, parseChatTargetPrefixesOrThrow, resolveServicePrefixedAllowTarget, resolveServicePrefixedTarget, -} from "../../extensions/imessage/api.js"; +} from "../channels/imessage/api-bridge.js"; export { stripMarkdown } from "../line/markdown-to-line.js"; export { parseFiniteNumber } from "../infra/parse-finite-number.js"; export { emptyPluginConfigSchema } from "../plugins/config-schema.js"; diff --git a/src/plugin-sdk/compat.ts b/src/plugin-sdk/compat.ts index 5e2bcd11f58..0ffbafdd5b2 100644 --- a/src/plugin-sdk/compat.ts +++ b/src/plugin-sdk/compat.ts @@ -46,5 +46,5 @@ export { mapAllowlistResolutionInputs } from "./allowlist-resolution.js"; export { resolveBlueBubblesGroupRequireMention, resolveBlueBubblesGroupToolPolicy, -} from "../../extensions/bluebubbles/runtime-api.js"; +} from "../channels/bluebubbles/plugin-sdk-bridge.js"; export { collectBlueBubblesStatusIssues } from "../channels/plugins/status-issues/bluebubbles.js"; diff --git a/src/plugin-sdk/feishu.ts b/src/plugin-sdk/feishu.ts index cde08767535..ae1d0a52527 100644 --- a/src/plugin-sdk/feishu.ts +++ b/src/plugin-sdk/feishu.ts @@ -67,7 +67,7 @@ export type { RuntimeEnv } from "../runtime.js"; export { formatDocsLink } from "../terminal/links.js"; export { evaluateSenderGroupAccessForPolicy } from "./group-access.js"; export type { WizardPrompter } from "../wizard/prompts.js"; -export { feishuSetupWizard, feishuSetupAdapter } from "../../extensions/feishu/setup-api.js"; +export { feishuSetupWizard, feishuSetupAdapter } from "../channels/feishu/plugin-sdk-bridge.js"; export { buildAgentMediaPayload } from "./agent-media-payload.js"; export { readJsonFileWithFallback } from "./json-store.js"; export { createScopedPairingAccess } from "./pairing-access.js"; @@ -83,7 +83,7 @@ export { withTempDownloadPath } from "./temp-path.js"; export { buildFeishuConversationId, parseFeishuConversationId, -} from "../../extensions/feishu/src/conversation-id.js"; +} from "../channels/feishu/plugin-sdk-bridge.js"; export { createFixedWindowRateLimiter, createWebhookAnomalyTracker, diff --git a/src/plugin-sdk/imessage-targets.ts b/src/plugin-sdk/imessage-targets.ts index 4a7f535be48..975ca5b5d36 100644 --- a/src/plugin-sdk/imessage-targets.ts +++ b/src/plugin-sdk/imessage-targets.ts @@ -1 +1 @@ -export { normalizeIMessageHandle } from "../../extensions/imessage/api.js"; +export { normalizeIMessageHandle } from "../channels/imessage/api-bridge.js"; diff --git a/src/plugin-sdk/irc.ts b/src/plugin-sdk/irc.ts index b64614348cb..82b44ce6825 100644 --- a/src/plugin-sdk/irc.ts +++ b/src/plugin-sdk/irc.ts @@ -62,7 +62,7 @@ export { listIrcAccountIds, resolveDefaultIrcAccountId, resolveIrcAccount, -} from "../../extensions/irc/api.js"; +} from "../channels/irc/plugin-sdk-bridge.js"; export { readStoreAllowFromForDmPolicy, resolveEffectiveAllowFromLists, @@ -72,7 +72,7 @@ export type { WizardPrompter } from "../wizard/prompts.js"; export { createScopedPairingAccess } from "./pairing-access.js"; export { issuePairingChallenge } from "../pairing/pairing-challenge.js"; export { dispatchInboundReplyWithBase } from "./inbound-reply-dispatch.js"; -export { ircSetupAdapter, ircSetupWizard } from "../../extensions/irc/api.js"; +export { ircSetupAdapter, ircSetupWizard } from "../channels/irc/plugin-sdk-bridge.js"; export type { OutboundReplyPayload } from "./reply-payload.js"; export { createNormalizedOutboundDeliverer, diff --git a/src/plugin-sdk/line.ts b/src/plugin-sdk/line.ts index 16a6c235ac3..c48873a20fa 100644 --- a/src/plugin-sdk/line.ts +++ b/src/plugin-sdk/line.ts @@ -32,7 +32,7 @@ export { resolveDefaultLineAccountId, resolveLineAccount, } from "../line/accounts.js"; -export { lineSetupAdapter, lineSetupWizard } from "../../extensions/line/setup-api.js"; +export { lineSetupAdapter, lineSetupWizard } from "../channels/line/plugin-sdk-bridge.js"; export { LineConfigSchema } from "../line/config-schema.js"; export type { LineChannelData, LineConfig, ResolvedLineAccount } from "../line/types.js"; export { diff --git a/src/plugin-sdk/slack-targets.ts b/src/plugin-sdk/slack-targets.ts index 20ea56e44d1..38bf436614c 100644 --- a/src/plugin-sdk/slack-targets.ts +++ b/src/plugin-sdk/slack-targets.ts @@ -3,4 +3,4 @@ export { resolveSlackChannelId, type SlackTarget, type SlackTargetKind, -} from "../../extensions/slack/api.js"; +} from "../channels/slack/plugin-sdk-bridge.js"; diff --git a/src/plugin-sdk/synology-chat.ts b/src/plugin-sdk/synology-chat.ts index 1b10e475f67..6cc5fd80013 100644 --- a/src/plugin-sdk/synology-chat.ts +++ b/src/plugin-sdk/synology-chat.ts @@ -20,4 +20,4 @@ export { createFixedWindowRateLimiter } from "./webhook-memory-guards.js"; export { synologyChatSetupAdapter, synologyChatSetupWizard, -} from "../../extensions/synology-chat/setup-api.js"; +} from "../channels/synology-chat/plugin-sdk-bridge.js"; diff --git a/src/plugin-sdk/whatsapp-action-runtime.ts b/src/plugin-sdk/whatsapp-action-runtime.ts index 87e7a29e437..f6fba991549 100644 --- a/src/plugin-sdk/whatsapp-action-runtime.ts +++ b/src/plugin-sdk/whatsapp-action-runtime.ts @@ -1 +1 @@ -export { handleWhatsAppAction } from "../../extensions/whatsapp/action-runtime-api.js"; +export { handleWhatsAppAction } from "../channels/whatsapp/action-runtime-bridge.js"; diff --git a/src/plugin-sdk/whatsapp-core.ts b/src/plugin-sdk/whatsapp-core.ts index e7f7283d1aa..5d73625fbf5 100644 --- a/src/plugin-sdk/whatsapp-core.ts +++ b/src/plugin-sdk/whatsapp-core.ts @@ -13,7 +13,7 @@ export { export { resolveWhatsAppGroupRequireMention, resolveWhatsAppGroupToolPolicy, -} from "../../extensions/whatsapp/api.js"; +} from "../channels/whatsapp/plugin-sdk-bridge.js"; export { resolveWhatsAppGroupIntroHint } from "../channels/plugins/whatsapp-shared.js"; export { ToolAuthorizationError, diff --git a/src/plugin-sdk/whatsapp-login-qr.ts b/src/plugin-sdk/whatsapp-login-qr.ts index bde71742811..02529e2fa33 100644 --- a/src/plugin-sdk/whatsapp-login-qr.ts +++ b/src/plugin-sdk/whatsapp-login-qr.ts @@ -1 +1 @@ -export { startWebLoginWithQr, waitForWebLogin } from "../../extensions/whatsapp/login-qr-api.js"; +export { startWebLoginWithQr, waitForWebLogin } from "../channels/whatsapp/login-qr-bridge.js"; diff --git a/src/plugin-sdk/zalo.ts b/src/plugin-sdk/zalo.ts index 21a5dd09b89..4fd1309bf30 100644 --- a/src/plugin-sdk/zalo.ts +++ b/src/plugin-sdk/zalo.ts @@ -62,8 +62,8 @@ export { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "../routing/session-key.j export type { RuntimeEnv } from "../runtime.js"; export type { WizardPrompter } from "../wizard/prompts.js"; export { formatAllowFromLowercase, isNormalizedSenderAllowed } from "./allow-from.js"; -export { zaloSetupAdapter } from "../../extensions/zalo/api.js"; -export { zaloSetupWizard } from "../../extensions/zalo/api.js"; +export { zaloSetupAdapter } from "../channels/zalo/plugin-sdk-bridge.js"; +export { zaloSetupWizard } from "../channels/zalo/plugin-sdk-bridge.js"; export { resolveDirectDmAuthorizationOutcome, resolveSenderCommandAuthorizationWithRuntime,