import { saveSettingsDebounced } from '../script.js'; import { callGenericPopup, POPUP_TYPE } from './popup.js'; import { power_user } from './power-user.js'; import { getPresetManager } from './preset-manager.js'; import { SlashCommand } from './slash-commands/SlashCommand.js'; import { ARGUMENT_TYPE, SlashCommandArgument, SlashCommandNamedArgument } from './slash-commands/SlashCommandArgument.js'; import { commonEnumProviders, enumIcons } from './slash-commands/SlashCommandCommonEnumsProvider.js'; import { enumTypes, SlashCommandEnumValue } from './slash-commands/SlashCommandEnumValue.js'; import { SlashCommandParser } from './slash-commands/SlashCommandParser.js'; import { renderTemplateAsync } from './templates.js'; import { isTrueBoolean, resetScrollHeight } from './utils.js'; export let system_prompts = []; const $enabled = $('#sysprompt_enabled'); const $select = $('#sysprompt_select'); const $content = $('#sysprompt_content'); const $contentBlock = $('#SystemPromptBlock'); function migrateSystemPromptFromInstructMode() { if ('system_prompt' in power_user.instruct) { power_user.sysprompt.enabled = power_user.instruct.enabled; power_user.sysprompt.content = String(power_user.instruct.system_prompt); delete power_user.instruct.system_prompt; if (system_prompts.some(x => x.name === power_user.instruct.preset)) { power_user.sysprompt.name = power_user.instruct.preset; } saveSettingsDebounced(); toastr.info('System prompt settings have been moved from the Instruct Mode.', 'Migration notice', { timeOut: 5000 }); } } /** * Loads sysprompt settings from the given data object. * @param {object} data Settings data object. */ export async function loadSystemPrompts(data) { if (data.sysprompt !== undefined) { system_prompts = data.sysprompt; } migrateSystemPromptFromInstructMode(); toggleSystemPromptDisabledControls(); for (const prompt of system_prompts) { $('