先陪你核对出生时间范围,之后会回到你原来的问题:“{pendingConsultationQuestion.trim()}”
)} {messages.map((message) => { const showActions = message.role === "assistant" && message.state === "settled" && !message.failed && Boolean(message.text); const regenerating = regeneratingMessageKey === message.renderKey; const canRegenerate = message.renderKey === latestRegeneratableKey && !busy && !readonly && regeneratingMessageKey === null; // Both surfaces render the same step timeline: the tool trace and receipt // are projected onto ConsultationRunTimeline rows. A regenerating reply shows // the queued row until real events fill it in, never a staged label. const displayedMessage: RenderMessage = regenerating ? { ...message, text: "", thinkingText: undefined, state: "thinking" as const, activity: undefined, activityTrace: emptyActivityTrace(), completedReceipt: undefined, timeline: [], } : { ...message, timeline: rectificationTimelineRows({ trace: message.activityTrace, receipt: message.completedReceipt, activity: message.activity, settled: message.state === "settled", }), }; const vargaSentence = !message.failed ? vargaSentenceFromMethods(message.completedReceipt?.methods) : null; const question = regenerating ? undefined : message.question; const liveQuestion = Boolean( question && currentQuestion?.focus_id === question.focus_id && !questionIsAnswered(question) && choiceCard && choiceCard.focus_id === question.focus_id && !busy && !readonly && regeneratingMessageKey === null, ); const embeddedCard = question ? choiceCardFromQuestion(question, liveQuestion ? choiceCard : null) : null; const afterAnswer = question && displayedMessage.state === "settled" ? ({question.prompt}
{embeddedCard && (已确认校正时间:{savedTime}
)} {savedTime && savedStatus === "accepted" && onStartConsultation && ({error}
} {readonly && (该校正已结束,只能查看历史。
{showQuestionLoadFailed ? "题目加载失败,请刷新。" : showMissingQuestion ? "当前没有可回答的问题,正在等待服务端更新。" : "当前问题暂时无法显示,请等待服务端更新。"}
)}