先陪你核对出生时间范围,之后会回到你原来的问题:“{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 settledChoice = message.choiceAttachment; const visibleChoiceCard = settledChoice?.card; const vargaSentence = !message.failed ? vargaSentenceFromMethods(message.completedReceipt?.methods) : null; const isLatestMessage = message.renderKey === messages[messages.length - 1]?.renderKey; return ({collectSpokenPrompt}
)} {showMissingQuestion && (当前没有可回答的问题,正在等待服务端更新。
)} {showUnavailableQuestion && (当前问题暂时无法显示,请等待服务端更新。
)}{collectSpokenPrompt}
)} {showMissingQuestion && (当前没有可回答的问题,正在等待服务端更新。
)} {showUnavailableQuestion && (当前问题暂时无法显示,请等待服务端更新。
)}已确认校正时间:{savedTime}
)} {savedTime && savedStatus === "accepted" && onStartConsultation && ({error}
} {readonly && (该校正已结束,只能查看历史。