refactor(slack): lazy-load directory config seam

This commit is contained in:
Vincent Koc 2026-04-04 12:03:14 +09:00
parent f9cf868553
commit 2f5509e36d
1 changed files with 7 additions and 6 deletions

View File

@ -43,10 +43,6 @@ import { resolveSlackAutoThreadId } from "./action-threading.js";
import { slackApprovalCapability } from "./approval-native.js";
import { createSlackActions } from "./channel-actions.js";
import { resolveSlackChannelType } from "./channel-type.js";
import {
listSlackDirectoryGroupsFromConfig,
listSlackDirectoryPeersFromConfig,
} from "./directory-config.js";
import { shouldSuppressLocalSlackExecApprovalPrompt } from "./exec-approvals.js";
import { resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy } from "./group-policy.js";
import { isSlackInteractiveRepliesEnabled } from "./interactive-replies.js";
@ -122,6 +118,9 @@ let slackProbeModulePromise: Promise<typeof import("./probe.js")> | undefined;
let slackMonitorModulePromise: Promise<typeof import("./monitor.js")> | undefined;
let slackDirectoryLiveModulePromise: Promise<typeof import("./directory-live.js")> | undefined;
const loadSlackDirectoryConfigModule = createLazyRuntimeModule(
() => import("./directory-config.js"),
);
const loadSlackResolveChannelsModule = createLazyRuntimeModule(
() => import("./resolve-channels.js"),
);
@ -355,8 +354,10 @@ export const slackPlugin: ChannelPlugin<ResolvedSlackAccount, SlackProbe> = crea
},
},
directory: createChannelDirectoryAdapter({
listPeers: async (params) => listSlackDirectoryPeersFromConfig(params),
listGroups: async (params) => listSlackDirectoryGroupsFromConfig(params),
listPeers: async (params) =>
(await loadSlackDirectoryConfigModule()).listSlackDirectoryPeersFromConfig(params),
listGroups: async (params) =>
(await loadSlackDirectoryConfigModule()).listSlackDirectoryGroupsFromConfig(params),
...createRuntimeDirectoryLiveAdapter({
getRuntime: loadSlackDirectoryLiveModule,
listPeersLive: (runtime) => runtime.listDirectoryPeersLive,