Skip to content

Commit 406eb76

Browse files
committed
Improve debug rendering of Chat messages
1 parent a200690 commit 406eb76

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

src/Extensions/Chat.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.Collections;
2+
using System.Diagnostics;
23
using Microsoft.Extensions.AI;
34

45
namespace Devlooped.Extensions.AI;
@@ -7,6 +8,8 @@ namespace Devlooped.Extensions.AI;
78
/// Collection of <see cref="ChatMessage"/> for more convenient usage
89
/// in fluent construction of chat messages.
910
/// </summary>
11+
[DebuggerTypeProxy(typeof(ChatDebugView))]
12+
[DebuggerDisplay("Count = {messages.Count}")]
1013
public class Chat : IEnumerable<ChatMessage>
1114
{
1215
readonly List<ChatMessage> messages = [];
@@ -60,4 +63,18 @@ public void Add(string role, string message) => Add(
6063
IEnumerator<ChatMessage> IEnumerable<ChatMessage>.GetEnumerator() => messages.GetEnumerator();
6164

6265
IEnumerator IEnumerable.GetEnumerator() => messages.GetEnumerator();
66+
67+
sealed class ChatDebugView(Chat chat)
68+
{
69+
[DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
70+
public ChatMessage[] Items
71+
{
72+
get
73+
{
74+
var items = new ChatMessage[chat.messages.Count];
75+
chat.messages.CopyTo(items, 0);
76+
return items;
77+
}
78+
}
79+
}
6380
}

0 commit comments

Comments
 (0)