@@ -33,6 +33,12 @@ public string Text
3333 private set => SetProperty ( ref _text , value ) ;
3434 }
3535
36+ public string Response
37+ {
38+ get => _response ;
39+ private set => SetProperty ( ref _response , value ) ;
40+ }
41+
3642 public AIAssistant ( Repository repo , AI . Service service , List < Models . Change > changes )
3743 {
3844 _repo = repo ;
@@ -55,16 +61,35 @@ public async Task GenAsync()
5561 var builder = new StringBuilder ( ) ;
5662 builder . AppendLine ( "Asking AI to generate commit message..." ) . AppendLine ( ) ;
5763
64+ var responseBuilder = new StringBuilder ( ) ;
65+ var foundResponse = false ;
66+
5867 Text = builder . ToString ( ) ;
68+ Response = string . Empty ;
5969 IsGenerating = true ;
6070
6171 try
6272 {
6373 await agent . GenerateCommitMessageAsync ( _repo . FullPath , _changeList , message =>
6474 {
6575 builder . AppendLine ( message ) ;
76+
77+ if ( foundResponse )
78+ {
79+ if ( message . Equals ( "# Token Usage" , StringComparison . Ordinal ) )
80+ foundResponse = false ;
81+ else
82+ responseBuilder . AppendLine ( message ) ;
83+ }
84+ else if ( message . Equals ( "# Assistant" , StringComparison . Ordinal ) )
85+ {
86+ foundResponse = true ;
87+ }
88+
6689 Dispatcher . UIThread . Post ( ( ) => Text = builder . ToString ( ) ) ;
6790 } , _cancel . Token ) ;
91+
92+ Response = responseBuilder . ToString ( ) . Trim ( ) ;
6893 }
6994 catch ( OperationCanceledException )
7095 {
@@ -77,7 +102,9 @@ await agent.GenerateCommitMessageAsync(_repo.FullPath, _changeList, message =>
77102 . AppendLine ( )
78103 . AppendLine ( "[ERROR]" )
79104 . Append ( e . Message ) ;
105+
80106 Text = builder . ToString ( ) ;
107+ Response = string . Empty ;
81108 }
82109
83110 IsGenerating = false ;
@@ -120,5 +147,6 @@ private void SerializeChange(Models.Change c, StringBuilder builder)
120147 private CancellationTokenSource _cancel = null ;
121148 private bool _isGenerating = false ;
122149 private string _text = string . Empty ;
150+ private string _response = string . Empty ;
123151 }
124152}
0 commit comments