diff --git a/.eslintrc.cjs b/.eslintrc.cjs index bcb7db18b..d096d7b51 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -102,8 +102,8 @@ module.exports = { // These rules should eventually be enabled. 'no-async-promise-executor': 'off', 'no-inner-declarations': 'off', - 'brace-style': 'off', // Additional formatting rules based on codebase conventions + 'brace-style': ['error', '1tbs', { allowSingleLine: true }], 'array-bracket-spacing': ['error', 'never'], 'computed-property-spacing': ['error', 'never'], 'block-spacing': ['error', 'always'], diff --git a/plugins.js b/plugins.js index 92b04977c..5e0e9e901 100644 --- a/plugins.js +++ b/plugins.js @@ -89,8 +89,7 @@ async function installPlugin(pluginName) { await git().clone(pluginName, pluginPath, { '--depth': 1 }); console.log(`Plugin ${color.green(pluginName)} installed to ${color.cyan(pluginPath)}`); - } - catch (error) { + } catch (error) { console.error(color.red(`Failed to install plugin ${pluginName}`), error); } } diff --git a/public/script.js b/public/script.js index d74301184..da4e87e26 100644 --- a/public/script.js +++ b/public/script.js @@ -512,8 +512,7 @@ export function reloadMarkdownProcessor() { export function getCurrentChatId() { if (selected_group) { return groups.find(x => x.id == selected_group)?.chat_id; - } - else if (this_chid !== undefined) { + } else if (this_chid !== undefined) { return characters[this_chid]?.chat; } } @@ -910,8 +909,7 @@ function getCharacterBlock(item, id) { const description = item.data?.creator_notes || ''; if (description) { template.find('.ch_description').text(description); - } - else { + } else { template.find('.ch_description').hide(); } @@ -919,8 +917,7 @@ function getCharacterBlock(item, id) { const auxFieldValue = (item.data && item.data[auxFieldName]) || ''; if (auxFieldValue) { template.find('.character_version').text(auxFieldValue); - } - else { + } else { template.find('.character_version').hide(); } @@ -1364,16 +1361,14 @@ export async function replaceCurrentChat() { const chats = Object.values(await chatsResponse.json()); chats.sort((a, b) => sortMoments(timestampToMoment(a.last_mes), timestampToMoment(b.last_mes))); - // pick existing chat if (chats.length && typeof chats[0] === 'object') { + // pick existing chat characters[this_chid].chat = chats[0].file_name.replace('.jsonl', ''); $('#selected_chat_pole').val(characters[this_chid].chat); saveCharacterDebounced(); await getChat(); - } - - // start new chat - else { + } else { + // start new chat characters[this_chid].chat = `${name2} - ${humanizedDateTime()}`; $('#selected_chat_pole').val(characters[this_chid].chat); saveCharacterDebounced(); @@ -1640,11 +1635,9 @@ export async function reloadCurrentChatUnsafe() { if (selected_group) { await getGroupChat(selected_group, true); - } - else if (this_chid !== undefined) { + } else if (this_chid !== undefined) { await getChat(); - } - else { + } else { resetChatState(); restoreNeutralChat(); await getCharacters(); @@ -1870,32 +1863,16 @@ export function messageFormatting(mes, ch_name, isSystem, isUser, messageId, san /** * Inserts or replaces an SVG icon adjacent to the provided message's timestamp. * - * If the `extra.api` is "openai" and `extra.model` contains the substring "claude", - * the function fetches the "claude.svg". Otherwise, it fetches the SVG named after - * the value in `extra.api`. - * * @param {JQuery} mes - The message element containing the timestamp where the icon should be inserted or replaced. * @param {ChatMessageExtra} extra - Contains the API and model details. */ function insertSVGIcon(mes, extra) { // Determine the SVG filename - let modelName; + let modelName = extra?.api || ''; - // Claude on OpenRouter or Anthropic - if (extra.api === 'openai' && extra.model?.toLowerCase().includes('claude')) { - modelName = 'claude'; - } - // OpenAI on OpenRouter - else if (extra.api === 'openai' && extra.model?.toLowerCase().includes('openai')) { - modelName = 'openai'; - } - // OpenRouter website model or other models - else if (extra.api === 'openai' && (extra.model === null || extra.model?.toLowerCase().includes('/'))) { - modelName = 'openrouter'; - } - // Everything else - else { - modelName = extra.api; + // If there's no API information, we can't determine which SVG to use + if (!modelName) { + return; } const insertOrReplaceSVG = (image, className, targetSelector, insertBefore) => { @@ -3755,8 +3732,7 @@ class StreamingProcessor { } const seconds = (timestamps[timestamps.length - 1] - timestamps[0]) / 1000; console.warn(`Stream stats: ${timestamps.length} tokens, ${seconds.toFixed(2)} seconds, rate: ${Number(timestamps.length / seconds).toFixed(2)} TPS`); - } - catch (err) { + } catch (err) { // in the case of a self-inflicted abort, we have already cleaned up if (!this.isFinished) { console.error(err); @@ -4236,8 +4212,7 @@ export async function Generate(type, { automatic_trigger, force_name2, quiet_pro textareaText = ''; if (chat.length && lastMessage.is_user) { //do nothing? why does this check exist? - } - else if (type !== 'quiet' && type !== 'swipe' && !isImpersonate && !dryRun && !depth && chat.length) { + } else if (type !== 'quiet' && type !== 'swipe' && !isImpersonate && !dryRun && !depth && chat.length) { deleteItemizedPromptForMessage(chat.length - 1); chat.length = chat.length - 1; await removeLastMessage(); @@ -4282,12 +4257,10 @@ export async function Generate(type, { automatic_trigger, force_name2, quiet_pro // If user message contains no text other than bias - send as a system message if (messageBias && !removeMacros(textareaText)) { sendSystemMessage(system_message_types.GENERIC, ' ', { bias: messageBias }); - } - else { + } else { await sendMessageAsUser(textareaText, messageBias); } - } - else if (textareaText == '' && !automatic_trigger && !dryRun && [undefined, 'normal'].includes(type) && main_api == 'openai' && oai_settings.send_if_empty.trim().length > 0 && !depth) { + } else if (textareaText == '' && !automatic_trigger && !dryRun && [undefined, 'normal'].includes(type) && main_api == 'openai' && oai_settings.send_if_empty.trim().length > 0 && !depth) { // Use send_if_empty if set and the user message is empty. Only when sending messages normally await sendMessageAsUser(oai_settings.send_if_empty.trim(), messageBias); } @@ -4406,8 +4379,7 @@ export async function Generate(type, { automatic_trigger, force_name2, quiet_pro if (main_api == 'koboldhorde' && (horde_settings.auto_adjust_context_length || horde_settings.auto_adjust_response_length)) { try { adjustedParams = await adjustHordeGenerationParams(max_context, amount_gen); - } - catch { + } catch { unblockGeneration(type); return Promise.resolve(); } @@ -4585,8 +4557,7 @@ export async function Generate(type, { automatic_trigger, force_name2, quiet_pro // When continuing generation of previous output, last user message precedes the message to continue if (isContinue) { coreChat.splice(coreChat.length - 1, 0, { mes: jailbreak, is_user: true }); - } - else { + } else { // This operation will result in the injectedIndices indexes being off by one coreChat.push({ mes: jailbreak, is_user: true }); // Add +1 to the elements to correct for the new PHI/Jailbreak message. @@ -5207,8 +5178,7 @@ export async function Generate(type, { automatic_trigger, force_name2, quiet_pro if (itemizedIndex !== -1) { itemizedPrompts[itemizedIndex] = additionalPromptStuff; - } - else { + } else { itemizedPrompts.push(additionalPromptStuff); } @@ -5350,17 +5320,14 @@ export async function Generate(type, { automatic_trigger, force_name2, quiet_pro if (isImpersonate) { $('#send_textarea').val(getMessage)[0].dispatchEvent(new Event('input', { bubbles: true })); await eventSource.emit(event_types.IMPERSONATE_READY, getMessage); - } - else if (type == 'quiet') { + } else if (type == 'quiet') { unblockGeneration(type); return getMessage; - } - else { + } else { // Without streaming we'll be having a full message on continuation. Treat it as a last chunk. if (originalType !== 'continue') { ({ type, getMessage } = await saveReply({ type, getMessage, title, swipes, reasoning, imageUrls, reasoningSignature })); - } - else { + } else { ({ type, getMessage } = await saveReply({ type: 'appendFinal', getMessage, title, swipes, reasoning, imageUrls, reasoningSignature })); } @@ -5829,9 +5796,7 @@ function addChatsPreamble(mesSendString) { function addChatsSeparator(mesSendString) { if (power_user.context.chat_start) { return substituteParams(power_user.context.chat_start + '\n') + mesSendString; - } - - else { + } else { return mesSendString; } } @@ -7055,16 +7020,13 @@ export async function renameCharacter(name = null, { silent = false, renameChats } else { toastr.success(t`Character renamed!`, t`Rename Character`); } - } - else { + } else { throw new Error('Newly renamed character was lost?'); } - } - else { + } else { throw new Error('Could not rename the character'); } - } - catch (error) { + } catch (error) { // Reloading to prevent data corruption if (!silent) await Popup.show.text(t`Rename Character`, t`Something went wrong. The page will be reloaded.`); else toastr.error(t`Something went wrong. The page will be reloaded.`, t`Rename Character`); @@ -7356,8 +7318,7 @@ export function buildAvatarList(block, entities, { templateId = 'inline_avatar_t avatarTemplate.append(grpTemplate.children()); avatarTemplate.attr({ 'data-grid': id, 'data-chid': null }); avatarTemplate.attr('title', `[Group] ${entity.item.name}`); - } - else if (entity.type === 'persona') { + } else if (entity.type === 'persona') { avatarTemplate.attr({ 'data-pid': id, 'data-chid': null }); avatarTemplate.find('img').attr('src', getThumbnailUrl('persona', entity.item.avatar)); avatarTemplate.attr('title', `[Persona] ${entity.item.name}\nFile: ${entity.item.avatar}`); @@ -8099,8 +8060,7 @@ async function messageEditCancel(messageId = this_edit_mes_id) { await eventSource.emit(event_types.MESSAGE_UPDATED, messageId); if (messageId == this_edit_mes_id) { this_edit_mes_id = undefined; - } - else { + } else { console.warn(`The message editor was closed on message #${messageId} while #${this_edit_mes_id} is being edited.`); } @@ -8134,8 +8094,7 @@ async function messageEditMove(sourceId, targetId) { if (sourceId <= targetId) { sourceMessageDiv.insertAfter(targetMessageDiv); - } - else { + } else { sourceMessageDiv.insertBefore(targetMessageDiv); } @@ -8951,11 +8910,13 @@ export function isMessageSwipeable(messageId, message = undefined) { //User messages are not swipeable. !message.is_user ) - ) - //The message is swipeable. - { return true; } - //The message is not swipeable. - else { return false; } + ) { + // The message is swipeable. + return true; + } else { + // The message is not swipeable. + return false; + } } /** @@ -9145,8 +9106,7 @@ export async function saveChatConditional() { if (selected_group) { await saveGroupChat(selected_group, true); - } - else { + } else { await saveChat(); } @@ -9252,8 +9212,7 @@ export function closeMessageEditor(what = 'all') { export function setGenerationProgress(progress) { if (!progress) { $('#send_textarea').css({ 'background': '', 'transition': '' }); - } - else { + } else { $('#send_textarea').css({ 'background': `linear-gradient(90deg, #008000d6 ${progress}%, transparent ${progress}%)`, 'transition': '0.25s ease-in-out', @@ -9767,8 +9726,7 @@ export async function swipe(event, direction, { source, repeated, message = chat document.body.dataset.swiping = 'true'; await generation; } - } - catch (error) { + } catch (error) { console.warn(`Swipe failed, Swiping back. ${error}`); } @@ -9804,8 +9762,7 @@ export async function swipe(event, direction, { source, repeated, message = chat //Update the chat. await loadFromSwipeId(mesId, chat[mesId].swipe_id); await redisplayChat({ startIndex: mesId }); - } - else { + } else { await Popup.show.confirm( t`ERROR: syncSwipeToMes has failed to revert the failed ${direction} swipe on message #${mesId}.`, t`

After you click OK, the chat will be reloaded to prevent data corruption.

`, @@ -10104,9 +10061,8 @@ export async function swipe(event, direction, { source, repeated, message = chat } await standardSwipe(newSwipeId); return; - } - //If swiping right. - else if (direction === SWIPE_DIRECTION.RIGHT) { + } else if (direction === SWIPE_DIRECTION.RIGHT) { + //If swiping right. // make new slot in array if (forceSwipeId == null) newSwipeId++; @@ -10133,18 +10089,16 @@ export async function swipe(event, direction, { source, repeated, message = chat chat[mesId].swipe_id = originalSwipeId; await endSwipe(); return; - } - //Regenerate the message - else if (overswipe == OVERSWIPE_BEHAVIOR.REGENERATE) { + } else if (overswipe == OVERSWIPE_BEHAVIOR.REGENERATE) { + //Regenerate the message clearMessageData(chat[mesId]); let run_generate = true; //Generate. await animateSwipe(run_generate); await endSwipe(); return; - } - // Loop to the first swipe. - else if (overswipe == OVERSWIPE_BEHAVIOR.LOOP || overswipe == OVERSWIPE_BEHAVIOR.PRISTINE_GREETING) { + } else if (overswipe == OVERSWIPE_BEHAVIOR.LOOP || overswipe == OVERSWIPE_BEHAVIOR.PRISTINE_GREETING) { + // Loop to the first swipe. newSwipeId = 0; } } @@ -10363,8 +10317,7 @@ export async function doNewChat({ deleteCurrentChat = false } = {}) { if (selected_group) { await createNewGroupChat(selected_group); if (deleteCurrentChat) await deleteGroupChat(selected_group, chat_file_for_del, { jumpToNewChat: false }); // don't jump, new chat was already created and jumped to above - } - else { + } else { //RossAscends: added character name to new chat filenames and replaced Date.now() with humanizedDateTime; chat_metadata = {}; characters[this_chid].chat = `${name2} - ${humanizedDateTime()}`; @@ -10427,8 +10380,7 @@ export async function renameGroupOrCharacterChat({ characterId, groupId, oldFile if (groupId) { await renameGroupChat(groupId, oldFileName, newFileName); - } - else if (characterId !== undefined && String(characterId) === String(this_chid) && characters[characterId]?.chat === oldFileName) { + } else if (characterId !== undefined && String(characterId) === String(this_chid) && characters[characterId]?.chat === oldFileName) { characters[characterId].chat = newFileName; $('#selected_chat_pole').val(characters[characterId].chat); await createOrEditCharacter(); @@ -11080,8 +11032,7 @@ jQuery(async function () { if (popup_type == 'input') { dialogueResolve($('#dialogue_popup_input').val()); $('#dialogue_popup_input').val(''); - } - else { + } else { dialogueResolve(true); } @@ -11316,9 +11267,7 @@ jQuery(async function () { }); } } - } - - else if (id == 'option_start_new_chat') { + } else if (id == 'option_start_new_chat') { if ((selected_group || this_chid !== undefined) && !is_send_press) { let deleteCurrentChat = false; const result = await Popup.show.confirm(t`Start new chat?`, await renderTemplateAsync('newChatConfirm'), { @@ -11334,9 +11283,7 @@ jQuery(async function () { const alreadyInTempChat = this_chid === undefined && name2 === neutralCharacterName; await newAssistantChat({ temporary: alreadyInTempChat }); } - } - - else if (id == 'option_regenerate') { + } else if (id == 'option_regenerate') { //Attempting to regenerate a user message will instead generate a new message. if (chat.length && chat.length - 1 === this_edit_mes_id && chat[this_edit_mes_id]?.is_user == false) { toastr.warning(t`Finish the edit before starting a generation.`, t`You cannot regenerate the message you are editing.`); @@ -11345,22 +11292,17 @@ jQuery(async function () { if (is_send_press == false) { if (selected_group) { regenerateGroup(); - } - else { + } else { is_send_press = true; Generate('regenerate', buildOrFillAdditionalArgs()); } } - } - - else if (id == 'option_impersonate') { + } else if (id == 'option_impersonate') { if (is_send_press == false || fromSlashCommand) { is_send_press = true; Generate('impersonate', buildOrFillAdditionalArgs()); } - } - - else if (id == 'option_continue') { + } else if (id == 'option_continue') { if (swipeState == SWIPE_STATE.EDITING) { toastr.warning(t`Confirm the edit to start a generation.`, t`You cannot send a message during a swipe-edit.`); return; @@ -11374,17 +11316,11 @@ jQuery(async function () { is_send_press = true; Generate('continue', buildOrFillAdditionalArgs()); } - } - - else if (id == 'option_delete_mes') { + } else if (id == 'option_delete_mes') { setTimeout(() => openMessageDelete(fromSlashCommand), animation_duration); - } - - else if (id == 'option_close_chat') { + } else if (id == 'option_close_chat') { await closeCurrentChat(); - } - - else if (id === 'option_settings') { + } else if (id === 'option_settings') { //var checkBox = document.getElementById("waifuMode"); var topBar = document.getElementById('top-bar'); var topSettingsHolder = document.getElementById('top-settings-holder'); diff --git a/public/scripts/RossAscends-mods.js b/public/scripts/RossAscends-mods.js index b841b00f4..75b85bca1 100644 --- a/public/scripts/RossAscends-mods.js +++ b/public/scripts/RossAscends-mods.js @@ -379,8 +379,7 @@ function RA_autoconnect(PrevApi) { || (textgen_settings.type === textgen_types.FEATHERLESS && secret_state[SECRET_KEYS.FEATHERLESS]) ) { $('#api_button_textgenerationwebui').trigger('click'); - } - else if (isValidUrl(getTextGenServer())) { + } else if (isValidUrl(getTextGenServer())) { $('#api_button_textgenerationwebui').trigger('click'); } break; @@ -1053,8 +1052,7 @@ export function initRossMods() { $('#send_textarea').trigger('focus'); reasoningMesDone.trigger('click'); return; - } - else if (is_send_press == false) { + } else if (is_send_press == false) { const skipConfirmKey = 'RegenerateWithCtrlEnter'; const skipConfirm = accountStorage.getItem(skipConfirmKey) === 'true'; function doRegenerate() { diff --git a/public/scripts/authors-note.js b/public/scripts/authors-note.js index 4fb21d8ec..34adf6c7a 100644 --- a/public/scripts/authors-note.js +++ b/public/scripts/authors-note.js @@ -231,11 +231,9 @@ function onExtensionFloatingCharaPromptInput() { !existingCharaNote.useChara ) { extension_settings.note.chara.splice(existingCharaNoteIndex, 1); - } - else if (extension_settings.note.chara && existingCharaNote) { + } else if (extension_settings.note.chara && existingCharaNote) { Object.assign(existingCharaNote, tempCharaNote); - } - else if (avatarName && tempPrompt.length > 0) { + } else if (avatarName && tempPrompt.length > 0) { if (!extension_settings.note.chara) { extension_settings.note.chara = []; } diff --git a/public/scripts/bookmarks.js b/public/scripts/bookmarks.js index e238376c8..4f2a4eca3 100644 --- a/public/scripts/bookmarks.js +++ b/public/scripts/bookmarks.js @@ -111,12 +111,10 @@ function getMainChatName() { if (chat_metadata) { if (chat_metadata.main_chat) { return chat_metadata.main_chat; - } - // groups didn't support bookmarks before chat metadata was introduced - else if (selected_group) { + } else if (selected_group) { + // groups didn't support bookmarks before chat metadata was introduced return null; - } - else if (characters[this_chid].chat && characters[this_chid].chat.includes(bookmarkNameToken)) { + } else if (characters[this_chid].chat && characters[this_chid].chat.includes(bookmarkNameToken)) { const tokenIndex = characters[this_chid].chat.lastIndexOf(bookmarkNameToken); chat_metadata.main_chat = characters[this_chid].chat.substring(0, tokenIndex).trim(); return chat_metadata.main_chat; @@ -146,8 +144,7 @@ export function showBookmarksButtons() { $('#option_back_to_main').hide(); $('#option_new_bookmark').show(); } - } - catch { + } catch { $('#option_back_to_main').hide(); $('#option_new_bookmark').hide(); $('#option_convert_to_group').hide(); diff --git a/public/scripts/chats.js b/public/scripts/chats.js index e5c783c61..fff15a63f 100644 --- a/public/scripts/chats.js +++ b/public/scripts/chats.js @@ -832,11 +832,9 @@ async function openExternalMediaOverridesDialog() { if (power_user.external_media_allowed_overrides.includes(entityId)) { template.find('#forbid_media_override_allowed').prop('checked', true); - } - else if (power_user.external_media_forbidden_overrides.includes(entityId)) { + } else if (power_user.external_media_forbidden_overrides.includes(entityId)) { template.find('#forbid_media_override_forbidden').prop('checked', true); - } - else { + } else { template.find('#forbid_media_override_global').prop('checked', true); } @@ -1678,8 +1676,7 @@ async function runScraper(scraperId, target, callback) { toastr.success(t`Scraped ${files.length} files from ${scraperId} to ${target}.`, t`Data Bank`); callback(); - } - catch (error) { + } catch (error) { console.error('Scraping failed', error); toastr.error(t`Check browser console for details.`, t`Scraping failed`); } diff --git a/public/scripts/dynamic-styles.js b/public/scripts/dynamic-styles.js index 03ed7ac40..56edd414d 100644 --- a/public/scripts/dynamic-styles.js +++ b/public/scripts/dynamic-styles.js @@ -73,8 +73,7 @@ function applyDynamicFocusStyles(styleSheet, { fromExtension = false } = {}) { const isHover = selector.includes(':hover'), isFocus = selector.includes(':focus'); if (isHover && isFocus) { // We currently do nothing here. Rules containing both hover and focus are very specific and should never be automatically touched - } - else if (isHover) { + } else if (isHover) { const baseSelector = selector.replace(/:hover/g, PLACEHOLDER).trim(); hoverRules.push({ baseSelector, rule, wrappers: [...wrappers] }); } else if (isFocus) { diff --git a/public/scripts/extensions.js b/public/scripts/extensions.js index b793ca3f6..141579c39 100644 --- a/public/scripts/extensions.js +++ b/public/scripts/extensions.js @@ -278,12 +278,10 @@ async function discoverExtensions() { if (response.ok) { const extensions = await response.json(); return extensions; - } - else { + } else { return []; } - } - catch (err) { + } catch (err) { console.error(err); return []; } @@ -627,8 +625,7 @@ async function connectToApi(baseUrl) { } updateStatus(getExtensionsResult.ok); - } - catch { + } catch { updateStatus(false); } } diff --git a/public/scripts/extensions/assets/index.js b/public/scripts/extensions/assets/index.js index 4dad9ac15..e72fc549f 100644 --- a/public/scripts/extensions/assets/index.js +++ b/public/scripts/extensions/assets/index.js @@ -82,8 +82,7 @@ function getAuthorFromUrl(url) { result.name = pathSegments[0]; result.url = `${parsedUrl.protocol}//${parsedUrl.hostname}/${result.name}`; } - } - catch (error) { + } catch (error) { console.debug(DEBUG_PREFIX, 'Error parsing URL:', error); } @@ -199,8 +198,7 @@ async function downloadAssetsList(url) { label.removeClass('fa-trash'); label.removeClass('redOverlayGlow'); }); - } - else { + } else { console.debug(DEBUG_PREFIX, 'not installed, unchecked'); element.prop('checked', false); element.on('click', assetInstall); @@ -346,8 +344,7 @@ async function installAsset(url, assetType, filename) { console.debug(DEBUG_PREFIX, 'Character downloaded.'); } } - } - catch (err) { + } catch (err) { console.log(err); return []; } @@ -373,8 +370,7 @@ async function deleteAsset(assetType, filename) { if (result.ok) { console.debug(DEBUG_PREFIX, 'Deletion success.'); } - } - catch (err) { + } catch (err) { console.log(err); return []; } @@ -427,8 +423,7 @@ async function updateCurrentAssets() { headers: getRequestHeaders({ omitContentType: true }), }); currentAssets = result.ok ? (await result.json()) : {}; - } - catch (err) { + } catch (err) { console.log(err); } console.debug(DEBUG_PREFIX, 'Current assets found:', currentAssets); @@ -490,8 +485,7 @@ jQuery(async () => { connectButton.addClass('fa-plug-circle-exclamation'); connectButton.removeClass('redOverlayGlow'); } - } - else { + } else { console.debug(DEBUG_PREFIX, 'Connection refused by user'); } }); diff --git a/public/scripts/extensions/caption/index.js b/public/scripts/extensions/caption/index.js index 8c63c2b98..d10014b0c 100644 --- a/public/scripts/extensions/caption/index.js +++ b/public/scripts/extensions/caption/index.js @@ -68,8 +68,7 @@ async function setImageIcon() { const sendButton = $('#send_picture .extensionsMenuExtensionButton'); sendButton.addClass('fa-image'); sendButton.removeClass('fa-hourglass-half'); - } - catch (error) { + } catch (error) { console.log(error); } } @@ -82,8 +81,7 @@ async function setSpinnerIcon() { const sendButton = $('#send_picture .extensionsMenuExtensionButton'); sendButton.removeClass('fa-image'); sendButton.addClass('fa-hourglass-half'); - } - catch (error) { + } catch (error) { console.log(error); } } @@ -376,14 +374,12 @@ async function getCaptionForFile(file, prompt, quiet) { await sendCaptionedMessage(caption, imagePath, file.type); } return caption; - } - catch (error) { + } catch (error) { const errorMessage = error.message || 'Unknown error'; toastr.error(errorMessage, 'Failed to caption'); console.error(error); return ''; - } - finally { + } finally { setImageIcon(); } } diff --git a/public/scripts/extensions/expressions/index.js b/public/scripts/extensions/expressions/index.js index a2f627882..185bea349 100644 --- a/public/scripts/extensions/expressions/index.js +++ b/public/scripts/extensions/expressions/index.js @@ -363,8 +363,7 @@ export async function visualNovelUpdateLayers(container) { if (power_user.reduced_motion) { element.css('left', currentPosition + 'px'); requestAnimationFrame(() => resolve()); - } - else { + } else { element.animate({ left: currentPosition + 'px' }, 500, () => { resolve(); }); @@ -525,8 +524,7 @@ async function moduleWorker({ newChat = false } = {}) { } return; - } - else { + } else { // force reload expressions list on connect to API if (offlineMode.is(':visible')) { expressionsList = null; @@ -599,11 +597,9 @@ async function moduleWorker({ newChat = false } = {}) { } await sendExpressionCall(spriteFolderName, expression, { force: force, vnMode: vnMode }); - } - catch (error) { + } catch (error) { console.log(error); - } - finally { + } finally { inApiCall = false; lastCharacter = context.groupId || context.characterId; lastMessage = currentLastMessage.mes; @@ -631,8 +627,7 @@ function getFolderNameByMessage(message) { if (context.groupId) { avatarPath = message.original_avatar || context.characters.find(x => message.force_avatar && message.force_avatar.includes(encodeURIComponent(x.avatar)))?.avatar; - } - else if (context.characterId !== undefined) { + } else if (context.characterId !== undefined) { avatarPath = getCharaFilename(); } @@ -1303,8 +1298,7 @@ async function getSpritesList(name) { } return grouped; - } - catch (err) { + } catch (err) { console.log(err); return []; } @@ -1476,9 +1470,8 @@ function chooseSpriteForExpression(spriteFolderName, expression, { prevExpressio const searched = sprite.files.find(x => x.fileName === overrideSpriteFile); if (searched) spriteFile = searched; else toastr.warning(t`Couldn't find sprite file ${overrideSpriteFile} for expression ${expression}.`, t`Sprite Not Found`); - } - // Else calculate next expression, if multiple are allowed - else if (extension_settings.expressions.allowMultiple && sprite.files.length > 1) { + } else if (extension_settings.expressions.allowMultiple && sprite.files.length > 1) { + // Else calculate next expression, if multiple are allowed let possibleFiles = sprite.files; if (extension_settings.expressions.rerollIfSame) { possibleFiles = possibleFiles.filter(x => !prevExpressionSrc || x.imageSrc !== prevExpressionSrc); @@ -1593,8 +1586,7 @@ async function setExpression(spriteFolderName, expression, { force = false, over } console.info('Expression set', { expression: spriteFile.expression, file: spriteFile.fileName }); - } - else { + } else { img.attr('data-sprite-folder-name', spriteFolderName); img.off('error'); @@ -1844,19 +1836,16 @@ async function onClickExpressionUpload(event) { const fileNameWithoutExtension = withoutExtension(file.name); const validFileName = validateExpressionSpriteName(expression, fileNameWithoutExtension); - // If there is no expression yet and it's a valid expression, we just take it if (!clickedFileName && validFileName) { + // If there is no expression yet and it's a valid expression, we just take it spriteName = fileNameWithoutExtension; - } - // If the filename matches the one that was clicked, we just take it and replace it - else if (clickedFileName === file.name) { + } else if (clickedFileName === file.name) { + // If the filename matches the one that was clicked, we just take it and replace it spriteName = fileNameWithoutExtension; - } - // If it's a valid filename and there's no existing file with the same name, we just take it - else if (!matchesExisting && validFileName) { + } else if (!matchesExisting && validFileName) { + // If it's a valid filename and there's no existing file with the same name, we just take it spriteName = fileNameWithoutExtension; - } - else { + } else { /** @type {import('../../popup.js').CustomPopupButton[]} */ const customButtons = []; if (clickedFileName) { diff --git a/public/scripts/extensions/memory/index.js b/public/scripts/extensions/memory/index.js index d239e3f22..7e38c004f 100644 --- a/public/scripts/extensions/memory/index.js +++ b/public/scripts/extensions/memory/index.js @@ -881,11 +881,9 @@ async function summarizeChatExtras(context) { } setMemoryContext(summary, true); - } - catch (error) { + } catch (error) { console.log(error); - } - finally { + } finally { inApiCall = false; } } diff --git a/public/scripts/extensions/quick-reply/src/QuickReply.js b/public/scripts/extensions/quick-reply/src/QuickReply.js index acb1eb78a..6ad522869 100644 --- a/public/scripts/extensions/quick-reply/src/QuickReply.js +++ b/public/scripts/extensions/quick-reply/src/QuickReply.js @@ -398,8 +398,7 @@ export class QuickReply { if (this.icon) { icon.classList.add('fa-solid'); icon.classList.add(this.icon); - } - else { + } else { icon.textContent = '…'; } icon.addEventListener('click', async () => { diff --git a/public/scripts/extensions/stable-diffusion/index.js b/public/scripts/extensions/stable-diffusion/index.js index a0c593547..eee65c392 100644 --- a/public/scripts/extensions/stable-diffusion/index.js +++ b/public/scripts/extensions/stable-diffusion/index.js @@ -3021,8 +3021,7 @@ async function generatePicture(initiator, args, trigger, message, callback) { const errorText = 'SD prompt text generation failed. ' + reason; toastr.error(errorText, 'Image Generation'); throw new Error(errorText); - } - finally { + } finally { $(stopButton).hide(); restoreOriginalDimensions(dimensions); eventSource.removeListener(CUSTOM_STOP_EVENT, stopListener); diff --git a/public/scripts/extensions/tts/coqui.js b/public/scripts/extensions/tts/coqui.js index b2186ad4b..f4e694820 100644 --- a/public/scripts/extensions/tts/coqui.js +++ b/public/scripts/extensions/tts/coqui.js @@ -497,8 +497,7 @@ class CoquiTtsProvider { const language_label = JSON.stringify(model_settings.languages[i]).replaceAll('"', ''); $('#coqui_api_model_settings_language').append(new Option(language_label, i)); } - } - else { + } else { $('#coqui_api_model_settings_language').hide(); } @@ -516,8 +515,7 @@ class CoquiTtsProvider { const speaker_label = JSON.stringify(model_settings.speakers[i]).replaceAll('"', ''); $('#coqui_api_model_settings_speaker').append(new Option(speaker_label, i)); } - } - else { + } else { $('#coqui_api_model_settings_speaker').hide(); } @@ -536,15 +534,13 @@ class CoquiTtsProvider { if (model_state == 'installed') { $('#coqui_api_model_install_status').text('Model already installed on extras server'); $('#coqui_api_model_install_button').hide(); - } - else { + } else { let action = 'download'; if (model_state == 'corrupted') { action = 'repare'; //toastr.error("Click install button to reinstall the model "+$("#coqui_api_model_name").find(":selected").text(), DEBUG_PREFIX+" corrupted model install", { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true }); $('#coqui_api_model_install_status').text('Model found but incomplete try install again (maybe still downloading)'); // (remove and download again) - } - else { + } else { toastr.info('Click download button to install the model ' + $('#coqui_api_model_name').find(':selected').text(), DEBUG_PREFIX + ' model not installed', { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true }); $('#coqui_api_model_install_status').text('Model not found on extras server'); } diff --git a/public/scripts/extensions/tts/index.js b/public/scripts/extensions/tts/index.js index 95c03643f..4c6f56068 100644 --- a/public/scripts/extensions/tts/index.js +++ b/public/scripts/extensions/tts/index.js @@ -346,8 +346,7 @@ globalThis.tts_preview = function (id) { if (audio instanceof HTMLAudioElement && !$(audio).data('disabled')) { audio.play(); - } - else { + } else { ttsProvider.previewTtsVoice(id); } }; @@ -1452,8 +1451,7 @@ async function initVoiceMapInternal(unrestricted) { let voiceIdsFromProvider; try { voiceIdsFromProvider = await ttsProvider.fetchTtsVoiceObjects(); - } - catch { + } catch { toastr.error('TTS Provider failed to return voice ids.'); } diff --git a/public/scripts/extensions/tts/system.js b/public/scripts/extensions/tts/system.js index f9058b79f..3405c778e 100644 --- a/public/scripts/extensions/tts/system.js +++ b/public/scripts/extensions/tts/system.js @@ -29,8 +29,7 @@ var speechUtteranceChunker = function (utt, settings, callback) { callback(); } }); - } - else { + } else { var chunkLength = (settings && settings.chunkLength) || 160; var pattRegex = new RegExp('^[\\s\\S]{' + Math.floor(chunkLength / 2) + ',' + chunkLength + '}[.!?,]{1}|^[\\s\\S]{1,' + chunkLength + '}$|^[\\s\\S]{1,' + chunkLength + '} '); var chunkArr = txt.match(pattRegex); diff --git a/public/scripts/extensions/tts/vits.js b/public/scripts/extensions/tts/vits.js index 4cfa72953..72d8c71b1 100644 --- a/public/scripts/extensions/tts/vits.js +++ b/public/scripts/extensions/tts/vits.js @@ -325,8 +325,7 @@ class VITSTtsProvider { if (streaming) { params.append('streaming', streaming); // Streaming response only supports MP3 - } - else { + } else { params.append('format', this.settings.format); } params.append('lang', lang ?? this.settings.lang); @@ -337,8 +336,7 @@ class VITSTtsProvider { if (model_type == this.modelTypes.W2V2_VITS) { params.append('emotion', this.settings.dim_emotion); - } - else if (model_type == this.modelTypes.BERT_VITS2) { + } else if (model_type == this.modelTypes.BERT_VITS2) { params.append('sdp_ratio', this.settings.sdp_ratio); params.append('emotion', this.settings.emotion); if (this.settings.text_prompt) { diff --git a/public/scripts/extensions/vectors/index.js b/public/scripts/extensions/vectors/index.js index 949d90bae..dc0d3c6ca 100644 --- a/public/scripts/extensions/vectors/index.js +++ b/public/scripts/extensions/vectors/index.js @@ -251,8 +251,7 @@ async function summarizeExtra(element) { const data = await apiResult.json(); element.text = data.summary; } - } - catch (error) { + } catch (error) { console.log(error); return false; } @@ -938,8 +937,7 @@ function throwIfSourceInvalid() { if (!settings.alt_endpoint_url) { throw new Error('Vectors: API URL missing', { cause: 'api_url_missing' }); } - } - else { + } else { if (settings.source === 'ollama' && !textgenerationwebui_settings.server_urls[textgen_types.OLLAMA] || settings.source === 'vllm' && !textgenerationwebui_settings.server_urls[textgen_types.VLLM] || settings.source === 'koboldcpp' && !textgenerationwebui_settings.server_urls[textgen_types.KOBOLDCPP] || diff --git a/public/scripts/filters.js b/public/scripts/filters.js index 3a9eddaed..bd4888129 100644 --- a/public/scripts/filters.js +++ b/public/scripts/filters.js @@ -328,8 +328,7 @@ export class FilterHelper { // We can filter easily by checking if we have saved a score const score = _this.getScore(FILTER_TYPES.SEARCH, `${entity.type}.${entity.id}`); return score !== undefined; - } - else { + } else { // Compare insensitive and without accents return includesIgnoreCaseAndAccents(entity.item?.name, searchValue); } diff --git a/public/scripts/group-chats.js b/public/scripts/group-chats.js index 8c9f5a442..9f2e18515 100644 --- a/public/scripts/group-chats.js +++ b/public/scripts/group-chats.js @@ -173,9 +173,8 @@ async function regenerateGroup() { // for new generations after the update if ((generationId && this_generationId) && generationId !== this_generationId) { break; - } - // legacy for generations before the update - else if (lastMes.is_user || lastMes.is_system) { + } else if (lastMes.is_user || lastMes.is_system) { + // legacy for generations before the update break; } @@ -392,8 +391,7 @@ export function findGroupMemberId(arg, full = false) { console.log(`Targeting group member ${chid} (${arg}) from search result`, result[0]); return !full ? chid : { ...{ id: chid }, ...result[0].item }; - } - else { + } else { const memberAvatar = group.members[index]; if (memberAvatar === undefined) { @@ -744,8 +742,7 @@ export async function renameGroupMember(oldAvatar, newAvatar, newName) { } } } - } - catch (error) { + } catch (error) { console.log(`An error during renaming the character ${newName} in group: ${group.name}`); console.error(error); } @@ -1011,28 +1008,22 @@ async function generateGroupWrapper(byAutoMode, type = null, params = {}) { if (activatedMembers.length === 0) { activatedMembers = activateListOrder(group.members.slice(0, 1)); } - } - else if (type === 'swipe' || type === 'continue') { + } else if (type === 'swipe' || type === 'continue') { activatedMembers = activateSwipe(group.members, { allowSystem: false }); if (activatedMembers.length === 0) { toastr.warning(t`Deleted group member swiped. To get a reply, add them back to the group.`); throw new Error('Deleted group member swiped'); } - } - else if (type === 'impersonate') { + } else if (type === 'impersonate') { activatedMembers = activateImpersonate(group.members); - } - else if (activationStrategy === group_activation_strategy.NATURAL) { + } else if (activationStrategy === group_activation_strategy.NATURAL) { activatedMembers = activateNaturalOrder(enabledMembers, activationText, lastMessage, group.allow_self_responses, isUserInput); - } - else if (activationStrategy === group_activation_strategy.LIST) { + } else if (activationStrategy === group_activation_strategy.LIST) { activatedMembers = activateListOrder(enabledMembers); - } - else if (activationStrategy === group_activation_strategy.POOLED) { + } else if (activationStrategy === group_activation_strategy.POOLED) { activatedMembers = activatePooledOrder(enabledMembers, lastMessage, isUserInput); - } - else if (activationStrategy === group_activation_strategy.MANUAL && !isUserInput) { + } else if (activationStrategy === group_activation_strategy.MANUAL && !isUserInput) { activatedMembers = shuffle(enabledMembers).slice(0, 1).map(x => characters.findIndex(y => y.avatar === x)).filter(x => x !== -1); } @@ -1168,8 +1159,7 @@ function activateSwipe(members, { allowSystem = false } = {}) { break; } } - } - else { + } else { activatedNames.push(lastMessage.original_avatar); } @@ -1704,8 +1694,7 @@ function getGroupCharacterBlock(character) { const auxFieldValue = (character.data && character.data[auxFieldName]) || ''; if (auxFieldValue) { template.find('.character_version').text(auxFieldValue); - } - else { + } else { template.find('.character_version').hide(); } @@ -1875,8 +1864,7 @@ function select_group_chats(groupId, skipAnimation) { if (group) { $('#rm_group_automode_label').show(); $('#rm_button_selected_ch').children('h2').text(groupName); - } - else { + } else { $('#rm_group_automode_label').hide(); } diff --git a/public/scripts/horde.js b/public/scripts/horde.js index ada2ad77c..13ed75682 100644 --- a/public/scripts/horde.js +++ b/public/scripts/horde.js @@ -126,8 +126,7 @@ export async function getStatusHorde() { try { const hordeStatus = await checkHordeStatus(); setOnlineStatus(hordeStatus ? t`Connected` : 'no_connection'); - } - catch { + } catch { setOnlineStatus('no_connection'); } diff --git a/public/scripts/kai-settings.js b/public/scripts/kai-settings.js index ee5140838..1c25aaaaf 100644 --- a/public/scripts/kai-settings.js +++ b/public/scripts/kai-settings.js @@ -220,8 +220,7 @@ function tryParseStreamingError(response, decoded) { toastr.error(data.error.message || response.statusText, 'KoboldAI API'); throw new Error(data); } - } - catch { + } catch { // No JSON. Do nothing. } } diff --git a/public/scripts/logit-bias.js b/public/scripts/logit-bias.js index f1061def4..35ad98859 100644 --- a/public/scripts/logit-bias.js +++ b/public/scripts/logit-bias.js @@ -117,11 +117,8 @@ export function getLogitBiasListResult(biasPreset, tokenizerType, getBiasObject) if (text.startsWith('{') && text.endsWith('}')) { const tokens = getTextTokens(tokenizerType, text.slice(1, -1)); result.push(getBiasObject(entry.value, tokens)); - } - - - // Raw token ids, JSON serialized - else if (text.startsWith('[') && text.endsWith(']')) { + } else if (text.startsWith('[') && text.endsWith(']')) { + // Raw token ids, JSON serialized try { const tokens = JSON.parse(text); @@ -133,11 +130,8 @@ export function getLogitBiasListResult(biasPreset, tokenizerType, getBiasObject) } catch (err) { console.log(`Failed to parse logit bias token list: ${text}`, err); } - } - - - // Text with a leading space - else { + } else { + // Text with a leading space const biasText = ` ${text}`; const tokens = getTextTokens(tokenizerType, biasText); result.push(getBiasObject(entry.value, tokens)); diff --git a/public/scripts/macros/engine/MacroCstWalker.js b/public/scripts/macros/engine/MacroCstWalker.js index 412d4ac14..7cf87646b 100644 --- a/public/scripts/macros/engine/MacroCstWalker.js +++ b/public/scripts/macros/engine/MacroCstWalker.js @@ -1001,9 +1001,8 @@ class MacroCstWalker { endOffset: element.endOffset ?? element.startOffset, token: element, }); - } - // Handle nested CstNode (macro or argument) - else if ('children' in element) { + } else if ('children' in element) { + // Handle nested CstNode (macro or argument) const nestedChildren = element.children || {}; const nestedEnd = /** @type {IToken?} */ ((nestedChildren['Macro.End'] || [])[0]); const nestedStart = /** @type {IToken?} */ ((nestedChildren['Macro.Start'] || [])[0]); diff --git a/public/scripts/nai-settings.js b/public/scripts/nai-settings.js index 39f12fc05..6cc38760e 100644 --- a/public/scripts/nai-settings.js +++ b/public/scripts/nai-settings.js @@ -180,8 +180,7 @@ export function loadNovelPreset(preset) { $('#amount_gen').val(preset.max_length).trigger('input'); $('#max_context_unlocked').prop('checked', needsUnlock).trigger('change'); $('#max_context').val(preset.max_context).trigger('input'); - } - else { + } else { setGenerationParamsFromPreset(preset); } @@ -459,10 +458,8 @@ function getBadWordIds(banned_tokens, tokenizerType) { if (trimmed.startsWith('{') && trimmed.endsWith('}')) { const tokens = getTextTokens(tokenizerType, trimmed.slice(1, -1)); result.push(tokens); - } - - // Raw token ids, JSON serialized - else if (trimmed.startsWith('[') && trimmed.endsWith(']')) { + } else if (trimmed.startsWith('[') && trimmed.endsWith(']')) { + // Raw token ids, JSON serialized try { const tokens = JSON.parse(trimmed); @@ -474,10 +471,8 @@ function getBadWordIds(banned_tokens, tokenizerType) { } catch (err) { console.log(`Failed to parse bad word token list: ${trimmed}`, err); } - } - - // Apply permutations - else { + } else { + // Apply permutations const permutations = getBadWordPermutations(trimmed).map(t => getTextTokens(tokenizerType, t)); result.push(...permutations); } @@ -738,8 +733,7 @@ function tryParseStreamingError(response, decoded) { toastr.error(data.message || data.error?.message || response.statusText, 'NovelAI API'); throw new Error(data); } - } - catch { + } catch { // No JSON. Do nothing. } } diff --git a/public/scripts/openai.js b/public/scripts/openai.js index b71899a66..2a3c54049 100644 --- a/public/scripts/openai.js +++ b/public/scripts/openai.js @@ -495,8 +495,7 @@ async function validateReverseProxy() { try { new URL(oai_settings.reverse_proxy); - } - catch (err) { + } catch (err) { toastr.error(t`Entered reverse proxy address is not a valid URL`); setOnlineStatus('no_connection'); resultCheckStatus(); @@ -1551,8 +1550,7 @@ export function tryParseStreamingError(response, decoded, { quiet = false } = {} !quiet && toastr.error(data.detail?.error?.message || response.statusText, 'Chat Completion API'); throw new Error(data); } - } - catch { + } catch { // No JSON. Do nothing. } } @@ -2868,8 +2866,7 @@ async function sendOpenAIRequest(type, messages, signal, { jsonSchema = null } = yield { text, swipes: swipes, logprobs: parseChatCompletionLogprobs(parsed), toolCalls: toolCalls, state: state }; } }; - } - else { + } else { const data = await response.json(); checkQuotaError(data); @@ -3081,8 +3078,7 @@ async function calculateLogitBias() { }); result = await reply.json(); - } - catch (err) { + } catch (err) { result = {}; console.error(err); } @@ -3602,13 +3598,11 @@ export class ChatCompletion { if (lastMessage && shouldSquash(lastMessage)) { lastMessage.content += '\n' + message.content; lastMessage.tokens = await tokenHandler.countAsync({ role: lastMessage.role, content: lastMessage.content }); - } - else { + } else { squashedMessages.push(message); lastMessage = message; } - } - else { + } else { squashedMessages.push(message); lastMessage = message; } @@ -4242,8 +4236,7 @@ async function saveOpenAIPreset(name, settings, triggerUi = true) { Object.assign(openai_settings[value], presetBody); $(`#settings_preset_openai option[value="${value}"]`).prop('selected', true); if (triggerUi) $('#settings_preset_openai').trigger('change'); - } - else { + } else { openai_settings.push(presetBody); openai_setting_names[data.name] = openai_settings.length - 1; const option = document.createElement('option'); @@ -4692,47 +4685,33 @@ function onSettingsPresetChange() { function getMaxContextOpenAI(value) { if (oai_settings.max_context_unlocked) { return unlocked_max; - } - else if (value.startsWith('gpt-5')) { + } else if (value.startsWith('gpt-5')) { return max_400k; - } - else if (value.includes('gpt-4.1')) { + } else if (value.includes('gpt-4.1')) { return max_1mil; - } - else if (value.includes('gpt-audio')) { + } else if (value.includes('gpt-audio')) { return max_128k; - } - else if (value.startsWith('o1')) { + } else if (value.startsWith('o1')) { return max_128k; - } - else if (value.startsWith('o4') || value.startsWith('o3')) { + } else if (value.startsWith('o4') || value.startsWith('o3')) { return max_200k; - } - else if (value.includes('chatgpt-4o-latest') || value.includes('gpt-4-turbo') || value.includes('gpt-4o') || value.includes('gpt-4-1106') || value.includes('gpt-4-0125') || value.includes('gpt-4-vision')) { + } else if (value.includes('chatgpt-4o-latest') || value.includes('gpt-4-turbo') || value.includes('gpt-4o') || value.includes('gpt-4-1106') || value.includes('gpt-4-0125') || value.includes('gpt-4-vision')) { return max_128k; - } - else if (value.includes('gpt-3.5-turbo-1106')) { + } else if (value.includes('gpt-3.5-turbo-1106')) { return max_16k; - } - else if (['gpt-4', 'gpt-4-0314', 'gpt-4-0613'].includes(value)) { + } else if (['gpt-4', 'gpt-4-0314', 'gpt-4-0613'].includes(value)) { return max_8k; - } - else if (['gpt-4-32k', 'gpt-4-32k-0314', 'gpt-4-32k-0613'].includes(value)) { + } else if (['gpt-4-32k', 'gpt-4-32k-0314', 'gpt-4-32k-0613'].includes(value)) { return max_32k; - } - else if (value.includes('gpt-realtime')) { + } else if (value.includes('gpt-realtime')) { return max_32k; - } - else if (['gpt-3.5-turbo-16k', 'gpt-3.5-turbo-16k-0613'].includes(value)) { + } else if (['gpt-3.5-turbo-16k', 'gpt-3.5-turbo-16k-0613'].includes(value)) { return max_16k; - } - else if (value == 'code-davinci-002') { + } else if (value == 'code-davinci-002') { return max_8k; - } - else if (['text-curie-001', 'text-babbage-001', 'text-ada-001'].includes(value)) { + } else if (['text-curie-001', 'text-babbage-001', 'text-ada-001'].includes(value)) { return max_2k; - } - else { + } else { // default to gpt-3 (4095 tokens) return max_4k; } @@ -5269,8 +5248,7 @@ async function onModelChange() { if (value && (value.includes('claude') || value.includes('palm-2'))) { oai_settings.temp_openai = Math.min(claude_max_temp, oai_settings.temp_openai); $('#temp_openai').attr('max', claude_max_temp).val(oai_settings.temp_openai).trigger('input'); - } - else { + } else { oai_settings.temp_openai = Math.min(oai_max_temp, oai_settings.temp_openai); $('#temp_openai').attr('max', oai_max_temp).val(oai_settings.temp_openai).trigger('input'); } @@ -5281,17 +5259,13 @@ async function onModelChange() { if (oai_settings.chat_completion_source == chat_completion_sources.CLAUDE) { if (oai_settings.max_context_unlocked) { $('#openai_max_context').attr('max', unlocked_max); - } - else if (value.startsWith('claude-sonnet-4-5') || value.startsWith('claude-opus-4-6')) { + } else if (value.startsWith('claude-sonnet-4-5') || value.startsWith('claude-opus-4-6')) { $('#openai_max_context').attr('max', max_1mil); - } - else if (value == 'claude-2.1' || value.startsWith('claude-3') || value.startsWith('claude-opus') || value.startsWith('claude-haiku') || value.startsWith('claude-sonnet')) { + } else if (value == 'claude-2.1' || value.startsWith('claude-3') || value.startsWith('claude-opus') || value.startsWith('claude-haiku') || value.startsWith('claude-sonnet')) { $('#openai_max_context').attr('max', max_200k); - } - else if (value.endsWith('100k') || value.startsWith('claude-2') || value === 'claude-instant-1.2') { + } else if (value.endsWith('100k') || value.startsWith('claude-2') || value === 'claude-instant-1.2') { $('#openai_max_context').attr('max', claude_100k_max); - } - else { + } else { $('#openai_max_context').attr('max', claude_max); } @@ -5327,23 +5301,17 @@ async function onModelChange() { if (oai_settings.chat_completion_source === chat_completion_sources.COHERE) { if (oai_settings.max_context_unlocked) { $('#openai_max_context').attr('max', unlocked_max); - } - else if (['command-light-nightly', 'command-light', 'command'].includes(oai_settings.cohere_model)) { + } else if (['command-light-nightly', 'command-light', 'command'].includes(oai_settings.cohere_model)) { $('#openai_max_context').attr('max', max_4k); - } - else if (oai_settings.cohere_model.includes('command-r') || ['c4ai-aya-23', 'c4ai-aya-expanse-32b', 'command-nightly', 'command-a-vision-07-2025'].includes(oai_settings.cohere_model)) { + } else if (oai_settings.cohere_model.includes('command-r') || ['c4ai-aya-23', 'c4ai-aya-expanse-32b', 'command-nightly', 'command-a-vision-07-2025'].includes(oai_settings.cohere_model)) { $('#openai_max_context').attr('max', max_128k); - } - else if (['command-a-03-2025'].includes(oai_settings.cohere_model)) { + } else if (['command-a-03-2025'].includes(oai_settings.cohere_model)) { $('#openai_max_context').attr('max', max_256k); - } - else if (['c4ai-aya-23-8b', 'c4ai-aya-expanse-8b'].includes(oai_settings.cohere_model)) { + } else if (['c4ai-aya-23-8b', 'c4ai-aya-expanse-8b'].includes(oai_settings.cohere_model)) { $('#openai_max_context').attr('max', max_8k); - } - else if (['c4ai-aya-vision-8b', 'c4ai-aya-vision-32b'].includes(oai_settings.cohere_model)) { + } else if (['c4ai-aya-vision-8b', 'c4ai-aya-vision-32b'].includes(oai_settings.cohere_model)) { $('#openai_max_context').attr('max', max_16k); - } - else { + } else { $('#openai_max_context').attr('max', max_4k); } oai_settings.openai_max_context = Math.min(Number($('#openai_max_context').attr('max')), oai_settings.openai_max_context); @@ -5354,19 +5322,15 @@ async function onModelChange() { if (oai_settings.chat_completion_source === chat_completion_sources.PERPLEXITY) { if (oai_settings.max_context_unlocked) { $('#openai_max_context').attr('max', unlocked_max); - } - else if (['sonar', 'sonar-reasoning', 'sonar-reasoning-pro', 'r1-1776'].includes(oai_settings.perplexity_model)) { + } else if (['sonar', 'sonar-reasoning', 'sonar-reasoning-pro', 'r1-1776'].includes(oai_settings.perplexity_model)) { $('#openai_max_context').attr('max', 127000); - } - else if (['sonar-pro'].includes(oai_settings.perplexity_model)) { + } else if (['sonar-pro'].includes(oai_settings.perplexity_model)) { $('#openai_max_context').attr('max', 200000); - } - else if (oai_settings.perplexity_model.includes('llama-3.1')) { + } else if (oai_settings.perplexity_model.includes('llama-3.1')) { const isOnline = oai_settings.perplexity_model.includes('online'); const contextSize = isOnline ? 128 * 1024 - 4000 : 128 * 1024; $('#openai_max_context').attr('max', contextSize); - } - else { + } else { $('#openai_max_context').attr('max', max_128k); } oai_settings.openai_max_context = Math.min(Number($('#openai_max_context').attr('max')), oai_settings.openai_max_context); @@ -5660,81 +5624,57 @@ async function onConnectButtonClick(e) { function toggleChatCompletionForms() { if (oai_settings.chat_completion_source == chat_completion_sources.CLAUDE) { $('#model_claude_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.OPENAI) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.OPENAI) { if (oai_settings.show_external_models && (!Array.isArray(model_list) || model_list.length == 0)) { // Wait until the models list is loaded so that we could show a proper saved model - } - else { + } else { $('#model_openai_select').trigger('change'); } - } - else if (oai_settings.chat_completion_source == chat_completion_sources.MAKERSUITE) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.MAKERSUITE) { $('#model_google_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.VERTEXAI) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.VERTEXAI) { $('#model_vertexai_select').trigger('change'); // Update UI based on authentication mode onVertexAIAuthModeChange.call($('#vertexai_auth_mode')[0]); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.OPENROUTER) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.OPENROUTER) { $('#model_openrouter_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.AI21) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.AI21) { $('#model_ai21_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.MISTRALAI) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.MISTRALAI) { $('#model_mistralai_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.COHERE) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.COHERE) { $('#model_cohere_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.PERPLEXITY) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.PERPLEXITY) { $('#model_perplexity_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.GROQ) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.GROQ) { $('#model_groq_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.CHUTES) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.CHUTES) { $('#model_chutes_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.SILICONFLOW) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.SILICONFLOW) { $('#model_siliconflow_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.ELECTRONHUB) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.ELECTRONHUB) { $('#model_electronhub_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.NANOGPT) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.NANOGPT) { $('#model_nanogpt_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.CUSTOM) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.CUSTOM) { $('#model_custom_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.DEEPSEEK) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.DEEPSEEK) { $('#model_deepseek_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.AIMLAPI) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.AIMLAPI) { $('#model_aimlapi_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.XAI) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.XAI) { $('#model_xai_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.POLLINATIONS) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.POLLINATIONS) { $('#model_pollinations_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.MOONSHOT) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.MOONSHOT) { $('#model_moonshot_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.FIREWORKS) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.FIREWORKS) { $('#model_fireworks_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.COMETAPI) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.COMETAPI) { $('#model_cometapi_select').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.AZURE_OPENAI) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.AZURE_OPENAI) { $('#azure_openai_model').trigger('change'); - } - else if (oai_settings.chat_completion_source == chat_completion_sources.ZAI) { + } else if (oai_settings.chat_completion_source == chat_completion_sources.ZAI) { $('#model_zai_select').trigger('change'); } @@ -5757,8 +5697,7 @@ async function testApiConnection() { const reply = await sendOpenAIRequest('quiet', [{ 'role': 'user', 'content': 'Hi' }], new AbortController().signal); console.log(reply); toastr.success(t`API connection successful!`); - } - catch (err) { + } catch (err) { toastr.error(t`Could not get a reply from API. Check your connection settings / API key and try again.`); } } diff --git a/public/scripts/personas.js b/public/scripts/personas.js index 9f1be4c9a..cd4cd502b 100644 --- a/public/scripts/personas.js +++ b/public/scripts/personas.js @@ -1552,9 +1552,8 @@ async function loadPersonaForCurrentChat({ doRender = false } = {}) { } toastr.success(message, t`Persona Auto Selected`, { escapeHtml: false }); } - } - // Even if it's the same persona, we still might need to auto-lock to chat if that's enabled - else if (chatPersona && power_user.persona_auto_lock && !chat_metadata.persona) { + } else if (chatPersona && power_user.persona_auto_lock && !chat_metadata.persona) { + // Even if it's the same persona, we still might need to auto-lock to chat if that's enabled await lockPersona('chat'); } diff --git a/public/scripts/power-user.js b/public/scripts/power-user.js index 2dfaf08f2..778c62e56 100644 --- a/public/scripts/power-user.js +++ b/public/scripts/power-user.js @@ -810,9 +810,8 @@ async function CreateZenSliders(elmnt) { handle.text(handleText) .css('margin-left', `${leftMargin}px`); //console.log(`${newSlider.attr('id')} initial value:${handleText}, stepNum:${stepNumber}, numSteps:${numSteps}, left-margin:${leftMargin}`) - } - //handling creation of rep_pen_range for ooba - else if (newSlider.attr('id') == 'rep_pen_range_textgenerationwebui_zenslider') { + } else if (newSlider.attr('id') == 'rep_pen_range_textgenerationwebui_zenslider') { + //handling creation of rep_pen_range for ooba if ($('#rep_pen_range_textgenerationwebui_zensliders').length !== 0) { $('#rep_pen_range_textgenerationwebui_zensliders').remove(); } @@ -821,22 +820,19 @@ async function CreateZenSliders(elmnt) { leftMargin = ((stepNumber) / numSteps) * 50 * -1; if (sliderValue === offVal) { handleText = 'Off'; - handle.css('color', 'rgba(128,128,128,0.5'); - } - else if (sliderValue === allVal) { handleText = 'All'; } - else { handle.css('color', ''); } + handle.css('color', 'rgba(128,128,128,0.5)'); + } else if (sliderValue === allVal) { handleText = 'All'; } else { handle.css('color', ''); } handle.text(handleText) .css('margin-left', `${leftMargin}px`); //console.log(sliderValue, handleText, offVal, allVal) //console.log(`${newSlider.attr('id')} sliderValue = ${sliderValue}, handleText:${handleText}, stepNum:${stepNumber}, numSteps:${numSteps}, left-margin:${leftMargin}`) originalSlider.val(steps[sliderValue]); - } - //create all other sliders - else { + } else { + //create all other sliders var numVal = Number(sliderValue).toFixed(decimals); offVal = Number(offVal).toFixed(decimals); if (numVal === offVal) { - handle.text('Off').css('color', 'rgba(128,128,128,0.5'); + handle.text('Off').css('color', 'rgba(128,128,128,0.5)'); } else { handle.text(numVal).css('color', ''); } @@ -928,29 +924,24 @@ async function CreateZenSliders(elmnt) { width: ${newSlider.width()} percent of max: ${percentOfMax} left: ${leftPos}`) */ - //special handling for response length slider, pulls text aliases for step values from an array if (newSlider.attr('id') == 'amount_gen_zenslider') { + //special handling for response length slider, pulls text aliases for step values from an array handleText = steps[stepNumber]; handle.text(handleText); newSlider.val(stepNumber); numVal = steps[stepNumber]; - } - //special handling for TextCompletion rep pen range slider, pulls text aliases for step values from an array - else if (newSlider.attr('id') == 'rep_pen_range_textgenerationwebui_zenslider') { + } else if (newSlider.attr('id') == 'rep_pen_range_textgenerationwebui_zenslider') { + //special handling for TextCompletion rep pen range slider, pulls text aliases for step values from an array handleText = steps[stepNumber]; handle.text(handleText); newSlider.val(stepNumber); - if (numVal === offVal) { handle.text('Off').css('color', 'rgba(128,128,128,0.5'); } - else if (numVal === allVal) { handle.text('All'); } - else { handle.css('color', ''); } + if (numVal === offVal) { handle.text('Off').css('color', 'rgba(128,128,128,0.5)'); } else if (numVal === allVal) { handle.text('All'); } else { handle.css('color', ''); } numVal = steps[stepNumber]; - } - //everything else uses the flat slider value - //also note: the above sliders are not custom inputtable due to the array aliasing - else { + } else { + //everything else uses the flat slider value + //also note: the above sliders are not custom inputtable due to the array aliasing //show 'off' if disabled value is set - if (numVal === offVal) { handle.text('Off').css('color', 'rgba(128,128,128,0.5'); } - else { handle.text(ui.value.toFixed(decimals)).css('color', ''); } + if (numVal === offVal) { handle.text('Off').css('color', 'rgba(128,128,128,0.5)'); } else { handle.text(ui.value.toFixed(decimals)).css('color', ''); } newSlider.val(handleText); } //for manually typed-in values we must adjust left position because JQUI doesn't do it for us @@ -991,8 +982,7 @@ function switchSpoilerMode() { $('#firstMessageWrapper').hide(); $('#spoiler_free_desc').addClass('flex1'); $('#creators_note_desc_hidden').show(); - } - else { + } else { $('#descriptionWrapper').show(); $('#firstMessageWrapper').show(); $('#spoiler_free_desc').removeClass('flex1'); @@ -2524,8 +2514,7 @@ async function saveTheme(name = undefined, theme = undefined) { option.value = name; option.innerText = name; $('#themes').append(option); - } - else { + } else { themes[themeIndex] = theme; $(`#themes option[value="${name}"]`).prop('selected', true); } @@ -2632,8 +2621,7 @@ async function saveMovingUI() { option.value = name; option.innerText = name; $('#movingUIPresets').append(option); - } - else { + } else { movingUIPresets[movingUIPresetIndex] = movingUIPreset; $(`#movingUIPresets option[value="${name}"]`).prop('selected', true); } diff --git a/public/scripts/preset-manager.js b/public/scripts/preset-manager.js index 515d94dde..3812670c5 100644 --- a/public/scripts/preset-manager.js +++ b/public/scripts/preset-manager.js @@ -608,15 +608,13 @@ class PresetManager { presets[preset_names.indexOf(name)] = preset; $(this.select).find(`option[value="${name}"]`).prop('selected', true); $(this.select).val(name).trigger('change'); - } - else { + } else { const value = preset_names[name]; presets[value] = preset; $(this.select).find(`option[value="${value}"]`).prop('selected', true); $(this.select).val(value).trigger('change'); } - } - else { + } else { presets.push(preset); const value = presets.length - 1; diff --git a/public/scripts/samplerSelect.js b/public/scripts/samplerSelect.js index 5ffec69dd..88040d7f3 100644 --- a/public/scripts/samplerSelect.js +++ b/public/scripts/samplerSelect.js @@ -246,9 +246,7 @@ async function listSamplers(main_api, arrayOnly = false) { if (prioritizeManualSamplerSelect) { finalState = isManuallyActivated; - } - - else if (!isInDefaultState) { + } else if (!isInDefaultState) { finalState = displayModified === SELECT_SAMPLER.SHOWN; customColor = finalState ? forcedOnColoring : forcedOffColoring; } diff --git a/public/scripts/slash-commands.js b/public/scripts/slash-commands.js index 5786528a6..1e1ca0bf7 100644 --- a/public/scripts/slash-commands.js +++ b/public/scripts/slash-commands.js @@ -3026,8 +3026,7 @@ export function initDefaultSlashCommands() { try { const text = await navigator.clipboard.readText(); return text; - } - catch (error) { + } catch (error) { console.error('Error reading clipboard:', error); toastr.warning(t`Failed to read clipboard text. Have you granted the permission?`); return ''; @@ -4432,8 +4431,7 @@ async function sendUserMessageCallback(args, text) { const name = args.name || ''; const avatar = findPersonaByName(name) || user_avatar; message = await sendMessageAsUser(text, bias, insertAt, compact, name, avatar); - } - else { + } else { message = await sendMessageAsUser(text, bias, insertAt, compact); } @@ -4640,12 +4638,10 @@ export function getNameAndAvatarForMessage(character, name = null) { let force_avatar, original_avatar; if (character?.avatar === currentChar?.avatar || isNeutralCharacter) { // If the targeted character is the currently selected one in a solo chat, we don't need to force any avatars - } - else if (character && character.avatar !== 'none') { + } else if (character && character.avatar !== 'none') { force_avatar = getThumbnailUrl('avatar', character.avatar); original_avatar = character.avatar; - } - else { + } else { force_avatar = default_avatar; original_avatar = default_avatar; } diff --git a/public/scripts/sse-stream.js b/public/scripts/sse-stream.js index 9d4aa9513..2e702f0a5 100644 --- a/public/scripts/sse-stream.js +++ b/public/scripts/sse-stream.js @@ -111,8 +111,8 @@ function getDelay(s) { * @returns {AsyncGenerator<{data: object, chunk: string, reasoning?: boolean}>} The parsed data and the chunk to be sent. */ async function* parseStreamData(json) { - // Cohere if (typeof json.delta === 'object' && typeof json.delta.message === 'object' && ['tool-plan-delta', 'content-delta'].includes(json.type)) { + // Cohere const text = json?.delta?.message?.content?.text ?? ''; for (let i = 0; i < text.length; i++) { const str = json.delta.message.content.text[i]; @@ -122,9 +122,8 @@ async function* parseStreamData(json) { }; } return; - } - // Claude - else if (typeof json.delta === 'object' && typeof json.delta.text === 'string') { + } else if (typeof json.delta === 'object' && typeof json.delta.text === 'string') { + // Claude if (json.delta.text.length > 0) { for (let i = 0; i < json.delta.text.length; i++) { const str = json.delta.text[i]; @@ -135,8 +134,8 @@ async function* parseStreamData(json) { } } return; - } - else if (typeof json.delta === 'object' && typeof json.delta.thinking === 'string') { + } else if (typeof json.delta === 'object' && typeof json.delta.thinking === 'string') { + // Claude (reasoning content) if (json.delta.thinking.length > 0) { for (let i = 0; i < json.delta.thinking.length; i++) { const str = json.delta.thinking[i]; @@ -148,9 +147,8 @@ async function* parseStreamData(json) { } } return; - } - // MakerSuite - else if (Array.isArray(json.candidates)) { + } else if (Array.isArray(json.candidates)) { + // Google VertexAI / AI Studio for (let i = 0; i < json.candidates.length; i++) { const isNotPrimary = json.candidates?.[0]?.index > 0; const hasToolCalls = json?.candidates?.[0]?.content?.parts?.some(p => p?.functionCall); @@ -187,9 +185,8 @@ async function* parseStreamData(json) { } } return; - } - // NovelAI / KoboldCpp Classic - else if (typeof json.token === 'string' && json.token.length > 0) { + } else if (typeof json.token === 'string' && json.token.length > 0) { + // NovelAI / KoboldCpp Classic for (let i = 0; i < json.token.length; i++) { const str = json.token[i]; yield { @@ -198,9 +195,8 @@ async function* parseStreamData(json) { }; } return; - } - // llama.cpp? - else if (typeof json.content === 'string' && json.content.length > 0 && json.object !== 'chat.completion.chunk') { + } else if (typeof json.content === 'string' && json.content.length > 0 && json.object !== 'chat.completion.chunk') { + // llama.cpp? const isNotPrimary = json?.index > 0; if (isNotPrimary) { throw new Error('Not a primary swipe', { cause: NOT_PRIMARY }); @@ -213,9 +209,8 @@ async function* parseStreamData(json) { }; } return; - } - // OpenAI-likes - else if (Array.isArray(json.choices)) { + } else if (Array.isArray(json.choices)) { + // OpenAI-likes and friends const isNotPrimary = json?.choices?.[0]?.index > 0; if (isNotPrimary || json.choices.length === 0) { throw new Error('Not a primary swipe', { cause: NOT_PRIMARY }); @@ -233,8 +228,7 @@ async function* parseStreamData(json) { }; } return; - } - else if (typeof json.choices[0].thinking === 'string' && json.choices[0].thinking.length > 0) { + } else if (typeof json.choices[0].thinking === 'string' && json.choices[0].thinking.length > 0) { for (let j = 0; j < json.choices[0].thinking.length; j++) { const str = json.choices[0].thinking[j]; const choiceClone = structuredClone(json.choices[0]); @@ -247,8 +241,7 @@ async function* parseStreamData(json) { }; } return; - } - else if (typeof json.choices[0].delta === 'object') { + } else if (typeof json.choices[0].delta === 'object') { if (typeof json.choices[0].delta.text === 'string' && json.choices[0].delta.text.length > 0) { for (let j = 0; j < json.choices[0].delta.text.length; j++) { const str = json.choices[0].delta.text[j]; @@ -261,8 +254,7 @@ async function* parseStreamData(json) { }; } return; - } - else if (typeof json.choices[0].delta.reasoning_content === 'string' && json.choices[0].delta.reasoning_content.length > 0) { + } else if (typeof json.choices[0].delta.reasoning_content === 'string' && json.choices[0].delta.reasoning_content.length > 0) { for (let j = 0; j < json.choices[0].delta.reasoning_content.length; j++) { const str = json.choices[0].delta.reasoning_content[j]; const isLastSymbol = j === json.choices[0].delta.reasoning_content.length - 1; @@ -277,8 +269,7 @@ async function* parseStreamData(json) { }; } return; - } - else if (typeof json.choices[0].delta.reasoning === 'string' && json.choices[0].delta.reasoning.length > 0) { + } else if (typeof json.choices[0].delta.reasoning === 'string' && json.choices[0].delta.reasoning.length > 0) { for (let j = 0; j < json.choices[0].delta.reasoning.length; j++) { const str = json.choices[0].delta.reasoning[j]; const isLastSymbol = j === json.choices[0].delta.reasoning.length - 1; @@ -293,8 +284,7 @@ async function* parseStreamData(json) { }; } return; - } - else if (typeof json.choices[0].delta.content === 'string' && json.choices[0].delta.content.length > 0) { + } else if (typeof json.choices[0].delta.content === 'string' && json.choices[0].delta.content.length > 0) { for (let j = 0; j < json.choices[0].delta.content.length; j++) { const str = json.choices[0].delta.content[j]; const choiceClone = structuredClone(json.choices[0]); @@ -306,8 +296,7 @@ async function* parseStreamData(json) { }; } return; - } - else if (Array.isArray(json.choices[0].delta.content) && json.choices[0].delta.content.length > 0) { + } else if (Array.isArray(json.choices[0].delta.content) && json.choices[0].delta.content.length > 0) { if (Array.isArray(json.choices[0].delta.content[0].thinking) && json.choices[0].delta.content[0].thinking.length > 0) { if (typeof json.choices[0].delta.content[0].thinking[0].text === 'string' && json.choices[0].delta.content[0].thinking[0].text.length > 0) { for (let j = 0; j < json.choices[0].delta.content[0].thinking[0].text.length; j++) { @@ -325,8 +314,7 @@ async function* parseStreamData(json) { } } } - } - else if (typeof json.choices[0].message === 'object') { + } else if (typeof json.choices[0].message === 'object') { if (typeof json.choices[0].message.content === 'string' && json.choices[0].message.content.length > 0) { for (let j = 0; j < json.choices[0].message.content.length; j++) { const str = json.choices[0].message.content[j]; diff --git a/public/scripts/stats.js b/public/scripts/stats.js index ac1c1bc7b..abd04e279 100644 --- a/public/scripts/stats.js +++ b/public/scripts/stats.js @@ -209,8 +209,7 @@ async function recreateStats() { if (!response.ok) { toastr.error('Stats could not be loaded. Try reloading the page.'); throw new Error('Error getting stats'); - } - else { + } else { toastr.success('Stats file recreated successfully!'); } } diff --git a/public/scripts/tags.js b/public/scripts/tags.js index 8a088679b..5543bba45 100644 --- a/public/scripts/tags.js +++ b/public/scripts/tags.js @@ -858,8 +858,7 @@ function addTagToMap(tagId, characterId = null) { if (!Array.isArray(tag_map[key])) { tag_map[key] = [tagId]; return true; - } - else { + } else { if (tag_map[key].includes(tagId)) return false; @@ -885,8 +884,7 @@ function removeTagFromMap(tagId, characterId = null) { if (!Array.isArray(tag_map[key])) { tag_map[key] = []; return false; - } - else { + } else { const indexOf = tag_map[key].indexOf(tagId); tag_map[key].splice(indexOf, 1); return indexOf !== -1; diff --git a/public/scripts/textgen-models.js b/public/scripts/textgen-models.js index 7cc4eec06..98a71bfab 100644 --- a/public/scripts/textgen-models.js +++ b/public/scripts/textgen-models.js @@ -541,14 +541,11 @@ export async function loadFeatherlessModels(data) { if (selectedCategory === 'All') { return matchesSearch && matchesClass; - } - else if (selectedCategory === 'Top') { + } else if (selectedCategory === 'Top') { return matchesSearch && matchesClass && matchesTop; - } - else if (selectedCategory === 'New') { + } else if (selectedCategory === 'New') { return matchesSearch && matchesClass && matchesNew; - } - else { + } else { return matchesSearch && matchesClass; } }); diff --git a/public/scripts/textgen-settings.js b/public/scripts/textgen-settings.js index 7040acfe1..498bc8a31 100644 --- a/public/scripts/textgen-settings.js +++ b/public/scripts/textgen-settings.js @@ -1040,12 +1040,10 @@ export function initTextGenSettings() { if (isCheckbox) { const value = $(this).prop('checked'); textgenerationwebui_settings[id] = value; - } - else if (isText) { + } else if (isText) { const value = $(this).val(); textgenerationwebui_settings[id] = value; - } - else { + } else { const value = Number($(this).val()); $(`#${id}_counter_textgenerationwebui`).val(value); textgenerationwebui_settings[id] = value; @@ -1254,11 +1252,9 @@ function setSettingByName(setting, value, trigger) { if ('send_banned_tokens' === setting) { $(`#${setting}_textgenerationwebui`).trigger('change'); } - } - else if (isText) { + } else if (isText) { $(`#${setting}_textgenerationwebui`).val(value); - } - else { + } else { const val = parseFloat(value); $(`#${setting}_textgenerationwebui`).val(val); $(`#${setting}_counter_textgenerationwebui`).val(val); diff --git a/public/scripts/tokenizers.js b/public/scripts/tokenizers.js index 165a1962b..59639d9f9 100644 --- a/public/scripts/tokenizers.js +++ b/public/scripts/tokenizers.js @@ -603,47 +603,34 @@ export function getTokenizerModel() { if (model?.architecture?.tokenizer === 'Llama2') { return llamaTokenizer; - } - else if (model?.architecture?.tokenizer === 'Llama3') { + } else if (model?.architecture?.tokenizer === 'Llama3') { return llama3Tokenizer; - } - else if (model?.architecture?.tokenizer === 'Mistral') { + } else if (model?.architecture?.tokenizer === 'Mistral') { return mistralTokenizer; - } - else if (model?.architecture?.tokenizer === 'Yi') { + } else if (model?.architecture?.tokenizer === 'Yi') { return yiTokenizer; - } - else if (model?.architecture?.tokenizer === 'Gemini') { + } else if (model?.architecture?.tokenizer === 'Gemini') { return gemmaTokenizer; - } - else if (model?.architecture?.tokenizer === 'Qwen') { + } else if (model?.architecture?.tokenizer === 'Qwen') { return qwen2Tokenizer; - } - else if (model?.architecture?.tokenizer === 'Cohere') { + } else if (model?.architecture?.tokenizer === 'Cohere') { if (model?.id && model?.id.includes('command-a')) { return commandATokenizer; } return commandRTokenizer; - } - else if (oai_settings.openrouter_model.includes('gpt-4o')) { + } else if (oai_settings.openrouter_model.includes('gpt-4o')) { return gpt4oTokenizer; - } - else if (oai_settings.openrouter_model.includes('gpt-4')) { + } else if (oai_settings.openrouter_model.includes('gpt-4')) { return gpt4Tokenizer; - } - else if (oai_settings.openrouter_model.includes('gpt-3.5-turbo')) { + } else if (oai_settings.openrouter_model.includes('gpt-3.5-turbo')) { return turboTokenizer; - } - else if (oai_settings.openrouter_model.includes('claude')) { + } else if (oai_settings.openrouter_model.includes('claude')) { return claudeTokenizer; - } - else if (oai_settings.openrouter_model.includes('GPT-NeoXT')) { + } else if (oai_settings.openrouter_model.includes('GPT-NeoXT')) { return gpt2Tokenizer; - } - else if (oai_settings.openrouter_model.includes('jamba')) { + } else if (oai_settings.openrouter_model.includes('jamba')) { return jambaTokenizer; - } - else if (oai_settings.openrouter_model.includes('deepseek')) { + } else if (oai_settings.openrouter_model.includes('deepseek')) { return deepseekTokenizer; } } @@ -651,50 +638,35 @@ export function getTokenizerModel() { if (oai_settings.chat_completion_source == chat_completion_sources.ELECTRONHUB && oai_settings.electronhub_model) { if (oai_settings.electronhub_model.includes('gpt-4o') || oai_settings.electronhub_model.includes('gpt-5')) { return gpt4oTokenizer; - } - else if (oai_settings.electronhub_model.includes('gpt-4.1') || oai_settings.electronhub_model.includes('gpt-4.5')) { + } else if (oai_settings.electronhub_model.includes('gpt-4.1') || oai_settings.electronhub_model.includes('gpt-4.5')) { return gpt4oTokenizer; - } - else if (oai_settings.electronhub_model.includes('gpt-4')) { + } else if (oai_settings.electronhub_model.includes('gpt-4')) { return gpt4Tokenizer; - } - else if (oai_settings.electronhub_model.includes('gpt-3.5-turbo')) { + } else if (oai_settings.electronhub_model.includes('gpt-3.5-turbo')) { return turboTokenizer; - } - else if (oai_settings.electronhub_model.includes('claude')) { + } else if (oai_settings.electronhub_model.includes('claude')) { return claudeTokenizer; - } - else if (oai_settings.electronhub_model.includes('jamba')) { + } else if (oai_settings.electronhub_model.includes('jamba')) { return jambaTokenizer; - } - else if (oai_settings.electronhub_model.includes('deepseek') || oai_settings.electronhub_model.includes('sonar-reasoning') || oai_settings.electronhub_model.includes('r1')) { + } else if (oai_settings.electronhub_model.includes('deepseek') || oai_settings.electronhub_model.includes('sonar-reasoning') || oai_settings.electronhub_model.includes('r1')) { return deepseekTokenizer; - } - else if (oai_settings.electronhub_model.includes('qwen')) { + } else if (oai_settings.electronhub_model.includes('qwen')) { return qwen2Tokenizer; - } - else if (oai_settings.electronhub_model.includes('gemma')) { + } else if (oai_settings.electronhub_model.includes('gemma')) { return gemmaTokenizer; - } - else if (oai_settings.electronhub_model.includes('mistral')) { + } else if (oai_settings.electronhub_model.includes('mistral')) { return mistralTokenizer; - } - else if (oai_settings.electronhub_model.includes('yi')) { + } else if (oai_settings.electronhub_model.includes('yi')) { return yiTokenizer; - } - else if (oai_settings.electronhub_model.includes('llama3') || oai_settings.electronhub_model.includes('llama-3') || oai_settings.electronhub_model.startsWith('l3')) { + } else if (oai_settings.electronhub_model.includes('llama3') || oai_settings.electronhub_model.includes('llama-3') || oai_settings.electronhub_model.startsWith('l3')) { return llama3Tokenizer; - } - else if (oai_settings.electronhub_model.includes('llama')) { + } else if (oai_settings.electronhub_model.includes('llama')) { return llamaTokenizer; - } - else if (oai_settings.electronhub_model.includes('command-a')) { + } else if (oai_settings.electronhub_model.includes('command-a')) { return commandATokenizer; - } - else if (oai_settings.electronhub_model.includes('command-r')) { + } else if (oai_settings.electronhub_model.includes('command-r')) { return commandRTokenizer; - } - else if (oai_settings.electronhub_model.includes('nemo')) { + } else if (oai_settings.electronhub_model.includes('nemo')) { return nemoTokenizer; } } @@ -814,9 +786,7 @@ export function countTokensOpenAI(messages, full = false) { if (typeof cachedCount === 'number') { token_count += cachedCount; - } - - else { + } else { jQuery.ajax({ async: false, type: 'POST', // @@ -866,9 +836,7 @@ export async function countTokensOpenAIAsync(messages, full = false) { if (typeof cachedCount === 'number') { token_count += cachedCount; - } - - else { + } else { const data = await jQuery.ajax({ async: true, type: 'POST', // @@ -898,8 +866,7 @@ function getTokenCacheObject() { try { if (selected_group) { chatId = groups.find(x => x.id == selected_group)?.chat_id; - } - else if (this_chid !== undefined) { + } else if (this_chid !== undefined) { chatId = characters[this_chid].chat; } } catch { diff --git a/public/scripts/user.js b/public/scripts/user.js index 206296411..52650dd80 100644 --- a/public/scripts/user.js +++ b/public/scripts/user.js @@ -327,8 +327,7 @@ async function changePassword(handle, callback) { toastr.success('Password changed successfully', 'Password Changed'); callback(); - } - catch (error) { + } catch (error) { console.error('Error changing password:', error); } } diff --git a/public/scripts/util/SimpleMutex.js b/public/scripts/util/SimpleMutex.js index 3a53ff5ce..a7ca50769 100644 --- a/public/scripts/util/SimpleMutex.js +++ b/public/scripts/util/SimpleMutex.js @@ -36,8 +36,7 @@ export class SimpleMutex { try { this.isBusy = true; await this.callback(...args); - } - finally { + } finally { this.isBusy = false; } } diff --git a/public/scripts/variables.js b/public/scripts/variables.js index d457ac4b3..7cd3c9660 100644 --- a/public/scripts/variables.js +++ b/public/scripts/variables.js @@ -388,8 +388,7 @@ async function timesCallback(args, value) { command.breakController = new SlashCommandBreakController(); command.scope.setMacro('timesIndex', i); result = await command.execute(); - } - else { + } else { result = await executeSubCommands(command.replace(/\{\{timesIndex\}\}/g, i.toString()), args._scope, args._parserFlags, args._abortController); } if (result.isAborted) break; diff --git a/public/scripts/welcome-screen.js b/public/scripts/welcome-screen.js index 33be7d45f..bfdb5253c 100644 --- a/public/scripts/welcome-screen.js +++ b/public/scripts/welcome-screen.js @@ -716,8 +716,7 @@ export async function openPermanentAssistantChat({ tryCreate = true, created = f console.log(`Character not found for avatar ID: ${avatar}. Creating new assistant.`); await createPermanentAssistant(); return openPermanentAssistantChat({ tryCreate: false, created: true }); - } - catch (error) { + } catch (error) { console.error('Error creating permanent assistant:', error); toastr.error(t`Failed to create ${neutralCharacterName}. See console for details.`); return; diff --git a/public/scripts/world-info.js b/public/scripts/world-info.js index 8dc5a53ce..90e6ecf1d 100644 --- a/public/scripts/world-info.js +++ b/public/scripts/world-info.js @@ -351,8 +351,7 @@ class WorldInfoBuffer { if (keyWords.length > 1) { return haystack.includes(transformedString); - } - else { + } else { // Use custom boundaries to include punctuation and other non-alphanumeric characters const regex = new RegExp(`(?:^|\\W)(${escapeRegex(transformedString)})(?:$|\\W)`); if (regex.test(haystack)) { @@ -1141,8 +1140,7 @@ function registerWorldInfoSlashCommands() { // Also assign the book now - additional if requested, otherwise as primary if (type === 'additional') { await charUpdateAddAuxWorld(character.avatar, newName); - } - else { + } else { await charUpdatePrimaryWorld(newName); } // Refresh UI, if needed @@ -2169,8 +2167,7 @@ export function sortWorldInfoEntries(data, { customSort = null } = {}) { const bScore = worldInfoFilter.getScore(FILTER_TYPES.WORLD_INFO_SEARCH, b.uid); return aScore - bScore; }; - } - else if (sortRule === 'custom') { + } else if (sortRule === 'custom') { // First by display index primarySort = (a, b) => { const aValue = a.displayIndex; @@ -4434,8 +4431,7 @@ export async function getSortedEntries() { // Need to deep clone the entries to avoid modifying the cached data return structuredClone(entries); - } - catch (e) { + } catch (e) { console.error(e); return []; } @@ -4481,8 +4477,7 @@ function parseDecorators(content) { if (isKnownDecorator(splited[i])) { decorators.push(splited[i].startsWith('@@@') ? splited[i].substring(1) : splited[i]); fallbacked = false; - } - else { + } else { fallbacked = true; } } else { @@ -5506,8 +5501,7 @@ export function checkEmbeddedWorld(chid) { } }; callGenericPopup(html, POPUP_TYPE.CONFIRM, '', { okButton: 'Yes' }).then(checkResult); - } - else { + } else { toastr.info( 'To import and use it, select "Import Card Lore" in the "More..." dropdown menu on the character panel.', `${characters[chid].name} has an embedded World/Lorebook`, @@ -6121,8 +6115,7 @@ export function initWorldInfo() { } else if (hasEmbed && !event.shiftKey) { await importEmbeddedWorldInfo(); saveCharacterDebounced(); - } - else { + } else { openSetWorldMenu(); } }); diff --git a/src/endpoints/assets.js b/src/endpoints/assets.js index c6ae9e2a0..b22b5423f 100644 --- a/src/endpoints/assets.js +++ b/src/endpoints/assets.js @@ -173,8 +173,7 @@ router.post('/get', async (request, response) => { } } } - } - catch (err) { + } catch (err) { console.error(err); } return response.send(output); @@ -255,8 +254,7 @@ router.post('/download', async (request, response) => { fs.copyFileSync(temp_path, file_path); fs.unlinkSync(temp_path); response.sendStatus(200); - } - catch (error) { + } catch (error) { console.error(error); response.sendStatus(500); } @@ -299,15 +297,13 @@ router.post('/delete', async (request, response) => { if (err) throw err; }); console.info('Asset deleted.'); - } - else { + } else { console.error('Asset not found.'); response.sendStatus(400); } // Move into asset place response.sendStatus(200); - } - catch (error) { + } catch (error) { console.error(error); response.sendStatus(500); } @@ -372,8 +368,7 @@ router.post('/character', async (request, response) => { output.push(`/characters/${name}/${category}/${i}`); } return response.send(output); - } - catch (err) { + } catch (err) { console.error(err); return response.sendStatus(500); } diff --git a/src/endpoints/backends/chat-completions.js b/src/endpoints/backends/chat-completions.js index ae9d46110..0cb8ac138 100644 --- a/src/endpoints/backends/chat-completions.js +++ b/src/endpoints/backends/chat-completions.js @@ -1425,8 +1425,7 @@ async function sendElectronHubRequest(request, response) { console.debug('Electron Hub response:', generateResponseJson); return response.send(generateResponseJson); } - } - catch (error) { + } catch (error) { console.error('Error communicating with Electron Hub: ', error); if (!response.headersSent) { response.send({ error: true }); @@ -1527,8 +1526,7 @@ async function sendChutesRequest(request, response) { console.debug('Chutes response:', generateResponseJson); return response.send(generateResponseJson); } - } - catch (error) { + } catch (error) { console.error('Error communicating with Chutes: ', error); if (!response.headersSent) { response.send({ error: true }); @@ -1910,8 +1908,7 @@ router.post('/status', async function (request, statusResponse) { console.warn('Chat Completion endpoint did not return a list of models.'); } } - } - else { + } else { console.error('Chat Completion status check failed. Either Access Token is incorrect or API endpoint is down.'); statusResponse.send({ error: true, data: { data: [] } }); } diff --git a/src/endpoints/backends/text-completions.js b/src/endpoints/backends/text-completions.js index 1873d9e17..5821af87b 100644 --- a/src/endpoints/backends/text-completions.js +++ b/src/endpoints/backends/text-completions.js @@ -405,8 +405,7 @@ router.post('/generate', async function (request, response) { const completionsStream = await fetch(url, args); // Pipe remote SSE stream to Express response forwardFetchResponse(completionsStream, response); - } - else { + } else { const completionsReply = await fetch(url, args); if (completionsReply.ok) { diff --git a/src/endpoints/backups.js b/src/endpoints/backups.js index e6b100534..96179923a 100644 --- a/src/endpoints/backups.js +++ b/src/endpoints/backups.js @@ -45,8 +45,7 @@ router.post('/chat/delete', async (request, response) => { await fsPromises.unlink(filePath); return response.sendStatus(200); - } - catch (error) { + } catch (error) { console.error(error); return response.sendStatus(500); } @@ -67,8 +66,7 @@ router.post('/chat/download', async (request, response) => { } return response.download(filePath); - } - catch (error) { + } catch (error) { console.error(error); return response.sendStatus(500); } diff --git a/src/endpoints/characters.js b/src/endpoints/characters.js index f93f0f826..b2f3c11d7 100644 --- a/src/endpoints/characters.js +++ b/src/endpoints/characters.js @@ -326,9 +326,8 @@ async function tryReadImage(imgPath, crop) { try { const rawImg = await Jimp.read(imgPath); return await applyAvatarCropResize(rawImg, crop); - } - // If it's an unsupported type of image (APNG) - just read the file as buffer - catch (error) { + } catch (error) { + // If it's an unsupported type of image (APNG) - just read the file as buffer console.error(`Failed to read image: ${imgPath}`, error); return fs.readFileSync(imgPath); } @@ -423,8 +422,7 @@ const processCharacter = async (item, directories, { shallow }) => { character.date_last_chat = dateLastChat; character.data_size = calculateDataSize(jsonObject?.data); return shallow ? toShallow(character) : character; - } - catch (err) { + } catch (err) { console.error(`Could not process character: ${item}`); if (err instanceof SyntaxError) { @@ -1081,8 +1079,7 @@ router.post('/rename', validateAvatarUrlMiddleware, async function (request, res // Return new avatar name to ST return response.send({ avatar: newAvatarName }); - } - catch (err) { + } catch (err) { console.error(err); return response.sendStatus(500); } @@ -1495,8 +1492,7 @@ router.post('/duplicate', validateAvatarUrlMiddleware, async function (request, fs.copyFileSync(filename, newFilename); console.info(`${filename} was copied to ${newFilename}`); response.send({ path: path.parse(newFilename).base }); - } - catch (error) { + } catch (error) { console.error(error); return response.send({ error: true }); } @@ -1532,8 +1528,7 @@ router.post('/export', validateAvatarUrlMiddleware, async function (request, res const jsonObject = getCharaCardV2(JSON.parse(json), request.user.directories); unsetPrivateFields(jsonObject); return response.type('json').send(JSON.stringify(jsonObject, null, 4)); - } - catch { + } catch { return response.sendStatus(400); } } diff --git a/src/endpoints/chats.js b/src/endpoints/chats.js index ddfcbdcc8..f387ff53b 100644 --- a/src/endpoints/chats.js +++ b/src/endpoints/chats.js @@ -837,8 +837,7 @@ router.post('/group/save', async function (request, response) { if (Array.isArray(chatData)) { await trySaveChat(chatData, chatFilePath, request.body.force, handle, String(id), request.user.directories.backups); return response.send({ ok: true }); - } - else { + } else { return response.status(400).send({ error: 'The request\'s body.chat is not an array.' }); } } catch (error) { diff --git a/src/endpoints/content-manager.js b/src/endpoints/content-manager.js index 7f1280a9d..141cd3c6f 100644 --- a/src/endpoints/content-manager.js +++ b/src/endpoints/content-manager.js @@ -941,12 +941,10 @@ router.post('/importURL', async (request, response) => { if (chubParsed?.type === 'character') { console.info('Downloading chub character:', chubParsed.id); result = await downloadChubCharacter(chubParsed.id); - } - else if (chubParsed?.type === 'lorebook') { + } else if (chubParsed?.type === 'lorebook') { console.info('Downloading chub lorebook:', chubParsed.id); result = await downloadChubLorebook(chubParsed.id); - } - else { + } else { return response.sendStatus(404); } } else if (isRisu) { @@ -1020,12 +1018,10 @@ router.post('/importUUID', async (request, response) => { if (uuidType === 'character') { console.info('Downloading chub character:', uuid); result = await downloadChubCharacter(uuid); - } - else if (uuidType === 'lorebook') { + } else if (uuidType === 'lorebook') { console.info('Downloading chub lorebook:', uuid); result = await downloadChubLorebook(uuid); - } - else { + } else { return response.sendStatus(404); } } diff --git a/src/endpoints/groups.js b/src/endpoints/groups.js index a0be44bbc..68094f9fc 100644 --- a/src/endpoints/groups.js +++ b/src/endpoints/groups.js @@ -145,8 +145,7 @@ router.post('/all', (request, response) => { group.date_last_chat = date_last_chat; group.chat_size = chat_size; groups.push(group); - } - catch (error) { + } catch (error) { console.error(error); } }); diff --git a/src/endpoints/horde.js b/src/endpoints/horde.js index cf483c836..4c256de98 100644 --- a/src/endpoints/horde.js +++ b/src/endpoints/horde.js @@ -113,8 +113,7 @@ router.post('/text-models', async (request, response) => { try { const metadata = await getHordeTextModelMetadata(); data = await mergeModelsAndMetadata(data, metadata); - } - catch (error) { + } catch (error) { console.error('Failed to fetch metadata:', error); } diff --git a/src/endpoints/novelai.js b/src/endpoints/novelai.js index a0eda92cf..831eb3ae3 100644 --- a/src/endpoints/novelai.js +++ b/src/endpoints/novelai.js @@ -154,8 +154,7 @@ router.post('/status', async function (req, res) { } else if (response.status == 401) { console.error('NovelAI Access Token is incorrect.'); return res.send({ error: true }); - } - else { + } else { console.warn('NovelAI returned an error:', response.statusText); return res.send({ error: true }); } @@ -281,8 +280,7 @@ router.post('/generate', async function (req, res) { try { const data = JSON.parse(text); message = data.message; - } - catch { + } catch { // ignore } @@ -476,8 +474,7 @@ router.post('/generate-voice', async (request, response) => { const buffer = Buffer.concat(chunks.map(chunk => new Uint8Array(chunk))); response.setHeader('Content-Type', 'audio/mpeg'); return response.send(buffer); - } - catch (error) { + } catch (error) { console.error(error); return response.sendStatus(500); } diff --git a/src/endpoints/openai.js b/src/endpoints/openai.js index b76fe92c3..f2358b892 100644 --- a/src/endpoints/openai.js +++ b/src/endpoints/openai.js @@ -262,8 +262,7 @@ router.post('/caption-image', async (request, response) => { } return response.json({ caption }); - } - catch (error) { + } catch (error) { console.error(error); response.status(500).send('Internal server error'); } diff --git a/src/endpoints/settings.js b/src/endpoints/settings.js index 274cc1b87..cef8e8602 100644 --- a/src/endpoints/settings.js +++ b/src/endpoints/settings.js @@ -58,8 +58,7 @@ function readAndParseFromDirectory(directoryPath, fileExtension = '.json') { try { const file = fs.readFileSync(path.join(directoryPath, item), 'utf-8'); parsedFiles.push(fileExtension == '.json' ? JSON.parse(file) : file); - } - catch { + } catch { // skip } }); diff --git a/src/endpoints/sprites.js b/src/endpoints/sprites.js index 9d2adc809..bbea91db9 100644 --- a/src/endpoints/sprites.js +++ b/src/endpoints/sprites.js @@ -143,8 +143,7 @@ router.get('/get', function (request, response) { }; }); } - } - catch (err) { + } catch (err) { console.error(err); } return response.send(sprites); diff --git a/src/endpoints/stable-diffusion.js b/src/endpoints/stable-diffusion.js index 06a811b68..93b2d057f 100644 --- a/src/endpoints/stable-diffusion.js +++ b/src/endpoints/stable-diffusion.js @@ -1316,8 +1316,7 @@ chutes.post('/models', async (request, response) => { const chutesData = /** @type {{items: Array<{name: string}>}} */ (data); const models = chutesData.items.map(x => ({ value: x.name, text: x.name })).sort((a, b) => a?.text?.localeCompare(b?.text)); return response.send(models); - } - catch (error) { + } catch (error) { console.error(error); return response.sendStatus(500); } @@ -1363,8 +1362,7 @@ chutes.post('/generate', async (request, response) => { const base64 = Buffer.from(buffer).toString('base64'); return response.send({ image: base64 }); - } - catch (error) { + } catch (error) { console.error(error); return response.sendStatus(500); } @@ -1405,8 +1403,7 @@ nanogpt.post('/models', async (request, response) => { const models = Object.values(imageModels).map(x => ({ value: x.model, text: x.name })); return response.send(models); - } - catch (error) { + } catch (error) { console.error(error); return response.sendStatus(500); } @@ -1447,8 +1444,7 @@ nanogpt.post('/generate', async (request, response) => { } return response.send({ image }); - } - catch (error) { + } catch (error) { console.error(error); return response.sendStatus(500); } diff --git a/src/prompt-converters.js b/src/prompt-converters.js index 89edd60ed..80cc664b3 100644 --- a/src/prompt-converters.js +++ b/src/prompt-converters.js @@ -939,8 +939,7 @@ export function mergeMessages(messages, names, { strict = false, placeholders = if (mergedMessages.length && placeholders) { if (mergedMessages[0].role === 'system' && (mergedMessages.length === 1 || mergedMessages[1].role !== 'user')) { mergedMessages.splice(1, 0, { role: 'user', content: PROMPT_PLACEHOLDER }); - } - else if (mergedMessages[0].role !== 'system' && mergedMessages[0].role !== 'user') { + } else if (mergedMessages[0].role !== 'system' && mergedMessages[0].role !== 'user') { mergedMessages.unshift({ role: 'user', content: PROMPT_PLACEHOLDER }); } } @@ -964,11 +963,9 @@ export function convertTextCompletionPrompt(messages) { messages.forEach(m => { if (m.role === 'system' && m.name === undefined) { messageStrings.push('System: ' + m.content); - } - else if (m.role === 'system' && m.name !== undefined) { + } else if (m.role === 'system' && m.name !== undefined) { messageStrings.push(m.name + ': ' + m.content); - } - else { + } else { messageStrings.push(m.role + ': ' + m.content); } }); diff --git a/src/users.js b/src/users.js index 8693c767a..d11de523e 100644 --- a/src/users.js +++ b/src/users.js @@ -680,8 +680,7 @@ export async function getUserAvatar(handle) { const mimeType = mime.lookup(avatarPath); const base64Content = fs.readFileSync(avatarPath, 'base64'); return `data:${mimeType};base64,${base64Content}`; - } - catch { + } catch { // Ignore errors return PUBLIC_USER_AVATAR; } diff --git a/src/util.js b/src/util.js index 72ac05411..21a1ffc6c 100644 --- a/src/util.js +++ b/src/util.js @@ -157,8 +157,7 @@ export async function getVersion() { const remoteLatest = await git.revparse([trackingBranch]); isLatest = localLatest === remoteLatest; } - } - catch { + } catch { // suppress exception } @@ -821,8 +820,7 @@ export function mergeObjectWithYaml(obj, yamlString) { Object.assign(obj, item); } } - } - else if (parsedObject && typeof parsedObject === 'object') { + } else if (parsedObject && typeof parsedObject === 'object') { Object.assign(obj, parsedObject); } } catch { @@ -1307,8 +1305,7 @@ export function safeReadFileSync(filePath, options = { encoding: 'utf-8' }) { export function setWindowTitle(title) { if (process.platform === 'win32') { process.title = title; - } - else { + } else { process.stdout.write(`\x1b]2;${title}\x1b\x5c`); } } diff --git a/src/vectors/extras-vectors.js b/src/vectors/extras-vectors.js index d25b8f118..e405ff9ff 100644 --- a/src/vectors/extras-vectors.js +++ b/src/vectors/extras-vectors.js @@ -34,8 +34,7 @@ async function getExtrasVectorImpl(text, apiUrl, apiKey) { try { url = new URL(apiUrl); url.pathname = '/api/embeddings/compute'; - } - catch (error) { + } catch (error) { console.error('Failed to set up Extras API call:', error); console.debug('Extras API URL given was:', apiUrl); throw error;