@@ -120,6 +196,11 @@
+ {#if !value.alwaysActive && getCurrentCharacter()?.globalLore?.includes(value)}
+
+ toggleLocalActive(check, value)} name={language.alwaysActiveInChat}/>
+
+ {/if}
{#if !lorePlus && !value.useRegex}
diff --git a/src/ts/process/lorebook.svelte.ts b/src/ts/process/lorebook.svelte.ts
index f868a2a7..5e578be7 100644
--- a/src/ts/process/lorebook.svelte.ts
+++ b/src/ts/process/lorebook.svelte.ts
@@ -218,6 +218,21 @@ export async function loadLoreBookV3Prompt(){
all?:boolean
}[] = []
let fullWordMatching = fullWordMatchingSetting
+
+ if(fullLore[i].mode === 'child'){
+ activated = false
+ for(let j=0;j {
switch(name){
case 'end':{
diff --git a/src/ts/storage/database.svelte.ts b/src/ts/storage/database.svelte.ts
index 51bf4572..3c5801f3 100644
--- a/src/ts/storage/database.svelte.ts
+++ b/src/ts/storage/database.svelte.ts
@@ -937,7 +937,7 @@ export interface loreBook{
insertorder: number
comment: string
content: string
- mode: 'multiple'|'constant'|'normal',
+ mode: 'multiple'|'constant'|'normal'|'child',
alwaysActive: boolean
selective:boolean
extentions?:{
@@ -950,6 +950,7 @@ export interface loreBook{
},
useRegex?:boolean
bookVersion?:number
+ id?:string
}
export interface character{
From 77a36f5a7f258422921ec127a266e651d3e2886b Mon Sep 17 00:00:00 2001
From: bangonicdd <157843588+bangonicdd2@users.noreply.github.com>
Date: Fri, 21 Feb 2025 21:13:57 +0900
Subject: [PATCH 2/4] fix: issue of local lore deactive in prev commit
---
src/lib/SideBars/LoreBook/LoreBookData.svelte | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/lib/SideBars/LoreBook/LoreBookData.svelte b/src/lib/SideBars/LoreBook/LoreBookData.svelte
index c1014f40..e4ab4956 100644
--- a/src/lib/SideBars/LoreBook/LoreBookData.svelte
+++ b/src/lib/SideBars/LoreBook/LoreBookData.svelte
@@ -70,6 +70,7 @@
}
}
function DeactivateLocally(book: loreBook){
+ if(!book.id) return
const chat = getCurrentChat()
const childLore = chat?.localLore?.find(e => e.id === book.id)
if(childLore){
From 0f1d243935132043f84dd21e887a83230ea8af84 Mon Sep 17 00:00:00 2001
From: bangonicdd <157843588+bangonicdd2@users.noreply.github.com>
Date: Sat, 22 Feb 2025 01:26:12 +0900
Subject: [PATCH 3/4] fix: naming to lower camel case in current PR
---
src/lib/SideBars/LoreBook/LoreBookData.svelte | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/lib/SideBars/LoreBook/LoreBookData.svelte b/src/lib/SideBars/LoreBook/LoreBookData.svelte
index e4ab4956..3549cc7d 100644
--- a/src/lib/SideBars/LoreBook/LoreBookData.svelte
+++ b/src/lib/SideBars/LoreBook/LoreBookData.svelte
@@ -42,7 +42,7 @@
e.alwaysActive
)
}
- function ActivateLocally(book: loreBook){
+ function activateLocally(book: loreBook){
const chat = getCurrentChat()
let childLore: loreBook | undefined
@@ -69,7 +69,7 @@
chat.localLore.push(childLore)
}
}
- function DeactivateLocally(book: loreBook){
+ function deactivateLocally(book: loreBook){
if(!book.id) return
const chat = getCurrentChat()
const childLore = chat?.localLore?.find(e => e.id === book.id)
@@ -79,9 +79,9 @@
}
function toggleLocalActive(check: boolean, book: loreBook){
if(check){
- ActivateLocally(book)
+ activateLocally(book)
}else{
- DeactivateLocally(book)
+ deactivateLocally(book)
}
}
function getParentLoreName(book: loreBook){
@@ -129,7 +129,7 @@
if(!open){
onClose()
}
- DeactivateLocally(value)
+ deactivateLocally(value)
onRemove()
}
}}>
From a45a3925c2a575de611b96befabbb6afe27989a8 Mon Sep 17 00:00:00 2001
From: bangonicdd <157843588+bangonicdd2@users.noreply.github.com>
Date: Mon, 24 Feb 2025 17:00:48 +0900
Subject: [PATCH 4/4] refactor: cleanup lore local activation
---
src/lib/SideBars/LoreBook/LoreBookData.svelte | 36 +++++++------------
1 file changed, 12 insertions(+), 24 deletions(-)
diff --git a/src/lib/SideBars/LoreBook/LoreBookData.svelte b/src/lib/SideBars/LoreBook/LoreBookData.svelte
index 3549cc7d..05f43c75 100644
--- a/src/lib/SideBars/LoreBook/LoreBookData.svelte
+++ b/src/lib/SideBars/LoreBook/LoreBookData.svelte
@@ -37,37 +37,25 @@
let tokens = $state(0)
function isLocallyActivated(book: loreBook){
- return getCurrentChat()?.localLore.some(e =>
- e.id === book.id &&
- e.alwaysActive
- )
+ return book.id ? getCurrentChat()?.localLore.some(e => e.id === book.id) : false
}
function activateLocally(book: loreBook){
- const chat = getCurrentChat()
- let childLore: loreBook | undefined
-
if(!book.id){
book.id = v4()
- }else{
- childLore = chat.localLore.find(e => e.id === book.id)
}
- if(childLore){
- childLore.alwaysActive = true
- }else{
- childLore = {
- key: '',
- comment: '',
- content: '',
- mode: 'child',
- insertorder: 100,
- alwaysActive: true,
- secondkey: '',
- selective: false,
- id: book.id,
- }
- chat.localLore.push(childLore)
+ const childLore: loreBook = {
+ key: '',
+ comment: '',
+ content: '',
+ mode: 'child',
+ insertorder: 100,
+ alwaysActive: true,
+ secondkey: '',
+ selective: false,
+ id: book.id,
}
+ getCurrentChat().localLore.push(childLore)
}
function deactivateLocally(book: loreBook){
if(!book.id) return