diff --git a/extensions/discord/src/channel.ts b/extensions/discord/src/channel.ts index e2d202cb6ee..dff011825b0 100644 --- a/extensions/discord/src/channel.ts +++ b/extensions/discord/src/channel.ts @@ -48,7 +48,7 @@ import { resolveDiscordUserAllowlist } from "./resolve-users.js"; import { getDiscordRuntime } from "./runtime.js"; import { fetchChannelPermissionsDiscord } from "./send.js"; import { discordSetupAdapter } from "./setup-core.js"; -import { createDiscordPluginBase } from "./shared.js"; +import { createDiscordPluginBase, discordConfigAccessors } from "./shared.js"; import { collectDiscordStatusIssues } from "./status-issues.js"; import { parseDiscordTarget } from "./targets.js"; import { DiscordUiContainer } from "./ui.js"; diff --git a/extensions/discord/src/setup-surface.ts b/extensions/discord/src/setup-surface.ts index 9c1ce7f5f1c..5432302ff4b 100644 --- a/extensions/discord/src/setup-surface.ts +++ b/extensions/discord/src/setup-surface.ts @@ -100,28 +100,20 @@ async function resolveDiscordGroupAllowlist(params: { }); } -export const discordSetupWizard: ChannelSetupWizard = createDiscordSetupWizardBase(async () => ({ - discordSetupWizard: { - dmPolicy: { - promptAllowFrom: promptDiscordAllowFrom, - }, - groupAccess: { - resolveAllowlist: async ({ cfg, accountId, credentialValues, entries }) => - await resolveDiscordGroupAllowlist({ - cfg, - accountId, - credentialValues, - entries, - }), - }, - allowFrom: { - resolveEntries: async ({ cfg, accountId, credentialValues, entries }) => - await resolveDiscordAllowFromEntries({ - token: - resolveDiscordAccount({ cfg, accountId }).token || - (typeof credentialValues.token === "string" ? credentialValues.token : ""), - entries, - }), - }, - } as ChannelSetupWizard, -})); +export const discordSetupWizard: ChannelSetupWizard = createDiscordSetupWizardBase({ + promptAllowFrom: promptDiscordAllowFrom, + resolveGroupAllowlist: async ({ cfg, accountId, credentialValues, entries }) => + await resolveDiscordGroupAllowlist({ + cfg, + accountId, + credentialValues, + entries, + }), + resolveAllowFromEntries: async ({ cfg, accountId, credentialValues, entries }) => + await resolveDiscordAllowFromEntries({ + token: + resolveDiscordAccount({ cfg, accountId }).token || + (typeof credentialValues.token === "string" ? credentialValues.token : ""), + entries, + }), +}); diff --git a/extensions/slack/src/channel.ts b/extensions/slack/src/channel.ts index d2dffaf8a2b..2149f22ec60 100644 --- a/extensions/slack/src/channel.ts +++ b/extensions/slack/src/channel.ts @@ -486,7 +486,13 @@ export const slackPlugin: ChannelPlugin = { }, actions: createSlackActions(SLACK_CHANNEL, { invoke: async (action, cfg, toolContext) => - await getSlackRuntime().channel.slack.handleSlackAction(action, cfg, toolContext), + await getSlackRuntime().channel.slack.handleSlackAction( + action, + cfg as OpenClawConfig, + toolContext as Parameters< + ReturnType["channel"]["slack"]["handleSlackAction"] + >[2], + ), }), setup: slackSetupAdapter, outbound: { diff --git a/extensions/slack/src/setup-surface.ts b/extensions/slack/src/setup-surface.ts index 063129267cf..f7a52a72888 100644 --- a/extensions/slack/src/setup-surface.ts +++ b/extensions/slack/src/setup-surface.ts @@ -130,27 +130,19 @@ async function resolveSlackGroupAllowlist(params: { return keys; } -export const slackSetupWizard: ChannelSetupWizard = createSlackSetupWizardBase(async () => ({ - slackSetupWizard: { - dmPolicy: { - promptAllowFrom: promptSlackAllowFrom, - }, - allowFrom: { - resolveEntries: async ({ credentialValues, entries }) => - await resolveSlackAllowFromEntries({ - token: credentialValues.botToken, - entries, - }), - }, - groupAccess: { - resolveAllowlist: async ({ cfg, accountId, credentialValues, entries, prompter }) => - await resolveSlackGroupAllowlist({ - cfg, - accountId, - credentialValues, - entries, - prompter, - }), - }, - } as ChannelSetupWizard, -})); +export const slackSetupWizard: ChannelSetupWizard = createSlackSetupWizardBase({ + promptAllowFrom: promptSlackAllowFrom, + resolveAllowFromEntries: async ({ credentialValues, entries }) => + await resolveSlackAllowFromEntries({ + token: credentialValues.botToken, + entries, + }), + resolveGroupAllowlist: async ({ cfg, accountId, credentialValues, entries, prompter }) => + await resolveSlackGroupAllowlist({ + cfg, + accountId, + credentialValues, + entries, + prompter, + }), +}); diff --git a/src/channels/plugins/setup-helpers.test.ts b/src/channels/plugins/setup-helpers.test.ts index f81de4fe4ed..4111986e175 100644 --- a/src/channels/plugins/setup-helpers.test.ts +++ b/src/channels/plugins/setup-helpers.test.ts @@ -175,6 +175,7 @@ describe("createEnvPatchedAccountSetupAdapter", () => { expect( adapter.validateInput?.({ + cfg: asConfig({}), accountId: "work", input: { useEnv: true }, }), @@ -182,6 +183,7 @@ describe("createEnvPatchedAccountSetupAdapter", () => { expect( adapter.validateInput?.({ + cfg: asConfig({}), accountId: DEFAULT_ACCOUNT_ID, input: {}, }), @@ -189,6 +191,7 @@ describe("createEnvPatchedAccountSetupAdapter", () => { expect( adapter.validateInput?.({ + cfg: asConfig({}), accountId: DEFAULT_ACCOUNT_ID, input: { token: "tok" }, }), diff --git a/src/channels/plugins/slack.actions.ts b/src/channels/plugins/slack.actions.ts index e65a85d98f6..483b4db7df9 100644 --- a/src/channels/plugins/slack.actions.ts +++ b/src/channels/plugins/slack.actions.ts @@ -1,3 +1,4 @@ +import type { AgentToolResult } from "@mariozechner/pi-agent-core"; import { handleSlackAction, type SlackActionContext } from "../../agents/tools/slack-actions.js"; import { extractSlackToolSend, @@ -12,7 +13,7 @@ type SlackActionInvoke = ( action: Record, cfg: unknown, toolContext: unknown, -) => Promise; +) => Promise>; export function createSlackActions( providerId: string,