summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx
diff options
context:
space:
mode:
authorBrandon Keiji <[email protected]>2025-05-22 05:57:53 +0000
committerGitHub <[email protected]>2025-05-21 22:57:53 -0700
commit02eec5c8cafc054ac6293217cd988a5b775a1f26 (patch)
tree2b3d2da5a02f15fbcc414eeb4560da77476818fb /packages/cli/src/ui/components/messages/ToolGroupMessage.tsx
parentefee7c6cce0fa3cf64914833f6df2b34c62fa0f7 (diff)
feat: useToolScheduler hook to manage parallel tool calls (#448)
Diffstat (limited to 'packages/cli/src/ui/components/messages/ToolGroupMessage.tsx')
-rw-r--r--packages/cli/src/ui/components/messages/ToolGroupMessage.tsx12
1 files changed, 8 insertions, 4 deletions
diff --git a/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx b/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx
index d0ad1c5f..4b2c7dfe 100644
--- a/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx
+++ b/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx
@@ -4,7 +4,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
-import React from 'react';
+import React, { useMemo } from 'react';
import { Box } from 'ink';
import { IndividualToolCallDisplay, ToolCallStatus } from '../../types.js';
import { ToolMessage } from './ToolMessage.js';
@@ -19,7 +19,6 @@ interface ToolGroupMessageProps {
// Main component renders the border and maps the tools using ToolMessage
export const ToolGroupMessage: React.FC<ToolGroupMessageProps> = ({
- groupId,
toolCalls,
availableTerminalHeight,
}) => {
@@ -30,9 +29,13 @@ export const ToolGroupMessage: React.FC<ToolGroupMessageProps> = ({
const staticHeight = /* border */ 2 + /* marginBottom */ 1;
+ const toolAwaitingApproval = useMemo(
+ () => toolCalls.find((tc) => tc.status === ToolCallStatus.Confirming),
+ [toolCalls],
+ );
+
return (
<Box
- key={groupId}
flexDirection="column"
borderStyle="round"
/*
@@ -48,7 +51,7 @@ export const ToolGroupMessage: React.FC<ToolGroupMessageProps> = ({
marginBottom={1}
>
{toolCalls.map((tool) => (
- <Box key={groupId + '-' + tool.callId} flexDirection="column">
+ <Box key={tool.callId} flexDirection="column">
<ToolMessage
key={tool.callId}
callId={tool.callId}
@@ -60,6 +63,7 @@ export const ToolGroupMessage: React.FC<ToolGroupMessageProps> = ({
availableTerminalHeight={availableTerminalHeight - staticHeight}
/>
{tool.status === ToolCallStatus.Confirming &&
+ tool.callId === toolAwaitingApproval?.callId &&
tool.confirmationDetails && (
<ToolConfirmationMessage
confirmationDetails={tool.confirmationDetails}