diff --git a/package.json b/package.json
index 78d71dbf..12fb5a0a 100644
--- a/package.json
+++ b/package.json
@@ -98,6 +98,7 @@
"@tsconfig/svelte": "^3.0.0",
"@types/blueimp-md5": "^2.18.2",
"@types/codemirror": "^5.60.15",
+ "@types/diff": "^6.0.0",
"@types/dompurify": "^3.0.5",
"@types/libsodium-wrappers-sumo": "^0.7.8",
"@types/lodash": "^4.14.202",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index dc9791e3..8dad0810 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -249,6 +249,9 @@ importers:
'@types/codemirror':
specifier: ^5.60.15
version: 5.60.15
+ '@types/diff':
+ specifier: ^6.0.0
+ version: 6.0.0
'@types/dompurify':
specifier: ^3.0.5
version: 3.0.5
@@ -1211,6 +1214,9 @@ packages:
'@types/codemirror@5.60.15':
resolution: {integrity: sha512-dTOvwEQ+ouKJ/rE9LT1Ue2hmP6H1mZv5+CCnNWu2qtiOe2LQa9lCprEY20HxiDmV/Bxh+dXjywmy5aKvoGjULA==}
+ '@types/diff@6.0.0':
+ resolution: {integrity: sha512-dhVCYGv3ZSbzmQaBSagrv1WJ6rXCdkyTcDyoNu1MD8JohI7pR7k8wdZEm+mvdxRKXyHVwckFzWU1vJc+Z29MlA==}
+
'@types/dompurify@3.0.5':
resolution: {integrity: sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==}
@@ -4865,6 +4871,8 @@ snapshots:
dependencies:
'@types/tern': 0.23.9
+ '@types/diff@6.0.0': {}
+
'@types/dompurify@3.0.5':
dependencies:
'@types/trusted-types': 2.0.7
diff --git a/src/lang/en.ts b/src/lang/en.ts
index aa4e2a9a..1c4f8c80 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -838,5 +838,7 @@ export const languageEnglish = {
showSavingIcon: "Show Saving Icon",
pluginVersionWarn: "This is {{plugin_version}} version of the plugin. which is not compatible with this version of RisuAI. please update the plugin to {{required_version}} version.",
imageTranslation: "Image Translation",
- banCharacterset: 'Auto Regenerate On Characterset'
+ banCharacterset: 'Auto Regenerate On Characterset',
+ checkCorruption: "Check Corruption",
+ showPromptComparison: "Show Prompt Comparison",
}
\ No newline at end of file
diff --git a/src/lib/Setting/Pages/AdvancedSettings.svelte b/src/lib/Setting/Pages/AdvancedSettings.svelte
index 0edc1d8a..d92579b8 100644
--- a/src/lib/Setting/Pages/AdvancedSettings.svelte
+++ b/src/lib/Setting/Pages/AdvancedSettings.svelte
@@ -192,6 +192,10 @@
+
+
+
+
{#if DBState.db?.account?.useSync}
diff --git a/src/lib/Setting/Pages/DisplaySettings.svelte b/src/lib/Setting/Pages/DisplaySettings.svelte
index 38fe538e..c782357c 100644
--- a/src/lib/Setting/Pages/DisplaySettings.svelte
+++ b/src/lib/Setting/Pages/DisplaySettings.svelte
@@ -304,6 +304,10 @@
+
+
+
+
{#if DBState.db.textScreenBorder}
{
diff --git a/src/lib/Setting/botpreset.svelte b/src/lib/Setting/botpreset.svelte
index 0a6969d4..d4b94a7b 100644
--- a/src/lib/Setting/botpreset.svelte
+++ b/src/lib/Setting/botpreset.svelte
@@ -8,7 +8,6 @@
import { prebuiltPresets } from "src/ts/process/templates/templates";
import { ShowRealmFrameStore } from "src/ts/stores.svelte";
import type { PromptItem, PromptItemPlain, PromptItemChatML, PromptItemTyped, PromptItemAuthorNote, PromptItemChat } from "src/ts/process/prompt.ts";
- import { diffWordsWithSpace, diffLines } from 'diff';
let editMode = $state(false)
interface Props {
@@ -112,7 +111,8 @@
return prompt
}
- function checkDiff(prompt1: string, prompt2: string): string {
+ async function checkDiff(prompt1: string, prompt2: string): Promise {
+ const { diffLines } = await import('diff')
const lineDiffs = diffLines(prompt1, prompt2)
let resultHtml = '';
@@ -123,7 +123,7 @@
if(linePart.removed){
const nextPart = lineDiffs[i + 1]
if(nextPart?.added){
- resultHtml += `${highlightChanges(linePart.value, nextPart.value)}
`
+ resultHtml += `${await highlightChanges(linePart.value, nextPart.value)}
`
i++;
}
else{
@@ -148,7 +148,8 @@
return resultHtml
}
- function highlightChanges(string1: string, string2: string) {
+ async function highlightChanges(string1: string, string2: string) {
+ const { diffWordsWithSpace } = await import('diff')
const charDiffs = diffWordsWithSpace(string1, string2)
return charDiffs
@@ -169,7 +170,7 @@
}
- function handleDiffMode(id: number) {
+ async function handleDiffMode(id: number) {
if (selectedDiffPreset === id) {
selectedDiffPreset = -1
selectedPrompts = []
@@ -193,7 +194,7 @@
}
else{
alertWait("Loading...")
- const result = checkDiff(selectedPrompts[0], prompt)
+ const result = await checkDiff(selectedPrompts[0], prompt)
alertMd(result)
selectedDiffPreset = -1
selectedPrompts = []
@@ -234,16 +235,18 @@
{preset.name}
{/if}
-
{
- e.stopPropagation()
- handleDiffMode(i)
- }} onkeydown={(e) => {
- if(e.key === 'Enter'){
- e.currentTarget.click()
- }
- }}>
-
-
+ {#if DBState.db.showPromptComparison}
+
{
+ e.stopPropagation()
+ handleDiffMode(i)
+ }} onkeydown={(e) => {
+ if(e.key === 'Enter'){
+ e.currentTarget.click()
+ }
+ }}>
+
+
+ {/if}
{
e.stopPropagation()
copyPreset(i)
diff --git a/src/ts/storage/database.svelte.ts b/src/ts/storage/database.svelte.ts
index 8f7665ff..f15c94be 100644
--- a/src/ts/storage/database.svelte.ts
+++ b/src/ts/storage/database.svelte.ts
@@ -468,6 +468,8 @@ export function setDatabase(data:Database){
data.assetMaxDifference ??= 4
data.showSavingIcon ??= false
data.banCharacterset ??= []
+ data.showPromptComparison ??= false
+ data.checkCorruption ??= true
changeLanguage(data.language)
setDatabaseLite(data)
}
@@ -868,6 +870,8 @@ export interface Database{
showSavingIcon:boolean
presetRegex: customscript[]
banCharacterset:string[]
+ showPromptComparison:boolean
+ checkCorruption:boolean
}
interface SeparateParameters{