Telegram-user: fix onboarding parse error

This commit is contained in:
Muhammed Mukhthar CM 2026-01-23 04:42:50 +00:00
parent b953e0bff8
commit 055c4f17a5

View File

@ -19,6 +19,7 @@ import {
import type { CoreConfig } from "./types.js"; import type { CoreConfig } from "./types.js";
const channel = "telegram-user" as const; const channel = "telegram-user" as const;
type TelegramUserChannelConfig = NonNullable<CoreConfig["channels"]>["telegram-user"];
function setTelegramUserDmPolicy( function setTelegramUserDmPolicy(
cfg: ClawdbotConfig, cfg: ClawdbotConfig,
@ -26,23 +27,22 @@ function setTelegramUserDmPolicy(
accountId?: string, accountId?: string,
): ClawdbotConfig { ): ClawdbotConfig {
const resolvedAccountId = normalizeAccountId(accountId) ?? DEFAULT_ACCOUNT_ID; const resolvedAccountId = normalizeAccountId(accountId) ?? DEFAULT_ACCOUNT_ID;
const current = cfg.channels?.["telegram-user"] as TelegramUserChannelConfig | undefined;
const allowFrom = const allowFrom =
policy === "open" policy === "open"
? addWildcardAllowFrom( ? addWildcardAllowFrom(current?.allowFrom)
(cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"])?.allowFrom,
)
: undefined; : undefined;
if (resolvedAccountId === DEFAULT_ACCOUNT_ID) { if (resolvedAccountId === DEFAULT_ACCOUNT_ID) {
return { return {
...cfg, ...cfg,
channels: { channels: {
...cfg.channels, ...cfg.channels,
"telegram-user": { "telegram-user": {
...(cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]), ...(current ?? {}),
dmPolicy: policy, dmPolicy: policy,
...(allowFrom ? { allowFrom } : {}), ...(allowFrom ? { allowFrom } : {}),
}, },
}, },
}; };
} }
@ -52,13 +52,11 @@ function setTelegramUserDmPolicy(
channels: { channels: {
...cfg.channels, ...cfg.channels,
"telegram-user": { "telegram-user": {
...(cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]), ...(current ?? {}),
accounts: { accounts: {
...((cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]) ...(current?.accounts ?? {}),
?.accounts ?? {}),
[resolvedAccountId]: { [resolvedAccountId]: {
...((cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]) ...(current?.accounts?.[resolvedAccountId] ?? {}),
?.accounts?.[resolvedAccountId] ?? {}),
dmPolicy: policy, dmPolicy: policy,
...(allowFrom ? { allowFrom } : {}), ...(allowFrom ? { allowFrom } : {}),
}, },
@ -118,6 +116,7 @@ async function promptTelegramUserAllowFrom(params: {
...parsed, ...parsed,
]; ];
const unique = [...new Set(merged)]; const unique = [...new Set(merged)];
const current = params.cfg.channels?.["telegram-user"] as TelegramUserChannelConfig | undefined;
if (accountId === DEFAULT_ACCOUNT_ID) { if (accountId === DEFAULT_ACCOUNT_ID) {
return { return {
@ -125,7 +124,7 @@ async function promptTelegramUserAllowFrom(params: {
channels: { channels: {
...params.cfg.channels, ...params.cfg.channels,
"telegram-user": { "telegram-user": {
...(params.cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]), ...(current ?? {}),
enabled: true, enabled: true,
dmPolicy: "allowlist", dmPolicy: "allowlist",
allowFrom: unique, allowFrom: unique,
@ -139,14 +138,12 @@ async function promptTelegramUserAllowFrom(params: {
channels: { channels: {
...params.cfg.channels, ...params.cfg.channels,
"telegram-user": { "telegram-user": {
...(params.cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]), ...(current ?? {}),
enabled: true, enabled: true,
accounts: { accounts: {
...((params.cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]) ...(current?.accounts ?? {}),
?.accounts ?? {}),
[accountId]: { [accountId]: {
...((params.cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]) ...(current?.accounts?.[accountId] ?? {}),
?.accounts?.[accountId] ?? {}),
enabled: true, enabled: true,
dmPolicy: "allowlist", dmPolicy: "allowlist",
allowFrom: unique, allowFrom: unique,
@ -261,13 +258,14 @@ export const telegramUserOnboardingAdapter: ChannelOnboardingAdapter = {
} }
} }
const current = next.channels?.["telegram-user"] as TelegramUserChannelConfig | undefined;
if (resolvedAccountId === DEFAULT_ACCOUNT_ID) { if (resolvedAccountId === DEFAULT_ACCOUNT_ID) {
next = { next = {
...next, ...next,
channels: { channels: {
...next.channels, ...next.channels,
"telegram-user": { "telegram-user": {
...next.channels?.["telegram-user"], ...(current ?? {}),
enabled: true, enabled: true,
...(useEnv ...(useEnv
? {} ? {}
@ -284,12 +282,12 @@ export const telegramUserOnboardingAdapter: ChannelOnboardingAdapter = {
channels: { channels: {
...next.channels, ...next.channels,
"telegram-user": { "telegram-user": {
...next.channels?.["telegram-user"], ...(current ?? {}),
enabled: true, enabled: true,
accounts: { accounts: {
...next.channels?.["telegram-user"]?.accounts, ...(current?.accounts ?? {}),
[resolvedAccountId]: { [resolvedAccountId]: {
...next.channels?.["telegram-user"]?.accounts?.[resolvedAccountId], ...(current?.accounts?.[resolvedAccountId] ?? {}),
enabled: true, enabled: true,
...(useEnv ...(useEnv
? {} ? {}