sillytavern-utils-lib 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 bmen25124
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,58 @@
1
+ import { persona_description_positions } from '../../../../power-user.js';
2
+ import { name1, name2, extension_prompt_types, this_chid, characters, depth_prompt_role_default, depth_prompt_depth_default, main_api, systemUserName, system_avatar } from '../../../../../script.js';
3
+ import { world_info_include_names, wi_anchor_position } from '../../../../world-info.js';
4
+ import { selected_group } from '../../../../group-chats.js';
5
+ import { regex_placement } from '../../../regex/engine.js';
6
+ /**
7
+ * Sends an echo message using the SlashCommandParser's echo command.
8
+ */
9
+ export declare function st_echo(severity: string, message: string): Promise<void>;
10
+ export declare function st_getMaxContextSize(overrideResponseLength?: number): number;
11
+ export declare function st_parseMesExamples(examplesStr: string, isInstruct: boolean): string[];
12
+ export declare function st_baseChatReplace(value: any, name1: any, name2: any): any;
13
+ export declare function st_formatInstructModeExamples(mesExamplesArray: string[], name1: string, name2: string): string[];
14
+ export declare function st_renderStoryString(params: object): string;
15
+ export declare function st_getPromptRole(role: number): string;
16
+ export declare function st_getAuthorNote(): {
17
+ prompt: string;
18
+ interval: number;
19
+ position: number;
20
+ depth: number;
21
+ role: number;
22
+ };
23
+ export declare function st_getGroupDepthPrompts(groupId: string, characterId: number): {
24
+ depth: number;
25
+ text: string;
26
+ role: string;
27
+ }[];
28
+ export declare function st_prepareOpenAIMessages({ name2, charDescription, charPersonality, Scenario, worldInfoBefore, worldInfoAfter, bias, type, quietPrompt, quietImage, extensionPrompts, cyclePrompt, systemPromptOverride, jailbreakPromptOverride, personaDescription, messages, messageExamples, }: {
29
+ name2: string;
30
+ charDescription: string;
31
+ charPersonality: string;
32
+ Scenario: string;
33
+ worldInfoBefore: string;
34
+ worldInfoAfter: string;
35
+ bias: string;
36
+ type: string;
37
+ quietPrompt?: string;
38
+ quietImage?: string;
39
+ cyclePrompt: string;
40
+ systemPromptOverride: string;
41
+ jailbreakPromptOverride: string;
42
+ personaDescription: string;
43
+ extensionPrompts: object;
44
+ messages: object[];
45
+ messageExamples: string[];
46
+ }, dryRun: any): Promise<any[]>;
47
+ export declare function st_setOpenAIMessages(chat: object[]): object[];
48
+ export declare function st_setOpenAIMessageExamples(mesExamplesArray: string[]): string[];
49
+ export declare function st_getRegexedString(rawString: string, placement: regex_placement, { characterOverride, isMarkdown, isPrompt, isEdit, depth, }: {
50
+ characterOverride?: string;
51
+ isMarkdown?: boolean;
52
+ isPrompt?: boolean;
53
+ isEdit?: boolean;
54
+ depth?: number;
55
+ }): string;
56
+ export declare function st_appendFileContent(message: object, messageText: string): Promise<string>;
57
+ export { persona_description_positions, name1, name2, world_info_include_names, wi_anchor_position, extension_prompt_types, selected_group, this_chid, characters, depth_prompt_role_default, depth_prompt_depth_default, main_api, regex_placement, systemUserName, system_avatar, };
58
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js ADDED
@@ -0,0 +1,92 @@
1
+ // @ts-ignore
2
+ import { persona_description_positions, renderStoryString } from '../../../../power-user.js';
3
+ import { name1, name2, getMaxContextSize, parseMesExamples, baseChatReplace, chat_metadata, extension_prompt_types, this_chid, characters, depth_prompt_role_default, depth_prompt_depth_default, main_api, systemUserName, system_avatar,
4
+ // @ts-ignore
5
+ } from '../../../../../script.js';
6
+ // @ts-ignore
7
+ import { world_info_include_names, wi_anchor_position } from '../../../../world-info.js';
8
+ // @ts-ignore
9
+ import { formatInstructModeExamples } from '../../../../instruct-mode.js';
10
+ // @ts-ignore
11
+ import { appendFileContent } from '../../../../chats.js';
12
+ import { getPromptRole, prepareOpenAIMessages, setOpenAIMessages, setOpenAIMessageExamples,
13
+ // @ts-ignore
14
+ } from '../../../../openai.js';
15
+ // @ts-ignore
16
+ import { metadata_keys } from '../../../../authors-note.js';
17
+ // @ts-ignore
18
+ import { getGroupDepthPrompts, selected_group } from '../../../../group-chats.js';
19
+ // @ts-ignore
20
+ import { regex_placement, getRegexedString } from '../../../regex/engine.js';
21
+ /**
22
+ * Sends an echo message using the SlashCommandParser's echo command.
23
+ */
24
+ export async function st_echo(severity, message) {
25
+ // @ts-ignore
26
+ await SillyTavern.getContext().SlashCommandParser.commands['echo'].callback({ severity: severity }, message);
27
+ }
28
+ export function st_getMaxContextSize(overrideResponseLength) {
29
+ return getMaxContextSize(overrideResponseLength);
30
+ }
31
+ export function st_parseMesExamples(examplesStr, isInstruct) {
32
+ return parseMesExamples(examplesStr, isInstruct);
33
+ }
34
+ export function st_baseChatReplace(value, name1, name2) {
35
+ return baseChatReplace(value, name1, name2);
36
+ }
37
+ export function st_formatInstructModeExamples(mesExamplesArray, name1, name2) {
38
+ return formatInstructModeExamples(mesExamplesArray, name1, name2);
39
+ }
40
+ export function st_renderStoryString(params) {
41
+ return renderStoryString(params);
42
+ }
43
+ export function st_getPromptRole(role) {
44
+ return getPromptRole(role);
45
+ }
46
+ export function st_getAuthorNote() {
47
+ return {
48
+ prompt: chat_metadata[metadata_keys.prompt],
49
+ interval: chat_metadata[metadata_keys.interval],
50
+ position: chat_metadata[metadata_keys.position],
51
+ depth: chat_metadata[metadata_keys.depth],
52
+ role: chat_metadata[metadata_keys.role],
53
+ };
54
+ }
55
+ export function st_getGroupDepthPrompts(groupId, characterId) {
56
+ return getGroupDepthPrompts(groupId, characterId);
57
+ }
58
+ export function st_prepareOpenAIMessages({ name2, charDescription, charPersonality, Scenario, worldInfoBefore, worldInfoAfter, bias, type, quietPrompt, quietImage, extensionPrompts, cyclePrompt, systemPromptOverride, jailbreakPromptOverride, personaDescription, messages, messageExamples, }, dryRun) {
59
+ return prepareOpenAIMessages({
60
+ name2,
61
+ charDescription,
62
+ charPersonality,
63
+ Scenario,
64
+ worldInfoBefore,
65
+ worldInfoAfter,
66
+ bias,
67
+ type,
68
+ quietPrompt,
69
+ quietImage,
70
+ cyclePrompt,
71
+ systemPromptOverride,
72
+ jailbreakPromptOverride,
73
+ personaDescription,
74
+ extensionPrompts,
75
+ messages,
76
+ messageExamples,
77
+ }, dryRun);
78
+ }
79
+ export function st_setOpenAIMessages(chat) {
80
+ return setOpenAIMessages(chat);
81
+ }
82
+ export function st_setOpenAIMessageExamples(mesExamplesArray) {
83
+ return setOpenAIMessageExamples(mesExamplesArray);
84
+ }
85
+ export function st_getRegexedString(rawString, placement, { characterOverride, isMarkdown, isPrompt, isEdit, depth, }) {
86
+ return getRegexedString(rawString, placement, { characterOverride, isMarkdown, isPrompt, isEdit, depth });
87
+ }
88
+ export async function st_appendFileContent(message, messageText) {
89
+ return await appendFileContent(message, messageText);
90
+ }
91
+ export { persona_description_positions, name1, name2, world_info_include_names, wi_anchor_position, extension_prompt_types, selected_group, this_chid, characters, depth_prompt_role_default, depth_prompt_depth_default, main_api, regex_placement, systemUserName, system_avatar, };
92
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { ChatCompletionMessage } from './types';
2
+ export interface Message extends ChatCompletionMessage {
3
+ ignoreInstruct?: boolean;
4
+ }
5
+ /**
6
+ * Text completion supported: Handles system message (description, scenario, etc.), chat history, world info, author note, char note
7
+ *
8
+ * Text completion not supported: extensionPrompt, summarize
9
+ *
10
+ * Chat completion supported: All (i guess)
11
+ */
12
+ export declare function buildPrompt(targetMessageIndex: number): Promise<Message[]>;
13
+ //# sourceMappingURL=prompt-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../src/prompt-builder.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,WAAW,OAAQ,SAAQ,qBAAqB;IACpD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA2NhF"}
@@ -0,0 +1,192 @@
1
+ import { characters, extension_prompt_types, name1, name2, persona_description_positions, selected_group, st_baseChatReplace, st_formatInstructModeExamples, st_getAuthorNote, depth_prompt_depth_default, st_getGroupDepthPrompts, st_getMaxContextSize, st_getPromptRole, st_parseMesExamples, st_renderStoryString, this_chid, wi_anchor_position, world_info_include_names, depth_prompt_role_default, st_prepareOpenAIMessages, st_setOpenAIMessages, st_setOpenAIMessageExamples, main_api, regex_placement, st_getRegexedString, st_appendFileContent, } from './config';
2
+ /**
3
+ * Text completion supported: Handles system message (description, scenario, etc.), chat history, world info, author note, char note
4
+ *
5
+ * Text completion not supported: extensionPrompt, summarize
6
+ *
7
+ * Chat completion supported: All (i guess)
8
+ */
9
+ export async function buildPrompt(targetMessageIndex) {
10
+ if (!['textgenerationwebui', 'openai'].includes(main_api)) {
11
+ throw new Error('Unsupported API');
12
+ }
13
+ const context = SillyTavern.getContext();
14
+ let messages = [];
15
+ const chat = context.chat.slice(0, targetMessageIndex + 1);
16
+ let { description, personality, persona, scenario, mesExamples, system, jailbreak } = context.getCharacterCardFields();
17
+ const isInstruct = main_api === 'textgenerationwebui';
18
+ let mesExamplesArray = st_parseMesExamples(mesExamples, isInstruct);
19
+ const this_max_context = st_getMaxContextSize();
20
+ const canUseTools = context.ToolManager.isToolCallingSupported();
21
+ let coreChat = chat.filter((x) => !x.is_system || (canUseTools && Array.isArray(x.extra?.tool_invocations)));
22
+ coreChat = await Promise.all(coreChat.map(async (chatItem, index) => {
23
+ let message = chatItem.mes;
24
+ let regexType = chatItem.is_user ? regex_placement.USER_INPUT : regex_placement.AI_OUTPUT;
25
+ const isContinue = false;
26
+ let options = { isPrompt: true, depth: coreChat.length - index - (isContinue ? 2 : 1) };
27
+ let regexedMessage = st_getRegexedString(message, regexType, options);
28
+ regexedMessage = await st_appendFileContent(chatItem, regexedMessage);
29
+ if (chatItem?.extra?.append_title && chatItem?.extra?.title) {
30
+ regexedMessage = `${regexedMessage}\n\n${chatItem.extra.title}`;
31
+ }
32
+ return {
33
+ ...chatItem,
34
+ mes: regexedMessage,
35
+ index,
36
+ };
37
+ }));
38
+ const chatForWI = coreChat.map((x) => (world_info_include_names ? `${x.name}: ${x.mes}` : x.mes)).reverse();
39
+ const { worldInfoString, worldInfoBefore, worldInfoAfter, worldInfoExamples, worldInfoDepth, anBefore, anAfter } = await context.getWorldInfoPrompt(chatForWI, this_max_context, false);
40
+ // Add message example WI
41
+ for (const example of worldInfoExamples) {
42
+ const exampleMessage = example.content;
43
+ if (exampleMessage.length === 0) {
44
+ continue;
45
+ }
46
+ const formattedExample = st_baseChatReplace(exampleMessage, name1, name2);
47
+ const cleanedExample = st_parseMesExamples(formattedExample, isInstruct);
48
+ // Insert depending on before or after position
49
+ if (example.position === wi_anchor_position.before) {
50
+ mesExamplesArray.unshift(...cleanedExample);
51
+ }
52
+ else {
53
+ mesExamplesArray.push(...cleanedExample);
54
+ }
55
+ }
56
+ const textCompletion = main_api === 'textgenerationwebui';
57
+ if (textCompletion) {
58
+ // At this point, the raw message examples can be created
59
+ const mesExamplesRawArray = [...mesExamplesArray];
60
+ if (mesExamplesArray) {
61
+ mesExamplesArray = st_formatInstructModeExamples(mesExamplesArray, name1, name2);
62
+ }
63
+ // Build story string
64
+ const storyStringParams = {
65
+ description: description,
66
+ personality: personality,
67
+ persona: context.powerUserSettings.persona_description_position == persona_description_positions.IN_PROMPT
68
+ ? persona
69
+ : '',
70
+ scenario: scenario,
71
+ system: system,
72
+ char: name2,
73
+ user: name1,
74
+ wiBefore: worldInfoBefore,
75
+ wiAfter: worldInfoAfter,
76
+ loreBefore: worldInfoBefore,
77
+ loreAfter: worldInfoAfter,
78
+ mesExamples: mesExamplesArray.join(''),
79
+ mesExamplesRaw: mesExamplesRawArray.join(''),
80
+ };
81
+ let storyString = st_renderStoryString(storyStringParams);
82
+ messages.push({ role: 'system', content: storyString, ignoreInstruct: true });
83
+ chat
84
+ .filter((message) => !message.is_system)
85
+ .forEach((message) => {
86
+ messages.push({
87
+ role: message.is_user ? 'user' : 'assistant',
88
+ content: message.mes,
89
+ });
90
+ });
91
+ // Inject world info depth.
92
+ for (const worldInfo of worldInfoDepth) {
93
+ messages = [
94
+ ...messages.slice(0, messages.length - worldInfo.depth),
95
+ { role: st_getPromptRole(worldInfo.role), content: worldInfo.entries.join('\n') },
96
+ ...messages.slice(messages.length - worldInfo.depth),
97
+ ];
98
+ }
99
+ const groupDepthPrompts = st_getGroupDepthPrompts(selected_group, Number(this_chid));
100
+ if (selected_group && Array.isArray(groupDepthPrompts) && groupDepthPrompts.length > 0) {
101
+ groupDepthPrompts.forEach((value, index) => {
102
+ messages = [
103
+ ...messages.slice(0, messages.length - value.depth),
104
+ { role: value.role, content: value.text },
105
+ ...messages.slice(messages.length - value.depth),
106
+ ];
107
+ });
108
+ }
109
+ else {
110
+ const depthPromptText = st_baseChatReplace(characters[this_chid]?.data?.extensions?.depth_prompt?.prompt?.trim(), name1, name2) || '';
111
+ const depthPromptDepth = depth_prompt_depth_default;
112
+ const depthPromptRole = characters[this_chid]?.data?.extensions?.depth_prompt?.role ?? depth_prompt_role_default;
113
+ messages = [
114
+ ...messages.slice(0, messages.length - depthPromptDepth),
115
+ { role: st_getPromptRole(depthPromptRole), content: depthPromptText },
116
+ ...messages.slice(messages.length - depthPromptDepth),
117
+ ];
118
+ }
119
+ // TODO: We should respect interval and world info scanning
120
+ const authorNote = st_getAuthorNote();
121
+ let authorNoteIndex = -1;
122
+ if (authorNote.prompt) {
123
+ authorNote.prompt = st_baseChatReplace(authorNote.prompt, name1, name2);
124
+ switch (authorNote.position) {
125
+ case extension_prompt_types.IN_PROMPT: // After first message
126
+ messages = [...messages.slice(0, 1), { role: 'user', content: authorNote.prompt }, ...messages.slice(1)];
127
+ authorNoteIndex = 1;
128
+ break;
129
+ case extension_prompt_types.IN_CHAT: // Depth + role in chat
130
+ messages = [
131
+ ...messages.slice(0, messages.length - authorNote.depth),
132
+ { role: st_getPromptRole(authorNote.role), content: authorNote.prompt },
133
+ ...messages.slice(messages.length - authorNote.depth),
134
+ ];
135
+ authorNoteIndex = messages.length - authorNote.depth - 1;
136
+ break;
137
+ case extension_prompt_types.BEFORE_PROMPT: // Before first message
138
+ messages.unshift({ role: 'user', content: authorNote.prompt });
139
+ authorNoteIndex = 0;
140
+ break;
141
+ default:
142
+ break;
143
+ }
144
+ }
145
+ // Add world info to author note
146
+ if (authorNoteIndex >= 0) {
147
+ if (anBefore.length > 0) {
148
+ messages = [
149
+ ...messages.slice(0, authorNoteIndex),
150
+ { role: 'system', content: anBefore.join('\n') },
151
+ ...messages.slice(authorNoteIndex),
152
+ ];
153
+ authorNoteIndex++;
154
+ }
155
+ if (anAfter.length > 0) {
156
+ messages = [
157
+ ...messages.slice(0, authorNoteIndex + 1),
158
+ { role: 'system', content: anAfter.join('\n') },
159
+ ...messages.slice(authorNoteIndex + 1),
160
+ ];
161
+ }
162
+ }
163
+ }
164
+ else {
165
+ let oaiMessages = [];
166
+ let oaiMessageExamples = [];
167
+ oaiMessages = st_setOpenAIMessages(coreChat);
168
+ oaiMessageExamples = st_setOpenAIMessageExamples(mesExamplesArray);
169
+ let [prompt, _counts] = await st_prepareOpenAIMessages({
170
+ name2: name2,
171
+ charDescription: description,
172
+ charPersonality: personality,
173
+ Scenario: scenario,
174
+ worldInfoBefore: worldInfoBefore,
175
+ worldInfoAfter: worldInfoAfter,
176
+ extensionPrompts: context.extensionPrompts,
177
+ bias: '',
178
+ type: 'normal',
179
+ quietPrompt: undefined,
180
+ quietImage: undefined,
181
+ cyclePrompt: '',
182
+ systemPromptOverride: system,
183
+ jailbreakPromptOverride: jailbreak,
184
+ personaDescription: persona,
185
+ messages: oaiMessages,
186
+ messageExamples: oaiMessageExamples,
187
+ }, false);
188
+ messages.push(...prompt);
189
+ }
190
+ return messages;
191
+ }
192
+ //# sourceMappingURL=prompt-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../src/prompt-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ import { EventEmitter } from 'events';
2
+ import { Message } from '../prompt-builder';
3
+ import { POPUP_RESULT, POPUP_TYPE, PopupOptions } from './popup';
4
+ export declare enum EventNames {
5
+ APP_READY = "app_ready",
6
+ EXTRAS_CONNECTED = "extras_connected",
7
+ MESSAGE_SWIPED = "message_swiped",
8
+ MESSAGE_SENT = "message_sent",
9
+ MESSAGE_RECEIVED = "message_received",
10
+ MESSAGE_EDITED = "message_edited",
11
+ MESSAGE_DELETED = "message_deleted",
12
+ MESSAGE_UPDATED = "message_updated",
13
+ MESSAGE_FILE_EMBEDDED = "message_file_embedded",
14
+ MORE_MESSAGES_LOADED = "more_messages_loaded",
15
+ IMPERSONATE_READY = "impersonate_ready",
16
+ CHAT_CHANGED = "chat_id_changed",
17
+ GENERATION_AFTER_COMMANDS = "GENERATION_AFTER_COMMANDS",
18
+ GENERATION_STARTED = "generation_started",
19
+ GENERATION_STOPPED = "generation_stopped",
20
+ GENERATION_ENDED = "generation_ended",
21
+ EXTENSIONS_FIRST_LOAD = "extensions_first_load",
22
+ EXTENSION_SETTINGS_LOADED = "extension_settings_loaded",
23
+ SETTINGS_LOADED = "settings_loaded",
24
+ SETTINGS_UPDATED = "settings_updated",
25
+ GROUP_UPDATED = "group_updated",
26
+ MOVABLE_PANELS_RESET = "movable_panels_reset",
27
+ SETTINGS_LOADED_BEFORE = "settings_loaded_before",
28
+ SETTINGS_LOADED_AFTER = "settings_loaded_after",
29
+ CHATCOMPLETION_SOURCE_CHANGED = "chatcompletion_source_changed",
30
+ CHATCOMPLETION_MODEL_CHANGED = "chatcompletion_model_changed",
31
+ OAI_PRESET_CHANGED_BEFORE = "oai_preset_changed_before",
32
+ OAI_PRESET_CHANGED_AFTER = "oai_preset_changed_after",
33
+ OAI_PRESET_EXPORT_READY = "oai_preset_export_ready",
34
+ OAI_PRESET_IMPORT_READY = "oai_preset_import_ready",
35
+ WORLDINFO_SETTINGS_UPDATED = "worldinfo_settings_updated",
36
+ WORLDINFO_UPDATED = "worldinfo_updated",
37
+ CHARACTER_EDITED = "character_edited",
38
+ CHARACTER_PAGE_LOADED = "character_page_loaded",
39
+ CHARACTER_GROUP_OVERLAY_STATE_CHANGE_BEFORE = "character_group_overlay_state_change_before",
40
+ CHARACTER_GROUP_OVERLAY_STATE_CHANGE_AFTER = "character_group_overlay_state_change_after",
41
+ USER_MESSAGE_RENDERED = "user_message_rendered",
42
+ CHARACTER_MESSAGE_RENDERED = "character_message_rendered",
43
+ FORCE_SET_BACKGROUND = "force_set_background",
44
+ CHAT_DELETED = "chat_deleted",
45
+ CHAT_CREATED = "chat_created",
46
+ GROUP_CHAT_DELETED = "group_chat_deleted",
47
+ GROUP_CHAT_CREATED = "group_chat_created",
48
+ GENERATE_BEFORE_COMBINE_PROMPTS = "generate_before_combine_prompts",
49
+ GENERATE_AFTER_COMBINE_PROMPTS = "generate_after_combine_prompts",
50
+ GENERATE_AFTER_DATA = "generate_after_data",
51
+ GROUP_MEMBER_DRAFTED = "group_member_drafted",
52
+ WORLD_INFO_ACTIVATED = "world_info_activated",
53
+ TEXT_COMPLETION_SETTINGS_READY = "text_completion_settings_ready",
54
+ CHAT_COMPLETION_SETTINGS_READY = "chat_completion_settings_ready",
55
+ CHAT_COMPLETION_PROMPT_READY = "chat_completion_prompt_ready",
56
+ CHARACTER_FIRST_MESSAGE_SELECTED = "character_first_message_selected",
57
+ CHARACTER_DELETED = "characterDeleted",
58
+ CHARACTER_DUPLICATED = "character_duplicated",
59
+ CHARACTER_RENAMED = "character_renamed",
60
+ /** @deprecated The event is aliased to STREAM_TOKEN_RECEIVED. */
61
+ SMOOTH_STREAM_TOKEN_RECEIVED = "stream_token_received",
62
+ STREAM_TOKEN_RECEIVED = "stream_token_received",
63
+ STREAM_REASONING_DONE = "stream_reasoning_done",
64
+ FILE_ATTACHMENT_DELETED = "file_attachment_deleted",
65
+ WORLDINFO_FORCE_ACTIVATE = "worldinfo_force_activate",
66
+ OPEN_CHARACTER_LIBRARY = "open_character_library",
67
+ ONLINE_STATUS_CHANGED = "online_status_changed",
68
+ IMAGE_SWIPED = "image_swiped",
69
+ CONNECTION_PROFILE_LOADED = "connection_profile_loaded",
70
+ TOOL_CALLS_PERFORMED = "tool_calls_performed",
71
+ TOOL_CALLS_RENDERED = "tool_calls_rendered"
72
+ }
73
+ export interface ChatCompletionMessage {
74
+ role: string;
75
+ content: string;
76
+ }
77
+ export interface WIPromptResult {
78
+ worldInfoString: string;
79
+ worldInfoBefore: string;
80
+ worldInfoAfter: string;
81
+ worldInfoExamples: any[];
82
+ worldInfoDepth: {
83
+ depth: number;
84
+ role: number;
85
+ entries: string[];
86
+ }[];
87
+ anBefore: string[];
88
+ anAfter: string[];
89
+ }
90
+ export interface ExtractedData {
91
+ content: string;
92
+ reasoning?: string;
93
+ }
94
+ export interface ConnectionProfile {
95
+ id: string;
96
+ mode: string;
97
+ name?: string;
98
+ api?: string;
99
+ preset?: string;
100
+ model?: string;
101
+ proxy?: string;
102
+ instruct?: string;
103
+ context?: string;
104
+ instruct_state?: string;
105
+ tokenizer?: string;
106
+ stop_strings?: string;
107
+ exclude?: string[];
108
+ }
109
+ export interface SillyTavernContext {
110
+ eventSource: EventEmitter;
111
+ getRequestHeaders: () => {
112
+ 'Content-Type': string;
113
+ 'X-CSRF-Token': any;
114
+ };
115
+ renderExtensionTemplateAsync: (extensionName: string, templateId: string, templateData?: object, sanitize?: boolean, localize?: boolean) => Promise<string>;
116
+ extensionSettings: {
117
+ roadway: {
118
+ enabled: boolean;
119
+ profileId: string;
120
+ prompt: string;
121
+ };
122
+ };
123
+ saveSettingsDebounced: () => void;
124
+ callGenericPopup: (content: JQuery<HTMLElement> | string | Element, type: POPUP_TYPE, inputValue?: string, popupOptions?: PopupOptions) => Promise<POPUP_RESULT | string | (boolean | null)>;
125
+ Popup: {
126
+ show: {
127
+ confirm: (message: string, title?: string) => Promise<boolean>;
128
+ };
129
+ };
130
+ chat: {
131
+ name: string;
132
+ mes: string;
133
+ is_user?: boolean;
134
+ is_system?: boolean;
135
+ force_avatar?: string;
136
+ extra?: {
137
+ tool_invocations?: any[];
138
+ append_title?: boolean;
139
+ title?: string;
140
+ isSmallSys?: boolean;
141
+ roadway_target_chat: number;
142
+ };
143
+ }[];
144
+ getCharacterCardFields: () => {
145
+ system: string;
146
+ mesExamples: string;
147
+ description: string;
148
+ personality: string;
149
+ persona: string;
150
+ scenario: string;
151
+ jailbreak: string;
152
+ version: string;
153
+ };
154
+ powerUserSettings: {
155
+ persona_description_position: number;
156
+ };
157
+ getWorldInfoPrompt: (chat: string[], maxContext: number, isDryRun: boolean) => Promise<WIPromptResult>;
158
+ ToolManager: {
159
+ isToolCallingSupported(): boolean;
160
+ canPerformToolCalls(type: string): boolean;
161
+ RECURSE_LIMIT: number;
162
+ };
163
+ ConnectionManagerRequestService: {
164
+ sendRequest: (profileId: string, prompt: string | Message[], maxTokens: number, custom?: {
165
+ extractData?: boolean;
166
+ includePreset?: boolean;
167
+ includeInstruct?: boolean;
168
+ }) => Promise<ExtractedData>;
169
+ handleDropdown: (selector: string, initialSelectedProfileId: string, onChange: (profile?: ConnectionProfile) => void) => void;
170
+ };
171
+ extensionPrompts: Record<string, {
172
+ value: string;
173
+ role: number;
174
+ position: number;
175
+ identifier: string;
176
+ }>;
177
+ addOneMessage(mes: object): void;
178
+ saveChat: () => Promise<void>;
179
+ }
180
+ declare global {
181
+ const SillyTavern: {
182
+ getContext(): SillyTavernContext;
183
+ };
184
+ }
185
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEjE,oBAAY,UAAU;IACpB,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,qBAAqB,0BAA0B;IAC/C,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,YAAY,oBAAoB;IAChC,yBAAyB,8BAA8B;IACvD,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,yBAAyB,8BAA8B;IACvD,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,aAAa,kBAAkB;IAC/B,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;IAC/C,6BAA6B,kCAAkC;IAC/D,4BAA4B,iCAAiC;IAC7D,yBAAyB,8BAA8B;IACvD,wBAAwB,6BAA6B;IACrD,uBAAuB,4BAA4B;IACnD,uBAAuB,4BAA4B;IACnD,0BAA0B,+BAA+B;IACzD,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,2CAA2C,gDAAgD;IAC3F,0CAA0C,+CAA+C;IACzF,qBAAqB,0BAA0B;IAC/C,0BAA0B,+BAA+B;IACzD,oBAAoB,yBAAyB;IAC7C,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,+BAA+B,oCAAoC;IACnE,8BAA8B,mCAAmC;IACjE,mBAAmB,wBAAwB;IAC3C,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,8BAA8B,mCAAmC;IACjE,8BAA8B,mCAAmC;IACjE,4BAA4B,iCAAiC;IAC7D,gCAAgC,qCAAqC;IAErE,iBAAiB,qBAAqB;IACtC,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,iEAAiE;IACjE,4BAA4B,0BAA0B;IACtD,qBAAqB,0BAA0B;IAC/C,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IACnD,wBAAwB,6BAA6B;IACrD,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;IAC/C,YAAY,iBAAiB;IAC7B,yBAAyB,8BAA8B;IACvD,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,GAAG,EAAE,CAAC;IACzB,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,EAAE,CAAC;IACJ,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAGD,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,YAAY,CAAC;IAC1B,iBAAiB,EAAE,MAAM;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,GAAG,CAAC;KACrB,CAAC;IACF,4BAA4B,EAAE,CAC5B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,OAAO,EAClB,QAAQ,CAAC,EAAE,OAAO,KACf,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,iBAAiB,EAAE;QACjB,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;KACH,CAAC;IACF,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,gBAAgB,EAAE,CAChB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,GAAG,OAAO,EAC/C,IAAI,EAAE,UAAU,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,YAAY,KACxB,OAAO,CAAC,YAAY,GAAG,MAAM,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IACvD,KAAK,EAAE;QACL,IAAI,EAAE;YACJ,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;SAChE,CAAC;KACH,CAAC;IACF,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE;YACN,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC;YACzB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,mBAAmB,EAAE,MAAM,CAAC;SAC7B,CAAC;KACH,EAAE,CAAC;IACJ,sBAAsB,EAAE,MAAM;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,iBAAiB,EAAE;QACjB,4BAA4B,EAAE,MAAM,CAAC;KACtC,CAAC;IACF,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IACvG,WAAW,EAAE;QACX,sBAAsB,IAAI,OAAO,CAAC;QAClC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAC3C,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,+BAA+B,EAAE;QAC/B,WAAW,EAAE,CACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,EAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE;YACP,WAAW,CAAC,EAAE,OAAO,CAAC;YACtB,aAAa,CAAC,EAAE,OAAO,CAAC;YACxB,eAAe,CAAC,EAAE,OAAO,CAAC;SAC3B,KACE,OAAO,CAAC,aAAa,CAAC,CAAC;QAC5B,cAAc,EAAE,CACd,QAAQ,EAAE,MAAM,EAChB,wBAAwB,EAAE,MAAM,EAChC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,KAAK,IAAI,KAC5C,IAAI,CAAC;KACX,CAAC;IACF,gBAAgB,EAAE,MAAM,CACtB,MAAM,EACN;QACE,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CACF,CAAC;IACF,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,MAAM,WAAW,EAAE;QACjB,UAAU,IAAI,kBAAkB,CAAC;KAClC,CAAC;CACH"}
@@ -0,0 +1,72 @@
1
+ export var EventNames;
2
+ (function (EventNames) {
3
+ EventNames["APP_READY"] = "app_ready";
4
+ EventNames["EXTRAS_CONNECTED"] = "extras_connected";
5
+ EventNames["MESSAGE_SWIPED"] = "message_swiped";
6
+ EventNames["MESSAGE_SENT"] = "message_sent";
7
+ EventNames["MESSAGE_RECEIVED"] = "message_received";
8
+ EventNames["MESSAGE_EDITED"] = "message_edited";
9
+ EventNames["MESSAGE_DELETED"] = "message_deleted";
10
+ EventNames["MESSAGE_UPDATED"] = "message_updated";
11
+ EventNames["MESSAGE_FILE_EMBEDDED"] = "message_file_embedded";
12
+ EventNames["MORE_MESSAGES_LOADED"] = "more_messages_loaded";
13
+ EventNames["IMPERSONATE_READY"] = "impersonate_ready";
14
+ EventNames["CHAT_CHANGED"] = "chat_id_changed";
15
+ EventNames["GENERATION_AFTER_COMMANDS"] = "GENERATION_AFTER_COMMANDS";
16
+ EventNames["GENERATION_STARTED"] = "generation_started";
17
+ EventNames["GENERATION_STOPPED"] = "generation_stopped";
18
+ EventNames["GENERATION_ENDED"] = "generation_ended";
19
+ EventNames["EXTENSIONS_FIRST_LOAD"] = "extensions_first_load";
20
+ EventNames["EXTENSION_SETTINGS_LOADED"] = "extension_settings_loaded";
21
+ EventNames["SETTINGS_LOADED"] = "settings_loaded";
22
+ EventNames["SETTINGS_UPDATED"] = "settings_updated";
23
+ EventNames["GROUP_UPDATED"] = "group_updated";
24
+ EventNames["MOVABLE_PANELS_RESET"] = "movable_panels_reset";
25
+ EventNames["SETTINGS_LOADED_BEFORE"] = "settings_loaded_before";
26
+ EventNames["SETTINGS_LOADED_AFTER"] = "settings_loaded_after";
27
+ EventNames["CHATCOMPLETION_SOURCE_CHANGED"] = "chatcompletion_source_changed";
28
+ EventNames["CHATCOMPLETION_MODEL_CHANGED"] = "chatcompletion_model_changed";
29
+ EventNames["OAI_PRESET_CHANGED_BEFORE"] = "oai_preset_changed_before";
30
+ EventNames["OAI_PRESET_CHANGED_AFTER"] = "oai_preset_changed_after";
31
+ EventNames["OAI_PRESET_EXPORT_READY"] = "oai_preset_export_ready";
32
+ EventNames["OAI_PRESET_IMPORT_READY"] = "oai_preset_import_ready";
33
+ EventNames["WORLDINFO_SETTINGS_UPDATED"] = "worldinfo_settings_updated";
34
+ EventNames["WORLDINFO_UPDATED"] = "worldinfo_updated";
35
+ EventNames["CHARACTER_EDITED"] = "character_edited";
36
+ EventNames["CHARACTER_PAGE_LOADED"] = "character_page_loaded";
37
+ EventNames["CHARACTER_GROUP_OVERLAY_STATE_CHANGE_BEFORE"] = "character_group_overlay_state_change_before";
38
+ EventNames["CHARACTER_GROUP_OVERLAY_STATE_CHANGE_AFTER"] = "character_group_overlay_state_change_after";
39
+ EventNames["USER_MESSAGE_RENDERED"] = "user_message_rendered";
40
+ EventNames["CHARACTER_MESSAGE_RENDERED"] = "character_message_rendered";
41
+ EventNames["FORCE_SET_BACKGROUND"] = "force_set_background";
42
+ EventNames["CHAT_DELETED"] = "chat_deleted";
43
+ EventNames["CHAT_CREATED"] = "chat_created";
44
+ EventNames["GROUP_CHAT_DELETED"] = "group_chat_deleted";
45
+ EventNames["GROUP_CHAT_CREATED"] = "group_chat_created";
46
+ EventNames["GENERATE_BEFORE_COMBINE_PROMPTS"] = "generate_before_combine_prompts";
47
+ EventNames["GENERATE_AFTER_COMBINE_PROMPTS"] = "generate_after_combine_prompts";
48
+ EventNames["GENERATE_AFTER_DATA"] = "generate_after_data";
49
+ EventNames["GROUP_MEMBER_DRAFTED"] = "group_member_drafted";
50
+ EventNames["WORLD_INFO_ACTIVATED"] = "world_info_activated";
51
+ EventNames["TEXT_COMPLETION_SETTINGS_READY"] = "text_completion_settings_ready";
52
+ EventNames["CHAT_COMPLETION_SETTINGS_READY"] = "chat_completion_settings_ready";
53
+ EventNames["CHAT_COMPLETION_PROMPT_READY"] = "chat_completion_prompt_ready";
54
+ EventNames["CHARACTER_FIRST_MESSAGE_SELECTED"] = "character_first_message_selected";
55
+ // TODO: Naming convention is inconsistent with other events
56
+ EventNames["CHARACTER_DELETED"] = "characterDeleted";
57
+ EventNames["CHARACTER_DUPLICATED"] = "character_duplicated";
58
+ EventNames["CHARACTER_RENAMED"] = "character_renamed";
59
+ /** @deprecated The event is aliased to STREAM_TOKEN_RECEIVED. */
60
+ EventNames["SMOOTH_STREAM_TOKEN_RECEIVED"] = "stream_token_received";
61
+ EventNames["STREAM_TOKEN_RECEIVED"] = "stream_token_received";
62
+ EventNames["STREAM_REASONING_DONE"] = "stream_reasoning_done";
63
+ EventNames["FILE_ATTACHMENT_DELETED"] = "file_attachment_deleted";
64
+ EventNames["WORLDINFO_FORCE_ACTIVATE"] = "worldinfo_force_activate";
65
+ EventNames["OPEN_CHARACTER_LIBRARY"] = "open_character_library";
66
+ EventNames["ONLINE_STATUS_CHANGED"] = "online_status_changed";
67
+ EventNames["IMAGE_SWIPED"] = "image_swiped";
68
+ EventNames["CONNECTION_PROFILE_LOADED"] = "connection_profile_loaded";
69
+ EventNames["TOOL_CALLS_PERFORMED"] = "tool_calls_performed";
70
+ EventNames["TOOL_CALLS_RENDERED"] = "tool_calls_rendered";
71
+ })(EventNames || (EventNames = {}));
72
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,UAqEX;AArED,WAAY,UAAU;IACpB,qCAAuB,CAAA;IACvB,mDAAqC,CAAA;IACrC,+CAAiC,CAAA;IACjC,2CAA6B,CAAA;IAC7B,mDAAqC,CAAA;IACrC,+CAAiC,CAAA;IACjC,iDAAmC,CAAA;IACnC,iDAAmC,CAAA;IACnC,6DAA+C,CAAA;IAC/C,2DAA6C,CAAA;IAC7C,qDAAuC,CAAA;IACvC,8CAAgC,CAAA;IAChC,qEAAuD,CAAA;IACvD,uDAAyC,CAAA;IACzC,uDAAyC,CAAA;IACzC,mDAAqC,CAAA;IACrC,6DAA+C,CAAA;IAC/C,qEAAuD,CAAA;IACvD,iDAAmC,CAAA;IACnC,mDAAqC,CAAA;IACrC,6CAA+B,CAAA;IAC/B,2DAA6C,CAAA;IAC7C,+DAAiD,CAAA;IACjD,6DAA+C,CAAA;IAC/C,6EAA+D,CAAA;IAC/D,2EAA6D,CAAA;IAC7D,qEAAuD,CAAA;IACvD,mEAAqD,CAAA;IACrD,iEAAmD,CAAA;IACnD,iEAAmD,CAAA;IACnD,uEAAyD,CAAA;IACzD,qDAAuC,CAAA;IACvC,mDAAqC,CAAA;IACrC,6DAA+C,CAAA;IAC/C,yGAA2F,CAAA;IAC3F,uGAAyF,CAAA;IACzF,6DAA+C,CAAA;IAC/C,uEAAyD,CAAA;IACzD,2DAA6C,CAAA;IAC7C,2CAA6B,CAAA;IAC7B,2CAA6B,CAAA;IAC7B,uDAAyC,CAAA;IACzC,uDAAyC,CAAA;IACzC,iFAAmE,CAAA;IACnE,+EAAiE,CAAA;IACjE,yDAA2C,CAAA;IAC3C,2DAA6C,CAAA;IAC7C,2DAA6C,CAAA;IAC7C,+EAAiE,CAAA;IACjE,+EAAiE,CAAA;IACjE,2EAA6D,CAAA;IAC7D,mFAAqE,CAAA;IACrE,4DAA4D;IAC5D,oDAAsC,CAAA;IACtC,2DAA6C,CAAA;IAC7C,qDAAuC,CAAA;IACvC,iEAAiE;IACjE,oEAAsD,CAAA;IACtD,6DAA+C,CAAA;IAC/C,6DAA+C,CAAA;IAC/C,iEAAmD,CAAA;IACnD,mEAAqD,CAAA;IACrD,+DAAiD,CAAA;IACjD,6DAA+C,CAAA;IAC/C,2CAA6B,CAAA;IAC7B,qEAAuD,CAAA;IACvD,2DAA6C,CAAA;IAC7C,yDAA2C,CAAA;AAC7C,CAAC,EArEW,UAAU,KAAV,UAAU,QAqErB"}
@@ -0,0 +1,42 @@
1
+ export declare enum POPUP_TYPE {
2
+ TEXT = 1,
3
+ CONFIRM = 2,
4
+ INPUT = 3,
5
+ DISPLAY = 4
6
+ }
7
+ export declare enum POPUP_RESULT {
8
+ AFFIRMATIVE = 1,
9
+ NEGATIVE = 0,
10
+ CANCELLED
11
+ }
12
+ export interface CustomPopupButton {
13
+ text: string;
14
+ result?: POPUP_RESULT | number;
15
+ classes?: string[] | string;
16
+ action?: () => void;
17
+ appendAtEnd?: boolean;
18
+ }
19
+ export interface CustomPopupInput {
20
+ id: string;
21
+ label: string;
22
+ tooltip?: string;
23
+ defaultState?: boolean;
24
+ }
25
+ export interface PopupOptions {
26
+ okButton?: string | boolean;
27
+ cancelButton?: string | boolean;
28
+ rows?: number;
29
+ wide?: boolean;
30
+ wider?: boolean;
31
+ large?: boolean;
32
+ transparent?: boolean;
33
+ allowHorizontalScrolling?: boolean;
34
+ allowVerticalScrolling?: boolean;
35
+ animation?: 'slow' | 'fast' | 'none';
36
+ defaultResult?: POPUP_RESULT | number;
37
+ customButtons?: CustomPopupButton[] | string[];
38
+ customInputs?: CustomPopupInput[];
39
+ onClosing?: (popup: any) => Promise<boolean> | boolean;
40
+ onClose?: (popup: any) => Promise<void> | void;
41
+ }
42
+ //# sourceMappingURL=popup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popup.d.ts","sourceRoot":"","sources":["../../src/types/popup.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,IAAI,IAAI;IACR,OAAO,IAAI;IACX,KAAK,IAAI;IACT,OAAO,IAAI;CACZ;AAED,oBAAY,YAAY;IACtB,WAAW,IAAI;IACf,QAAQ,IAAI;IAEZ,SAAgB;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC,aAAa,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IACtC,aAAa,CAAC,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAAC;IAC/C,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACvD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChD"}
@@ -0,0 +1,15 @@
1
+ export var POPUP_TYPE;
2
+ (function (POPUP_TYPE) {
3
+ POPUP_TYPE[POPUP_TYPE["TEXT"] = 1] = "TEXT";
4
+ POPUP_TYPE[POPUP_TYPE["CONFIRM"] = 2] = "CONFIRM";
5
+ POPUP_TYPE[POPUP_TYPE["INPUT"] = 3] = "INPUT";
6
+ POPUP_TYPE[POPUP_TYPE["DISPLAY"] = 4] = "DISPLAY";
7
+ })(POPUP_TYPE || (POPUP_TYPE = {}));
8
+ export var POPUP_RESULT;
9
+ (function (POPUP_RESULT) {
10
+ POPUP_RESULT[POPUP_RESULT["AFFIRMATIVE"] = 1] = "AFFIRMATIVE";
11
+ POPUP_RESULT[POPUP_RESULT["NEGATIVE"] = 0] = "NEGATIVE";
12
+ // @ts-ignore
13
+ POPUP_RESULT[POPUP_RESULT["CANCELLED"] = null] = "CANCELLED";
14
+ })(POPUP_RESULT || (POPUP_RESULT = {}));
15
+ //# sourceMappingURL=popup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popup.js","sourceRoot":"","sources":["../../src/types/popup.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,2CAAQ,CAAA;IACR,iDAAW,CAAA;IACX,6CAAS,CAAA;IACT,iDAAW,CAAA;AACb,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAED,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,6DAAe,CAAA;IACf,uDAAY,CAAA;IACZ,aAAa;IACb,yCAAY,IAAI,eAAA,CAAA;AAClB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "sillytavern-utils-lib",
3
+ "version": "1.0.0",
4
+ "description": "Utility library for SillyTavern",
5
+ "type": "module",
6
+ "exports": {
7
+ "./config": {
8
+ "types": "./dist/config.d.ts",
9
+ "default": "./dist/config.js"
10
+ },
11
+ "./prompt-builder": {
12
+ "types": "./dist/prompt-builder.d.ts",
13
+ "default": "./dist/prompt-builder.js"
14
+ },
15
+ "./types": {
16
+ "types": "./dist/types/index.d.ts",
17
+ "default": "./dist/types/index.js"
18
+ },
19
+ "./types/popup": {
20
+ "types": "./dist/types/popup.d.ts",
21
+ "default": "./dist/types/popup.js"
22
+ }
23
+ },
24
+ "files": [
25
+ "dist"
26
+ ],
27
+ "scripts": {
28
+ "build": "tsc",
29
+ "test": "jest",
30
+ "prepare": "npm run build",
31
+ "prettify": "prettier --write \"src/**/*.ts\""
32
+ },
33
+ "keywords": [
34
+ "sillytavern",
35
+ "utils",
36
+ "library"
37
+ ],
38
+ "author": "bmen25124",
39
+ "license": "ISC",
40
+ "devDependencies": {
41
+ "@types/jest": "^29.5.14",
42
+ "@types/jquery": "^3.5.32",
43
+ "@types/node": "^22.13.1",
44
+ "jest": "^29.7.0",
45
+ "prettier": "^3.4.2",
46
+ "ts-jest": "^29.2.5",
47
+ "typescript": "^5.7.3"
48
+ }
49
+ }