Plugin SDK: route core channel runtimes through public subpaths

This commit is contained in:
Vincent Koc
2026-03-18 11:00:33 -07:00
parent 505d140aeb
commit 8240fd900a
12 changed files with 69 additions and 236 deletions

View File

@@ -84,7 +84,14 @@ export {
export { normalizeExplicitDiscordSessionKey } from "../../extensions/discord/session-key-api.js";
export {
autoBindSpawnedDiscordSubagent,
getThreadBindingManager,
listThreadBindingsBySessionKey,
resolveThreadBindingIdleTimeoutMs,
resolveThreadBindingInactivityExpiresAt,
resolveThreadBindingMaxAgeExpiresAt,
resolveThreadBindingMaxAgeMs,
setThreadBindingIdleTimeoutBySessionKey,
setThreadBindingMaxAgeBySessionKey,
unbindThreadBindingsBySessionKey,
} from "../../extensions/discord/runtime-api.js";
export { getGateway } from "../../extensions/discord/runtime-api.js";
@@ -93,6 +100,7 @@ export { readDiscordComponentSpec } from "../../extensions/discord/api.js";
export { resolveDiscordChannelId } from "../../extensions/discord/api.js";
export {
addRoleDiscord,
auditDiscordChannelPermissions,
banMemberDiscord,
createChannelDiscord,
createScheduledEventDiscord,
@@ -110,23 +118,30 @@ export {
fetchVoiceStatusDiscord,
hasAnyGuildPermissionDiscord,
kickMemberDiscord,
listDiscordDirectoryGroupsLive,
listDiscordDirectoryPeersLive,
listGuildChannelsDiscord,
listGuildEmojisDiscord,
listPinsDiscord,
listScheduledEventsDiscord,
listThreadsDiscord,
monitorDiscordProvider,
moveChannelDiscord,
pinMessageDiscord,
probeDiscord,
reactMessageDiscord,
readMessagesDiscord,
removeChannelPermissionDiscord,
removeOwnReactionsDiscord,
removeReactionDiscord,
removeRoleDiscord,
resolveDiscordChannelAllowlist,
resolveDiscordUserAllowlist,
searchMessagesDiscord,
sendDiscordComponentMessage,
sendMessageDiscord,
sendPollDiscord,
sendTypingDiscord,
sendStickerDiscord,
sendVoiceMessageDiscord,
setChannelPermissionDiscord,

View File

@@ -43,4 +43,8 @@ export { IMessageConfigSchema } from "../config/zod-schema.providers-core.js";
export { resolveChannelMediaMaxBytes } from "../channels/plugins/media-limits.js";
export { collectStatusIssuesFromLastError } from "./status-helpers.js";
export { sendMessageIMessage } from "../../extensions/imessage/runtime-api.js";
export {
monitorIMessageProvider,
probeIMessage,
sendMessageIMessage,
} from "../../extensions/imessage/runtime-api.js";

View File

@@ -60,7 +60,16 @@ export { extractSlackToolSend, listSlackMessageActions } from "../../extensions/
export { buildSlackThreadingToolContext } from "../../extensions/slack/api.js";
export { parseSlackBlocksInput } from "../../extensions/slack/api.js";
export { handleSlackHttpRequest } from "../../extensions/slack/api.js";
export { sendMessageSlack } from "../../extensions/slack/runtime-api.js";
export {
handleSlackAction,
listSlackDirectoryGroupsLive,
listSlackDirectoryPeersLive,
monitorSlackProvider,
probeSlack,
resolveSlackChannelAllowlist,
resolveSlackUserAllowlist,
sendMessageSlack,
} from "../../extensions/slack/runtime-api.js";
export {
deleteSlackMessage,
downloadSlackFile,

View File

@@ -86,18 +86,31 @@ export {
} from "../../extensions/telegram/api.js";
export { resolveTelegramReactionLevel } from "../../extensions/telegram/api.js";
export {
auditTelegramGroupMembership,
collectTelegramUnmentionedGroupIds,
createForumTopicTelegram,
deleteMessageTelegram,
editForumTopicTelegram,
editMessageReplyMarkupTelegram,
editMessageTelegram,
monitorTelegramProvider,
pinMessageTelegram,
reactMessageTelegram,
renameForumTopicTelegram,
probeTelegram,
sendMessageTelegram,
sendPollTelegram,
sendStickerTelegram,
sendTypingTelegram,
unpinMessageTelegram,
} from "../../extensions/telegram/runtime-api.js";
export { getCacheStats, searchStickers } from "../../extensions/telegram/api.js";
export { resolveTelegramToken } from "../../extensions/telegram/runtime-api.js";
export { telegramMessageActions } from "../../extensions/telegram/runtime-api.js";
export {
setTelegramThreadBindingIdleTimeoutBySessionKey,
setTelegramThreadBindingMaxAgeBySessionKey,
} from "../../extensions/telegram/runtime-api.js";
export { collectTelegramStatusIssues } from "../../extensions/telegram/api.js";
export { sendTelegramPayloadMessages } from "../../extensions/telegram/api.js";
export {

View File

@@ -1,12 +1,12 @@
import { auditDiscordChannelPermissions as auditDiscordChannelPermissionsImpl } from "../../../extensions/discord/runtime-api.js";
import { auditDiscordChannelPermissions as auditDiscordChannelPermissionsImpl } from "openclaw/plugin-sdk/discord";
import {
listDiscordDirectoryGroupsLive as listDiscordDirectoryGroupsLiveImpl,
listDiscordDirectoryPeersLive as listDiscordDirectoryPeersLiveImpl,
} from "../../../extensions/discord/runtime-api.js";
import { monitorDiscordProvider as monitorDiscordProviderImpl } from "../../../extensions/discord/runtime-api.js";
import { probeDiscord as probeDiscordImpl } from "../../../extensions/discord/runtime-api.js";
import { resolveDiscordChannelAllowlist as resolveDiscordChannelAllowlistImpl } from "../../../extensions/discord/runtime-api.js";
import { resolveDiscordUserAllowlist as resolveDiscordUserAllowlistImpl } from "../../../extensions/discord/runtime-api.js";
} from "openclaw/plugin-sdk/discord";
import { monitorDiscordProvider as monitorDiscordProviderImpl } from "openclaw/plugin-sdk/discord";
import { probeDiscord as probeDiscordImpl } from "openclaw/plugin-sdk/discord";
import { resolveDiscordChannelAllowlist as resolveDiscordChannelAllowlistImpl } from "openclaw/plugin-sdk/discord";
import { resolveDiscordUserAllowlist as resolveDiscordUserAllowlistImpl } from "openclaw/plugin-sdk/discord";
import {
createThreadDiscord as createThreadDiscordImpl,
deleteMessageDiscord as deleteMessageDiscordImpl,
@@ -18,7 +18,7 @@ import {
sendPollDiscord as sendPollDiscordImpl,
sendTypingDiscord as sendTypingDiscordImpl,
unpinMessageDiscord as unpinMessageDiscordImpl,
} from "../../../extensions/discord/runtime-api.js";
} from "openclaw/plugin-sdk/discord";
import type { PluginRuntimeChannel } from "./types-channel.js";
type RuntimeDiscordOps = Pick<

View File

@@ -1,4 +1,4 @@
import { discordMessageActions } from "../../../extensions/discord/runtime-api.js";
import { discordMessageActions } from "openclaw/plugin-sdk/discord";
import {
getThreadBindingManager,
resolveThreadBindingIdleTimeoutMs,
@@ -8,7 +8,7 @@ import {
setThreadBindingIdleTimeoutBySessionKey,
setThreadBindingMaxAgeBySessionKey,
unbindThreadBindingsBySessionKey,
} from "../../../extensions/discord/runtime-api.js";
} from "openclaw/plugin-sdk/discord";
import {
createLazyRuntimeMethodBinder,
createLazyRuntimeSurface,

View File

@@ -2,7 +2,7 @@ import {
monitorIMessageProvider,
probeIMessage,
sendMessageIMessage,
} from "../../../extensions/imessage/runtime-api.js";
} from "openclaw/plugin-sdk/imessage";
import type { PluginRuntimeChannel } from "./types-channel.js";
export function createRuntimeIMessage(): PluginRuntimeChannel["imessage"] {

View File

@@ -3,7 +3,7 @@ import {
probeSignal,
signalMessageActions,
sendMessageSignal,
} from "../../../extensions/signal/runtime-api.js";
} from "openclaw/plugin-sdk/signal";
import type { PluginRuntimeChannel } from "./types-channel.js";
export function createRuntimeSignal(): PluginRuntimeChannel["signal"] {

View File

@@ -1,13 +1,13 @@
import {
listSlackDirectoryGroupsLive as listSlackDirectoryGroupsLiveImpl,
listSlackDirectoryPeersLive as listSlackDirectoryPeersLiveImpl,
} from "../../../extensions/slack/runtime-api.js";
import { monitorSlackProvider as monitorSlackProviderImpl } from "../../../extensions/slack/runtime-api.js";
import { probeSlack as probeSlackImpl } from "../../../extensions/slack/runtime-api.js";
import { resolveSlackChannelAllowlist as resolveSlackChannelAllowlistImpl } from "../../../extensions/slack/runtime-api.js";
import { resolveSlackUserAllowlist as resolveSlackUserAllowlistImpl } from "../../../extensions/slack/runtime-api.js";
import { sendMessageSlack as sendMessageSlackImpl } from "../../../extensions/slack/runtime-api.js";
import { handleSlackAction as handleSlackActionImpl } from "../../../extensions/slack/runtime-api.js";
} from "openclaw/plugin-sdk/slack";
import { monitorSlackProvider as monitorSlackProviderImpl } from "openclaw/plugin-sdk/slack";
import { probeSlack as probeSlackImpl } from "openclaw/plugin-sdk/slack";
import { resolveSlackChannelAllowlist as resolveSlackChannelAllowlistImpl } from "openclaw/plugin-sdk/slack";
import { resolveSlackUserAllowlist as resolveSlackUserAllowlistImpl } from "openclaw/plugin-sdk/slack";
import { sendMessageSlack as sendMessageSlackImpl } from "openclaw/plugin-sdk/slack";
import { handleSlackAction as handleSlackActionImpl } from "openclaw/plugin-sdk/slack";
import type { PluginRuntimeChannel } from "./types-channel.js";
type RuntimeSlackOps = Pick<

View File

@@ -1,6 +1,6 @@
import { auditTelegramGroupMembership as auditTelegramGroupMembershipImpl } from "../../../extensions/telegram/runtime-api.js";
import { monitorTelegramProvider as monitorTelegramProviderImpl } from "../../../extensions/telegram/runtime-api.js";
import { probeTelegram as probeTelegramImpl } from "../../../extensions/telegram/runtime-api.js";
import { auditTelegramGroupMembership as auditTelegramGroupMembershipImpl } from "openclaw/plugin-sdk/telegram";
import { monitorTelegramProvider as monitorTelegramProviderImpl } from "openclaw/plugin-sdk/telegram";
import { probeTelegram as probeTelegramImpl } from "openclaw/plugin-sdk/telegram";
import {
deleteMessageTelegram as deleteMessageTelegramImpl,
editMessageReplyMarkupTelegram as editMessageReplyMarkupTelegramImpl,
@@ -11,7 +11,7 @@ import {
sendPollTelegram as sendPollTelegramImpl,
sendTypingTelegram as sendTypingTelegramImpl,
unpinMessageTelegram as unpinMessageTelegramImpl,
} from "../../../extensions/telegram/runtime-api.js";
} from "openclaw/plugin-sdk/telegram";
import type { PluginRuntimeChannel } from "./types-channel.js";
type RuntimeTelegramOps = Pick<

View File

@@ -1,10 +1,10 @@
import { collectTelegramUnmentionedGroupIds } from "../../../extensions/telegram/runtime-api.js";
import { telegramMessageActions } from "../../../extensions/telegram/runtime-api.js";
import { collectTelegramUnmentionedGroupIds } from "openclaw/plugin-sdk/telegram";
import { telegramMessageActions } from "openclaw/plugin-sdk/telegram";
import {
setTelegramThreadBindingIdleTimeoutBySessionKey,
setTelegramThreadBindingMaxAgeBySessionKey,
} from "../../../extensions/telegram/runtime-api.js";
import { resolveTelegramToken } from "../../../extensions/telegram/runtime-api.js";
} from "openclaw/plugin-sdk/telegram";
import { resolveTelegramToken } from "openclaw/plugin-sdk/telegram";
import {
createLazyRuntimeMethodBinder,
createLazyRuntimeSurface,

View File

@@ -95,214 +95,6 @@
"resolvedPath": "extensions/zai/model-definitions.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-discord-ops.runtime.ts",
"line": 1,
"kind": "import",
"specifier": "../../../extensions/discord/runtime-api.js",
"resolvedPath": "extensions/discord/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-discord-ops.runtime.ts",
"line": 5,
"kind": "import",
"specifier": "../../../extensions/discord/runtime-api.js",
"resolvedPath": "extensions/discord/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-discord-ops.runtime.ts",
"line": 6,
"kind": "import",
"specifier": "../../../extensions/discord/runtime-api.js",
"resolvedPath": "extensions/discord/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-discord-ops.runtime.ts",
"line": 7,
"kind": "import",
"specifier": "../../../extensions/discord/runtime-api.js",
"resolvedPath": "extensions/discord/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-discord-ops.runtime.ts",
"line": 8,
"kind": "import",
"specifier": "../../../extensions/discord/runtime-api.js",
"resolvedPath": "extensions/discord/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-discord-ops.runtime.ts",
"line": 9,
"kind": "import",
"specifier": "../../../extensions/discord/runtime-api.js",
"resolvedPath": "extensions/discord/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-discord-ops.runtime.ts",
"line": 21,
"kind": "import",
"specifier": "../../../extensions/discord/runtime-api.js",
"resolvedPath": "extensions/discord/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-discord.ts",
"line": 1,
"kind": "import",
"specifier": "../../../extensions/discord/runtime-api.js",
"resolvedPath": "extensions/discord/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-discord.ts",
"line": 11,
"kind": "import",
"specifier": "../../../extensions/discord/runtime-api.js",
"resolvedPath": "extensions/discord/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-imessage.ts",
"line": 5,
"kind": "import",
"specifier": "../../../extensions/imessage/runtime-api.js",
"resolvedPath": "extensions/imessage/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-signal.ts",
"line": 6,
"kind": "import",
"specifier": "../../../extensions/signal/runtime-api.js",
"resolvedPath": "extensions/signal/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-slack-ops.runtime.ts",
"line": 4,
"kind": "import",
"specifier": "../../../extensions/slack/runtime-api.js",
"resolvedPath": "extensions/slack/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-slack-ops.runtime.ts",
"line": 5,
"kind": "import",
"specifier": "../../../extensions/slack/runtime-api.js",
"resolvedPath": "extensions/slack/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-slack-ops.runtime.ts",
"line": 6,
"kind": "import",
"specifier": "../../../extensions/slack/runtime-api.js",
"resolvedPath": "extensions/slack/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-slack-ops.runtime.ts",
"line": 7,
"kind": "import",
"specifier": "../../../extensions/slack/runtime-api.js",
"resolvedPath": "extensions/slack/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-slack-ops.runtime.ts",
"line": 8,
"kind": "import",
"specifier": "../../../extensions/slack/runtime-api.js",
"resolvedPath": "extensions/slack/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-slack-ops.runtime.ts",
"line": 9,
"kind": "import",
"specifier": "../../../extensions/slack/runtime-api.js",
"resolvedPath": "extensions/slack/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-slack-ops.runtime.ts",
"line": 10,
"kind": "import",
"specifier": "../../../extensions/slack/runtime-api.js",
"resolvedPath": "extensions/slack/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-telegram-ops.runtime.ts",
"line": 1,
"kind": "import",
"specifier": "../../../extensions/telegram/runtime-api.js",
"resolvedPath": "extensions/telegram/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-telegram-ops.runtime.ts",
"line": 2,
"kind": "import",
"specifier": "../../../extensions/telegram/runtime-api.js",
"resolvedPath": "extensions/telegram/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-telegram-ops.runtime.ts",
"line": 3,
"kind": "import",
"specifier": "../../../extensions/telegram/runtime-api.js",
"resolvedPath": "extensions/telegram/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-telegram-ops.runtime.ts",
"line": 14,
"kind": "import",
"specifier": "../../../extensions/telegram/runtime-api.js",
"resolvedPath": "extensions/telegram/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-telegram.ts",
"line": 1,
"kind": "import",
"specifier": "../../../extensions/telegram/runtime-api.js",
"resolvedPath": "extensions/telegram/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-telegram.ts",
"line": 2,
"kind": "import",
"specifier": "../../../extensions/telegram/runtime-api.js",
"resolvedPath": "extensions/telegram/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-telegram.ts",
"line": 6,
"kind": "import",
"specifier": "../../../extensions/telegram/runtime-api.js",
"resolvedPath": "extensions/telegram/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-telegram.ts",
"line": 7,
"kind": "import",
"specifier": "../../../extensions/telegram/runtime-api.js",
"resolvedPath": "extensions/telegram/runtime-api.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/runtime/runtime-whatsapp-login-tool.ts",
"line": 1,