| 203 | | 203 | |
| 204 | /** @type {function(string): object} */ | 204 | /** @type {function(string): object} */ |
| 205 | function processKoboldMessage(msg) { | 205 | function processKoboldMessage(msg) { |
| 206 | const isUser = msg.includes(inputToken) || msg.includes(outputToken); | 206 | const isUser = msg.includes(inputToken); |
| 207 | return { | 207 | return { |
| 208 | name: isUser ? header.user_name : header.character_name, | 208 | name: isUser ? header.user_name : header.character_name, |
| 209 | is_user: isUser, | 209 | is_user: isUser, |
| 210 | mes: msg.replace(inputToken, '').replace(outputToken, '').trim(), | 210 | mes: msg.replaceAll(inputToken, '').replaceAll(outputToken, '').trim(), |
| 211 | send_date: Date.now(), | 211 | send_date: Date.now(), |
| 212 | }; | 212 | }; |
| 213 | } | 213 | } |
| 214 | | 214 | |
| 215 | // Create the header | 215 | // Create the header |
| 216 | const header = { | 216 | const header = { |
| 217 | user_name: data.savedsettings.chatname, | 217 | user_name: String(data.savedsettings.chatname), |
| 218 | character_name: data.savedsettings.chatopponent, | 218 | character_name: String(data.savedsettings.chatopponent).split('||$||')[0], |
| 219 | }; | 219 | }; |
| 220 | // Format messages | 220 | // Format messages |
| 221 | const formattedMessages = data.actions.map(processKoboldMessage); | 221 | const formattedMessages = data.actions.map(processKoboldMessage); |