Files
openclaw/src/plugin-sdk/slack.ts
2026-04-07 06:22:35 +01:00

31 lines
1.2 KiB
TypeScript

// Manual facade. Keep loader boundary explicit.
type InteractiveRepliesSurface = typeof import("@openclaw/slack/interactive-replies-api.js");
type SecuritySurface = typeof import("@openclaw/slack/security-contract-api.js");
import { loadBundledPluginPublicSurfaceModuleSync } from "./facade-loader.js";
function loadInteractiveRepliesSurface(): InteractiveRepliesSurface {
return loadBundledPluginPublicSurfaceModuleSync<InteractiveRepliesSurface>({
dirName: "slack",
artifactBasename: "interactive-replies-api.js",
});
}
function loadSecuritySurface(): SecuritySurface {
return loadBundledPluginPublicSurfaceModuleSync<SecuritySurface>({
dirName: "slack",
artifactBasename: "security-contract-api.js",
});
}
export const compileSlackInteractiveReplies: InteractiveRepliesSurface["compileSlackInteractiveReplies"] =
((...args) =>
loadInteractiveRepliesSurface().compileSlackInteractiveReplies(
...args,
)) as InteractiveRepliesSurface["compileSlackInteractiveReplies"];
export const collectSlackSecurityAuditFindings: SecuritySurface["collectSlackSecurityAuditFindings"] =
((...args) =>
loadSecuritySurface().collectSlackSecurityAuditFindings(
...args,
)) as SecuritySurface["collectSlackSecurityAuditFindings"];