mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
feat(ui): improve write_stdin, terminate_session, list_sessions rendering in ChatRow
- Add proper UI cases for write_stdin showing session ID and input chars - Add terminate_session rendering with termination status - Add list_sessions rendering with sessions table - Add i18n translations for all stdin operations
This commit is contained in:
parent
cb28f75fff
commit
56da141bd9
2 changed files with 83 additions and 0 deletions
|
|
@ -71,6 +71,7 @@ import {
|
|||
Split,
|
||||
ArrowRight,
|
||||
Check,
|
||||
OctagonX,
|
||||
} from "lucide-react"
|
||||
import { cn } from "@/lib/utils"
|
||||
import { PathTooltip } from "../ui/PathTooltip"
|
||||
|
|
@ -992,6 +993,80 @@ export const ChatRowContent = ({
|
|||
)}
|
||||
</>
|
||||
)
|
||||
case "write_stdin": {
|
||||
const stdinTool = tool as any
|
||||
const sessionId = stdinTool.session_id
|
||||
const chars = stdinTool.chars || ""
|
||||
const displayChars = chars.length > 30 ? chars.slice(0, 30) + "..." : chars
|
||||
const escapedChars = displayChars.replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t")
|
||||
return (
|
||||
<>
|
||||
<div style={headerStyle}>
|
||||
<TerminalSquare className="size-4" aria-label="Terminal stdin icon" />
|
||||
<span style={{ fontWeight: "bold" }}>
|
||||
{chars
|
||||
? t("chat:stdinOperations.sentToSession", {
|
||||
sessionId,
|
||||
chars: escapedChars,
|
||||
})
|
||||
: t("chat:stdinOperations.polledSession", { sessionId })}
|
||||
</span>
|
||||
</div>
|
||||
{stdinTool.content && (
|
||||
<div className="pl-6">
|
||||
<CodeAccordian
|
||||
code={stdinTool.content}
|
||||
language="shell-session"
|
||||
isExpanded={isExpanded}
|
||||
onToggleExpand={handleToggleExpand}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
)
|
||||
}
|
||||
case "terminate_session": {
|
||||
const terminateTool = tool as any
|
||||
const sessionId = terminateTool.session_id
|
||||
return (
|
||||
<>
|
||||
<div style={headerStyle}>
|
||||
<OctagonX className="size-4" aria-label="Terminate session icon" />
|
||||
<span style={{ fontWeight: "bold" }}>
|
||||
{message.type === "ask"
|
||||
? t("chat:stdinOperations.wantsToTerminate", { sessionId })
|
||||
: t("chat:stdinOperations.didTerminate", { sessionId })}
|
||||
</span>
|
||||
</div>
|
||||
{terminateTool.content && (
|
||||
<div className="pl-6 text-muted-foreground">{terminateTool.content}</div>
|
||||
)}
|
||||
</>
|
||||
)
|
||||
}
|
||||
case "list_sessions":
|
||||
return (
|
||||
<>
|
||||
<div style={headerStyle}>
|
||||
<TerminalSquare className="size-4" aria-label="List sessions icon" />
|
||||
<span style={{ fontWeight: "bold" }}>
|
||||
{message.type === "ask"
|
||||
? t("chat:stdinOperations.wantsToListSessions")
|
||||
: t("chat:stdinOperations.didListSessions")}
|
||||
</span>
|
||||
</div>
|
||||
{tool.content && (
|
||||
<div className="pl-6">
|
||||
<CodeAccordian
|
||||
code={tool.content}
|
||||
language="markdown"
|
||||
isExpanded={isExpanded}
|
||||
onToggleExpand={handleToggleExpand}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
)
|
||||
default:
|
||||
return null
|
||||
}
|
||||
|
|
|
|||
|
|
@ -498,5 +498,13 @@
|
|||
},
|
||||
"readCommandOutput": {
|
||||
"title": "Roo read command output"
|
||||
},
|
||||
"stdinOperations": {
|
||||
"sentToSession": "Sent \"{{chars}}\" to session {{sessionId}}",
|
||||
"polledSession": "Polled session {{sessionId}}",
|
||||
"wantsToTerminate": "Wants to terminate session {{sessionId}}",
|
||||
"didTerminate": "Terminated session {{sessionId}}",
|
||||
"wantsToListSessions": "Wants to list active sessions",
|
||||
"didListSessions": "Listed active sessions"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue