mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Disable toggling of main prompt
This commit is contained in:
@ -64,6 +64,7 @@ function PromptManagerModule() {
|
|||||||
containerIdentifier: '',
|
containerIdentifier: '',
|
||||||
listIdentifier: '',
|
listIdentifier: '',
|
||||||
listItemTemplateIdentifier: '',
|
listItemTemplateIdentifier: '',
|
||||||
|
toggleDisabled: [],
|
||||||
draggable: true
|
draggable: true
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -367,6 +368,24 @@ PromptManagerModule.prototype.isPromptDeletionAllowed = function (prompt) {
|
|||||||
return false === prompt.system_prompt;
|
return false === prompt.system_prompt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check whether a prompt can be edited.
|
||||||
|
* @param {object} prompt - The prompt to check.
|
||||||
|
* @returns {boolean} True if the prompt can be deleted, false otherwise.
|
||||||
|
*/
|
||||||
|
PromptManagerModule.prototype.isPromptEditAllowed = function (prompt) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check whether a prompt can be toggled on or off.
|
||||||
|
* @param {object} prompt - The prompt to check.
|
||||||
|
* @returns {boolean} True if the prompt can be deleted, false otherwise.
|
||||||
|
*/
|
||||||
|
PromptManagerModule.prototype.isPromptToggleAllowed = function (prompt) {
|
||||||
|
return !this.configuration.toggleDisabled.includes(prompt.identifier);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle the deletion of a character by removing their prompt list and nullifying the active character if it was the one deleted.
|
* Handle the deletion of a character by removing their prompt list and nullifying the active character if it was the one deleted.
|
||||||
* @param {object} event - The event object containing the character's ID.
|
* @param {object} event - The event object containing the character's ID.
|
||||||
@ -706,7 +725,21 @@ PromptManagerModule.prototype.renderPromptManagerListItems = function () {
|
|||||||
let detachSpanHtml = '';
|
let detachSpanHtml = '';
|
||||||
if (this.isPromptDeletionAllowed(prompt)) {
|
if (this.isPromptDeletionAllowed(prompt)) {
|
||||||
detachSpanHtml = `
|
detachSpanHtml = `
|
||||||
<span title="delete" class="caution fa-solid fa-x"></span>
|
<span title="delete" class="prompt-manager-detach-action caution fa-solid fa-x"></span>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
let editSpanHtml = '';
|
||||||
|
if (this.isPromptEditAllowed(prompt)) {
|
||||||
|
editSpanHtml = `
|
||||||
|
<span title="edit" class="prompt-manager-edit-action fa-solid fa-pencil"></span>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
let toggleSpanHtml = '';
|
||||||
|
if (this.isPromptToggleAllowed(prompt)) {
|
||||||
|
toggleSpanHtml = `
|
||||||
|
<span class="prompt-manager-toggle-action ${listEntry.enabled ? 'fa-solid fa-toggle-on' : 'fa-solid fa-toggle-off'}"></span>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -720,8 +753,8 @@ PromptManagerModule.prototype.renderPromptManagerListItems = function () {
|
|||||||
<span>
|
<span>
|
||||||
<span class="prompt_manager_prompt_controls">
|
<span class="prompt_manager_prompt_controls">
|
||||||
${detachSpanHtml}
|
${detachSpanHtml}
|
||||||
<span title="edit" class="fa-solid fa-pencil"></span>
|
${editSpanHtml}
|
||||||
<span class="${listEntry.enabled ? 'fa-solid fa-toggle-on' : 'fa-solid fa-toggle-off'}"></span>
|
${toggleSpanHtml}
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
`}
|
`}
|
||||||
@ -733,15 +766,15 @@ PromptManagerModule.prototype.renderPromptManagerListItems = function () {
|
|||||||
promptManagerList.insertAdjacentHTML('beforeend', listItemHtml);
|
promptManagerList.insertAdjacentHTML('beforeend', listItemHtml);
|
||||||
|
|
||||||
// Now that the new elements are in the DOM, you can add the event listeners.
|
// Now that the new elements are in the DOM, you can add the event listeners.
|
||||||
Array.from(promptManagerList.getElementsByClassName('fa-x')).forEach(el => {
|
Array.from(promptManagerList.getElementsByClassName('prompt-manager-detach-action')).forEach(el => {
|
||||||
el.addEventListener('click', this.handleDetach);
|
el.addEventListener('click', this.handleDetach);
|
||||||
});
|
});
|
||||||
|
|
||||||
Array.from(promptManagerList.getElementsByClassName('fa-pencil')).forEach(el => {
|
Array.from(promptManagerList.getElementsByClassName('prompt-manager-edit-action')).forEach(el => {
|
||||||
el.addEventListener('click', this.handleEdit);
|
el.addEventListener('click', this.handleEdit);
|
||||||
});
|
});
|
||||||
|
|
||||||
Array.from(promptManagerList.querySelectorAll('.prompt_manager_prompt_controls span:last-child')).forEach(el => {
|
Array.from(promptManagerList.querySelectorAll('.prompt-manager-toggle-action')).forEach(el => {
|
||||||
el.addEventListener('click', this.handleToggle);
|
el.addEventListener('click', this.handleToggle);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -277,6 +277,7 @@ function setupOpenAIPromptManager(openAiSettings) {
|
|||||||
prefix: 'openai_',
|
prefix: 'openai_',
|
||||||
containerIdentifier: 'openai_prompt_manager',
|
containerIdentifier: 'openai_prompt_manager',
|
||||||
listIdentifier: 'openai_prompt_manager_list',
|
listIdentifier: 'openai_prompt_manager_list',
|
||||||
|
toggleDisabled: ['main'],
|
||||||
draggable: true
|
draggable: true
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -580,11 +581,12 @@ async function prepareOpenAIMessages({
|
|||||||
try {
|
try {
|
||||||
populateChatCompletion(prompts, chatCompletion, {bias, quietPrompt, type});
|
populateChatCompletion(prompts, chatCompletion, {bias, quietPrompt, type});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
toastr.error('An error occurred while counting tokens.')
|
|
||||||
if (error instanceof TokenBudgetExceededError) {
|
if (error instanceof TokenBudgetExceededError) {
|
||||||
|
toastr.error('An error occurred while counting tokens: Token budget exceeded.')
|
||||||
chatCompletion.log('Token budget exceeded.');
|
chatCompletion.log('Token budget exceeded.');
|
||||||
promptManager.error = 'Not enough free tokens for mandatory prompts. Raise your token Limit or disable custom prompts.';
|
promptManager.error = 'Not enough free tokens for mandatory prompts. Raise your token Limit or disable custom prompts.';
|
||||||
} else {
|
} else {
|
||||||
|
toastr.error('An unknown error occurred while counting tokens. Further info available in console.')
|
||||||
chatCompletion.log('Unexpected error:');
|
chatCompletion.log('Unexpected error:');
|
||||||
chatCompletion.log(error);
|
chatCompletion.log(error);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user