refactor(channels): reuse runtime group policy helpers

This commit is contained in:
Peter Steinberger
2026-02-22 12:44:02 +01:00
parent 13944f773f
commit 6dd36a6b77
31 changed files with 119 additions and 40 deletions

View File

@@ -6,6 +6,7 @@ import {
formatPairingApproveHint,
normalizeAccountId,
resolveAllowlistProviderRuntimeGroupPolicy,
resolveDefaultGroupPolicy,
setAccountEnabledInConfigSection,
type ChannelPlugin,
type OpenClawConfig,
@@ -129,7 +130,7 @@ export const nextcloudTalkPlugin: ChannelPlugin<ResolvedNextcloudTalkAccount> =
};
},
collectWarnings: ({ account, cfg }) => {
const defaultGroupPolicy = cfg.channels?.defaults?.groupPolicy;
const defaultGroupPolicy = resolveDefaultGroupPolicy(cfg);
const { groupPolicy } = resolveAllowlistProviderRuntimeGroupPolicy({
providerConfigPresent:
(cfg.channels as Record<string, unknown> | undefined)?.["nextcloud-talk"] !== undefined,

View File

@@ -1,8 +1,10 @@
import {
GROUP_POLICY_BLOCKED_LABEL,
createReplyPrefixOptions,
logInboundDrop,
resolveControlCommandGate,
resolveAllowlistProviderRuntimeGroupPolicy,
resolveDefaultGroupPolicy,
warnMissingProviderGroupPolicyFallbackOnce,
type OpenClawConfig,
type RuntimeEnv,
@@ -86,11 +88,7 @@ export async function handleNextcloudTalkInbound(params: {
statusSink?.({ lastInboundAt: message.timestamp });
const dmPolicy = account.config.dmPolicy ?? "pairing";
const defaultGroupPolicy = (
(config.channels as Record<string, unknown> | undefined)?.defaults as
| { groupPolicy?: string }
| undefined
)?.groupPolicy as GroupPolicy | undefined;
const defaultGroupPolicy = resolveDefaultGroupPolicy(config as OpenClawConfig);
const { groupPolicy, providerMissingFallbackApplied } =
resolveAllowlistProviderRuntimeGroupPolicy({
providerConfigPresent:
@@ -103,7 +101,7 @@ export async function handleNextcloudTalkInbound(params: {
providerMissingFallbackApplied,
providerKey: "nextcloud-talk",
accountId: account.accountId,
blockedLabel: "room messages",
blockedLabel: GROUP_POLICY_BLOCKED_LABEL.room,
log: (message) => runtime.log?.(message),
});