type JsonRecord = Record; const COMBO_TEST_MAX_TOKENS = 2048; const COMBO_TEST_OPERAND_MIN = 10000; const COMBO_TEST_OPERAND_RANGE = 90000; function asRecord(value: unknown): JsonRecord { return value && typeof value === "object" && !Array.isArray(value) ? (value as JsonRecord) : {}; } function joinNonEmpty(parts: string[]) { return parts.filter(Boolean).join("\n").trim(); } function extractTextFromContent(content: unknown): string { if (typeof content === "string") return content.trim(); if (!Array.isArray(content)) return ""; return content .map((part) => { if (typeof part === "string") return part.trim(); const block = asRecord(part); const blockType = typeof block.type === "string" ? block.type : ""; const blockText = typeof block.text === "string" ? block.text.trim() : ""; if (blockText && (blockType === "" || blockType === "text" || blockType === "output_text")) { return blockText; } return ""; }) .filter(Boolean) .join("\n") .trim(); } function extractReasoningText(record: JsonRecord): string { const reasoningDetails = Array.isArray(record.reasoning_details) ? record.reasoning_details : []; const detailText = reasoningDetails .map((detail) => { const detailRecord = asRecord(detail); const detailType = typeof detailRecord.type === "string" ? detailRecord.type : ""; const text = typeof detailRecord.text === "string" ? detailRecord.text.trim() : typeof detailRecord.content === "string" ? detailRecord.content.trim() : ""; if ( text && (detailType === "" || detailType === "reasoning" || detailType === "reasoning.text" || detailType === "thinking") ) { return text; } return ""; }) .filter(Boolean); return joinNonEmpty([ typeof record.reasoning_content === "string" ? record.reasoning_content.trim() : "", typeof record.reasoning === "string" ? record.reasoning.trim() : "", typeof record.reasoning_text === "string" ? record.reasoning_text.trim() : "", joinNonEmpty(detailText), ]); } function getUsageReasoningTokens(body: JsonRecord): number { const usage = asRecord(body.usage); if (!usage) return 0; const completionDetails = asRecord(usage.completion_tokens_details); const topLevelReasoning = typeof usage.reasoning_tokens === "number" && Number.isFinite(usage.reasoning_tokens) ? usage.reasoning_tokens : 0; const detailedReasoning = typeof completionDetails.reasoning_tokens === "number" && Number.isFinite(completionDetails.reasoning_tokens) ? completionDetails.reasoning_tokens : 0; return Math.max(topLevelReasoning, detailedReasoning); } function hasReasoningOnlyCompletion(body: JsonRecord): boolean { if (!Array.isArray(body.choices) || body.choices.length === 0) return false; if (getUsageReasoningTokens(body) <= 0) return false; return body.choices.some((choice) => { const choiceRecord = asRecord(choice); const message = asRecord(choiceRecord.message); const finishReason = typeof choiceRecord.finish_reason === "string" ? choiceRecord.finish_reason : ""; if (!message || message.role !== "assistant") return false; if (!finishReason) return false; if (extractTextFromContent(message.content)) return false; if (extractReasoningText(message)) return false; return true; }); } function getRandomFiveDigitNumber() { return COMBO_TEST_OPERAND_MIN + Math.floor(Math.random() * COMBO_TEST_OPERAND_RANGE); } function buildComboTestPrompt() { const left = getRandomFiveDigitNumber(); const right = getRandomFiveDigitNumber(); return `Calculate ${left}+${right}, and reply with the result only.`; } export function buildComboTestRequestBody(modelStr: string, isEmbedding: boolean = false) { if (isEmbedding) { return { model: modelStr, input: "Hello World", }; } return { model: modelStr, // Randomize the arithmetic prompt so upstream providers are less likely to // satisfy the smoke test with cached completions. messages: [{ role: "user", content: buildComboTestPrompt() }], // Give reasoning-heavy models enough headroom to finish the request and // still emit a visible answer without immediate truncation. max_tokens: COMBO_TEST_MAX_TOKENS, stream: false, }; } export function extractComboTestResponseText(responseBody: unknown): string { const body = asRecord(responseBody); if (typeof body.output_text === "string" && body.output_text.trim()) { return body.output_text.trim(); } if (Array.isArray(body.data) && body.data[0]?.embedding) { return "[Embedding generated successfully]"; } if (Array.isArray(body.choices)) { for (const choice of body.choices) { const choiceRecord = asRecord(choice); const message = asRecord(choiceRecord.message); const messageText = extractTextFromContent(message.content); if (messageText) return messageText; const reasoningText = extractReasoningText(message); if (reasoningText) return reasoningText; if (typeof choiceRecord.text === "string" && choiceRecord.text.trim()) { return choiceRecord.text.trim(); } } } if (Array.isArray(body.output)) { for (const item of body.output) { const itemRecord = asRecord(item); const contentText = extractTextFromContent(itemRecord.content); if (contentText) return contentText; const reasoningText = extractReasoningText(itemRecord); if (reasoningText) return reasoningText; } } const topLevelText = extractTextFromContent(body.content); if (topLevelText) return topLevelText; const topLevelReasoning = extractReasoningText(body); if (topLevelReasoning) return topLevelReasoning; if (hasReasoningOnlyCompletion(body)) { return "[reasoning-only completion]"; } return ""; }