refactor: share account-scoped config adapter accessors

This commit is contained in:
Peter Steinberger
2026-03-07 23:44:16 +00:00
parent b6318d4df4
commit 846ec320e2
12 changed files with 182 additions and 103 deletions

View File

@@ -1,9 +1,8 @@
import {
buildAccountScopedDmSecurityPolicy,
buildOpenGroupPolicyWarning,
createScopedAccountConfigAccessors,
formatNormalizedAllowFromEntries,
mapAllowFromEntries,
resolveOptionalConfigString,
} from "openclaw/plugin-sdk";
import {
buildBaseAccountStatusSnapshot,
@@ -49,6 +48,17 @@ function normalizePairingTarget(raw: string): string {
return normalized.split(/[!@]/, 1)[0]?.trim() ?? "";
}
const ircConfigAccessors = createScopedAccountConfigAccessors({
resolveAccount: ({ cfg, accountId }) => resolveIrcAccount({ cfg: cfg as CoreConfig, accountId }),
resolveAllowFrom: (account: ResolvedIrcAccount) => account.config.allowFrom,
formatAllowFrom: (allowFrom) =>
formatNormalizedAllowFromEntries({
allowFrom,
normalizeEntry: normalizeIrcAllowEntry,
}),
resolveDefaultTo: (account: ResolvedIrcAccount) => account.config.defaultTo,
});
export const ircPlugin: ChannelPlugin<ResolvedIrcAccount, IrcProbe> = {
id: "irc",
meta: {
@@ -116,19 +126,7 @@ export const ircPlugin: ChannelPlugin<ResolvedIrcAccount, IrcProbe> = {
nick: account.nick,
passwordSource: account.passwordSource,
}),
resolveAllowFrom: ({ cfg, accountId }) =>
mapAllowFromEntries(
resolveIrcAccount({ cfg: cfg as CoreConfig, accountId }).config.allowFrom,
),
formatAllowFrom: ({ allowFrom }) =>
formatNormalizedAllowFromEntries({
allowFrom,
normalizeEntry: normalizeIrcAllowEntry,
}),
resolveDefaultTo: ({ cfg, accountId }) =>
resolveOptionalConfigString(
resolveIrcAccount({ cfg: cfg as CoreConfig, accountId }).config.defaultTo,
),
...ircConfigAccessors,
},
security: {
resolveDmPolicy: ({ cfg, accountId, account }) => {