Merge pull request #2682 from Succubyss/messages-cmd_async /messages callback refactored to async

0456d753ded6d8a0ed24b7d57433d30b210a3627

Cohee <18619528+Cohee1207@users.noreply.github.com>

Signed
1 files changed, +22 -21Ignore whitespace
public/scripts/slash-commands.js+22 -21
@@ -1835,7 +1835,7 @@ async function popupCallback(args, value) {
1835 return String(value);1835 return String(value);
1836}1836}
18371837
1838function getMessagesCallback(args, value) {1838async function getMessagesCallback(args, value) {
1839 const includeNames = !isFalseBoolean(args?.names);1839 const includeNames = !isFalseBoolean(args?.names);
1840 const includeHidden = isTrueBoolean(args?.hidden);1840 const includeHidden = isTrueBoolean(args?.hidden);
1841 const role = args?.role;1841 const role = args?.role;
@@ -1868,33 +1868,34 @@ function getMessagesCallback(args, value) {
1868 throw new Error(`Invalid role provided. Expected one of: system, assistant, user. Got: ${role}`);1868 throw new Error(`Invalid role provided. Expected one of: system, assistant, user. Got: ${role}`);
1869 };1869 };
18701870
1871 const messages = [];1871 const processMessage = async (mesId) => {
18721872 const msg = chat[mesId];
1873 for (let messageId = range.start; messageId <= range.end; messageId++) {1873 if (!msg) {
1874 const message = chat[messageId];1874 console.warn(`WARN: No message found with ID ${mesId}`);
1875 if (!message) {1875 return null;
1876 console.warn(`WARN: No message found with ID ${messageId}`);
1877 continue;
1878 }1876 }
18791877
1880 if (role && !filterByRole(message)) {1878 if (role && !filterByRole(msg)) {
1881 console.debug(`/messages: Skipping message with ID ${messageId} due to role filter`);1879 console.debug(`/messages: Skipping message with ID ${mesId} due to role filter`);
1882 continue;1880 return null;
1883 }1881 }
18841882
1885 if (!includeHidden && message.is_system) {1883 if (!includeHidden && msg.is_system) {
1886 console.debug(`/messages: Skipping hidden message with ID ${messageId}`);1884 console.debug(`/messages: Skipping hidden message with ID ${mesId}`);
1887 continue;1885 return null;
1888 }1886 }
18891887
1890 if (includeNames) {1888 return includeNames ? `${msg.name}: ${msg.mes}` : msg.mes;
1891 messages.push(`${message.name}: ${message.mes}`);1889 };
1892 } else {1890
1893 messages.push(message.mes);1891 const messagePromises = [];
1894 }1892
1895 }1893 for (let rInd = range.start; rInd <= range.end; ++rInd)
1894 messagePromises.push(processMessage(rInd));
1895
1896 const messages = await Promise.all(messagePromises);
18961897
1897 return messages.join('\n\n');1898 return messages.filter(m => m !== null).join('\n\n');
1898}1899}
18991900
1900async function runCallback(args, name) {1901async function runCallback(args, name) {