feat(ui): colour agent output by kind and stop cutting tool calls at 120 chars

StreamLineFormatter now returns kind-tagged entries (text, tool, edit,
tool result, error, sys, result) instead of a flat string, so the
existing LogKind colours finally apply to stream-json output. Tool
argument/result limit raised from 120 to 500 chars.
This commit is contained in:
mika kuns
2026-10-01 10:49:52 +02:00
parent 0e4de9e4c0
commit 9bb0e67a97
6 changed files with 149 additions and 136 deletions
@@ -24,15 +24,17 @@ public sealed class LogKindForegroundConverter : IValueConverter
{
var key = value is LogKind kind ? kind switch
{
LogKind.Sys => "TextMuteBrush",
LogKind.Tool => "SageBrush",
LogKind.Claude => "TextBrush",
LogKind.Stdout => "TextDimBrush",
LogKind.Stderr => "BloodBrush",
LogKind.Done => "MossBrightBrush",
LogKind.Msg => "TextDimBrush",
LogKind.User => "AccentBrush",
_ => "TextDimBrush",
LogKind.Sys => "TextMuteBrush",
LogKind.Tool => "SageBrush",
LogKind.Claude => "TextBrush",
LogKind.Stdout => "TextDimBrush",
LogKind.Stderr => "BloodBrush",
LogKind.Done => "MossBrightBrush",
LogKind.Msg => "TextDimBrush",
LogKind.User => "AccentBrush",
LogKind.Edit => "AmberBrush",
LogKind.ToolResult => "TextMuteBrush",
_ => "TextDimBrush",
} : "TextDimBrush";
return Resolve(key) ?? AvaloniaProperty.UnsetValue;