From a10a2c5502478181cff23bea57ddfb0bbf33fdb1 Mon Sep 17 00:00:00 2001 From: Bo26fhmC5M <88071760+Bo26fhmC5M@users.noreply.github.com> Date: Tue, 14 Jan 2025 13:01:14 +0900 Subject: [PATCH] refactor: extract HypaV3 modal into separate component --- src/lib/Others/AlertComp.svelte | 169 +-------------------- src/lib/Others/HypaV3Modal.svelte | 236 ++++++++++++++++++++++++++++++ src/ts/process/memory/hypav3.ts | 16 +- 3 files changed, 249 insertions(+), 172 deletions(-) create mode 100644 src/lib/Others/HypaV3Modal.svelte diff --git a/src/lib/Others/AlertComp.svelte b/src/lib/Others/AlertComp.svelte index 64abbdc5..1a8580d8 100644 --- a/src/lib/Others/AlertComp.svelte +++ b/src/lib/Others/AlertComp.svelte @@ -1,16 +1,16 @@ { @@ -324,160 +318,7 @@ {/each} {/if} {:else if $alertStore.type === "hypaV3"} -
-
-
-
-

HypaV3 Data

-
- - - - -
-
-
- {#each DBState.db.characters[$selectedCharID].chats[DBState.db.characters[$selectedCharID].chatPage].hypaV3Data.summaries as summary, i} -
- -
-
- Summary #{i + 1} -
- - - - -
-
- - -
- - -
- - Connected Messages ({summary.chatMemos.length}) - -
- -
- {#each summary.chatMemos as chatMemo} - - {/each} -
- - - {#if hypaV3ExpandedChatMemo.summaryChatMemos === summary.chatMemos && hypaV3ExpandedChatMemo.summaryChatMemo !== ""} -
-
- {(() => { - const char = DBState.db.characters[$selectedCharID] - const chat = char.chats[DBState.db.characters[$selectedCharID].chatPage] - const firstMessage = chat.fmIndex === -1 ? char.firstMessage : char.alternateGreetings?.[chat.fmIndex ?? 0] - const targetMessage = hypaV3ExpandedChatMemo.summaryChatMemo == null ? { role: "char", data: firstMessage } : chat.message.find(m => m.chatId === hypaV3ExpandedChatMemo.summaryChatMemo) - - if (targetMessage) { - const displayRole = targetMessage.role === "char" ? char.name : targetMessage.role - return `${displayRole}:\n${targetMessage.data}` - } - - return "Message not found" - })()} -
-
- {/if} -
-
-
- {/each} - {#if DBState.db.characters[$selectedCharID].chats[DBState.db.characters[$selectedCharID].chatPage].hypaV3Data.summaries.length === 0} - No summaries yet - {/if} -
-
-
-
+ {:else if $alertStore.type === 'addchar'}
diff --git a/src/lib/Others/HypaV3Modal.svelte b/src/lib/Others/HypaV3Modal.svelte new file mode 100644 index 00000000..e6c6b34e --- /dev/null +++ b/src/lib/Others/HypaV3Modal.svelte @@ -0,0 +1,236 @@ + + +
+
+
+
+

HypaV3 Data

+
+ + + + +
+
+
+ {#each DBState.db.characters[$selectedCharID].chats[DBState.db.characters[$selectedCharID].chatPage].hypaV3Data.summaries as summary, i} +
+ +
+
+ Summary #{i + 1} +
+ + + + +
+
+ + +
+ + +
+ + Connected Messages ({summary.chatMemos.length}) + +
+ +
+ {#each summary.chatMemos as chatMemo} + + {/each} +
+ + + {#if hypaV3ExpandedChatMemo.summaryChatMemos === summary.chatMemos && hypaV3ExpandedChatMemo.summaryChatMemo !== ""} +
+
+ {(() => { + const char = DBState.db.characters[$selectedCharID]; + const chat = + char.chats[ + DBState.db.characters[$selectedCharID].chatPage + ]; + const firstMessage = + chat.fmIndex === -1 + ? char.firstMessage + : char.alternateGreetings?.[chat.fmIndex ?? 0]; + const targetMessage = + hypaV3ExpandedChatMemo.summaryChatMemo == null + ? { role: "char", data: firstMessage } + : chat.message.find( + (m) => + m.chatId === + hypaV3ExpandedChatMemo.summaryChatMemo + ); + + if (targetMessage) { + const displayRole = + targetMessage.role === "char" + ? char.name + : targetMessage.role; + return `${displayRole}:\n${targetMessage.data}`; + } + + return "Message not found"; + })()} +
+
+ {/if} +
+
+
+ {/each} + {#if DBState.db.characters[$selectedCharID].chats[DBState.db.characters[$selectedCharID].chatPage].hypaV3Data.summaries.length === 0} + No summaries yet + {/if} +
+
+
+
diff --git a/src/ts/process/memory/hypav3.ts b/src/ts/process/memory/hypav3.ts index b876ab39..4786c1bf 100644 --- a/src/ts/process/memory/hypav3.ts +++ b/src/ts/process/memory/hypav3.ts @@ -1,20 +1,20 @@ -import { - getDatabase, - type Chat, - type character, - type groupChat, -} from "src/ts/storage/database.svelte"; import { type VectorArray, type memoryVector, HypaProcesser, } from "./hypamemory"; -import type { OpenAIChat } from "../index.svelte"; +import { + type Chat, + type character, + type groupChat, + getDatabase, +} from "src/ts/storage/database.svelte"; +import { type OpenAIChat } from "../index.svelte"; import { requestChatData } from "../request"; import { runSummarizer } from "../transformers"; import { globalFetch } from "src/ts/globalApi.svelte"; import { parseChatML } from "src/ts/parser.svelte"; -import type { ChatTokenizer } from "src/ts/tokenizer"; +import { type ChatTokenizer } from "src/ts/tokenizer"; interface Summary { text: string;