UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

152 lines 6.93 kB
import { n as RuntimeEnv } from "../runtime-DlqUc5_p.js"; import { a as formatAllowlistMatchMeta, c as resolveAllowlistMatchSimple, i as compileAllowlist, l as resolveCompiledAllowlistMatch, n as AllowlistMatchSource, o as resolveAllowlistCandidates, r as CompiledAllowlist, s as resolveAllowlistMatchByCandidates, t as AllowlistMatch } from "../allowlist-match-Bmdv70ad.js"; import { i as mergeDmAllowFromSources, n as firstDefined, o as resolveGroupAllowFromSources, r as isSenderIdAllowed } from "../allow-from-Bdiy2LH6.js"; //#region src/channels/plugins/chat-target-prefixes.d.ts /** * Parsed conversation target forms accepted by channel allowlists and target resolvers. */ type ParsedChatTarget = { kind: "chat_id"; chatId: number; } | { kind: "chat_guid"; chatGuid: string; } | { kind: "chat_identifier"; chatIdentifier: string; }; /** * Parsed allowlist target, including sender handles. */ type ParsedChatAllowTarget = ParsedChatTarget | { kind: "handle"; handle: string; }; /** * Checks whether a sender or current conversation matches an allowlist entry. */ export declare function isAllowedParsedChatSender(params: { allowFrom: Array<string | number>; sender: string; chatId?: number | null; chatGuid?: string | null; chatIdentifier?: string | null; allowConversationTargets?: boolean | null; normalizeSender: (sender: string) => string; parseAllowTarget: (entry: string) => ParsedChatAllowTarget; }): boolean; //#endregion //#region src/channels/allowlists/resolve-utils.d.ts type AllowlistUserResolutionLike = { input: string; resolved: boolean; id?: string; }; export declare function mergeAllowlist(params: { existing?: Array<string | number>; additions: string[]; }): string[]; /** Splits lookup results into resolved mappings, unresolved display text, and id additions. */ export declare function buildAllowlistResolutionSummary<T extends AllowlistUserResolutionLike>(resolvedUsers: T[], opts?: { /** Return null to omit an entry from the logged mapping (e.g. identity lookups). */ formatResolved?: (entry: T) => string | null; formatUnresolved?: (entry: T) => string; }): { resolvedMap: Map<string, T>; mapping: string[]; unresolved: string[]; additions: string[]; }; /** Replaces resolvable user entries with canonical ids while preserving unresolved entries and `*`. */ export declare function canonicalizeAllowlistWithResolvedIds<T extends AllowlistUserResolutionLike>(params: { existing?: Array<string | number>; resolvedMap: Map<string, T>; entryKey?: (entry: string) => string; }): string[]; /** Updates nested `{ users }` allowlist entries using merge or canonicalize semantics. */ export declare function patchAllowlistUsersInConfigEntries<T extends AllowlistUserResolutionLike, TEntries extends Record<string, unknown>>(params: { entries: TEntries; resolvedMap: Map<string, T>; strategy?: "merge" | "canonicalize"; entryKey?: (entry: string) => string; }): TEntries; /** Collects concrete user lookup targets from one config entry, excluding wildcard policy entries. */ export declare function addAllowlistUserEntriesFromConfigEntry(target: Set<string>, entry: unknown): void; /** Logs a compact resolved/unresolved allowlist lookup summary when there is anything to report. */ export declare function summarizeMapping(label: string, mapping: string[], unresolved: string[], runtime: RuntimeEnv): void; //#endregion //#region src/plugin-sdk/allow-from.d.ts /** Lowercase and optionally strip prefixes from allowlist entries before sender comparisons. */ export declare function formatAllowFromLowercase(params: { /** Raw allowlist entries from config or channel-specific overrides. */ allowFrom: Array<string | number>; /** Optional prefix remover for channel aliases such as `tg:` or `zalo:`. */ stripPrefixRe?: RegExp; }): string[]; /** Normalize allowlist entries through a channel-provided parser or canonicalizer. */ export declare function formatNormalizedAllowFromEntries(params: { /** Raw allowlist entries from config or channel-specific overrides. */ allowFrom: Array<string | number>; /** Channel-specific canonicalizer; empty results are omitted. */ normalizeEntry: (entry: string) => string | undefined | null; }): string[]; type ParsedAllowFromEntry = { value: string; } | { error: string; }; /** Parse, validate, and deduplicate setup allow-from entries with wildcard support. */ export declare function parseAllowFromEntries(raw: string, parseEntry: (entry: string) => ParsedAllowFromEntry): { entries: string[]; error?: string; }; /** Resolve basic setup allow-from entries when a channel token is available. */ export declare function resolveBasicAllowFromEntries(params: { token?: string | null; entries: string[]; resolveEntries: (params: { token: string; entries: string[]; }) => Promise<Array<{ input: string; resolved: boolean; id?: string | null; }>>; }): Promise<Array<{ input: string; resolved: boolean; id: string | null; }>>; /** Check whether a sender id matches a simple normalized allowlist with wildcard support. */ export declare function isNormalizedSenderAllowed(params: { /** Sender id or handle to compare after string coercion and lowercase normalization. */ senderId: string | number; /** Raw allowlist entries; `*` allows every sender. */ allowFrom: Array<string | number>; /** Optional prefix remover applied to allowlist entries before comparison. */ stripPrefixRe?: RegExp; }): boolean; /** Serializable allowlist resolution record used by setup/status UI surfaces. */ export type BasicAllowlistResolutionEntry = { /** Original allowlist input. */ input: string; /** Whether resolution found a concrete account/user id. */ resolved: boolean; /** Resolved id when available. */ id?: string; /** Resolved display name when available. */ name?: string; /** Optional resolver note for UI or docs output. */ note?: string; }; /** Clone allowlist resolution entries into a plain serializable shape for UI and docs output. */ export declare function mapBasicAllowlistResolutionEntries(entries: BasicAllowlistResolutionEntry[]): BasicAllowlistResolutionEntry[]; /** Map allowlist inputs sequentially so resolver side effects stay ordered and predictable. */ export declare function mapAllowlistResolutionInputs<T>(params: { /** Ordered allowlist inputs to resolve. */ inputs: string[]; /** Resolver callback invoked once per input in order. */ mapInput: (input: string) => Promise<T> | T; }): Promise<T[]>; //#endregion export { type AllowlistMatch, type AllowlistMatchSource, type AllowlistUserResolutionLike, type CompiledAllowlist, compileAllowlist, firstDefined, formatAllowlistMatchMeta, isSenderIdAllowed, mergeDmAllowFromSources, resolveAllowlistCandidates, resolveAllowlistMatchByCandidates, resolveAllowlistMatchSimple, resolveCompiledAllowlistMatch, resolveGroupAllowFromSources };