import { callPopup, getRequestHeaders } from "../script.js"; export const SECRET_KEYS = { HORDE: 'api_key_horde', OPENAI: 'api_key_openai', POE: 'api_key_poe', NOVEL: 'api_key_novel', } const INPUT_MAP = { [SECRET_KEYS.HORDE]: '#horde_api_key', [SECRET_KEYS.OPENAI]: '#api_key_openai', [SECRET_KEYS.POE]: '#poe_token', [SECRET_KEYS.NOVEL]: '#api_key_novel', } async function clearSecret() { const key = $(this).data('key'); await writeSecret(key, ''); secret_state[key] = false; updateSecretDisplay(); $(INPUT_MAP[key]).val(''); } function updateSecretDisplay() { for (const [secret_key, input_selector] of Object.entries(INPUT_MAP)) { const validSecret = !!secret_state[secret_key]; const placeholder = validSecret ? '✔️ Key saved' : '❌ Missing key'; $(input_selector).attr('placeholder', placeholder); } } async function viewSecrets() { const response = await fetch('/viewsecrets', { method: 'POST', headers: getRequestHeaders(), }); if (response.status == 403) { callPopup('
To view your API keys here, set the value of allowKeysExposure to true in config.conf file and restart the SillyTavern server.
', 'text'); return; } if (!response.ok) { return; } $('#dialogue_popup').addClass('wide_dialogue_popup'); const data = await response.json(); const table = document.createElement('table'); table.classList.add('responsiveTable'); $(table).append('