diff --git a/client/src/components/Chat/Messages/Content/AskUserQuestionCall.tsx b/client/src/components/Chat/Messages/Content/AskUserQuestionCall.tsx index 57675883ee..8ff7d55629 100644 --- a/client/src/components/Chat/Messages/Content/AskUserQuestionCall.tsx +++ b/client/src/components/Chat/Messages/Content/AskUserQuestionCall.tsx @@ -1,7 +1,7 @@ import { useState, useEffect, useCallback } from 'react'; import { useRecoilValue } from 'recoil'; import { MessageCircleQuestion, TriangleAlert } from 'lucide-react'; -import type { Agents } from 'librechat-data-provider'; +import type { Agents, PartMetadata } from 'librechat-data-provider'; import { getSubmittedAskAnswer, parseAskUserQuestionArgs, @@ -32,6 +32,7 @@ export default function AskUserQuestionCall({ output, toolCallId, isSubmitting = false, + runStepStatus, failed = false, showCursor = false, onExpand, @@ -40,6 +41,7 @@ export default function AskUserQuestionCall({ output: string; toolCallId?: string; isSubmitting?: boolean; + runStepStatus?: PartMetadata['runStepStatus']; failed?: boolean; showCursor?: boolean; onExpand?: () => void; @@ -87,8 +89,9 @@ export default function AskUserQuestionCall({ return null; } })(); + const terminalFailure = failed || runStepStatus === 'failed'; const answered = - !failed && + !terminalFailure && (batch != null ? batch.questions.every((item) => typeof batchAnswers?.[item.id] === 'string') : effectiveOutput.length > 0); @@ -103,7 +106,7 @@ export default function AskUserQuestionCall({ * immediately; an abandoned pause only shows its "no answer" state after * the turn is no longer submitting. */ - if (!answered && !failed && isSubmitting) { + if (!answered && !terminalFailure && runStepStatus == null && isSubmitting) { return ; } @@ -131,7 +134,7 @@ export default function AskUserQuestionCall({ * question header on `!isSubmitting`. */ const statusLabel = (() => { - if (failed) { + if (terminalFailure) { return localize('com_ui_question_failed'); } return count > 1 @@ -155,7 +158,7 @@ export default function AskUserQuestionCall({ finishedText={statusLabel} subtitle={summary} icon={ - failed ? ( + terminalFailure ? (