Prompt Manager: add source display of pulled prompts (#3981) * Prompt Manager: add source display of pulled prompts * Fix copilot comments

44b7a09cb6873a7845eaf71503f083db4679f959

Cohee <18619528+Cohee1207@users.noreply.github.com>

Signed
3 files changed, +42 -1Ignore whitespace
public/css/promptmanager.css+6 -1
@@ -359,10 +359,15 @@
359359 content: attr(external_piece_text);
360360 display: block;
361361 width: 100%;
362362 font-weight: 600500;
363363 text-align: center;
364364}
365365
366366.completion_prompt_manager_popup_entry_form_control #completion_prompt_manager_popup_entry_form_prompt:disabled {
367367 visibility: hidden;
368368}
369+
370+#completion_prompt_manager_popup_entry_source_block {
371+ display: flex;
372+ justify-content: center;
373+}
public/index.html+5 -0
@@ -6477,6 +6477,11 @@
64776477 </label>
64786478 </div>
64796479 </div>
6480+ <div id="completion_prompt_manager_popup_entry_source_block">
6481+ <b data-i18n="Source:">Source:</b>
6482+ <span>&nbsp;</span>
6483+ <span id="completion_prompt_manager_popup_entry_source"></span>
6484+ </div>
64806485 <textarea id="completion_prompt_manager_popup_entry_form_prompt" class="text_pole" name="prompt">
64816486 </textarea>
64826487 </div>
public/scripts/PromptManager.js+31 -0
@@ -196,6 +196,17 @@ export class PromptCollection {
196196}
197197
198198class PromptManager {
199+ get promptSources() {
200+ return {
201+ charDescription: t`Character Description`,
202+ charPersonality: t`Character Personality`,
203+ scenario: t`Character Scenario`,
204+ personaDescription: t`Persona Description`,
205+ worldInfoBefore: t`World Info (↑Char)`,
206+ worldInfoAfter: t`World Info (↓Char)`,
207+ };
208+ }
209+
199210 constructor() {
200211 this.systemPrompts = [
201212 'main',
@@ -408,6 +419,7 @@ class PromptManager {
408419 this.handleResetPrompt = (event) => {
409420 const promptId = event.target.dataset.pmPrompt;
410421 const prompt = this.getPromptById(promptId);
422+ const isPulledPrompt = Object.keys(this.promptSources).includes(promptId);
411423
412424 switch (promptId) {
413425 case 'main':
@@ -439,6 +451,12 @@ class PromptManager {
439451 document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides').checked = prompt.forbid_overrides ?? false;
440452 document.getElementById(this.configuration.prefix + 'prompt_manager_forbid_overrides_block').style.visibility = this.overridablePrompts.includes(prompt.identifier) ? 'visible' : 'hidden';
441453 document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_prompt').disabled = prompt.marker ?? false;
454+ document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source_block').style.display = isPulledPrompt ? '' : 'none';
455+
456+ if (isPulledPrompt) {
457+ const sourceName = this.promptSources[promptId];
458+ document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source').textContent = sourceName;
459+ }
442460
443461 if (!this.systemPrompts.includes(promptId)) {
444462 document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_position').removeAttribute('disabled');
@@ -1207,6 +1225,9 @@ class PromptManager {
12071225 const injectionDepthBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_depth_block');
12081226 const forbidOverridesField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides');
12091227 const forbidOverridesBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_forbid_overrides_block');
1228+ const entrySourceBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source_block');
1229+ const entrySource = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source');
1230+ const isPulledPrompt = Object.keys(this.promptSources).includes(prompt.identifier);
12101231
12111232 nameField.value = prompt.name ?? '';
12121233 roleField.value = prompt.role || 'system';
@@ -1218,6 +1239,12 @@ class PromptManager {
12181239 injectionPositionField.removeAttribute('disabled');
12191240 forbidOverridesField.checked = prompt.forbid_overrides ?? false;
12201241 forbidOverridesBlock.style.visibility = this.overridablePrompts.includes(prompt.identifier) ? 'visible' : 'hidden';
1242+ entrySourceBlock.style.display = isPulledPrompt ? '' : 'none';
1243+
1244+ if (isPulledPrompt) {
1245+ const sourceName = this.promptSources[prompt.identifier];
1246+ entrySource.textContent = sourceName;
1247+ }
12211248
12221249 if (this.systemPrompts.includes(prompt.identifier)) {
12231250 injectionPositionField.setAttribute('disabled', 'disabled');
@@ -1303,6 +1330,8 @@ class PromptManager {
13031330 const injectionDepthBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_depth_block');
13041331 const forbidOverridesField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides');
13051332 const forbidOverridesBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_forbid_overrides_block');
1333+ const entrySourceBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source_block');
1334+ const entrySource = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source');
13061335
13071336 nameField.value = '';
13081337 roleField.selectedIndex = 0;
@@ -1314,6 +1343,8 @@ class PromptManager {
13141343 injectionDepthBlock.style.visibility = 'unset';
13151344 forbidOverridesBlock.style.visibility = 'unset';
13161345 forbidOverridesField.checked = false;
1346+ entrySourceBlock.style.display = 'none';
1347+ entrySource.textContent = '';
13171348
13181349 roleField.disabled = false;
13191350 }