chore: test deploy snapshot
This commit is contained in:
@@ -1891,6 +1891,78 @@ export async function fetchChatConversationDetail(
|
||||
};
|
||||
}
|
||||
|
||||
export async function fetchChatShareConversationDetail(
|
||||
token: string,
|
||||
options: {
|
||||
sessionId: string;
|
||||
limit?: number;
|
||||
beforeMessageId?: number | null;
|
||||
sharePin?: string | null;
|
||||
},
|
||||
) {
|
||||
const query = new URLSearchParams();
|
||||
|
||||
if (options.limit != null) {
|
||||
query.set('limit', String(options.limit));
|
||||
}
|
||||
|
||||
if (Number.isFinite(options.beforeMessageId) && (options.beforeMessageId ?? 0) > 0) {
|
||||
query.set('beforeMessageId', String(options.beforeMessageId));
|
||||
}
|
||||
|
||||
const response = await requestChatApi<ChatConversationDetailResponse>(
|
||||
`/shares/${encodeURIComponent(token)}/conversations/${encodeURIComponent(options.sessionId)}${query.toString() ? `?${query.toString()}` : ''}`,
|
||||
undefined,
|
||||
{
|
||||
allowUnauthenticated: true,
|
||||
sharePin: options.sharePin,
|
||||
timeoutMs: 20000,
|
||||
},
|
||||
);
|
||||
const normalizedMessages = Array.isArray(response.messages)
|
||||
? response.messages.map((message, index) => normalizeChatMessage(message, index))
|
||||
: [];
|
||||
const normalizedRequests = enrichFailedRequestsWithActivityLogs(
|
||||
response.requests.map((item) => normalizeChatConversationRequest(item)),
|
||||
response.activityLogs,
|
||||
);
|
||||
const visibleRequestIds = new Set(
|
||||
normalizedMessages
|
||||
.map((message) => message.clientRequestId?.trim() ?? '')
|
||||
.filter(Boolean),
|
||||
);
|
||||
const hydratedMessages = hydrateActivityLogMessages(
|
||||
replaceGenericFailureMessages(normalizedMessages, normalizedRequests, response.activityLogs),
|
||||
response.activityLogs.filter((item) => visibleRequestIds.has(item.requestId?.trim() ?? '')),
|
||||
).filter(
|
||||
(message) =>
|
||||
message.author !== 'system' ||
|
||||
isActivityLogMessage(message) ||
|
||||
isMissingRequestMessage(message) ||
|
||||
isExecutionFailureMessage(message),
|
||||
);
|
||||
const recoveredMessages = buildRecoveredMessagesFromConversationDetail(normalizedRequests, response.activityLogs);
|
||||
|
||||
return {
|
||||
...response,
|
||||
messages: mergeRecoveredChatMessages(recoveredMessages, hydratedMessages),
|
||||
item: {
|
||||
...response.item,
|
||||
lastMessagePreview: resolveConversationFailurePreview(
|
||||
response.item.lastMessagePreview,
|
||||
normalizedRequests,
|
||||
response.activityLogs,
|
||||
),
|
||||
notifyOffline: resolveSyncedChatOfflineNotificationSetting(
|
||||
response.item.sessionId,
|
||||
response.item.notifyOffline,
|
||||
getOrCreateClientId(),
|
||||
),
|
||||
},
|
||||
requests: normalizedRequests,
|
||||
};
|
||||
}
|
||||
|
||||
export async function fetchChatRuntimeSnapshot() {
|
||||
const response = await requestChatApi<{ ok: boolean; item: ChatRuntimeSnapshot }>('/runtime');
|
||||
return response.item;
|
||||
@@ -2576,6 +2648,8 @@ export type ChatShareSnapshot = {
|
||||
processingCount: number;
|
||||
unansweredCount: number;
|
||||
};
|
||||
oldestLoadedMessageId?: number | null;
|
||||
hasOlderMessages?: boolean;
|
||||
promptTarget?: {
|
||||
sourceMessageId: number;
|
||||
promptIndex: number;
|
||||
@@ -2799,6 +2873,8 @@ export async function fetchChatShareSnapshot(
|
||||
rooms?: ChatShareRoomSummary[];
|
||||
activeSessionId?: string | null;
|
||||
roomRequestCounts?: ChatShareSnapshot['roomRequestCounts'];
|
||||
oldestLoadedMessageId?: number | null;
|
||||
hasOlderMessages?: boolean;
|
||||
promptTarget?: ChatShareSnapshot['promptTarget'];
|
||||
refreshedAt: string;
|
||||
}>(
|
||||
@@ -2906,6 +2982,11 @@ export async function fetchChatShareSnapshot(
|
||||
unansweredCount: Number.isFinite(response.roomRequestCounts.unansweredCount) ? response.roomRequestCounts.unansweredCount : 0,
|
||||
}
|
||||
: undefined,
|
||||
oldestLoadedMessageId:
|
||||
Number.isFinite(response.oldestLoadedMessageId) && Number(response.oldestLoadedMessageId) > 0
|
||||
? Number(response.oldestLoadedMessageId)
|
||||
: null,
|
||||
hasOlderMessages: response.hasOlderMessages === true,
|
||||
promptTarget: response.promptTarget ?? null,
|
||||
refreshedAt: response.refreshedAt,
|
||||
} satisfies ChatShareSnapshot;
|
||||
|
||||
Reference in New Issue
Block a user