diff --git a/src/browser/components/tools/BashToolCall.tsx b/src/browser/components/tools/BashToolCall.tsx index c612783e85..1c1ae41eea 100644 --- a/src/browser/components/tools/BashToolCall.tsx +++ b/src/browser/components/tools/BashToolCall.tsx @@ -335,7 +335,11 @@ export const BashToolCall: React.FC = ({ isFilteringLiveOutput && "opacity-60 blur-[1px]" )} > - {combinedLiveOutput.length > 0 ? combinedLiveOutput : "No output yet"} + {combinedLiveOutput.length > 0 + ? combinedLiveOutput + : status === "redacted" + ? "Output excluded from shared transcript" + : "No output yet"} {isFilteringLiveOutput && (
diff --git a/src/browser/components/tools/GenericToolCall.tsx b/src/browser/components/tools/GenericToolCall.tsx index dfe219014c..4af3348ae6 100644 --- a/src/browser/components/tools/GenericToolCall.tsx +++ b/src/browser/components/tools/GenericToolCall.tsx @@ -101,6 +101,13 @@ export const GenericToolCall: React.FC = ({ )} + {status === "redacted" && ( + + + Output excluded from shared transcript + + + )} )} diff --git a/src/browser/components/tools/shared/ToolPrimitives.tsx b/src/browser/components/tools/shared/ToolPrimitives.tsx index 91d73df2ef..6e7da5b74f 100644 --- a/src/browser/components/tools/shared/ToolPrimitives.tsx +++ b/src/browser/components/tools/shared/ToolPrimitives.tsx @@ -88,6 +88,8 @@ const getStatusColor = (status: string) => { return "text-interrupted"; case "backgrounded": return "text-backgrounded"; + case "redacted": + return "text-foreground-secondary"; default: return "text-foreground-secondary"; } diff --git a/src/browser/components/tools/shared/codeExecutionTypes.ts b/src/browser/components/tools/shared/codeExecutionTypes.ts index e47cc259d6..0d7b6d93a0 100644 --- a/src/browser/components/tools/shared/codeExecutionTypes.ts +++ b/src/browser/components/tools/shared/codeExecutionTypes.ts @@ -37,6 +37,6 @@ export interface NestedToolCall { toolName: string; input: unknown; output?: unknown; - state: "input-available" | "output-available"; + state: "input-available" | "output-available" | "output-redacted"; timestamp?: number; } diff --git a/src/browser/components/tools/shared/toolUtils.tsx b/src/browser/components/tools/shared/toolUtils.tsx index 07bb089361..16c19ce803 100644 --- a/src/browser/components/tools/shared/toolUtils.tsx +++ b/src/browser/components/tools/shared/toolUtils.tsx @@ -1,5 +1,5 @@ import React, { useState } from "react"; -import { AlertTriangle, Check, CircleDot, X } from "lucide-react"; +import { AlertTriangle, Check, CircleDot, EyeOff, X } from "lucide-react"; import type { ToolErrorResult } from "@/common/types/tools"; import { LoadingDots } from "./ToolPrimitives"; @@ -13,7 +13,8 @@ export type ToolStatus = | "completed" | "failed" | "interrupted" - | "backgrounded"; + | "backgrounded" + | "redacted"; /** * Hook for managing tool expansion state @@ -63,6 +64,13 @@ export function getStatusDisplay(status: ToolStatus): React.ReactNode { backgrounded ); + case "redacted": + return ( + <> +