From 0b2eccc660eb5ee06eb5869d215d22419769f8d5 Mon Sep 17 00:00:00 2001 From: Emir Karabeg <78010029+emir-karabeg@users.noreply.github.com> Date: Fri, 21 Mar 2025 20:38:32 -0700 Subject: [PATCH] fix(drive): ensure list tool only shows files from selected folder (#142) Previously, the list tool was showing files from outside the selected folder. Modified the query parameters to properly filter files by the selected folder ID. Also added 'trashed = false' condition to exclude deleted items from results. Fixes #139 Co-authored-by: Salif Tankoano --- sim/blocks/blocks/drive.ts | 21 ++++++--------------- sim/tools/drive/list.ts | 10 ++++++++-- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/sim/blocks/blocks/drive.ts b/sim/blocks/blocks/drive.ts index f05bbd372f..a47eb7493b 100644 --- a/sim/blocks/blocks/drive.ts +++ b/sim/blocks/blocks/drive.ts @@ -89,7 +89,7 @@ export const GoogleDriveBlock: BlockConfig = { }, // List Fields - Folder Selector { - id: 'folderSelector', + id: 'folderId', title: 'Select Folder', type: 'file-selector', layout: 'full', @@ -110,7 +110,7 @@ export const GoogleDriveBlock: BlockConfig = { condition: { field: 'operation', value: 'list', - and: { field: 'folderSelector', value: '' }, + and: { field: 'folderId', value: '' }, }, }, { @@ -146,21 +146,13 @@ export const GoogleDriveBlock: BlockConfig = { } }, params: (params) => { - const { credential, folderSelector, folderId, ...rest } = params - - // Convert pageSize to number if it exists - const pageSize = rest.pageSize ? parseInt(rest.pageSize as string, 10) : undefined - - // Use the selected folder ID or the manually entered one - // If folderSelector is provided, it's from the file selector and contains the folder ID - // If not, fall back to manually entered ID - const effectiveFolderId = (folderSelector || folderId || '').trim() + const { credential, folderId, ...rest } = params return { + accessToken: credential, + folderId: folderId?.trim() || '', + pageSize: rest.pageSize ? parseInt(rest.pageSize as string, 10) : undefined, ...rest, - folderId: effectiveFolderId, - pageSize, - credential, } }, }, @@ -175,7 +167,6 @@ export const GoogleDriveBlock: BlockConfig = { // Download operation inputs fileId: { type: 'string', required: false }, // List operation inputs - folderSelector: { type: 'string', required: false }, folderId: { type: 'string', required: false }, query: { type: 'string', required: false }, pageSize: { type: 'number', required: false }, diff --git a/sim/tools/drive/list.ts b/sim/tools/drive/list.ts index 637ea9af42..975024bd00 100644 --- a/sim/tools/drive/list.ts +++ b/sim/tools/drive/list.ts @@ -26,13 +26,19 @@ export const listTool: ToolConfig