Merge branch 'staging' into reasoning-continue

5bd3d9a518dba4e9770323c975a925696c36d5f2

Cohee <18619528+Cohee1207@users.noreply.github.com>

4 files changed, +26 -7Ignore whitespace
public/script.js+3 -3
@@ -2003,7 +2003,7 @@ export function messageFormatting(mes, ch_name, isSystem, isUser, messageId, san
2003 return '';2003 return '';
2004 }2004 }
20052005
2006 if (Number(messageId) === 0 && !isSystem && !isUser) {2006 if (Number(messageId) === 0 && !isSystem && !isUser && !isReasoning) {
2007 const mesBeforeReplace = mes;2007 const mesBeforeReplace = mes;
2008 const chatMessage = chat[messageId];2008 const chatMessage = chat[messageId];
2009 mes = substituteParams(mes, undefined, ch_name);2009 mes = substituteParams(mes, undefined, ch_name);
@@ -3171,7 +3171,7 @@ class StreamingProcessor {
3171 this.sendTextarea.dispatchEvent(new Event('input', { bubbles: true }));3171 this.sendTextarea.dispatchEvent(new Event('input', { bubbles: true }));
3172 }3172 }
3173 else {3173 else {
3174 await saveReply(this.type, text, true);3174 await saveReply(this.type, text, true, '', [], '');
3175 messageId = chat.length - 1;3175 messageId = chat.length - 1;
3176 this.#checkDomElements(messageId);3176 this.#checkDomElements(messageId);
3177 this.showMessageButtons(messageId);3177 this.showMessageButtons(messageId);
@@ -3365,7 +3365,7 @@ class StreamingProcessor {
3365 const timestamps = [];3365 const timestamps = [];
3366 for await (const { text, swipes, logprobs, toolCalls, state } of this.generator()) {3366 for await (const { text, swipes, logprobs, toolCalls, state } of this.generator()) {
3367 timestamps.push(Date.now());3367 timestamps.push(Date.now());
3368 if (this.isStopped) {3368 if (this.isStopped || this.abortController.signal.aborted) {
3369 return;3369 return;
3370 }3370 }
33713371
public/scripts/backgrounds.js+14 -4
@@ -96,8 +96,13 @@ function highlightLockedBackground() {
96 });96 });
97}97}
9898
99/**
100 * Locks the background for the current chat
101 * @param {Event} e Click event
102 * @returns {string} Empty string
103 */
99function onLockBackgroundClick(e) {104function onLockBackgroundClick(e) {
100 e.stopPropagation();105 e?.stopPropagation();
101106
102 const chatName = getCurrentChatId();107 const chatName = getCurrentChatId();
103108
@@ -114,8 +119,13 @@ function onLockBackgroundClick(e) {
114 return '';119 return '';
115}120}
116121
122/**
123 * Locks the background for the current chat
124 * @param {Event} e Click event
125 * @returns {string} Empty string
126 */
117function onUnlockBackgroundClick(e) {127function onUnlockBackgroundClick(e) {
118 e.stopPropagation();128 e?.stopPropagation();
119 removeBackgroundMetadata();129 removeBackgroundMetadata();
120 unsetCustomBackground();130 unsetCustomBackground();
121 highlightLockedBackground();131 highlightLockedBackground();
@@ -513,12 +523,12 @@ export function initBackgrounds() {
513 $('#add_bg_button').on('change', onBackgroundUploadSelected);523 $('#add_bg_button').on('change', onBackgroundUploadSelected);
514 $('#bg-filter').on('input', onBackgroundFilterInput);524 $('#bg-filter').on('input', onBackgroundFilterInput);
515 SlashCommandParser.addCommandObject(SlashCommand.fromProps({ name: 'lockbg',525 SlashCommandParser.addCommandObject(SlashCommand.fromProps({ name: 'lockbg',
516 callback: onLockBackgroundClick,526 callback: () => onLockBackgroundClick(new CustomEvent('click')),
517 aliases: ['bglock'],527 aliases: ['bglock'],
518 helpString: 'Locks a background for the currently selected chat',528 helpString: 'Locks a background for the currently selected chat',
519 }));529 }));
520 SlashCommandParser.addCommandObject(SlashCommand.fromProps({ name: 'unlockbg',530 SlashCommandParser.addCommandObject(SlashCommand.fromProps({ name: 'unlockbg',
521 callback: onUnlockBackgroundClick,531 callback: () => onUnlockBackgroundClick(new CustomEvent('click')),
522 aliases: ['bgunlock'],532 aliases: ['bgunlock'],
523 helpString: 'Unlocks a background for the currently selected chat',533 helpString: 'Unlocks a background for the currently selected chat',
524 }));534 }));
public/scripts/reasoning.js+3 -0
@@ -123,6 +123,7 @@ function loadReasoningSettings() {
123function registerReasoningSlashCommands() {123function registerReasoningSlashCommands() {
124 SlashCommandParser.addCommandObject(SlashCommand.fromProps({124 SlashCommandParser.addCommandObject(SlashCommand.fromProps({
125 name: 'reasoning-get',125 name: 'reasoning-get',
126 aliases: ['get-reasoning'],
126 returns: ARGUMENT_TYPE.STRING,127 returns: ARGUMENT_TYPE.STRING,
127 helpString: t`Get the contents of a reasoning block of a message. Returns an empty string if the message does not have a reasoning block.`,128 helpString: t`Get the contents of a reasoning block of a message. Returns an empty string if the message does not have a reasoning block.`,
128 unnamedArgumentList: [129 unnamedArgumentList: [
@@ -142,6 +143,7 @@ function registerReasoningSlashCommands() {
142143
143 SlashCommandParser.addCommandObject(SlashCommand.fromProps({144 SlashCommandParser.addCommandObject(SlashCommand.fromProps({
144 name: 'reasoning-set',145 name: 'reasoning-set',
146 aliases: ['set-reasoning'],
145 returns: ARGUMENT_TYPE.STRING,147 returns: ARGUMENT_TYPE.STRING,
146 helpString: t`Set the reasoning block of a message. Returns the reasoning block content.`,148 helpString: t`Set the reasoning block of a message. Returns the reasoning block content.`,
147 namedArgumentList: [149 namedArgumentList: [
@@ -176,6 +178,7 @@ function registerReasoningSlashCommands() {
176178
177 SlashCommandParser.addCommandObject(SlashCommand.fromProps({179 SlashCommandParser.addCommandObject(SlashCommand.fromProps({
178 name: 'reasoning-parse',180 name: 'reasoning-parse',
181 aliases: ['parse-reasoning'],
179 returns: 'reasoning string',182 returns: 'reasoning string',
180 helpString: t`Extracts the reasoning block from a string using the Reasoning Formatting settings.`,183 helpString: t`Extracts the reasoning block from a string using the Reasoning Formatting settings.`,
181 namedArgumentList: [184 namedArgumentList: [
public/scripts/textgen-models.js+6 -0
@@ -54,6 +54,12 @@ const OPENROUTER_PROVIDERS = [
54 'xAI',54 'xAI',
55 'Cloudflare',55 'Cloudflare',
56 'SF Compute',56 'SF Compute',
57 'Minimax',
58 'Nineteen',
59 'Liquid',
60 'Nebius',
61 'Chutes',
62 'Kluster',
57 '01.AI',63 '01.AI',
58 'HuggingFace',64 'HuggingFace',
59 'Mancer',65 'Mancer',