1057
1058
async resendRequest(request: IChatRequestModel, options?: IChatSendRequestOptions): Promise<void> {
1059
>
const model = this._sessionModels.get(request.session.sessionResource);
chatServiceImpl.ts
1060
>
if (!model && model !== request.session) {
1061
throw new Error(`Unknown session: ${request.session.sessionResource}`);
1062
}
1064
return;
1065
}
1067
>
const cts = this._pendingRequests.get(request.session.sessionResource);
1068
>
if (cts) {
1069
this.trace('resendRequest', `Session ${request.session.sessionResource} already has a pending request, cancelling...`);
1070
cts.cancel();
1071
}
1073
>
const location = options?.location ?? model.initialLocation;
1074
>
const attempt = options?.attempt ?? 0;
1075
>
const enableCommandDetection = !options?.noCommandDetection;
1076
>
const defaultAgent = this.chatAgentService.getDefaultAgent(location, options?.modeInfo?.kind)!;
1077
>
1078
>
model.removeRequest(request.id, ChatRequestRemovalReason.Resend);
1079
>
1080
>
const resendOptions: IChatSendRequestOptions = {
1081
>
...options,
1082
>
locationData: request.locationData,
1083
>
attachedContext: request.attachedContext,
1084
>
};
1085
>
await this._sendRequestAsync(model, model.sessionResource, request.message, attempt, enableCommandDetection, defaultAgent, location, resendOptions).responseCompletePromise;
1086
>
}
1087
1088
private queuePendingRequest(model: ChatModel, sessionResource: URI, request: string, options: IChatSendRequestOptions): ChatSendResultQueued {