diff --git a/src/Extensions/Chat.cs b/src/Extensions/Chat.cs index 4a78df1..ca2e3fd 100644 --- a/src/Extensions/Chat.cs +++ b/src/Extensions/Chat.cs @@ -1,4 +1,5 @@ using System.Collections; +using System.Diagnostics; using Microsoft.Extensions.AI; namespace Devlooped.Extensions.AI; @@ -7,6 +8,8 @@ namespace Devlooped.Extensions.AI; /// Collection of for more convenient usage /// in fluent construction of chat messages. /// +[DebuggerTypeProxy(typeof(ChatDebugView))] +[DebuggerDisplay("Count = {messages.Count}")] public class Chat : IEnumerable { readonly List messages = []; @@ -60,4 +63,18 @@ public void Add(string role, string message) => Add( IEnumerator IEnumerable.GetEnumerator() => messages.GetEnumerator(); IEnumerator IEnumerable.GetEnumerator() => messages.GetEnumerator(); + + sealed class ChatDebugView(Chat chat) + { + [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] + public ChatMessage[] Items + { + get + { + var items = new ChatMessage[chat.messages.Count]; + chat.messages.CopyTo(items, 0); + return items; + } + } + } } \ No newline at end of file