Files
tutti/packages/agent/gui/workbench/AgentGuiWorkbenchRailAlignedHeader.tsx
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

52 lines
1.7 KiB
TypeScript

import type { ReactNode } from "react";
import type { AgentSessionEngine } from "@tutti-os/agent-activity-core";
import type { AgentGUIAgentDirectoryPort } from "../types.ts";
import { AgentGuiWorkbenchReactiveHeader } from "./AgentGuiWorkbenchReactiveHeader.tsx";
import type { AgentGuiWorkbenchRailLayoutStore } from "./agentGuiWorkbenchRailLayout.ts";
import { AgentGuiWorkbenchHeader } from "./header.ts";
import type { AgentGuiWorkbenchHeaderProps } from "./header.ts";
import type {
AgentGuiWorkbenchProvider,
AgentGuiWorkbenchState
} from "./types.ts";
interface AgentGuiWorkbenchRailAlignedHeaderProps extends AgentGuiWorkbenchHeaderProps {
agentDirectory: AgentGUIAgentDirectoryPort;
dockIconUrls?: Partial<Record<AgentGuiWorkbenchProvider, string>>;
railLayoutStore: AgentGuiWorkbenchRailLayoutStore;
sessionEngine?: AgentSessionEngine;
workbenchState: AgentGuiWorkbenchState | null;
}
export function AgentGuiWorkbenchRailAlignedHeader({
agentDirectory,
conversationRailWidthPx,
dockIconUrls,
nodeId,
providerRailWidthPx,
railLayoutStore,
sessionEngine,
workbenchState,
...headerProps
}: AgentGuiWorkbenchRailAlignedHeaderProps): ReactNode {
const liveHeaderProps = {
...headerProps,
conversationRailWidthPx,
nodeId,
onHeaderElementChange: railLayoutStore.getHeaderElementRef(nodeId),
providerRailWidthPx
} satisfies AgentGuiWorkbenchHeaderProps;
return sessionEngine ? (
<AgentGuiWorkbenchReactiveHeader
{...liveHeaderProps}
agentDirectory={agentDirectory}
dockIconUrls={dockIconUrls}
sessionEngine={sessionEngine}
workbenchState={workbenchState}
/>
) : (
<AgentGuiWorkbenchHeader {...liveHeaderProps} />
);
}