feat: refactor artifact analysis workspace

This commit is contained in:
2026-08-19 16:09:51 +08:00
parent bfadc95f93
commit d2f2895c36
26 changed files with 998 additions and 2278 deletions
@@ -10,6 +10,7 @@ type WorkbenchAgentPanelsProps = {
panelProps: AgentPanelProps;
panelOpen: boolean;
panelCollapsing: boolean;
artifactActive: boolean;
conditionExpanded: boolean;
personaState: ComponentProps<typeof AgentPersona>["state"];
statusLabel: string;
@@ -23,6 +24,7 @@ export function WorkbenchAgentPanels({
panelProps,
panelOpen,
panelCollapsing,
artifactActive,
conditionExpanded,
personaState,
statusLabel,
@@ -42,14 +44,20 @@ export function WorkbenchAgentPanels({
return (
<div
ref={resize.panelRef}
className="pointer-events-none absolute bottom-14 left-3 top-24 z-50 hidden max-w-[720px] lg:block"
style={{ width: resize.width ?? defaultWidth }}
className={cn(
"pointer-events-none absolute z-50 hidden lg:block",
!artifactActive && panelOpen && "workbench-agent-dock",
artifactActive && panelOpen
? "bottom-4 left-3 top-20 max-w-[720px]"
: "bottom-0 left-0 top-14"
)}
style={{ width: panelOpen ? resize.width ?? defaultWidth : 72 }}
>
{panelOpen ? (
<>
<AgentCommandPanel
{...panelProps}
presentation="desktop-floating"
presentation={artifactActive ? "desktop-floating" : "desktop-dock"}
collapsing={panelCollapsing}
onCollapse={onCollapsePanel}
/>
@@ -73,11 +81,13 @@ export function WorkbenchAgentPanels({
</div>
</>
) : (
<AgentCollapsedRail
personaState={personaState}
statusLabel={statusLabel}
onExpand={onExpandPanel}
/>
<div className="h-full bg-[#e8eef4] px-1.5 pt-5 shadow-[1px_0_0_rgba(15,23,42,0.08)]">
<AgentCollapsedRail
personaState={personaState}
statusLabel={statusLabel}
onExpand={onExpandPanel}
/>
</div>
)}
</div>
);
@@ -148,8 +148,8 @@ export function WorkbenchTopBar({
<div className="hidden lg:block">
<button
type="button"
aria-label="测试打开 Agent 多图表窗口"
title="测试打开 Agent 多图表窗口"
aria-label="生成 Agent 模拟分析成果"
title="生成 Agent 模拟分析成果"
data-selection-tone="soft"
onClick={onCreateTestAnalysis}
className={cn("group px-2", headerControlButtonClassName)}