diff --git a/apps/web/src/components/chat/message-part-blocks.tsx b/apps/web/src/components/chat/message-part-blocks.tsx index 60563a16..b0d67151 100644 --- a/apps/web/src/components/chat/message-part-blocks.tsx +++ b/apps/web/src/components/chat/message-part-blocks.tsx @@ -1,4 +1,27 @@ +import type { ReactNode } from "react"; import { RotateCw } from "@/components/ui"; +import { cn } from "@/lib/ui/cn"; + +export function MessageStatusShell({ + children, + tone = "neutral", +}: { + children: ReactNode; + tone?: "danger" | "neutral"; +}) { + return ( +
+
+ {children} +
+
+ ); +} export function ErrorRecoveryBlock({ message, @@ -8,8 +31,8 @@ export function ErrorRecoveryBlock({ onContinue?: (() => void) | undefined; }) { return ( -
-
+ +

{message}

{onContinue ? (
-
+ ); } diff --git a/apps/web/src/components/chat/message-parts.tsx b/apps/web/src/components/chat/message-parts.tsx index 1d89c751..85e29485 100644 --- a/apps/web/src/components/chat/message-parts.tsx +++ b/apps/web/src/components/chat/message-parts.tsx @@ -22,6 +22,7 @@ import { DataBlock, ErrorRecoveryBlock, errorRecoveryMessage, + MessageStatusShell, } from "@/components/chat/message-part-blocks"; import type { MessagePart } from "@/components/chat/message-parts.types"; import { @@ -210,21 +211,23 @@ function SkillCreatedSummaryBlock({ name }: { name: string }) { function ModelFallbackBlock({ data }: { data: ModelFallbackData }) { return ( -
-
model fallback
-
- Switched from {data.fromModel} to {data.toModel} -
-
- Reason: {fallbackReasonLabel(data.reason)} + +
+
model fallback
+
+ Switched from {data.fromModel} to {data.toModel} +
+
+ Reason: {fallbackReasonLabel(data.reason)} +
+ + Open Models & Keys +
- - Open Models & Keys - -
+ ); }