diff --git a/packages/ui/src/features/agent-applications/agent-builder/AgentBuilderDock.tsx b/packages/ui/src/features/agent-applications/agent-builder/AgentBuilderDock.tsx index ed0469ac03..7fe46a168d 100644 --- a/packages/ui/src/features/agent-applications/agent-builder/AgentBuilderDock.tsx +++ b/packages/ui/src/features/agent-applications/agent-builder/AgentBuilderDock.tsx @@ -66,10 +66,11 @@ function buildAgentBuilderContext( } /** - * The agent builder chat — an always-on dock talking to the deployed - * `agent-concierge`. Streams through the shared `useAgentChat`/`AgentChatSurface` - * stack, prepends the current `/code/agents` page context to the first message, - * answers `get_context`, and lets the agent drive the UI via `focus_*`. + * The Agent Builder chat — an always-on dock talking to the deployed meta-agent + * (backend slug `agent-builder`). Streams through the shared + * `useAgentChat`/`AgentChatSurface` stack, prepends the current `/code/agents` + * page context to the first message, answers `get_context`, and lets the agent + * drive the UI via `focus_*`. */ export function AgentBuilderDock() { const { data: application } = useAgentApplication(AGENT_BUILDER_SLUG); @@ -254,7 +255,7 @@ export function AgentBuilderDock() {
) : ( diff --git a/packages/ui/src/features/agent-applications/agent-builder/AgentBuilderHeaderControls.tsx b/packages/ui/src/features/agent-applications/agent-builder/AgentBuilderHeaderControls.tsx index bbe49b9e1f..edf3c9d244 100644 --- a/packages/ui/src/features/agent-applications/agent-builder/AgentBuilderHeaderControls.tsx +++ b/packages/ui/src/features/agent-applications/agent-builder/AgentBuilderHeaderControls.tsx @@ -15,15 +15,18 @@ import { useAgentBuilderStore } from "./agentBuilderStore"; /** * The agents-header control cluster — identical across every agents view. * + * Pinned absolutely to the top-right of the nearest `relative` ancestor so it + * sits on the same row as the Agent Builder dock header (matching `py-2`), + * keeping the two halves of the agents UI visually aligned across views. + * * One split button is the single entry point into the Agent Builder dock: * - the primary segment is the contextual "edit with AI" action for the view * you're on (New agent / Edit configuration / Explain this session / …) — it * opens the dock and seeds the matching prompt, - * - the trailing segment just opens/closes the dock without seeding, so you - * can peek at or dismiss the existing conversation. - * The two were previously near-identical gold buttons; fusing them keeps both - * affordances but with one sparkle (the AI identity) and one neutral toggle. - * Views with no obvious action (Scouts) collapse to the lone open/close toggle. + * - the trailing segment just opens the dock without seeding, so you can peek + * at the existing conversation; once the dock is open it disappears so we + * don't double up with the dock's own close button. + * Views with no obvious action (Scouts) collapse to the lone open toggle. * Renders nothing unless the `agent-platform` flag is on. */ export function AgentBuilderHeaderControls() { @@ -36,13 +39,15 @@ export function AgentBuilderHeaderControls() { if (!enabled) return null; const action = headerActionForPage(page); - const toggleTip = visible - ? "Hide the agent builder (⌘⇧I)" - : "Open the agent builder (⌘⇧I)"; + const openTip = "Open the agent builder (⌘⇧I)"; return ( - + {action ? (
@@ -51,7 +56,11 @@ export function AgentBuilderHeaderControls() { - } - /> - {toggleTip} - + {visible ? null : ( + + + + + } + /> + {openTip} + + )}
- ) : ( + ) : visible ? null : ( } /> - {toggleTip} + {openTip} )}
diff --git a/packages/ui/src/features/agent-applications/agent-builder/agentBuilderStore.ts b/packages/ui/src/features/agent-applications/agent-builder/agentBuilderStore.ts index 01922f7c5c..379990b89a 100644 --- a/packages/ui/src/features/agent-applications/agent-builder/agentBuilderStore.ts +++ b/packages/ui/src/features/agent-applications/agent-builder/agentBuilderStore.ts @@ -3,7 +3,7 @@ import { create } from "zustand"; import { persist } from "zustand/middleware"; /** The deployed meta-agent the agent builder dock always talks to. */ -export const AGENT_BUILDER_SLUG = "agent-concierge"; +export const AGENT_BUILDER_SLUG = "agent-builder"; /** Key for the agent builder's chat in the core `agentChatStore`. */ export const AGENT_BUILDER_CHAT_ID = "agent-builder"; diff --git a/packages/ui/src/features/agent-applications/components/AgentDetailLayout.tsx b/packages/ui/src/features/agent-applications/components/AgentDetailLayout.tsx index 89d1db64bb..c8a7b8a84e 100644 --- a/packages/ui/src/features/agent-applications/components/AgentDetailLayout.tsx +++ b/packages/ui/src/features/agent-applications/components/AgentDetailLayout.tsx @@ -134,8 +134,9 @@ export function AgentDetailLayout({ + Applications - + {title} @@ -152,9 +153,6 @@ export function AgentDetailLayout({ {application.live_revision ? "Live" : "Draft"} ) : null} - - - {application?.description?.trim() ? ( diff --git a/packages/ui/src/features/agent-applications/components/AgentSessionTranscriptView.tsx b/packages/ui/src/features/agent-applications/components/AgentSessionTranscriptView.tsx index eb57817cbb..254dd1c3d6 100644 --- a/packages/ui/src/features/agent-applications/components/AgentSessionTranscriptView.tsx +++ b/packages/ui/src/features/agent-applications/components/AgentSessionTranscriptView.tsx @@ -40,8 +40,9 @@ export function AgentSessionTranscriptView({ + Sessions - - - Session transcript - - - + + Session transcript +
diff --git a/packages/ui/src/features/agent-applications/utils/format.ts b/packages/ui/src/features/agent-applications/utils/format.ts index 92d9d96c57..3eed86c741 100644 --- a/packages/ui/src/features/agent-applications/utils/format.ts +++ b/packages/ui/src/features/agent-applications/utils/format.ts @@ -3,7 +3,6 @@ import type { AgentRevisionState, AgentSessionState, } from "@posthog/shared/agent-platform-types"; - /** Formats a USD spend value for the fleet / agent stat strips. */ export function formatSpendUsd(value: number | null | undefined): string { if (value == null) return "$0"; diff --git a/packages/ui/src/features/agents/components/AgentsTabLayout.tsx b/packages/ui/src/features/agents/components/AgentsTabLayout.tsx index 5e093097c2..cd3ef5dc9d 100644 --- a/packages/ui/src/features/agents/components/AgentsTabLayout.tsx +++ b/packages/ui/src/features/agents/components/AgentsTabLayout.tsx @@ -16,7 +16,7 @@ const TAB_DESCRIPTION: Record = { scouts: "Self-driving agents that watch your project and surface work for review — enroll in the canonical fleet or author your own.", applications: - "Deployed agents triggered by chat, Slack, webhooks, or cron — preview, approve, and edit with the Agent Builder.", + "Talk it through. Ship it. Watch it work. The Agent Builder turns ideas into production agents.", }; /** @@ -55,19 +55,17 @@ export function AgentsTabLayout({ return ( -
- - - - Agents - - - {applicationsEnabled - ? TAB_DESCRIPTION[activeTab] - : "Design, schedule, and deploy the agents that work on your product."} - - - +
+ + + + Agents + + + {applicationsEnabled + ? TAB_DESCRIPTION[activeTab] + : "Design, schedule, and deploy the agents that work on your product."} +