diff --git a/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx b/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx index b0bafb9e..172cc5b9 100644 --- a/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx +++ b/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx @@ -1025,10 +1025,10 @@ const toolNameToTitle: Record = { 'list_dir': 'Inspected folder', 'pathname_search': 'Searched by file name', 'search': 'Searched files', - 'create_uri': 'Create file', - 'delete_uri': 'Delete file', - 'edit': 'Edit file', - 'terminal_command': 'Run terminal command' + 'create_uri': 'Created file', + 'delete_uri': 'Deleted file', + 'edit': 'Edited file', + 'terminal_command': 'Ran terminal command' } const toolNameToDesc = (toolName: ToolName, _toolParams: ToolCallParams[ToolName] | undefined): string => { @@ -1067,22 +1067,66 @@ const toolNameToDesc = (toolName: ToolName, _toolParams: ToolCallParams[ToolName -const ToolRequestAcceptRejectButtons = ({ toolRequest, messageIdx, isLast, }: { toolRequest: ToolRequestApproval } & Omit) => { +const ToolRequestAcceptRejectButtons = ({ toolRequest, messageIdx, isLast }: { toolRequest: ToolRequestApproval } & Omit) => { const accessor = useAccessor() const chatThreadsService = accessor.get('IChatThreadService') + const metricsService = accessor.get('IMetricsService') const initRequestState = isLast ? 'awaiting_response' : 'rejected' - const [requestState, setRequestState] = useState<'accepted' | 'rejected' | 'awaiting_response'>(initRequestState) + const onAccept = useCallback(() => { + chatThreadsService.approveTool(toolRequest.voidToolId) + setRequestState('accepted') + metricsService.capture('Tool Request Accepted', {}) + }, [chatThreadsService, toolRequest.voidToolId, metricsService]) + + const onReject = useCallback(() => { + chatThreadsService.rejectTool(toolRequest.voidToolId) + setRequestState('rejected') + metricsService.capture('Tool Request Rejected', {}) + }, [chatThreadsService, toolRequest.voidToolId, metricsService]) + + const approveButton = ( + + ) + + const cancelButton = ( + + ) if (requestState === 'awaiting_response') { - return <> -
{ chatThreadsService.approveTool(toolRequest.voidToolId); setRequestState('accepted') }}>Accept
-
{ chatThreadsService.rejectTool(toolRequest.voidToolId); setRequestState('rejected') }}>Reject
- + return
+ {approveButton} + {cancelButton} +
} + return null } const toolNameToComponent: { [T in ToolName]: {