| 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 | }; |
| 1870 | | 1870 | |
| 1871 | const messages = []; | 1871 | const processMessage = async (mesId) => { |
| 1872 | | 1872 | 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 | } |
| 1879 | | 1877 | |
| 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 | } |
| 1884 | | 1882 | |
| 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 | } |
| 1889 | | 1887 | |
| 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); |
| 1896 | | 1897 | |
| 1897 | return messages.join('\n\n'); | 1898 | return messages.filter(m => m !== null).join('\n\n'); |
| 1898 | } | 1899 | } |
| 1899 | | 1900 | |
| 1900 | async function runCallback(args, name) { | 1901 | async function runCallback(args, name) { |