diff --git a/scripts/lib/plugin-sdk-facades.mjs b/scripts/lib/plugin-sdk-facades.mjs index 1613d2a69c9..ec3fbb5df70 100644 --- a/scripts/lib/plugin-sdk-facades.mjs +++ b/scripts/lib/plugin-sdk-facades.mjs @@ -936,6 +936,13 @@ export const GENERATED_PLUGIN_SDK_FACADES = [ { subpath: "slack-surface", source: pluginSource("slack", "api.js"), + functionExports: [ + "listSlackAccountIds", + "listSlackDirectoryGroupsFromConfig", + "listSlackDirectoryPeersFromConfig", + "resolveDefaultSlackAccountId", + "resolveSlackRuntimeGroupPolicy", + ], exports: [ "buildSlackThreadingToolContext", "createSlackWebClient", @@ -1375,6 +1382,7 @@ export function buildPluginSdkFacadeModule(entry, params = {}) { const sourceExportKinds = params.repoRoot ? resolveFacadeSourceExportKinds(params.repoRoot, entry.source) : new Map(); + const explicitFunctionExports = new Set(entry.functionExports ?? []); const exportNames = entry.exportAll ? Array.from(sourceExportKinds.keys()).toSorted((left, right) => left.localeCompare(right)) : entry.runtimeApiPreExportsPath @@ -1459,11 +1467,12 @@ export function buildPluginSdkFacadeModule(entry, params = {}) { ); for (const exportName of valueExports) { const kind = sourceExportKinds.get(exportName); + const isExplicitFunctionExport = explicitFunctionExports.has(exportName); const sourcePath = entry.exportSources?.[exportName] ?? entry.source; const sourceIndex = sourceIndexByPath.get(sourcePath) ?? 0; const loaderSuffix = sourceIndex === 0 ? "" : String(sourceIndex + 1); const moduleTypeName = sourceIndex === 0 ? "FacadeModule" : `FacadeModule${sourceIndex + 1}`; - if (kind?.functionLike || kind?.callable) { + if (isExplicitFunctionExport || kind?.functionLike || kind?.callable) { lines.push( `export const ${exportName}: ${moduleTypeName}[${JSON.stringify(exportName)}] = ((...args) =>`, ); diff --git a/src/plugin-sdk/slack-surface.ts b/src/plugin-sdk/slack-surface.ts index ee095f8a267..0f720c103bc 100644 --- a/src/plugin-sdk/slack-surface.ts +++ b/src/plugin-sdk/slack-surface.ts @@ -2,10 +2,7 @@ import type { PluginSdkFacadeTypeMap } from "../generated/plugin-sdk-facade-type-map.generated.js"; type FacadeEntry = PluginSdkFacadeTypeMap["slack-surface"]; type FacadeModule = FacadeEntry["module"]; -import { - createLazyFacadeObjectValue, - loadBundledPluginPublicSurfaceModuleSync, -} from "./facade-runtime.js"; +import { loadBundledPluginPublicSurfaceModuleSync } from "./facade-runtime.js"; function loadFacadeModule(): FacadeModule { return loadBundledPluginPublicSurfaceModuleSync({ @@ -45,17 +42,18 @@ export const listEnabledSlackAccounts: FacadeModule["listEnabledSlackAccounts"] loadFacadeModule()["listEnabledSlackAccounts"]( ...args, )) as FacadeModule["listEnabledSlackAccounts"]; -export const listSlackAccountIds: FacadeModule["listSlackAccountIds"] = createLazyFacadeObjectValue( - () => loadFacadeModule()["listSlackAccountIds"] as object, -) as FacadeModule["listSlackAccountIds"]; +export const listSlackAccountIds: FacadeModule["listSlackAccountIds"] = ((...args) => + loadFacadeModule()["listSlackAccountIds"](...args)) as FacadeModule["listSlackAccountIds"]; export const listSlackDirectoryGroupsFromConfig: FacadeModule["listSlackDirectoryGroupsFromConfig"] = - createLazyFacadeObjectValue( - () => loadFacadeModule()["listSlackDirectoryGroupsFromConfig"] as object, - ) as FacadeModule["listSlackDirectoryGroupsFromConfig"]; + ((...args) => + loadFacadeModule()["listSlackDirectoryGroupsFromConfig"]( + ...args, + )) as FacadeModule["listSlackDirectoryGroupsFromConfig"]; export const listSlackDirectoryPeersFromConfig: FacadeModule["listSlackDirectoryPeersFromConfig"] = - createLazyFacadeObjectValue( - () => loadFacadeModule()["listSlackDirectoryPeersFromConfig"] as object, - ) as FacadeModule["listSlackDirectoryPeersFromConfig"]; + ((...args) => + loadFacadeModule()["listSlackDirectoryPeersFromConfig"]( + ...args, + )) as FacadeModule["listSlackDirectoryPeersFromConfig"]; export const listSlackEmojis: FacadeModule["listSlackEmojis"] = ((...args) => loadFacadeModule()["listSlackEmojis"](...args)) as FacadeModule["listSlackEmojis"]; export const listSlackMessageActions: FacadeModule["listSlackMessageActions"] = ((...args) => @@ -79,9 +77,10 @@ export const recordSlackThreadParticipation: FacadeModule["recordSlackThreadPart ...args, )) as FacadeModule["recordSlackThreadParticipation"]; export const resolveDefaultSlackAccountId: FacadeModule["resolveDefaultSlackAccountId"] = - createLazyFacadeObjectValue( - () => loadFacadeModule()["resolveDefaultSlackAccountId"] as object, - ) as FacadeModule["resolveDefaultSlackAccountId"]; + ((...args) => + loadFacadeModule()["resolveDefaultSlackAccountId"]( + ...args, + )) as FacadeModule["resolveDefaultSlackAccountId"]; export const resolveSlackAutoThreadId: FacadeModule["resolveSlackAutoThreadId"] = ((...args) => loadFacadeModule()["resolveSlackAutoThreadId"]( ...args, @@ -93,9 +92,10 @@ export const resolveSlackGroupRequireMention: FacadeModule["resolveSlackGroupReq ...args, )) as FacadeModule["resolveSlackGroupRequireMention"]; export const resolveSlackRuntimeGroupPolicy: FacadeModule["resolveSlackRuntimeGroupPolicy"] = - createLazyFacadeObjectValue( - () => loadFacadeModule()["resolveSlackRuntimeGroupPolicy"] as object, - ) as FacadeModule["resolveSlackRuntimeGroupPolicy"]; + ((...args) => + loadFacadeModule()["resolveSlackRuntimeGroupPolicy"]( + ...args, + )) as FacadeModule["resolveSlackRuntimeGroupPolicy"]; export const resolveSlackGroupToolPolicy: FacadeModule["resolveSlackGroupToolPolicy"] = (( ...args ) =>