refactor(core): remove shell description input (#32823)

This commit is contained in:
Aiden Cline 2026-06-22 21:18:06 -05:00 committed by GitHub
commit d29f5eba92
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 124 additions and 161 deletions

View file

@ -1994,7 +1994,7 @@ export function InlineToolRow(props: {
}
function BlockTool(props: {
title: string
title?: string
children: JSX.Element
onClick?: () => void
part?: ToolPart
@ -2023,15 +2023,19 @@ function BlockTool(props: {
props.onClick?.()
}}
>
<Show
when={props.spinner}
fallback={
<text paddingLeft={3} fg={theme.textMuted}>
{props.title}
</text>
}
>
<Spinner color={theme.textMuted}>{props.title.replace(/^# /, "")}</Spinner>
<Show when={props.title}>
{(title) => (
<Show
when={props.spinner}
fallback={
<text paddingLeft={3} fg={theme.textMuted}>
{title()}
</text>
}
>
<Spinner color={theme.textMuted}>{title().replace(/^# /, "")}</Spinner>
</Show>
)}
</Show>
{props.children}
<Show when={error()}>
@ -2059,15 +2063,15 @@ function Shell(props: ToolProps) {
const workdirDisplay = createMemo(() => {
const workdir = stringValue(props.input.workdir)
if (!workdir || workdir === ".") return undefined
return pathFormatter.format(workdir)
const formatted = pathFormatter.format(workdir)
if (formatted === ".") return undefined
return formatted
})
const title = createMemo(() => {
const desc = stringValue(props.input.description) ?? "Shell"
const wd = workdirDisplay()
if (!wd) return `# ${desc}`
if (desc.includes(wd)) return `# ${desc}`
return `# ${desc} in ${wd}`
if (!wd) return
return `# Running in ${wd}`
})
return (
@ -2076,11 +2080,15 @@ function Shell(props: ToolProps) {
<BlockTool
title={title()}
part={props.part}
spinner={isRunning()}
onClick={collapsed().overflow ? () => setExpanded((prev) => !prev) : undefined}
>
<box gap={1}>
<text fg={theme.text}>$ {stringValue(props.input.command)}</text>
<Show
when={isRunning()}
fallback={<text fg={theme.text}>$ {stringValue(props.input.command)}</text>}
>
<Spinner color={theme.text}>{stringValue(props.input.command)}</Spinner>
</Show>
<Show when={output()}>
<text fg={theme.text}>{limited()}</text>
</Show>

View file

@ -269,12 +269,10 @@ export function PermissionPrompt(props: { request: PermissionRequest; directory?
}
if (permission === "bash") {
const title =
typeof data.description === "string" && data.description ? data.description : "Shell command"
const command = typeof data.command === "string" ? data.command : ""
return {
icon: "#",
title,
title: "Shell command",
body: (
<Show when={command}>
<box paddingLeft={1}>