import type { ChannelId } from "../channels/plugins/types.js"; import type { NativeCommandsSetting } from "./types.js"; import { normalizeChannelId } from "../channels/plugins/index.js"; function resolveAutoDefault(providerId?: ChannelId): boolean { const id = normalizeChannelId(providerId); if (!id) { return false; } if (id === "discord" || id === "telegram") { return true; } if (id === "slack") { return false; } return false; } export function resolveNativeSkillsEnabled(params: { providerId: ChannelId; providerSetting?: NativeCommandsSetting; globalSetting?: NativeCommandsSetting; }): boolean { const { providerId, providerSetting, globalSetting } = params; const setting = providerSetting === undefined ? globalSetting : providerSetting; if (setting === true) { return true; } if (setting === false) { return false; } return resolveAutoDefault(providerId); } export function resolveNativeCommandsEnabled(params: { providerId: ChannelId; providerSetting?: NativeCommandsSetting; globalSetting?: NativeCommandsSetting; }): boolean { const { providerId, providerSetting, globalSetting } = params; const setting = providerSetting === undefined ? globalSetting : providerSetting; if (setting === true) { return true; } if (setting === false) { return false; } // auto or undefined -> heuristic return resolveAutoDefault(providerId); } export function isNativeCommandsExplicitlyDisabled(params: { providerSetting?: NativeCommandsSetting; globalSetting?: NativeCommandsSetting; }): boolean { const { providerSetting, globalSetting } = params; if (providerSetting === false) { return true; } if (providerSetting === undefined) { return globalSetting === false; } return false; }