feat(workbench): integrate operational workflows and map state

This commit is contained in:
2026-09-24 04:34:46 +08:00
parent 1752b9ef84
commit 436d5500f1
76 changed files with 5081 additions and 1937 deletions
@@ -108,6 +108,7 @@ type AgentCommandPanelProps = {
sessionHistory?: AgentChatSessionSummary[];
sessionHistoryLoading?: boolean;
activeSessionId?: string | null;
qaOnly?: boolean;
statusLabel?: string;
connectionStatus?: AgentConnectionStatus;
streaming?: boolean;
@@ -162,6 +163,7 @@ export function AgentCommandPanel({
sessionHistory = [],
sessionHistoryLoading = false,
activeSessionId,
qaOnly = false,
statusLabel = "Agent 后端连接中",
connectionStatus = "connecting",
streaming = false,
@@ -561,6 +563,7 @@ export function AgentCommandPanel({
onPauseSpeech={pauseSpeech}
onResumeSpeech={resumeSpeech}
onStopSpeech={stopSpeech}
qaOnly={qaOnly}
/>
) : (
<motion.div
@@ -581,7 +584,7 @@ export function AgentCommandPanel({
)}
</AnimatePresence>
<AgentUiEnvelopeRenderer results={uiResults} />
{!qaOnly ? <AgentUiEnvelopeRenderer results={uiResults} /> : null}
</ConversationContent>
<AgentConversationScrollManager
activeSessionId={activeSessionId}
@@ -653,11 +656,7 @@ export function AgentCommandPanel({
</PromptInputBody>
<PromptInputFooter className="justify-between gap-2">
<div className="flex min-w-0 items-center gap-2">
<ApprovalModeSelect
value={approvalMode}
disabled={streaming}
onValueChange={onApprovalModeChange}
/>
{!qaOnly ? <ApprovalModeSelect value={approvalMode} disabled={streaming} onValueChange={onApprovalModeChange} /> : <span className="px-1 text-[11px] text-slate-500">任务协作问答</span>}
</div>
<div className="flex shrink-0 items-center gap-2">
<AgentModelSelect
@@ -1238,7 +1237,8 @@ function BackendMessageList({
onSpeak,
onPauseSpeech,
onResumeSpeech,
onStopSpeech
onStopSpeech,
qaOnly
}: {
messages: AgentChatMessage[];
streaming: boolean;
@@ -1256,6 +1256,7 @@ function BackendMessageList({
onPauseSpeech: () => void;
onResumeSpeech: () => void;
onStopSpeech: () => void;
qaOnly: boolean;
}) {
return (
<motion.div
@@ -1286,7 +1287,7 @@ function BackendMessageList({
)}
>
<div className="space-y-3">
{message.role === "assistant" ? (
{message.role === "assistant" && !qaOnly ? (
<AgentMessageProgress
progress={message.progress}
running={streaming && index === messages.length - 1}
@@ -1319,7 +1320,7 @@ function BackendMessageList({
) : streaming && index === messages.length - 1 ? (
<span className="text-slate-500">正在生成...</span>
) : null}
{message.role === "assistant" ? (
{message.role === "assistant" && !qaOnly ? (
<AgentMessageDetails
message={message}
onReplyPermission={onReplyPermission}