Spaces:
Running
Running
| 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; | |
| } | |