mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 14:44:32 +00:00
refactor(slack): share channel config entry type
This commit is contained in:
@@ -19,6 +19,18 @@ export type SlackChannelConfigResolved = {
|
||||
matchSource?: ChannelMatchSource;
|
||||
};
|
||||
|
||||
export type SlackChannelConfigEntry = {
|
||||
enabled?: boolean;
|
||||
allow?: boolean;
|
||||
requireMention?: boolean;
|
||||
allowBots?: boolean;
|
||||
users?: Array<string | number>;
|
||||
skills?: string[];
|
||||
systemPrompt?: string;
|
||||
};
|
||||
|
||||
export type SlackChannelConfigEntries = Record<string, SlackChannelConfigEntry>;
|
||||
|
||||
function firstDefined<T>(...values: Array<T | undefined>) {
|
||||
for (const value of values) {
|
||||
if (typeof value !== "undefined") {
|
||||
@@ -74,18 +86,7 @@ export function resolveSlackChannelLabel(params: { channelId?: string; channelNa
|
||||
export function resolveSlackChannelConfig(params: {
|
||||
channelId: string;
|
||||
channelName?: string;
|
||||
channels?: Record<
|
||||
string,
|
||||
{
|
||||
enabled?: boolean;
|
||||
allow?: boolean;
|
||||
requireMention?: boolean;
|
||||
allowBots?: boolean;
|
||||
users?: Array<string | number>;
|
||||
skills?: string[];
|
||||
systemPrompt?: string;
|
||||
}
|
||||
>;
|
||||
channels?: SlackChannelConfigEntries;
|
||||
defaultRequireMention?: boolean;
|
||||
}): SlackChannelConfigResolved | null {
|
||||
const { channelId, channelName, channels, defaultRequireMention } = params;
|
||||
|
||||
@@ -4,6 +4,7 @@ import type { OpenClawConfig, SlackReactionNotificationMode } from "../../config
|
||||
import type { DmPolicy, GroupPolicy } from "../../config/types.js";
|
||||
import type { RuntimeEnv } from "../../runtime.js";
|
||||
import type { SlackMessageEvent } from "../types.js";
|
||||
import type { SlackChannelConfigEntries } from "./channel-config.js";
|
||||
import { formatAllowlistMatchMeta } from "../../channels/allowlist-match.js";
|
||||
import { resolveSessionKey, type SessionScope } from "../../config/sessions.js";
|
||||
import { logVerbose } from "../../globals.js";
|
||||
@@ -70,18 +71,7 @@ export type SlackMonitorContext = {
|
||||
groupDmEnabled: boolean;
|
||||
groupDmChannels: string[];
|
||||
defaultRequireMention: boolean;
|
||||
channelsConfig?: Record<
|
||||
string,
|
||||
{
|
||||
enabled?: boolean;
|
||||
allow?: boolean;
|
||||
requireMention?: boolean;
|
||||
allowBots?: boolean;
|
||||
users?: Array<string | number>;
|
||||
skills?: string[];
|
||||
systemPrompt?: string;
|
||||
}
|
||||
>;
|
||||
channelsConfig?: SlackChannelConfigEntries;
|
||||
groupPolicy: GroupPolicy;
|
||||
useAccessGroups: boolean;
|
||||
reactionMode: SlackReactionNotificationMode;
|
||||
|
||||
Reference in New Issue
Block a user