31 lines
889 B
TypeScript
31 lines
889 B
TypeScript
export type ChatTurnStatus = {
|
|
sessionId: string;
|
|
clientTurnId: string;
|
|
status: string;
|
|
userMessageId?: number;
|
|
assistantMessageId?: number;
|
|
attemptCount?: number;
|
|
};
|
|
|
|
export async function fetchChatTurnStatus(
|
|
sessionId: string,
|
|
clientTurnId: string,
|
|
signal?: AbortSignal,
|
|
): Promise<ChatTurnStatus | null> {
|
|
const url = `/api/v1/chat/turns/${encodeURIComponent(clientTurnId)}?session_id=${encodeURIComponent(sessionId)}`;
|
|
const res = await fetch(url, { signal });
|
|
if (res.status === 404) return null;
|
|
if (!res.ok) {
|
|
throw new Error(`fetchChatTurnStatus failed: HTTP ${res.status}`);
|
|
}
|
|
const raw = await res.json();
|
|
return {
|
|
sessionId: raw.session_id,
|
|
clientTurnId: raw.client_turn_id,
|
|
status: raw.status,
|
|
userMessageId: raw.user_message_id,
|
|
assistantMessageId: raw.assistant_message_id,
|
|
attemptCount: raw.attempt_count,
|
|
};
|
|
}
|