diff options
| author | Adam <[email protected]> | 2025-12-18 11:16:18 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-12-18 11:16:33 -0600 |
| commit | c868a4088d374534a5e33795b8cc419c75f3654e (patch) | |
| tree | 57348cb41e19020f1b0a0c5e94534280c901629c /packages/ui/src/components/message-part.tsx | |
| parent | 83d8a88c90001637d68eb2cacb380bd5d3ede7a0 (diff) | |
| download | opencode-c868a4088d374534a5e33795b8cc419c75f3654e.tar.gz opencode-c868a4088d374534a5e33795b8cc419c75f3654e.zip | |
fix(desktop): rendering shell mode messages
Diffstat (limited to 'packages/ui/src/components/message-part.tsx')
| -rw-r--r-- | packages/ui/src/components/message-part.tsx | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/packages/ui/src/components/message-part.tsx b/packages/ui/src/components/message-part.tsx index 186b52cf3..ef85dd9ce 100644 --- a/packages/ui/src/components/message-part.tsx +++ b/packages/ui/src/components/message-part.tsx @@ -69,6 +69,7 @@ export interface MessagePartProps { part: PartType message: MessageType hideDetails?: boolean + defaultOpen?: boolean } export type PartComponent = Component<MessagePartProps> @@ -208,7 +209,13 @@ export function Part(props: MessagePartProps) { const component = createMemo(() => PART_MAPPING[props.part.type]) return ( <Show when={component()}> - <Dynamic component={component()} part={props.part} message={props.message} hideDetails={props.hideDetails} /> + <Dynamic + component={component()} + part={props.part} + message={props.message} + hideDetails={props.hideDetails} + defaultOpen={props.defaultOpen} + /> </Show> ) } @@ -219,6 +226,7 @@ export interface ToolProps { tool: string output?: string hideDetails?: boolean + defaultOpen?: boolean } export type ToolComponent = Component<ToolProps> @@ -286,6 +294,7 @@ PART_MAPPING["tool"] = function ToolPartDisplay(props) { metadata={metadata} output={part.state.status === "completed" ? part.state.output : undefined} hideDetails={props.hideDetails} + defaultOpen={props.defaultOpen} /> </Match> </Switch> @@ -326,6 +335,7 @@ ToolRegistry.register({ render(props) { return ( <BasicTool + {...props} icon="glasses" trigger={{ title: "Read", @@ -340,7 +350,11 @@ ToolRegistry.register({ name: "list", render(props) { return ( - <BasicTool icon="bullet-list" trigger={{ title: "List", subtitle: getDirectory(props.input.path || "/") }}> + <BasicTool + {...props} + icon="bullet-list" + trigger={{ title: "List", subtitle: getDirectory(props.input.path || "/") }} + > <Show when={props.output}> {(output) => ( <div data-component="tool-output" data-scrollable> @@ -358,6 +372,7 @@ ToolRegistry.register({ render(props) { return ( <BasicTool + {...props} icon="magnifying-glass-menu" trigger={{ title: "Glob", @@ -385,6 +400,7 @@ ToolRegistry.register({ if (props.input.include) args.push("include=" + props.input.include) return ( <BasicTool + {...props} icon="magnifying-glass-menu" trigger={{ title: "Grep", @@ -409,6 +425,7 @@ ToolRegistry.register({ render(props) { return ( <BasicTool + {...props} icon="window-cursor" trigger={{ title: "Webfetch", @@ -438,6 +455,7 @@ ToolRegistry.register({ render(props) { return ( <BasicTool + {...props} icon="task" trigger={{ title: `${props.input.subagent_type || props.tool} Agent`, @@ -462,6 +480,7 @@ ToolRegistry.register({ render(props) { return ( <BasicTool + {...props} icon="console" trigger={{ title: "Shell", @@ -485,6 +504,7 @@ ToolRegistry.register({ const diagnostics = createMemo(() => getDiagnostics(props.metadata.diagnostics, props.input.filePath)) return ( <BasicTool + {...props} defaultOpen icon="code-lines" trigger={ @@ -534,6 +554,7 @@ ToolRegistry.register({ const diagnostics = createMemo(() => getDiagnostics(props.metadata.diagnostics, props.input.filePath)) return ( <BasicTool + {...props} defaultOpen icon="code-lines" trigger={ @@ -575,6 +596,7 @@ ToolRegistry.register({ render(props) { return ( <BasicTool + {...props} defaultOpen icon="checklist" trigger={{ |
