import { getContext } from "../../extensions.js"; export { MODULE_NAME }; const MODULE_NAME = '2_floating_prompt'; // <= Deliberate, for sorting lower than memory const PROMPT_KEY = 'extensions_floating_prompt'; const INTERVAL_KEY = 'extensions_floating_interval'; const UPDATE_INTERVAL = 1000; let lastMessageNumber = null; let promptInsertionInterval = 0; function onExtensionFloatingPromptInput() { saveSettings(); } function onExtensionFloatingIntervalInput() { promptInsertionInterval = Number($(this).val()); saveSettings(); } function loadSettings() { const prompt = localStorage.getItem(PROMPT_KEY); const interval = localStorage.getItem(INTERVAL_KEY); $('#extension_floating_prompt').val(prompt).trigger('input'); $('#extension_floating_interval').val(interval).trigger('input'); } function saveSettings() { localStorage.setItem(PROMPT_KEY, $('#extension_floating_prompt').val()); localStorage.setItem(INTERVAL_KEY, $('#extension_floating_interval').val()); } async function moduleWorker() { const context = getContext(); // take the count of messages lastMessageNumber = Array.isArray(context.chat) && context.chat.length ? context.chat.filter(m => m.is_user).length : 0; if (lastMessageNumber <= 0 || promptInsertionInterval <= 0) { $('#extension_floating_counter').text('No'); return; } const messagesTillInsertion = (lastMessageNumber % promptInsertionInterval); const shouldAddPrompt = messagesTillInsertion == 0; const prompt = shouldAddPrompt ? $('#extension_floating_prompt').val() : ''; context.setExtensionPrompt(MODULE_NAME, prompt); $('#extension_floating_counter').text(shouldAddPrompt ? 'This' : messagesTillInsertion); } (function() { function addExtensionsSettings() { const settingsHtml = `