diff --git a/public/index.html b/public/index.html
index 9398adbe4..714cd032c 100644
--- a/public/index.html
+++ b/public/index.html
@@ -5202,7 +5202,7 @@
Unique to this chat.
Checkpoints inherit the Note from their parent, and can be changed individually after that.
-
+
diff --git a/public/script.js b/public/script.js
index b1485f425..b6157c34a 100644
--- a/public/script.js
+++ b/public/script.js
@@ -2454,7 +2454,7 @@ function addPersonaDescriptionExtensionPrompt() {
? `${power_user.persona_description}\n${originalAN}`
: `${originalAN}\n${power_user.persona_description}`;
- setExtensionPrompt(NOTE_MODULE_NAME, ANWithDesc, chat_metadata[metadata_keys.position], chat_metadata[metadata_keys.depth], extension_settings.note.allowWIScan);
+ setExtensionPrompt(NOTE_MODULE_NAME, ANWithDesc, chat_metadata[metadata_keys.position], chat_metadata[metadata_keys.depth], extension_settings.note.allowWIScan, chat_metadata[metadata_keys.role]);
}
}
diff --git a/public/scripts/authors-note.js b/public/scripts/authors-note.js
index 6642f998b..24e73b278 100644
--- a/public/scripts/authors-note.js
+++ b/public/scripts/authors-note.js
@@ -3,6 +3,7 @@ import {
chat_metadata,
eventSource,
event_types,
+ extension_prompt_roles,
saveSettingsDebounced,
this_chid,
} from '../script.js';
@@ -22,6 +23,7 @@ export const metadata_keys = {
interval: 'note_interval',
depth: 'note_depth',
position: 'note_position',
+ role: 'note_role',
};
const chara_note_position = {
@@ -140,6 +142,16 @@ async function onDefaultIntervalInput() {
saveSettingsDebounced();
}
+function onExtensionFloatingRoleInput(e) {
+ chat_metadata[metadata_keys.role] = Number(e.target.value);
+ updateSettings();
+}
+
+function onExtensionDefaultRoleInput(e) {
+ extension_settings.note.defaultRole = Number(e.target.value);
+ saveSettingsDebounced();
+}
+
async function onExtensionFloatingCharPositionInput(e) {
const value = e.target.value;
const charaNote = extension_settings.note.chara.find((e) => e.name === getCharaFilename());
@@ -217,6 +229,7 @@ function loadSettings() {
const DEFAULT_DEPTH = 4;
const DEFAULT_POSITION = 1;
const DEFAULT_INTERVAL = 1;
+ const DEFAULT_ROLE = extension_prompt_roles.SYSTEM;
if (extension_settings.note.defaultPosition === undefined) {
extension_settings.note.defaultPosition = DEFAULT_POSITION;
@@ -230,14 +243,20 @@ function loadSettings() {
extension_settings.note.defaultInterval = DEFAULT_INTERVAL;
}
+ if (extension_settings.note.defaultRole === undefined) {
+ extension_settings.note.defaultRole = DEFAULT_ROLE;
+ }
+
chat_metadata[metadata_keys.prompt] = chat_metadata[metadata_keys.prompt] ?? extension_settings.note.default ?? '';
chat_metadata[metadata_keys.interval] = chat_metadata[metadata_keys.interval] ?? extension_settings.note.defaultInterval ?? DEFAULT_INTERVAL;
chat_metadata[metadata_keys.position] = chat_metadata[metadata_keys.position] ?? extension_settings.note.defaultPosition ?? DEFAULT_POSITION;
chat_metadata[metadata_keys.depth] = chat_metadata[metadata_keys.depth] ?? extension_settings.note.defaultDepth ?? DEFAULT_DEPTH;
+ chat_metadata[metadata_keys.role] = chat_metadata[metadata_keys.role] ?? extension_settings.note.defaultRole ?? DEFAULT_ROLE;
$('#extension_floating_prompt').val(chat_metadata[metadata_keys.prompt]);
$('#extension_floating_interval').val(chat_metadata[metadata_keys.interval]);
$('#extension_floating_allow_wi_scan').prop('checked', extension_settings.note.allowWIScan ?? false);
$('#extension_floating_depth').val(chat_metadata[metadata_keys.depth]);
+ $('#extension_floating_role').val(chat_metadata[metadata_keys.role]);
$(`input[name="extension_floating_position"][value="${chat_metadata[metadata_keys.position]}"]`).prop('checked', true);
if (extension_settings.note.chara && getContext().characterId) {
@@ -255,6 +274,7 @@ function loadSettings() {
$('#extension_floating_default').val(extension_settings.note.default);
$('#extension_default_depth').val(extension_settings.note.defaultDepth);
$('#extension_default_interval').val(extension_settings.note.defaultInterval);
+ $('#extension_default_role').val(extension_settings.note.defaultRole);
$(`input[name="extension_default_position"][value="${extension_settings.note.defaultPosition}"]`).prop('checked', true);
}
@@ -274,6 +294,10 @@ export function setFloatingPrompt() {
------
lastMessageNumber = ${lastMessageNumber}
metadata_keys.interval = ${chat_metadata[metadata_keys.interval]}
+ metadata_keys.position = ${chat_metadata[metadata_keys.position]}
+ metadata_keys.depth = ${chat_metadata[metadata_keys.depth]}
+ metadata_keys.role = ${chat_metadata[metadata_keys.role]}
+ ------
`);
// interval 1 should be inserted no matter what
@@ -313,7 +337,14 @@ export function setFloatingPrompt() {
}
}
}
- context.setExtensionPrompt(MODULE_NAME, prompt, chat_metadata[metadata_keys.position], chat_metadata[metadata_keys.depth], extension_settings.note.allowWIScan);
+ context.setExtensionPrompt(
+ MODULE_NAME,
+ prompt,
+ chat_metadata[metadata_keys.position],
+ chat_metadata[metadata_keys.depth],
+ extension_settings.note.allowWIScan,
+ chat_metadata[metadata_keys.role],
+ );
$('#extension_floating_counter').text(shouldAddPrompt ? '0' : messagesTillInsertion);
}
@@ -410,6 +441,8 @@ export function initAuthorsNote() {
$('#extension_default_depth').on('input', onDefaultDepthInput);
$('#extension_default_interval').on('input', onDefaultIntervalInput);
$('#extension_floating_allow_wi_scan').on('input', onAllowWIScanCheckboxChanged);
+ $('#extension_floating_role').on('input', onExtensionFloatingRoleInput);
+ $('#extension_default_role').on('input', onExtensionDefaultRoleInput);
$('input[name="extension_floating_position"]').on('change', onExtensionFloatingPositionInput);
$('input[name="extension_default_position"]').on('change', onDefaultPositionInput);
$('input[name="extension_floating_char_position"]').on('change', onExtensionFloatingCharPositionInput);
diff --git a/public/scripts/world-info.js b/public/scripts/world-info.js
index 5ffd9e3c3..29582a1f0 100644
--- a/public/scripts/world-info.js
+++ b/public/scripts/world-info.js
@@ -2285,7 +2285,7 @@ async function checkWorldInfo(chat, maxContext) {
if (shouldWIAddPrompt) {
const originalAN = context.extensionPrompts[NOTE_MODULE_NAME].value;
const ANWithWI = `${ANTopEntries.join('\n')}\n${originalAN}\n${ANBottomEntries.join('\n')}`;
- context.setExtensionPrompt(NOTE_MODULE_NAME, ANWithWI, chat_metadata[metadata_keys.position], chat_metadata[metadata_keys.depth], extension_settings.note.allowWIScan);
+ context.setExtensionPrompt(NOTE_MODULE_NAME, ANWithWI, chat_metadata[metadata_keys.position], chat_metadata[metadata_keys.depth], extension_settings.note.allowWIScan, chat_metadata[metadata_keys.role]);
}
return { worldInfoBefore, worldInfoAfter, WIDepthEntries, allActivatedEntries };