From bf420e7df6c9c01e445bcd262fbc6b4480a9c312 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Fri, 12 Dec 2025 13:55:46 -0600 Subject: chore: cleanup --- packages/ui/src/components/message-part.tsx | 41 ++++++++++++++++------------- packages/ui/src/components/session-turn.tsx | 6 ++--- 2 files changed, 25 insertions(+), 22 deletions(-) (limited to 'packages/ui/src') diff --git a/packages/ui/src/components/message-part.tsx b/packages/ui/src/components/message-part.tsx index 1a33d15c5..d69432caa 100644 --- a/packages/ui/src/components/message-part.tsx +++ b/packages/ui/src/components/message-part.tsx @@ -8,6 +8,7 @@ import { ToolPart, UserMessage, } from "@opencode-ai/sdk/v2" +import { useData } from "../context" import { useDiffComponent } from "../context/diff" import { BasicTool } from "./basic-tool" import { GenericTool } from "./basic-tool" @@ -16,26 +17,34 @@ import { Icon } from "./icon" import { Checkbox } from "./checkbox" import { DiffChanges } from "./diff-changes" import { Markdown } from "./markdown" -import { getDirectory, getFilename } from "@opencode-ai/util/path" -import { sanitizePart } from "@opencode-ai/util/sanitize" +import { getDirectory as _getDirectory, getFilename } from "@opencode-ai/util/path" export interface MessageProps { message: MessageType parts: PartType[] - sanitize?: RegExp } export interface MessagePartProps { part: PartType message: MessageType hideDetails?: boolean - sanitize?: RegExp } export type PartComponent = Component export const PART_MAPPING: Record = {} +function relativizeProjectPaths(text: string, directory?: string) { + if (!text) return "" + if (!directory) return text + return text.split(directory).join("") +} + +function getDirectory(path: string | undefined) { + const data = useData() + return relativizeProjectPaths(_getDirectory(path), data.directory) +} + export function registerPartComponent(type: string, component: PartComponent) { PART_MAPPING[type] = component } @@ -48,26 +57,20 @@ export function Message(props: MessageProps) { {(assistantMessage) => ( - + )} ) } -export function AssistantMessageDisplay(props: { message: AssistantMessage; parts: PartType[]; sanitize?: RegExp }) { +export function AssistantMessageDisplay(props: { message: AssistantMessage; parts: PartType[] }) { const filteredParts = createMemo(() => { return props.parts?.filter((x) => { return x.type !== "tool" || (x as ToolPart).tool !== "todoread" }) }) - return ( - {(part) => } - ) + return {(part) => } } export function UserMessageDisplay(props: { message: UserMessage; parts: PartType[] }) { @@ -82,10 +85,9 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp export function Part(props: MessagePartProps) { const component = createMemo(() => PART_MAPPING[props.part.type]) - const part = createMemo(() => sanitizePart(props.part, props.sanitize)) return ( - + ) } @@ -173,12 +175,15 @@ PART_MAPPING["tool"] = function ToolPartDisplay(props) { } PART_MAPPING["text"] = function TextPartDisplay(props) { + const data = useData() const part = props.part as TextPart - const sanitized = createMemo(() => (props.sanitize ? (sanitizePart(part, props.sanitize) as TextPart) : part)) + const content = createMemo(() => (part.text ?? "").trim()) + const displayText = createMemo(() => relativizeProjectPaths(content(), data.directory)) + return ( - +
- +
) diff --git a/packages/ui/src/components/session-turn.tsx b/packages/ui/src/components/session-turn.tsx index 0043719e0..d038ef142 100644 --- a/packages/ui/src/components/session-turn.tsx +++ b/packages/ui/src/components/session-turn.tsx @@ -33,7 +33,6 @@ export function SessionTurn( ) { const data = useData() const diffComponent = useDiffComponent() - const sanitizer = createMemo(() => (data.directory ? new RegExp(`${data.directory}/`, "g") : undefined)) const messages = createMemo(() => (props.sessionID ? (data.store.message[props.sessionID] ?? []) : [])) const userMessages = createMemo(() => messages() @@ -208,7 +207,7 @@ export function SessionTurn(
- +
{/* Response */}
@@ -252,11 +251,10 @@ export function SessionTurn( p?.id !== last()?.id)} - sanitize={sanitizer()} /> - + ) -- cgit v1.2.3