From b49946a67e053f02c92c0f1bc9079a920f011995 Mon Sep 17 00:00:00 2001 From: scoootscooob <167050519+scoootscooob@users.noreply.github.com> Date: Wed, 18 Mar 2026 10:24:17 -0700 Subject: [PATCH] Slack: import directory helpers (#49930) import the config-backed Slack directory helpers into the Slack channel plugin so directory.listPeers and directory.listGroups no longer throw at runtime, and add a regression test covering configured DM peer listing --- extensions/slack/src/channel.test.ts | 22 ++++++++++++++++++++++ extensions/slack/src/channel.ts | 4 ++++ 2 files changed, 26 insertions(+) diff --git a/extensions/slack/src/channel.test.ts b/extensions/slack/src/channel.test.ts index 4f22cd91263..e8d03f88b45 100644 --- a/extensions/slack/src/channel.test.ts +++ b/extensions/slack/src/channel.test.ts @@ -171,6 +171,28 @@ describe("slackPlugin outbound", () => { }); }); +describe("slackPlugin directory", () => { + it("lists configured peers without throwing a ReferenceError", async () => { + const listPeers = slackPlugin.directory?.listPeers; + expect(listPeers).toBeDefined(); + + await expect( + listPeers!({ + cfg: { + channels: { + slack: { + dms: { + U123: {}, + }, + }, + }, + }, + runtime: undefined, + }), + ).resolves.toEqual([{ id: "user:u123", kind: "user" }]); + }); +}); + describe("slackPlugin agentPrompt", () => { it("tells agents interactive replies are disabled by default", () => { const hints = slackPlugin.agentPrompt?.messageToolHints?.({ diff --git a/extensions/slack/src/channel.ts b/extensions/slack/src/channel.ts index dca51eb1fc7..5dc8876f15f 100644 --- a/extensions/slack/src/channel.ts +++ b/extensions/slack/src/channel.ts @@ -26,6 +26,10 @@ import type { SlackActionContext } from "./action-runtime.js"; import { parseSlackBlocksInput } from "./blocks-input.js"; import { createSlackActions } from "./channel-actions.js"; import { createSlackWebClient } from "./client.js"; +import { + listSlackDirectoryGroupsFromConfig, + listSlackDirectoryPeersFromConfig, +} from "./directory-config.js"; import { resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy } from "./group-policy.js"; import { isSlackInteractiveRepliesEnabled } from "./interactive-replies.js"; import { normalizeAllowListLower } from "./monitor/allow-list.js";