openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
27 lines (26 loc) • 1.1 kB
JavaScript
import { x as parseStrictFiniteNumber } from "./number-coercion-CLj0HTDM.js";
//#region src/tts/directive-number.ts
function isInDirectiveNumberRange(value, range) {
if (range.min !== void 0 && (range.minExclusive ? value <= range.min : value < range.min)) return false;
if (range.max !== void 0 && (range.maxExclusive ? value >= range.max : value > range.max)) return false;
return true;
}
/** Parse a numeric speech directive token and return provider overrides when policy allows it. */
function parseSpeechDirectiveNumberOverride(params) {
if (!params.ctx.policy.allowVoiceSettings) return { handled: true };
const value = parseStrictFiniteNumber(params.ctx.value);
if (value === void 0 || !isInDirectiveNumberRange(value, params.range)) return {
handled: true,
warnings: [params.warning(params.ctx.value)]
};
const nextOverride = { [params.overrideKey]: value };
return {
handled: true,
overrides: params.mergeCurrentOverrides ? {
...params.ctx.currentOverrides,
...nextOverride
} : nextOverride
};
}
//#endregion
export { parseSpeechDirectiveNumberOverride as t };