Skip to content

Commit 2ca6f6e

Browse files
author
aadamgough
committed
greptile comments
1 parent 80b61fa commit 2ca6f6e

File tree

3 files changed

+20
-4
lines changed

3 files changed

+20
-4
lines changed

apps/sim/tools/google_drive/download.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,8 @@ export const downloadTool: ToolConfig<GoogleDriveToolParams, GoogleDriveDownload
150150
}
151151

152152
const includeRevisions = params?.includeRevisions !== false
153-
if (includeRevisions) {
153+
const canReadRevisions = metadata.capabilities?.canReadRevisions === true
154+
if (includeRevisions && canReadRevisions) {
154155
try {
155156
const revisionsResponse = await fetch(
156157
`https://www.googleapis.com/drive/v3/files/${fileId}/revisions?fields=revisions(${ALL_REVISION_FIELDS})&pageSize=100`,
@@ -179,6 +180,10 @@ export const downloadTool: ToolConfig<GoogleDriveToolParams, GoogleDriveDownload
179180
error: revisionError.message,
180181
})
181182
}
183+
} else if (includeRevisions && !canReadRevisions) {
184+
logger.info('Skipping revision fetch - user does not have canReadRevisions permission', {
185+
fileId,
186+
})
182187
}
183188

184189
const resolvedName = params?.fileName || metadata.name || 'download'

apps/sim/tools/google_drive/get_content.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,8 @@ export const getContentTool: ToolConfig<GoogleDriveToolParams, GoogleDriveGetCon
138138
}
139139

140140
const includeRevisions = params?.includeRevisions !== false
141-
if (includeRevisions) {
141+
const canReadRevisions = metadata.capabilities?.canReadRevisions === true
142+
if (includeRevisions && canReadRevisions) {
142143
try {
143144
const revisionsResponse = await fetch(
144145
`https://www.googleapis.com/drive/v3/files/${fileId}/revisions?fields=revisions(${ALL_REVISION_FIELDS})&pageSize=100`,
@@ -167,6 +168,10 @@ export const getContentTool: ToolConfig<GoogleDriveToolParams, GoogleDriveGetCon
167168
error: revisionError.message,
168169
})
169170
}
171+
} else if (includeRevisions && !canReadRevisions) {
172+
logger.info('Skipping revision fetch - user does not have canReadRevisions permission', {
173+
fileId,
174+
})
170175
}
171176

172177
logger.info('File content retrieved successfully', {

apps/sim/tools/google_drive/list.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,19 +62,25 @@ export const listTool: ToolConfig<GoogleDriveToolParams, GoogleDriveListResponse
6262
url.searchParams.append('supportsAllDrives', 'true')
6363
url.searchParams.append('includeItemsFromAllDrives', 'true')
6464

65+
// Helper to escape single quotes for Google Drive query syntax
66+
const escapeQueryValue = (value: string): string =>
67+
value.replace(/\\/g, '\\\\').replace(/'/g, "\\'")
68+
6569
// Build the query conditions
6670
const conditions = ['trashed = false'] // Always exclude trashed files
6771
const folderId = params.folderId || params.folderSelector
6872
if (folderId) {
69-
conditions.push(`'${folderId}' in parents`)
73+
const escapedFolderId = escapeQueryValue(folderId)
74+
conditions.push(`'${escapedFolderId}' in parents`)
7075
}
7176

7277
// Combine all conditions with AND
7378
url.searchParams.append('q', conditions.join(' and '))
7479

7580
if (params.query) {
7681
const existingQ = url.searchParams.get('q')
77-
const queryPart = `name contains '${params.query}'`
82+
const escapedQuery = escapeQueryValue(params.query)
83+
const queryPart = `name contains '${escapedQuery}'`
7884
url.searchParams.set('q', `${existingQ} and ${queryPart}`)
7985
}
8086
if (params.pageSize) {

0 commit comments

Comments
 (0)