From 6fed90805a68b680483b4fb0e0b9e42d791c9b5e Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Fri, 29 Nov 2024 12:35:33 -0500 Subject: [PATCH] Add a few more read-only operations (#25) --- package-lock.json | 4 +-- package.json | 4 +-- webview-ui/src/components/chat/ChatView.tsx | 2 +- .../chat/__tests__/ChatView.test.tsx | 25 +++++++++++++++++++ 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 73366d4..c166721 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "roo-cline", - "version": "2.1.4", + "version": "2.1.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "roo-cline", - "version": "2.1.4", + "version": "2.1.5", "dependencies": { "@anthropic-ai/bedrock-sdk": "^0.10.2", "@anthropic-ai/sdk": "^0.26.0", diff --git a/package.json b/package.json index 8fc02c9..30b2638 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,9 @@ "displayName": "Roo Cline", "description": "Autonomous coding agent right in your IDE, capable of creating/editing files, running commands, using the browser, and more with your permission every step of the way.", "publisher": "RooVeterinaryInc", - "version": "2.1.4", + "version": "2.1.5", "files": [ - "bin/roo-cline-2.1.4.vsix", + "bin/roo-cline-2.1.5.vsix", "assets/icons/icon_Roo.png" ], "icon": "assets/icons/icon_Roo.png", diff --git a/webview-ui/src/components/chat/ChatView.tsx b/webview-ui/src/components/chat/ChatView.tsx index ff46c45..b135fb0 100644 --- a/webview-ui/src/components/chat/ChatView.tsx +++ b/webview-ui/src/components/chat/ChatView.tsx @@ -693,7 +693,7 @@ const ChatView = ({ isHidden, showAnnouncement, hideAnnouncement, showHistoryVie const lastMessage = messages.at(-1) if (lastMessage?.type === "ask" && lastMessage.text) { const tool = JSON.parse(lastMessage.text) - return ["readFile", "listFiles", "searchFiles"].includes(tool.tool) + return ["readFile", "listFiles", "listFilesTopLevel", "listFilesRecursive", "listCodeDefinitionNames", "searchFiles"].includes(tool.tool) } return false } diff --git a/webview-ui/src/components/chat/__tests__/ChatView.test.tsx b/webview-ui/src/components/chat/__tests__/ChatView.test.tsx index 95fd104..6830eca 100644 --- a/webview-ui/src/components/chat/__tests__/ChatView.test.tsx +++ b/webview-ui/src/components/chat/__tests__/ChatView.test.tsx @@ -125,6 +125,31 @@ describe('ChatView', () => { }) }) + it('should auto-approve all file listing tool types when alwaysAllowReadOnly is true', () => { + const fileListingTools = [ + 'readFile', 'listFiles', 'listFilesTopLevel', + 'listFilesRecursive', 'listCodeDefinitionNames', 'searchFiles' + ] + + fileListingTools.forEach(tool => { + jest.clearAllMocks() + mockState.clineMessages = [ + { + type: 'ask', + ask: 'tool', + text: JSON.stringify({ tool }), + ts: Date.now(), + } + ] + renderChatView() + + expect(vscode.postMessage).toHaveBeenCalledWith({ + type: 'askResponse', + askResponse: 'yesButtonClicked' + }) + }) + }) + it('should auto-approve write tool actions when alwaysAllowWrite is true', () => { mockState.clineMessages = [ {