Mercurial Hosting > lang
changeset 13:65bd7e245c63
add html
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 24 Jul 2025 22:47:48 -0600 |
parents | 2d4b3f003ec2 |
children | 47b00cce8b53 |
files | src/chat.js src/lib/Chat.luan src/lib/ai/claude/Chat.luan |
diffstat | 3 files changed, 21 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
diff -r 2d4b3f003ec2 -r 65bd7e245c63 src/chat.js --- a/src/chat.js Thu Jul 24 22:14:49 2025 -0600 +++ b/src/chat.js Thu Jul 24 22:47:48 2025 -0600 @@ -42,7 +42,7 @@ function updateAi(html) { hideWaitingAiIcon(); - document.querySelector('div[messages]').innerHTML = html; + document.querySelector('div[messages]').insertAdjacentHTML('beforeend',html); handleMarkdown(); document.querySelector('textarea').focus(); window.scrollTo(0, document.body.scrollHeight);
diff -r 2d4b3f003ec2 -r 65bd7e245c63 src/lib/Chat.luan --- a/src/lib/Chat.luan Thu Jul 24 22:14:49 2025 -0600 +++ b/src/lib/Chat.luan Thu Jul 24 22:47:48 2025 -0600 @@ -70,15 +70,14 @@ end function chat.ask(input) - local ai_thread = chat.ai.ask(chat.ai_thread,input) - if chat.ai_thread ~= ai_thread then - run_in_transaction( function() - chat = chat.reload() - chat.ai_thread = ai_thread - chat.save() - end ) - end - return `chat.ai.output_messages_html(ai_thread)` + local old_thread = chat.ai_thread + local ai_thread = chat.ai.ask(old_thread,input) + run_in_transaction( function() + chat = chat.reload() + chat.ai_thread = ai_thread + chat.save() + end ) + return `chat.ai.output_messages_html(ai_thread,old_thread)` end return chat
diff -r 2d4b3f003ec2 -r 65bd7e245c63 src/lib/ai/claude/Chat.luan --- a/src/lib/ai/claude/Chat.luan Thu Jul 24 22:14:49 2025 -0600 +++ b/src/lib/ai/claude/Chat.luan Thu Jul 24 22:47:48 2025 -0600 @@ -27,13 +27,22 @@ %><%=system_prompt%><% end -function Chat.output_messages_html(thread) +function Chat.output_messages_html(thread,old_thread) if thread == nil then return end thread = json_parse(thread) local messages = thread.messages or error - for _, message in ipairs(messages) do + local n = 0 + if old_thread ~= nil then + old_thread = json_parse(old_thread) + local old_messages = old_thread.messages or error + n = #old_messages + end + for i, message in ipairs(messages) do + if i <= n then + continue + end local role = message.role or error() local who if role=="assistant" then @@ -96,7 +105,7 @@ messages[#messages+1] = { role = "assistant" content = [[ -uhuh +hello ]] } if true then