diff --git a/site/src/pages/AgentsPage/components/ChatConversation/ChatStatusCallout.tsx b/site/src/pages/AgentsPage/components/ChatConversation/ChatStatusCallout.tsx index e44ba842fc..9cf3d8bc5b 100644 --- a/site/src/pages/AgentsPage/components/ChatConversation/ChatStatusCallout.tsx +++ b/site/src/pages/AgentsPage/components/ChatConversation/ChatStatusCallout.tsx @@ -1,8 +1,9 @@ -import { BrainIcon } from "lucide-react"; import { type FC, useEffect, useState } from "react"; import { Alert, AlertDescription, AlertTitle } from "#/components/Alert/Alert"; import { Link } from "#/components/Link/Link"; -import { Response, Shimmer } from "../ChatElements"; +import { Shimmer } from "../ChatElements"; +import { TranscriptRow } from "../ChatElements/TranscriptRow"; +import { ToolIcon } from "../ChatElements/tools/ToolIcon"; import { getProviderStatusURL } from "./chatStatusHelpers"; import type { LiveStatusModel } from "./liveStatusModel"; @@ -22,26 +23,18 @@ const StatusPlaceholder: FC<{ showThinkingIcon?: boolean; }> = ({ text, shimmer = false, showThinkingIcon = false }) => { return ( -
- {/* Reserve the final response height without exposing a selectable copy. */} - - {text} - -
- {showThinkingIcon && ( - - )} - {shimmer ? ( - - {text} - - ) : ( - - {text} - - )} -
-
+ + {showThinkingIcon && } + {shimmer ? ( + + {text} + + ) : ( + + {text} + + )} + ); }; diff --git a/site/src/pages/AgentsPage/components/ChatConversation/ConversationTimeline.tsx b/site/src/pages/AgentsPage/components/ChatConversation/ConversationTimeline.tsx index 37e8a013fe..41013e45ec 100644 --- a/site/src/pages/AgentsPage/components/ChatConversation/ConversationTimeline.tsx +++ b/site/src/pages/AgentsPage/components/ChatConversation/ConversationTimeline.tsx @@ -1,9 +1,4 @@ -import { - BrainIcon, - ChevronLeftIcon, - ChevronRightIcon, - PencilIcon, -} from "lucide-react"; +import { ChevronLeftIcon, ChevronRightIcon, PencilIcon } from "lucide-react"; import { type FC, Fragment, @@ -44,6 +39,7 @@ import { } from "../ChatElements/tools/ReadFileTool"; import type { SubagentVariant } from "../ChatElements/tools/subagentDescriptor"; import { ToolCollapsible } from "../ChatElements/tools/ToolCollapsible"; +import { ToolIcon } from "../ChatElements/tools/ToolIcon"; import { ImageLightbox } from "../ImageLightbox"; import { TextPreviewDialog } from "../TextPreviewDialog"; import { @@ -166,7 +162,7 @@ const ReasoningDisclosure = memo<{ onExpandedChange={(open) => setManualToggle(open)} header={ <> - + {isStreaming ? ( {title} diff --git a/site/src/pages/AgentsPage/components/ChatConversation/StreamingOutput.tsx b/site/src/pages/AgentsPage/components/ChatConversation/StreamingOutput.tsx index e95dadffea..af8534d960 100644 --- a/site/src/pages/AgentsPage/components/ChatConversation/StreamingOutput.tsx +++ b/site/src/pages/AgentsPage/components/ChatConversation/StreamingOutput.tsx @@ -1,4 +1,3 @@ -import { BrainIcon } from "lucide-react"; import type { FC } from "react"; import type { UrlTransform } from "streamdown"; import type * as TypesGen from "#/api/typesGenerated"; @@ -10,6 +9,7 @@ import { } from "../ChatElements"; import { TranscriptRow } from "../ChatElements/TranscriptRow"; import type { SubagentVariant } from "../ChatElements/tools/subagentDescriptor"; +import { ToolIcon } from "../ChatElements/tools/ToolIcon"; import { ChatStatusCallout } from "./ChatStatusCallout"; import { BlockList } from "./ConversationTimeline"; import type { LiveStatusModel } from "./liveStatusModel"; @@ -37,7 +37,7 @@ const hasTextOrReasoningBlock = (blocks: readonly RenderBlock[]): boolean => const StreamingThinkingPlaceholder: FC = () => (
- + Thinking diff --git a/site/src/pages/AgentsPage/components/ChatElements/Conversation.stories.tsx b/site/src/pages/AgentsPage/components/ChatElements/Conversation.stories.tsx index e0038879eb..17ab70c005 100644 --- a/site/src/pages/AgentsPage/components/ChatElements/Conversation.stories.tsx +++ b/site/src/pages/AgentsPage/components/ChatElements/Conversation.stories.tsx @@ -2,7 +2,6 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; import { Conversation, ConversationItem } from "./Conversation"; import { Message, MessageContent } from "./Message"; import { Shimmer } from "./Shimmer"; -import { Thinking } from "./Thinking"; const meta: Meta = { title: "pages/AgentsPage/ChatElements/Conversation", @@ -37,10 +36,6 @@ export const ConversationWithMessages: Story = {
- - Inspecting auth state and recent command output before - suggesting a fix. -
The remote command failed because external auth needs to be refreshed. diff --git a/site/src/pages/AgentsPage/components/ChatElements/Thinking.tsx b/site/src/pages/AgentsPage/components/ChatElements/Thinking.tsx deleted file mode 100644 index 1bf736a8e8..0000000000 --- a/site/src/pages/AgentsPage/components/ChatElements/Thinking.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { BrainIcon } from "lucide-react"; -import type { ComponentPropsWithRef } from "react"; -import { cn } from "#/utils/cn"; - -type ThinkingProps = ComponentPropsWithRef<"div">; - -export const Thinking = ({ className, ref, ...props }: ThinkingProps) => { - return ( -
- -
{props.children}
-
- ); -}; diff --git a/site/src/pages/AgentsPage/components/ChatElements/tools/ToolIcon.tsx b/site/src/pages/AgentsPage/components/ChatElements/tools/ToolIcon.tsx index 4e79adae93..dd8cb1cd04 100644 --- a/site/src/pages/AgentsPage/components/ChatElements/tools/ToolIcon.tsx +++ b/site/src/pages/AgentsPage/components/ChatElements/tools/ToolIcon.tsx @@ -9,6 +9,7 @@ import { PowerIcon, RouteIcon, ServerIcon, + SparklesIcon, TerminalIcon, WrenchIcon, } from "lucide-react"; @@ -116,6 +117,8 @@ export const ToolIcon: React.FC<{ return ; case "chat_summarized": return ; + case "thinking": + return ; case "propose_plan": return ; case "ask_user_question":