diff --git a/public/script.js b/public/script.js index 3087922b8..064f5a46c 100644 --- a/public/script.js +++ b/public/script.js @@ -7873,9 +7873,9 @@ async function importFromURL(items, files) { } } -async function doImpersonate() { +async function doImpersonate(_, prompt) { $('#send_textarea').val(''); - $('#option_impersonate').trigger('click', { fromSlashCommand: true }); + $('#option_impersonate').trigger('click', { fromSlashCommand: true, additionalPrompt: prompt }); } async function doDeleteChat() { @@ -8691,6 +8691,13 @@ jQuery(async function () { const fromSlashCommand = customData?.fromSlashCommand || false; var id = $(this).attr('id'); + // Check whether a custom prompt was provided via custom data (for example through a slash command) + const additionalPrompt = customData?.additionalPrompt?.trim() || undefined; + const buildOrFillAdditionalArgs = (args = {}) => ({ + ...args, + ...(additionalPrompt !== undefined && { quiet_prompt: additionalPrompt, quietToLoud: true }), + }); + if (id == 'option_select_chat') { if ((selected_group && !is_group_generating) || (this_chid !== undefined && !is_send_press) || fromSlashCommand) { await displayPastChats(); @@ -8726,7 +8733,7 @@ jQuery(async function () { } else { is_send_press = true; - Generate('regenerate'); + Generate('regenerate', buildOrFillAdditionalArgs()); } } } @@ -8734,14 +8741,14 @@ jQuery(async function () { else if (id == 'option_impersonate') { if (is_send_press == false || fromSlashCommand) { is_send_press = true; - Generate('impersonate'); + Generate('impersonate', buildOrFillAdditionalArgs()); } } else if (id == 'option_continue') { if (is_send_press == false || fromSlashCommand) { is_send_press = true; - Generate('continue'); + Generate('continue', buildOrFillAdditionalArgs()); } } diff --git a/public/scripts/slash-commands.js b/public/scripts/slash-commands.js index 9a4175a1e..820b43ea6 100644 --- a/public/scripts/slash-commands.js +++ b/public/scripts/slash-commands.js @@ -1168,7 +1168,7 @@ async function openChat(id) { await reloadCurrentChat(); } -function continueChatCallback() { +function continueChatCallback(_, prompt) { setTimeout(async () => { try { await waitUntilCondition(() => !is_send_press && !is_group_generating, 10000, 100); @@ -1179,7 +1179,7 @@ function continueChatCallback() { // Prevent infinite recursion $('#send_textarea').val('').trigger('input'); - $('#option_continue').trigger('click', { fromSlashCommand: true }); + $('#option_continue').trigger('click', { fromSlashCommand: true, additionalPrompt: prompt }); }, 1); return '';