feat(chat): improve log message display

This commit is contained in:
Shivering Ocelot committed 2026-09-04 00:34:57 -05:00
1 parent d9204d262c
commit 8e94967a9f
3 files changed
+29 -1

No files matched your search

+20
View File
@@ -131,6 +131,24 @@ class Agent:
chat_id=message.chat_id, chat_id=message.chat_id,
thread_id=message.thread_id, thread_id=message.thread_id,
content=stream, content=stream,
kind="log",
subkind="reasoning",
)
run.emit_event('chat-message', {
'messageId': new_message['id'],
'chatId': message.chat_id,
'threadId': message.thread_id,
})
async def on_toolcall_event(stream):
print("[agent] run output " + repr(stream))
new_message = await self.app.send_chat_message(
sender=self.id,
chat_id=message.chat_id,
thread_id=message.thread_id,
content=stream,
kind="log",
subkind="reasoning",
) )
run.emit_event('chat-message', { run.emit_event('chat-message', {
'messageId': new_message['id'], 'messageId': new_message['id'],
@@ -139,6 +157,8 @@ class Agent:
}) })
await run.on_async('reasoning', on_reasoning_event) await run.on_async('reasoning', on_reasoning_event)
await run.on_async('output', on_output_event)
await run.on_async('tool-call', on_toolcall_event)
await self.run(run) await self.run(run)
return run return run
+3
View File
@@ -72,11 +72,14 @@ class ChatMixin:
messages = await query.order_by("-id").all() messages = await query.order_by("-id").all()
messages.reverse() messages.reverse()
# TODO: Stop repetition.
# There's db.Message and chat.Message, also should be combined somehow, or wrap db always.
return [{ return [{
"id": message.id, "id": message.id,
"time": message.time, "time": message.time,
"sender": message.sender, "sender": message.sender,
"kind": message.kind, "kind": message.kind,
"subkind": message.subkind,
"content": message.content, "content": message.content,
"threadId": message.thread_id, "threadId": message.thread_id,
} for message in messages] } for message in messages]
+6 -1
View File
@@ -92,7 +92,7 @@ watch(() => [props.message.format, props.message.content], ([newFormat, newConte
</template> </template>
<template v-if="message.type == 'log'"> <template v-if="message.type == 'log'">
<div class="sender">Log ({{message.sender}})</div> <div class="log-sender">{{message.sender}}<span v-if="message.subkind"> [{{message.subkind}}]</span></div>
<div class="content">{{content}}</div> <div class="content">{{content}}</div>
</template> </template>
@@ -155,6 +155,11 @@ watch(() => [props.message.format, props.message.content], ([newFormat, newConte
font-family: monospace; font-family: monospace;
font-size: 80%; font-size: 80%;
} }
.message.log .log-sender {
font-family: monospace;
font-weight: bold;
font-size: 80%;
}
.resource { .resource {
align-self: center; align-self: center;