Download src/config/sessions/explicit-session-key-normalization.ts from Darochin/openskynet: direct link, hf CLI and curl.
- Browser
- Download file 1.76 kB
-
https://huggingface.co/Darochin/openskynet/resolve/main/src/config/sessions/explicit-session-key-normalization.ts
- Command line
-
hf download hf://Darochin/openskynet/src/config/sessions/explicit-session-key-normalization.ts
-
curl -L -o explicit-session-key-normalization.ts https://huggingface.co/Darochin/openskynet/resolve/main/src/config/sessions/explicit-session-key-normalization.ts
1.76 kB
| import type { MsgContext } from "../../auto-reply/templating.js"; | |
| import { normalizeExplicitDiscordSessionKey } from "../../discord/session-key-normalization.js"; | |
| type ExplicitSessionKeyNormalizer = (sessionKey: string, ctx: MsgContext) => string; | |
| type ExplicitSessionKeyNormalizerEntry = { | |
| provider: string; | |
| normalize: ExplicitSessionKeyNormalizer; | |
| matches: (params: { | |
| sessionKey: string; | |
| provider?: string; | |
| surface?: string; | |
| from: string; | |
| }) => boolean; | |
| }; | |
| const EXPLICIT_SESSION_KEY_NORMALIZERS: ExplicitSessionKeyNormalizerEntry[] = [ | |
| { | |
| provider: "discord", | |
| normalize: normalizeExplicitDiscordSessionKey, | |
| matches: ({ sessionKey, provider, surface, from }) => | |
| surface === "discord" || | |
| provider === "discord" || | |
| from.startsWith("discord:") || | |
| sessionKey.startsWith("discord:") || | |
| sessionKey.includes(":discord:"), | |
| }, | |
| ]; | |
| function resolveExplicitSessionKeyNormalizer( | |
| sessionKey: string, | |
| ctx: Pick<MsgContext, "From" | "Provider" | "Surface">, | |
| ): ExplicitSessionKeyNormalizer | undefined { | |
| const normalizedProvider = ctx.Provider?.trim().toLowerCase(); | |
| const normalizedSurface = ctx.Surface?.trim().toLowerCase(); | |
| const normalizedFrom = (ctx.From ?? "").trim().toLowerCase(); | |
| return EXPLICIT_SESSION_KEY_NORMALIZERS.find((entry) => | |
| entry.matches({ | |
| sessionKey, | |
| provider: normalizedProvider, | |
| surface: normalizedSurface, | |
| from: normalizedFrom, | |
| }), | |
| )?.normalize; | |
| } | |
| export function normalizeExplicitSessionKey(sessionKey: string, ctx: MsgContext): string { | |
| const normalized = sessionKey.trim().toLowerCase(); | |
| const normalize = resolveExplicitSessionKeyNormalizer(normalized, ctx); | |
| return normalize ? normalize(normalized, ctx) : normalized; | |
| } | |