sillytavern 1.6.0 → 1.6.2
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/package.json
CHANGED
package/poe-client.js
CHANGED
|
@@ -318,14 +318,14 @@ class Client {
|
|
|
318
318
|
if (!viewer.availableBots) {
|
|
319
319
|
throw new Error('Invalid token.');
|
|
320
320
|
}
|
|
321
|
-
const botList = viewer.
|
|
321
|
+
const botList = viewer.viewerBotList;
|
|
322
322
|
const retries = 2;
|
|
323
323
|
const bots = {};
|
|
324
324
|
for (const bot of botList.filter(x => x.deletionState == 'not_deleted')) {
|
|
325
325
|
try {
|
|
326
326
|
const url = `https://poe.com/_next/data/${this.next_data.buildId}/${bot.displayName}.json`;
|
|
327
327
|
let r;
|
|
328
|
-
|
|
328
|
+
|
|
329
329
|
if (this.use_cached_bots && cached_bots[url]) {
|
|
330
330
|
r = cached_bots[url];
|
|
331
331
|
}
|
|
@@ -334,7 +334,7 @@ class Client {
|
|
|
334
334
|
r = await request_with_retries(() => this.session.get(url), retries);
|
|
335
335
|
cached_bots[url] = r;
|
|
336
336
|
}
|
|
337
|
-
|
|
337
|
+
|
|
338
338
|
const chatData = r.data.pageProps.payload.chatOfBotDisplayName;
|
|
339
339
|
bots[chatData.defaultBotObject.nickname] = chatData;
|
|
340
340
|
}
|
|
@@ -640,4 +640,4 @@ class Client {
|
|
|
640
640
|
|
|
641
641
|
load_queries();
|
|
642
642
|
|
|
643
|
-
module.exports = { Client };
|
|
643
|
+
module.exports = { Client };
|
package/public/script.js
CHANGED
|
@@ -1104,6 +1104,14 @@ function getMessageFromTemplate({ mesId, characterName, isUser, avatarImg, bias,
|
|
|
1104
1104
|
return mes;
|
|
1105
1105
|
}
|
|
1106
1106
|
|
|
1107
|
+
export function updateMessageBlock(messageId, message) {
|
|
1108
|
+
const messageElement = $(`#chat [mesid="${messageId}"]`);
|
|
1109
|
+
const text = message?.extra?.display_text ?? message.mes;
|
|
1110
|
+
messageElement.find('.mes_text').html(messageFormatting(text, message.name, message.is_system, message.is_user));
|
|
1111
|
+
addCopyToCodeBlocks(messageElement)
|
|
1112
|
+
appendImageToMessage(message, messageElement);
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1107
1115
|
export function appendImageToMessage(mes, messageElement) {
|
|
1108
1116
|
if (mes.extra?.image) {
|
|
1109
1117
|
const image = messageElement.find('.mes_img');
|
|
@@ -1117,7 +1125,7 @@ export function appendImageToMessage(mes, messageElement) {
|
|
|
1117
1125
|
}
|
|
1118
1126
|
}
|
|
1119
1127
|
|
|
1120
|
-
function addCopyToCodeBlocks(messageElement) {
|
|
1128
|
+
export function addCopyToCodeBlocks(messageElement) {
|
|
1121
1129
|
const codeBlocks = $(messageElement).find("pre code");
|
|
1122
1130
|
for (let i = 0; i < codeBlocks.length; i++) {
|
|
1123
1131
|
hljs.highlightElement(codeBlocks.get(i));
|
|
@@ -4013,8 +4021,8 @@ function setCharacterBlockHeight() {
|
|
|
4013
4021
|
|
|
4014
4022
|
// Common code for message editor done and auto-save
|
|
4015
4023
|
function updateMessage(div) {
|
|
4016
|
-
|
|
4017
|
-
|
|
4024
|
+
const mesBlock = div.closest(".mes_block");
|
|
4025
|
+
const text = mesBlock.find(".edit_textarea").val().trim();
|
|
4018
4026
|
const bias = extractMessageBias(text);
|
|
4019
4027
|
const mes = chat[this_edit_mes_id];
|
|
4020
4028
|
mes["mes"] = text;
|
|
@@ -4070,7 +4078,7 @@ async function messageEditDone(div) {
|
|
|
4070
4078
|
await eventSource.emit(event_types.MESSAGE_EDITED, this_edit_mes_id);
|
|
4071
4079
|
|
|
4072
4080
|
this_edit_mes_id = undefined;
|
|
4073
|
-
saveChatConditional();
|
|
4081
|
+
await saveChatConditional();
|
|
4074
4082
|
}
|
|
4075
4083
|
|
|
4076
4084
|
async function getPastCharacterChats() {
|
|
@@ -6257,7 +6265,7 @@ $(document).ready(function () {
|
|
|
6257
6265
|
|
|
6258
6266
|
//********************
|
|
6259
6267
|
//***Message Editor***
|
|
6260
|
-
$(document).on("click", ".mes_edit", function () {
|
|
6268
|
+
$(document).on("click", ".mes_edit", async function () {
|
|
6261
6269
|
if (this_chid !== undefined || selected_group) {
|
|
6262
6270
|
// Previously system messages we're allowed to be edited
|
|
6263
6271
|
/*const message = $(this).closest(".mes");
|
|
@@ -6268,12 +6276,8 @@ $(document).ready(function () {
|
|
|
6268
6276
|
|
|
6269
6277
|
let chatScrollPosition = $("#chat").scrollTop();
|
|
6270
6278
|
if (this_edit_mes_id !== undefined) {
|
|
6271
|
-
let mes_edited = $(
|
|
6272
|
-
|
|
6273
|
-
.filter('[mesid="' + this_edit_mes_id + '"]')
|
|
6274
|
-
.find(".mes_block")
|
|
6275
|
-
.find(".mes_edit_done");
|
|
6276
|
-
if (edit_mes_id == count_view_mes - 1) { //if the generating swipe (...)
|
|
6279
|
+
let mes_edited = $(`#chat [mesid="${this_edit_mes_id}"]`).find(".mes_edit_done");
|
|
6280
|
+
if (Number(edit_mes_id) == count_view_mes - 1) { //if the generating swipe (...)
|
|
6277
6281
|
if (chat[edit_mes_id]['swipe_id'] !== undefined) {
|
|
6278
6282
|
if (chat[edit_mes_id]['swipes'].length === chat[edit_mes_id]['swipe_id']) {
|
|
6279
6283
|
run_edit = false;
|
|
@@ -6283,7 +6287,7 @@ $(document).ready(function () {
|
|
|
6283
6287
|
hideSwipeButtons();
|
|
6284
6288
|
}
|
|
6285
6289
|
}
|
|
6286
|
-
messageEditDone(mes_edited);
|
|
6290
|
+
await messageEditDone(mes_edited);
|
|
6287
6291
|
}
|
|
6288
6292
|
$(this).closest(".mes_block").find(".mes_text").empty();
|
|
6289
6293
|
$(this).closest(".mes_block").find(".mes_buttons").css("display", "none");
|
|
@@ -6454,8 +6458,8 @@ $(document).ready(function () {
|
|
|
6454
6458
|
showSwipeButtons();
|
|
6455
6459
|
});
|
|
6456
6460
|
|
|
6457
|
-
$(document).on("click", ".mes_edit_done", function () {
|
|
6458
|
-
messageEditDone($(this));
|
|
6461
|
+
$(document).on("click", ".mes_edit_done", async function () {
|
|
6462
|
+
await messageEditDone($(this));
|
|
6459
6463
|
});
|
|
6460
6464
|
|
|
6461
6465
|
$("#your_name_button").click(function () {
|
|
@@ -230,7 +230,7 @@ async function onExportClick() {
|
|
|
230
230
|
const exportResult = await fetch(url, {
|
|
231
231
|
method: 'POST',
|
|
232
232
|
headers: postHeaders,
|
|
233
|
-
body: JSON.stringify({ currentChatId }),
|
|
233
|
+
body: JSON.stringify({ chat_id: currentChatId }),
|
|
234
234
|
});
|
|
235
235
|
|
|
236
236
|
if (exportResult.ok) {
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
eventSource,
|
|
4
4
|
event_types,
|
|
5
5
|
getRequestHeaders,
|
|
6
|
-
messageFormatting,
|
|
7
6
|
reloadCurrentChat,
|
|
8
7
|
saveSettingsDebounced,
|
|
9
8
|
substituteParams,
|
|
9
|
+
updateMessageBlock,
|
|
10
10
|
} from "../../../script.js";
|
|
11
11
|
import { extension_settings, getContext } from "../../extensions.js";
|
|
12
12
|
|
|
@@ -168,7 +168,7 @@ async function translateIncomingMessage(messageId) {
|
|
|
168
168
|
const translation = await translate(textToTranslate, extension_settings.translate.target_language);
|
|
169
169
|
message.extra.display_text = translation;
|
|
170
170
|
|
|
171
|
-
|
|
171
|
+
updateMessageBlock(messageId, message);
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
async function translateProviderGoogle(text, lang) {
|
|
@@ -211,8 +211,8 @@ async function translateOutgoingMessage(messageId) {
|
|
|
211
211
|
|
|
212
212
|
const originalText = message.mes;
|
|
213
213
|
message.extra.display_text = originalText;
|
|
214
|
-
$(`#chat .mes[mesid="${messageId}"] .mes_text`).html(messageFormatting(originalText, message.name, message.is_system, message.is_user));
|
|
215
214
|
message.mes = await translate(originalText, extension_settings.translate.internal_language);
|
|
215
|
+
updateMessageBlock(messageId, message);
|
|
216
216
|
|
|
217
217
|
console.log('translateOutgoingMessage', messageId);
|
|
218
218
|
}
|
|
@@ -291,6 +291,24 @@ async function translateMessageEdit(messageId) {
|
|
|
291
291
|
}
|
|
292
292
|
}
|
|
293
293
|
|
|
294
|
+
async function onMessageTranslateClick() {
|
|
295
|
+
const context = getContext();
|
|
296
|
+
const messageId = $(this).closest('.mes').attr('mesid');
|
|
297
|
+
const message = context.chat[messageId];
|
|
298
|
+
|
|
299
|
+
// If the message is already translated, revert it back to the original text
|
|
300
|
+
if (message?.extra?.display_text) {
|
|
301
|
+
delete message.extra.display_text;
|
|
302
|
+
updateMessageBlock(messageId, message);
|
|
303
|
+
}
|
|
304
|
+
// If the message is not translated, translate it
|
|
305
|
+
else {
|
|
306
|
+
await translateIncomingMessage(messageId);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
await context.saveChat();
|
|
310
|
+
}
|
|
311
|
+
|
|
294
312
|
const handleIncomingMessage = createEventHandler(translateIncomingMessage, () => shouldTranslate(incomingTypes));
|
|
295
313
|
const handleOutgoingMessage = createEventHandler(translateOutgoingMessage, () => shouldTranslate(outgoingTypes));
|
|
296
314
|
const handleImpersonateReady = createEventHandler(translateImpersonate, () => shouldTranslate(incomingTypes));
|
|
@@ -352,12 +370,7 @@ jQuery(() => {
|
|
|
352
370
|
extension_settings.translate.target_language = event.target.value;
|
|
353
371
|
saveSettingsDebounced();
|
|
354
372
|
});
|
|
355
|
-
$(document).on('click', '.mes_translate',
|
|
356
|
-
const context = getContext();
|
|
357
|
-
const messageId = $(this).closest('.mes').attr('mesid');
|
|
358
|
-
translateIncomingMessage(messageId);
|
|
359
|
-
context.saveChat();
|
|
360
|
-
});
|
|
373
|
+
$(document).on('click', '.mes_translate', onMessageTranslateClick);
|
|
361
374
|
|
|
362
375
|
loadSettings();
|
|
363
376
|
|
package/readme.md
CHANGED
|
@@ -56,6 +56,7 @@ Get in touch with the developers directly:
|
|
|
56
56
|
* Chat bookmarks / branching (duplicates the dialogue in its current state)
|
|
57
57
|
* Advanced KoboldAI / TextGen generation settings with a lot of community-made presets
|
|
58
58
|
* World Info support: create a rich lore or save tokens on your character card
|
|
59
|
+
* Window AI browser extension support (run models like Claude, GPT 4): https://windowai.io/
|
|
59
60
|
* [Oobabooga's TextGen WebUI](https://github.com/oobabooga/text-generation-webui) API connection
|
|
60
61
|
* [AI Horde](https://horde.koboldai.net/) connection
|
|
61
62
|
* [Poe.com](https://poe.com) (ChatGPT / Claude) connection
|