diff --git a/public/scripts/slash-commands.js b/public/scripts/slash-commands.js index a8fbc4622..bd23068a0 100644 --- a/public/scripts/slash-commands.js +++ b/public/scripts/slash-commands.js @@ -37,7 +37,7 @@ import { autoSelectPersona } from "./personas.js"; import { getContext } from "./extensions.js"; import { hideChatMessage, unhideChatMessage } from "./chats.js"; import { delay, isFalseBoolean, isTrueBoolean, stringToRange } from "./utils.js"; -import { registerVariableCommands } from "./variables.js"; +import { registerVariableCommands, resolveVariable } from "./variables.js"; export { executeSlashCommands, registerSlashCommand, @@ -272,7 +272,7 @@ function fuzzyCallback(args, value) { } try { - const list = JSON.parse(args.list); + const list = JSON.parse(resolveVariable(args.list)); if (!Array.isArray(list)) { console.warn('WARN: Invalid list argument provided for /fuzzy command'); return ''; diff --git a/public/scripts/variables.js b/public/scripts/variables.js index 8d30c361d..4ffe7b776 100644 --- a/public/scripts/variables.js +++ b/public/scripts/variables.js @@ -69,6 +69,18 @@ function addGlobalVariable(name, value) { return newValue; } +export function resolveVariable(name) { + if (existsLocalVariable(name)) { + return getLocalVariable(name); + } + + if (existsGlobalVariable(name)) { + return getGlobalVariable(name); + } + + return name; +} + export function replaceVariableMacros(str) { // Replace {{getvar::name}} with the value of the variable name str = str.replace(/{{getvar::([^}]+)}}/gi, (_, name) => {