diff --git a/apps/web/src/chat/working-label.css b/apps/web/src/chat/working-label.css new file mode 100644 index 000000000..de755144b --- /dev/null +++ b/apps/web/src/chat/working-label.css @@ -0,0 +1,4 @@ +.chat-thread-working { + padding: 4px 0 4px 42px; + font-size: 13px; +} diff --git a/apps/web/src/chat/working-label.tsx b/apps/web/src/chat/working-label.tsx new file mode 100644 index 000000000..bf18c050d --- /dev/null +++ b/apps/web/src/chat/working-label.tsx @@ -0,0 +1,14 @@ +import { ThinkingLabel } from "@corbits/react-ui"; + +import "./working-label.css"; + +const VERBS = ["Thinking…", "Working on it…"]; + +// Shown under the last message while the worker has a turn open. +export function WorkingLabel() { + return ( +
+ +
+ ); +} diff --git a/apps/web/src/pages/workbench-page.tsx b/apps/web/src/pages/workbench-page.tsx index a58c56ea0..faebfff9d 100644 --- a/apps/web/src/pages/workbench-page.tsx +++ b/apps/web/src/pages/workbench-page.tsx @@ -28,6 +28,7 @@ import { VoiceOverlay } from "../voice/voice-overlay"; import { BenchDrawer } from "../bench/bench-drawer"; import { BenchPill } from "../bench/bench-pill"; import { PendingOpeningMessage } from "../bench/pending-opening-message"; +import { WorkingLabel } from "../chat/working-label"; import { ArtifactsTab } from "../bench/artifacts-tab"; import { markTurnPending, useWorkerStatus } from "../worker-status"; import { GrantsTab } from "../bench/grants-tab"; @@ -325,6 +326,7 @@ function Workbench({ workbenchTenantId }: { readonly workbenchTenantId: string } workbenchTenantId={workbenchTenantId} participants={participants.data ?? []} /> + {workerStatus.tone === "working" ? : null} {send.error === null ? null : (

{errorText(send.error)}