@@ -309,12 +309,12 @@ export class ChatService extends Disposable implements IChatService {
309
309
return this . _startSession ( data . providerId , data , CancellationToken . None ) ;
310
310
}
311
311
312
- async sendRequest ( sessionId : string , request : string | IChatReplyFollowup ) : Promise < boolean > {
312
+ async sendRequest ( sessionId : string , request : string | IChatReplyFollowup ) : Promise < { responseCompletePromise : Promise < void > } | undefined > {
313
313
const messageText = typeof request === 'string' ? request : request . message ;
314
314
this . trace ( 'sendRequest' , `sessionId: ${ sessionId } , message: ${ messageText . substring ( 0 , 20 ) } ${ messageText . length > 20 ? '[...]' : '' } }` ) ;
315
315
if ( ! messageText . trim ( ) ) {
316
316
this . trace ( 'sendRequest' , 'Rejected empty message' ) ;
317
- return false ;
317
+ return ;
318
318
}
319
319
320
320
const model = this . _sessionModels . get ( sessionId ) ;
@@ -330,12 +330,11 @@ export class ChatService extends Disposable implements IChatService {
330
330
331
331
if ( this . _pendingRequests . has ( sessionId ) ) {
332
332
this . trace ( 'sendRequest' , `Session ${ sessionId } already has a pending request` ) ;
333
- return false ;
333
+ return ;
334
334
}
335
335
336
336
// This method is only returning whether the request was accepted - don't block on the actual request
337
- this . _sendRequestAsync ( model , provider , request ) ;
338
- return true ;
337
+ return { responseCompletePromise : this . _sendRequestAsync ( model , provider , request ) } ;
339
338
}
340
339
341
340
private async _sendRequestAsync ( model : ChatModel , provider : IChatProvider , message : string | IChatReplyFollowup ) : Promise < void > {
@@ -412,6 +411,7 @@ export class ChatService extends Disposable implements IChatService {
412
411
rawResponsePromise . finally ( ( ) => {
413
412
this . _pendingRequests . delete ( model . sessionId ) ;
414
413
} ) ;
414
+ return rawResponsePromise ;
415
415
}
416
416
417
417
private async handleSlashCommand ( sessionId : string , command : string ) : Promise < string > {
0 commit comments