2724
2725
private _deserializeRequest(raw: ISerializableChatRequestData): ChatRequestModel {
2727
>
typeof raw.message === 'string'
2728
? this.getParsedRequestFromString(raw.message)
2730
>
2731
>
// Old messages don't have variableData, or have it in the wrong (non-array) shape
2732
>
const variableData: IChatRequestVariableData = this.reviveVariableData(raw.variableData);
2733
>
const requestTimestamp = typeof raw.timestamp === 'number' && raw.timestamp > 0 ? raw.timestamp : undefined;
2734
>
const request = new ChatRequestModel({
2735
>
session: this,
2736
>
message: parsedRequest,
2737
>
variableData,
2738
>
timestamp: requestTimestamp,
2739
>
fallbackTimestamp: this._timestamp,
2740
>
restoredId: raw.requestId,
2741
>
confirmation: raw.confirmation,
2742
>
editedFileEvents: raw.editedFileEvents,
2743
>
modelId: raw.modelId,
2744
>
modeInfo: raw.modeInfo,
2745
>
isSystemInitiated: raw.isSystemInitiated,
2746
>
systemInitiatedLabel: raw.systemInitiatedLabel,
2747
>
terminalExecutionId: raw.terminalExecutionId,
2748
>
});
2749
>
request.shouldBeRemovedOnSend = raw.isHidden ? { requestId: raw.requestId } : raw.shouldBeRemovedOnSend;
2750
>
// eslint-disable-next-line @typescript-eslint/no-explicit-any, local/code-no-any-casts
2751
>
if (raw.response || raw.result || (raw as any).responseErrorDetails) {
2752
const agent = (raw.agent && 'metadata' in raw.agent) ? // Check for the new format, ignore entries in the old format
2753
reviveSerializedAgent(raw.agent) : undefined;