mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-10 16:51:13 +00:00
fix(plugins): route runtime imports through sdk facades
This commit is contained in:
185
src/plugin-sdk/discord-runtime-surface.ts
Normal file
185
src/plugin-sdk/discord-runtime-surface.ts
Normal file
@@ -0,0 +1,185 @@
|
||||
import {
|
||||
createLazyFacadeObjectValue,
|
||||
loadBundledPluginPublicSurfaceModuleSync,
|
||||
} from "./facade-runtime.js";
|
||||
|
||||
type DiscordRuntimeModule = typeof import("../../extensions/discord/runtime-api.js");
|
||||
|
||||
type DiscordRuntimeSurface = Pick<
|
||||
DiscordRuntimeModule,
|
||||
| "auditDiscordChannelPermissions"
|
||||
| "createThreadDiscord"
|
||||
| "deleteMessageDiscord"
|
||||
| "discordMessageActions"
|
||||
| "editChannelDiscord"
|
||||
| "editMessageDiscord"
|
||||
| "getThreadBindingManager"
|
||||
| "listDiscordDirectoryGroupsLive"
|
||||
| "listDiscordDirectoryPeersLive"
|
||||
| "monitorDiscordProvider"
|
||||
| "pinMessageDiscord"
|
||||
| "probeDiscord"
|
||||
| "resolveDiscordChannelAllowlist"
|
||||
| "resolveDiscordUserAllowlist"
|
||||
| "resolveThreadBindingIdleTimeoutMs"
|
||||
| "resolveThreadBindingInactivityExpiresAt"
|
||||
| "resolveThreadBindingMaxAgeExpiresAt"
|
||||
| "resolveThreadBindingMaxAgeMs"
|
||||
| "sendDiscordComponentMessage"
|
||||
| "sendMessageDiscord"
|
||||
| "sendPollDiscord"
|
||||
| "sendTypingDiscord"
|
||||
| "setThreadBindingIdleTimeoutBySessionKey"
|
||||
| "setThreadBindingMaxAgeBySessionKey"
|
||||
| "unbindThreadBindingsBySessionKey"
|
||||
| "unpinMessageDiscord"
|
||||
>;
|
||||
|
||||
function loadDiscordRuntimeSurface(): DiscordRuntimeSurface {
|
||||
return loadBundledPluginPublicSurfaceModuleSync<DiscordRuntimeSurface>({
|
||||
dirName: "discord",
|
||||
artifactBasename: "runtime-api.js",
|
||||
});
|
||||
}
|
||||
|
||||
export const discordMessageActions: DiscordRuntimeModule["discordMessageActions"] =
|
||||
createLazyFacadeObjectValue(() => loadDiscordRuntimeSurface().discordMessageActions);
|
||||
|
||||
export const auditDiscordChannelPermissions: DiscordRuntimeModule["auditDiscordChannelPermissions"] =
|
||||
((...args) =>
|
||||
loadDiscordRuntimeSurface().auditDiscordChannelPermissions(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["auditDiscordChannelPermissions"];
|
||||
|
||||
export const createThreadDiscord: DiscordRuntimeModule["createThreadDiscord"] = ((...args) =>
|
||||
loadDiscordRuntimeSurface().createThreadDiscord(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["createThreadDiscord"];
|
||||
|
||||
export const deleteMessageDiscord: DiscordRuntimeModule["deleteMessageDiscord"] = ((...args) =>
|
||||
loadDiscordRuntimeSurface().deleteMessageDiscord(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["deleteMessageDiscord"];
|
||||
|
||||
export const editChannelDiscord: DiscordRuntimeModule["editChannelDiscord"] = ((...args) =>
|
||||
loadDiscordRuntimeSurface().editChannelDiscord(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["editChannelDiscord"];
|
||||
|
||||
export const editMessageDiscord: DiscordRuntimeModule["editMessageDiscord"] = ((...args) =>
|
||||
loadDiscordRuntimeSurface().editMessageDiscord(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["editMessageDiscord"];
|
||||
|
||||
export const getThreadBindingManager: DiscordRuntimeModule["getThreadBindingManager"] = ((
|
||||
...args
|
||||
) =>
|
||||
loadDiscordRuntimeSurface().getThreadBindingManager(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["getThreadBindingManager"];
|
||||
|
||||
export const listDiscordDirectoryGroupsLive: DiscordRuntimeModule["listDiscordDirectoryGroupsLive"] =
|
||||
((...args) =>
|
||||
loadDiscordRuntimeSurface().listDiscordDirectoryGroupsLive(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["listDiscordDirectoryGroupsLive"];
|
||||
|
||||
export const listDiscordDirectoryPeersLive: DiscordRuntimeModule["listDiscordDirectoryPeersLive"] =
|
||||
((...args) =>
|
||||
loadDiscordRuntimeSurface().listDiscordDirectoryPeersLive(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["listDiscordDirectoryPeersLive"];
|
||||
|
||||
export const monitorDiscordProvider: DiscordRuntimeModule["monitorDiscordProvider"] = ((...args) =>
|
||||
loadDiscordRuntimeSurface().monitorDiscordProvider(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["monitorDiscordProvider"];
|
||||
|
||||
export const pinMessageDiscord: DiscordRuntimeModule["pinMessageDiscord"] = ((...args) =>
|
||||
loadDiscordRuntimeSurface().pinMessageDiscord(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["pinMessageDiscord"];
|
||||
|
||||
export const probeDiscord: DiscordRuntimeModule["probeDiscord"] = ((...args) =>
|
||||
loadDiscordRuntimeSurface().probeDiscord(...args)) as DiscordRuntimeModule["probeDiscord"];
|
||||
|
||||
export const resolveDiscordChannelAllowlist: DiscordRuntimeModule["resolveDiscordChannelAllowlist"] =
|
||||
((...args) =>
|
||||
loadDiscordRuntimeSurface().resolveDiscordChannelAllowlist(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["resolveDiscordChannelAllowlist"];
|
||||
|
||||
export const resolveDiscordUserAllowlist: DiscordRuntimeModule["resolveDiscordUserAllowlist"] = ((
|
||||
...args
|
||||
) =>
|
||||
loadDiscordRuntimeSurface().resolveDiscordUserAllowlist(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["resolveDiscordUserAllowlist"];
|
||||
|
||||
export const resolveThreadBindingIdleTimeoutMs: DiscordRuntimeModule["resolveThreadBindingIdleTimeoutMs"] =
|
||||
((...args) =>
|
||||
loadDiscordRuntimeSurface().resolveThreadBindingIdleTimeoutMs(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["resolveThreadBindingIdleTimeoutMs"];
|
||||
|
||||
export const resolveThreadBindingInactivityExpiresAt: DiscordRuntimeModule["resolveThreadBindingInactivityExpiresAt"] =
|
||||
((...args) =>
|
||||
loadDiscordRuntimeSurface().resolveThreadBindingInactivityExpiresAt(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["resolveThreadBindingInactivityExpiresAt"];
|
||||
|
||||
export const resolveThreadBindingMaxAgeExpiresAt: DiscordRuntimeModule["resolveThreadBindingMaxAgeExpiresAt"] =
|
||||
((...args) =>
|
||||
loadDiscordRuntimeSurface().resolveThreadBindingMaxAgeExpiresAt(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["resolveThreadBindingMaxAgeExpiresAt"];
|
||||
|
||||
export const resolveThreadBindingMaxAgeMs: DiscordRuntimeModule["resolveThreadBindingMaxAgeMs"] = ((
|
||||
...args
|
||||
) =>
|
||||
loadDiscordRuntimeSurface().resolveThreadBindingMaxAgeMs(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["resolveThreadBindingMaxAgeMs"];
|
||||
|
||||
export const sendDiscordComponentMessage: DiscordRuntimeModule["sendDiscordComponentMessage"] = ((
|
||||
...args
|
||||
) =>
|
||||
loadDiscordRuntimeSurface().sendDiscordComponentMessage(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["sendDiscordComponentMessage"];
|
||||
|
||||
export const sendMessageDiscord: DiscordRuntimeModule["sendMessageDiscord"] = ((...args) =>
|
||||
loadDiscordRuntimeSurface().sendMessageDiscord(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["sendMessageDiscord"];
|
||||
|
||||
export const sendPollDiscord: DiscordRuntimeModule["sendPollDiscord"] = ((...args) =>
|
||||
loadDiscordRuntimeSurface().sendPollDiscord(...args)) as DiscordRuntimeModule["sendPollDiscord"];
|
||||
|
||||
export const sendTypingDiscord: DiscordRuntimeModule["sendTypingDiscord"] = ((...args) =>
|
||||
loadDiscordRuntimeSurface().sendTypingDiscord(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["sendTypingDiscord"];
|
||||
|
||||
export const setThreadBindingIdleTimeoutBySessionKey: DiscordRuntimeModule["setThreadBindingIdleTimeoutBySessionKey"] =
|
||||
((...args) =>
|
||||
loadDiscordRuntimeSurface().setThreadBindingIdleTimeoutBySessionKey(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["setThreadBindingIdleTimeoutBySessionKey"];
|
||||
|
||||
export const setThreadBindingMaxAgeBySessionKey: DiscordRuntimeModule["setThreadBindingMaxAgeBySessionKey"] =
|
||||
((...args) =>
|
||||
loadDiscordRuntimeSurface().setThreadBindingMaxAgeBySessionKey(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["setThreadBindingMaxAgeBySessionKey"];
|
||||
|
||||
export const unbindThreadBindingsBySessionKey: DiscordRuntimeModule["unbindThreadBindingsBySessionKey"] =
|
||||
((...args) =>
|
||||
loadDiscordRuntimeSurface().unbindThreadBindingsBySessionKey(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["unbindThreadBindingsBySessionKey"];
|
||||
|
||||
export const unpinMessageDiscord: DiscordRuntimeModule["unpinMessageDiscord"] = ((...args) =>
|
||||
loadDiscordRuntimeSurface().unpinMessageDiscord(
|
||||
...args,
|
||||
)) as DiscordRuntimeModule["unpinMessageDiscord"];
|
||||
34
src/plugin-sdk/signal-runtime-surface.ts
Normal file
34
src/plugin-sdk/signal-runtime-surface.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import {
|
||||
createLazyFacadeObjectValue,
|
||||
loadBundledPluginPublicSurfaceModuleSync,
|
||||
} from "./facade-runtime.js";
|
||||
|
||||
type SignalRuntimeModule = typeof import("../../extensions/signal/runtime-api.js");
|
||||
|
||||
type SignalRuntimeSurface = Pick<
|
||||
SignalRuntimeModule,
|
||||
"monitorSignalProvider" | "probeSignal" | "sendMessageSignal" | "signalMessageActions"
|
||||
>;
|
||||
|
||||
function loadSignalRuntimeSurface(): SignalRuntimeSurface {
|
||||
return loadBundledPluginPublicSurfaceModuleSync<SignalRuntimeSurface>({
|
||||
dirName: "signal",
|
||||
artifactBasename: "runtime-api.js",
|
||||
});
|
||||
}
|
||||
|
||||
export const signalMessageActions: SignalRuntimeModule["signalMessageActions"] =
|
||||
createLazyFacadeObjectValue(() => loadSignalRuntimeSurface().signalMessageActions);
|
||||
|
||||
export const monitorSignalProvider: SignalRuntimeModule["monitorSignalProvider"] = ((...args) =>
|
||||
loadSignalRuntimeSurface().monitorSignalProvider(
|
||||
...args,
|
||||
)) as SignalRuntimeModule["monitorSignalProvider"];
|
||||
|
||||
export const probeSignal: SignalRuntimeModule["probeSignal"] = ((...args) =>
|
||||
loadSignalRuntimeSurface().probeSignal(...args)) as SignalRuntimeModule["probeSignal"];
|
||||
|
||||
export const sendMessageSignal: SignalRuntimeModule["sendMessageSignal"] = ((...args) =>
|
||||
loadSignalRuntimeSurface().sendMessageSignal(
|
||||
...args,
|
||||
)) as SignalRuntimeModule["sendMessageSignal"];
|
||||
64
src/plugin-sdk/slack-runtime-surface.ts
Normal file
64
src/plugin-sdk/slack-runtime-surface.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
import { loadBundledPluginPublicSurfaceModuleSync } from "./facade-runtime.js";
|
||||
|
||||
type SlackRuntimeModule = typeof import("../../extensions/slack/runtime-api.js");
|
||||
|
||||
type SlackRuntimeSurface = Pick<
|
||||
SlackRuntimeModule,
|
||||
| "handleSlackAction"
|
||||
| "listSlackDirectoryGroupsLive"
|
||||
| "listSlackDirectoryPeersLive"
|
||||
| "monitorSlackProvider"
|
||||
| "probeSlack"
|
||||
| "resolveSlackChannelAllowlist"
|
||||
| "resolveSlackUserAllowlist"
|
||||
| "sendMessageSlack"
|
||||
>;
|
||||
|
||||
function loadSlackRuntimeSurface(): SlackRuntimeSurface {
|
||||
return loadBundledPluginPublicSurfaceModuleSync<SlackRuntimeSurface>({
|
||||
dirName: "slack",
|
||||
artifactBasename: "runtime-api.js",
|
||||
});
|
||||
}
|
||||
|
||||
export const handleSlackAction: SlackRuntimeModule["handleSlackAction"] = ((...args) =>
|
||||
loadSlackRuntimeSurface().handleSlackAction(...args)) as SlackRuntimeModule["handleSlackAction"];
|
||||
|
||||
export const listSlackDirectoryGroupsLive: SlackRuntimeModule["listSlackDirectoryGroupsLive"] = ((
|
||||
...args
|
||||
) =>
|
||||
loadSlackRuntimeSurface().listSlackDirectoryGroupsLive(
|
||||
...args,
|
||||
)) as SlackRuntimeModule["listSlackDirectoryGroupsLive"];
|
||||
|
||||
export const listSlackDirectoryPeersLive: SlackRuntimeModule["listSlackDirectoryPeersLive"] = ((
|
||||
...args
|
||||
) =>
|
||||
loadSlackRuntimeSurface().listSlackDirectoryPeersLive(
|
||||
...args,
|
||||
)) as SlackRuntimeModule["listSlackDirectoryPeersLive"];
|
||||
|
||||
export const monitorSlackProvider: SlackRuntimeModule["monitorSlackProvider"] = ((...args) =>
|
||||
loadSlackRuntimeSurface().monitorSlackProvider(
|
||||
...args,
|
||||
)) as SlackRuntimeModule["monitorSlackProvider"];
|
||||
|
||||
export const probeSlack: SlackRuntimeModule["probeSlack"] = ((...args) =>
|
||||
loadSlackRuntimeSurface().probeSlack(...args)) as SlackRuntimeModule["probeSlack"];
|
||||
|
||||
export const resolveSlackChannelAllowlist: SlackRuntimeModule["resolveSlackChannelAllowlist"] = ((
|
||||
...args
|
||||
) =>
|
||||
loadSlackRuntimeSurface().resolveSlackChannelAllowlist(
|
||||
...args,
|
||||
)) as SlackRuntimeModule["resolveSlackChannelAllowlist"];
|
||||
|
||||
export const resolveSlackUserAllowlist: SlackRuntimeModule["resolveSlackUserAllowlist"] = ((
|
||||
...args
|
||||
) =>
|
||||
loadSlackRuntimeSurface().resolveSlackUserAllowlist(
|
||||
...args,
|
||||
)) as SlackRuntimeModule["resolveSlackUserAllowlist"];
|
||||
|
||||
export const sendMessageSlack: SlackRuntimeModule["sendMessageSlack"] = ((...args) =>
|
||||
loadSlackRuntimeSurface().sendMessageSlack(...args)) as SlackRuntimeModule["sendMessageSlack"];
|
||||
@@ -1,7 +1,3 @@
|
||||
import {
|
||||
setThreadBindingIdleTimeoutBySessionKey,
|
||||
setThreadBindingMaxAgeBySessionKey,
|
||||
} from "../../../extensions/discord/runtime-api.js";
|
||||
import { resolveEffectiveMessagesConfig, resolveHumanDelayConfig } from "../../agents/identity.js";
|
||||
import {
|
||||
chunkByNewline,
|
||||
@@ -65,6 +61,10 @@ import {
|
||||
readChannelAllowFromStore,
|
||||
upsertChannelPairingRequest,
|
||||
} from "../../pairing/pairing-store.js";
|
||||
import {
|
||||
setThreadBindingIdleTimeoutBySessionKey,
|
||||
setThreadBindingMaxAgeBySessionKey,
|
||||
} from "../../plugin-sdk/discord-runtime-surface.js";
|
||||
import { buildAgentSessionKey, resolveAgentRoute } from "../../routing/resolve-route.js";
|
||||
import { defineCachedValue } from "./runtime-cache.js";
|
||||
import { createRuntimeDiscord } from "./runtime-discord.js";
|
||||
|
||||
@@ -16,7 +16,7 @@ import {
|
||||
sendPollDiscord as sendPollDiscordImpl,
|
||||
sendTypingDiscord as sendTypingDiscordImpl,
|
||||
unpinMessageDiscord as unpinMessageDiscordImpl,
|
||||
} from "../../../extensions/discord/runtime-api.js";
|
||||
} from "../../plugin-sdk/discord-runtime-surface.js";
|
||||
import type { PluginRuntimeChannel } from "./types-channel.js";
|
||||
|
||||
type RuntimeDiscordOps = Pick<
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { discordMessageActions } from "../../../extensions/discord/runtime-api.js";
|
||||
import {
|
||||
discordMessageActions,
|
||||
getThreadBindingManager,
|
||||
resolveThreadBindingIdleTimeoutMs,
|
||||
resolveThreadBindingInactivityExpiresAt,
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
setThreadBindingIdleTimeoutBySessionKey,
|
||||
setThreadBindingMaxAgeBySessionKey,
|
||||
unbindThreadBindingsBySessionKey,
|
||||
} from "../../../extensions/discord/runtime-api.js";
|
||||
} from "../../plugin-sdk/discord-runtime-surface.js";
|
||||
import {
|
||||
createLazyRuntimeMethodBinder,
|
||||
createLazyRuntimeSurface,
|
||||
|
||||
@@ -3,7 +3,7 @@ import {
|
||||
probeSignal,
|
||||
signalMessageActions,
|
||||
sendMessageSignal,
|
||||
} from "../../../extensions/signal/runtime-api.js";
|
||||
} from "../../plugin-sdk/signal-runtime-surface.js";
|
||||
import type { PluginRuntimeChannel } from "./types-channel.js";
|
||||
|
||||
export function createRuntimeSignal(): PluginRuntimeChannel["signal"] {
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
resolveSlackUserAllowlist as resolveSlackUserAllowlistImpl,
|
||||
sendMessageSlack as sendMessageSlackImpl,
|
||||
handleSlackAction as handleSlackActionImpl,
|
||||
} from "../../../extensions/slack/runtime-api.js";
|
||||
} from "../../plugin-sdk/slack-runtime-surface.js";
|
||||
import type { PluginRuntimeChannel } from "./types-channel.js";
|
||||
|
||||
type RuntimeSlackOps = Pick<
|
||||
|
||||
Reference in New Issue
Block a user