File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11using System . Collections ;
2+ using System . Diagnostics ;
23using Microsoft . Extensions . AI ;
34
45namespace 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}" ) ]
1013public 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}
You can’t perform that action at this time.
0 commit comments