mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Prompt Manager: add source display of pulled prompts (#3981)
* Prompt Manager: add source display of pulled prompts * Fix copilot comments
This commit is contained in:
@ -359,10 +359,15 @@
|
|||||||
content: attr(external_piece_text);
|
content: attr(external_piece_text);
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
font-weight: 600;
|
font-weight: 500;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.completion_prompt_manager_popup_entry_form_control #completion_prompt_manager_popup_entry_form_prompt:disabled {
|
.completion_prompt_manager_popup_entry_form_control #completion_prompt_manager_popup_entry_form_prompt:disabled {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#completion_prompt_manager_popup_entry_source_block {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
@ -6477,6 +6477,11 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="completion_prompt_manager_popup_entry_source_block">
|
||||||
|
<b data-i18n="Source:">Source:</b>
|
||||||
|
<span> </span>
|
||||||
|
<span id="completion_prompt_manager_popup_entry_source"></span>
|
||||||
|
</div>
|
||||||
<textarea id="completion_prompt_manager_popup_entry_form_prompt" class="text_pole" name="prompt">
|
<textarea id="completion_prompt_manager_popup_entry_form_prompt" class="text_pole" name="prompt">
|
||||||
</textarea>
|
</textarea>
|
||||||
</div>
|
</div>
|
||||||
|
@ -196,6 +196,17 @@ export class PromptCollection {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class PromptManager {
|
class PromptManager {
|
||||||
|
get promptSources() {
|
||||||
|
return {
|
||||||
|
charDescription: t`Character Description`,
|
||||||
|
charPersonality: t`Character Personality`,
|
||||||
|
scenario: t`Character Scenario`,
|
||||||
|
personaDescription: t`Persona Description`,
|
||||||
|
worldInfoBefore: t`World Info (↑Char)`,
|
||||||
|
worldInfoAfter: t`World Info (↓Char)`,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
this.systemPrompts = [
|
this.systemPrompts = [
|
||||||
'main',
|
'main',
|
||||||
@ -408,6 +419,7 @@ class PromptManager {
|
|||||||
this.handleResetPrompt = (event) => {
|
this.handleResetPrompt = (event) => {
|
||||||
const promptId = event.target.dataset.pmPrompt;
|
const promptId = event.target.dataset.pmPrompt;
|
||||||
const prompt = this.getPromptById(promptId);
|
const prompt = this.getPromptById(promptId);
|
||||||
|
const isPulledPrompt = Object.keys(this.promptSources).includes(promptId);
|
||||||
|
|
||||||
switch (promptId) {
|
switch (promptId) {
|
||||||
case 'main':
|
case 'main':
|
||||||
@ -439,6 +451,12 @@ class PromptManager {
|
|||||||
document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides').checked = prompt.forbid_overrides ?? false;
|
document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides').checked = prompt.forbid_overrides ?? false;
|
||||||
document.getElementById(this.configuration.prefix + 'prompt_manager_forbid_overrides_block').style.visibility = this.overridablePrompts.includes(prompt.identifier) ? 'visible' : 'hidden';
|
document.getElementById(this.configuration.prefix + 'prompt_manager_forbid_overrides_block').style.visibility = this.overridablePrompts.includes(prompt.identifier) ? 'visible' : 'hidden';
|
||||||
document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_prompt').disabled = prompt.marker ?? false;
|
document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_prompt').disabled = prompt.marker ?? false;
|
||||||
|
document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source_block').style.display = isPulledPrompt ? '' : 'none';
|
||||||
|
|
||||||
|
if (isPulledPrompt) {
|
||||||
|
const sourceName = this.promptSources[promptId];
|
||||||
|
document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source').textContent = sourceName;
|
||||||
|
}
|
||||||
|
|
||||||
if (!this.systemPrompts.includes(promptId)) {
|
if (!this.systemPrompts.includes(promptId)) {
|
||||||
document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_position').removeAttribute('disabled');
|
document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_position').removeAttribute('disabled');
|
||||||
@ -1207,6 +1225,9 @@ class PromptManager {
|
|||||||
const injectionDepthBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_depth_block');
|
const injectionDepthBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_depth_block');
|
||||||
const forbidOverridesField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides');
|
const forbidOverridesField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides');
|
||||||
const forbidOverridesBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_forbid_overrides_block');
|
const forbidOverridesBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_forbid_overrides_block');
|
||||||
|
const entrySourceBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source_block');
|
||||||
|
const entrySource = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source');
|
||||||
|
const isPulledPrompt = Object.keys(this.promptSources).includes(prompt.identifier);
|
||||||
|
|
||||||
nameField.value = prompt.name ?? '';
|
nameField.value = prompt.name ?? '';
|
||||||
roleField.value = prompt.role || 'system';
|
roleField.value = prompt.role || 'system';
|
||||||
@ -1218,6 +1239,12 @@ class PromptManager {
|
|||||||
injectionPositionField.removeAttribute('disabled');
|
injectionPositionField.removeAttribute('disabled');
|
||||||
forbidOverridesField.checked = prompt.forbid_overrides ?? false;
|
forbidOverridesField.checked = prompt.forbid_overrides ?? false;
|
||||||
forbidOverridesBlock.style.visibility = this.overridablePrompts.includes(prompt.identifier) ? 'visible' : 'hidden';
|
forbidOverridesBlock.style.visibility = this.overridablePrompts.includes(prompt.identifier) ? 'visible' : 'hidden';
|
||||||
|
entrySourceBlock.style.display = isPulledPrompt ? '' : 'none';
|
||||||
|
|
||||||
|
if (isPulledPrompt) {
|
||||||
|
const sourceName = this.promptSources[prompt.identifier];
|
||||||
|
entrySource.textContent = sourceName;
|
||||||
|
}
|
||||||
|
|
||||||
if (this.systemPrompts.includes(prompt.identifier)) {
|
if (this.systemPrompts.includes(prompt.identifier)) {
|
||||||
injectionPositionField.setAttribute('disabled', 'disabled');
|
injectionPositionField.setAttribute('disabled', 'disabled');
|
||||||
@ -1303,6 +1330,8 @@ class PromptManager {
|
|||||||
const injectionDepthBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_depth_block');
|
const injectionDepthBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_depth_block');
|
||||||
const forbidOverridesField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides');
|
const forbidOverridesField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides');
|
||||||
const forbidOverridesBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_forbid_overrides_block');
|
const forbidOverridesBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_forbid_overrides_block');
|
||||||
|
const entrySourceBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source_block');
|
||||||
|
const entrySource = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source');
|
||||||
|
|
||||||
nameField.value = '';
|
nameField.value = '';
|
||||||
roleField.selectedIndex = 0;
|
roleField.selectedIndex = 0;
|
||||||
@ -1314,6 +1343,8 @@ class PromptManager {
|
|||||||
injectionDepthBlock.style.visibility = 'unset';
|
injectionDepthBlock.style.visibility = 'unset';
|
||||||
forbidOverridesBlock.style.visibility = 'unset';
|
forbidOverridesBlock.style.visibility = 'unset';
|
||||||
forbidOverridesField.checked = false;
|
forbidOverridesField.checked = false;
|
||||||
|
entrySourceBlock.style.display = 'none';
|
||||||
|
entrySource.textContent = '';
|
||||||
|
|
||||||
roleField.disabled = false;
|
roleField.disabled = false;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user