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:
Cohee
2025-05-10 16:28:18 +03:00
committed by GitHub
parent 4c56f3068a
commit 44b7a09cb6
3 changed files with 42 additions and 1 deletions

View File

@ -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;
}

View File

@ -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>&nbsp;</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>

View File

@ -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;
} }