@@ -306,11 +306,95 @@ export const downloadTool: ToolConfig<GoogleDriveToolParams, GoogleDriveDownload
306306 } ,
307307
308308 outputs : {
309- file : { type : 'file' , description : 'Downloaded file stored in execution files' } ,
309+ file : {
310+ type : 'object' ,
311+ description : 'Downloaded file stored in execution files' ,
312+ properties : {
313+ id : { type : 'string' , description : 'Unique file identifier' } ,
314+ name : { type : 'string' , description : 'File name' } ,
315+ size : { type : 'number' , description : 'File size in bytes' } ,
316+ type : { type : 'string' , description : 'MIME type of the file' } ,
317+ url : { type : 'string' , description : 'Signed URL to access the file' } ,
318+ key : { type : 'string' , description : 'Storage key for the file' } ,
319+ context : { type : 'string' , description : 'Context where file is stored' } ,
320+ } ,
321+ } ,
310322 metadata : {
311- type : 'json' ,
312- description :
313- 'Complete file metadata including ownership, sharing, permissions, labels, checksums, capabilities, and revision history' ,
323+ type : 'object' ,
324+ description : 'Complete file metadata from Google Drive' ,
325+ properties : {
326+ // Basic Info
327+ id : { type : 'string' , description : 'Google Drive file ID' } ,
328+ name : { type : 'string' , description : 'File name' } ,
329+ mimeType : { type : 'string' , description : 'MIME type' } ,
330+ kind : { type : 'string' , description : 'Resource type identifier' } ,
331+ description : { type : 'string' , description : 'File description' } ,
332+ originalFilename : { type : 'string' , description : 'Original uploaded filename' } ,
333+ fullFileExtension : { type : 'string' , description : 'Full file extension' } ,
334+ fileExtension : { type : 'string' , description : 'File extension' } ,
335+ // Ownership & Sharing
336+ owners : { type : 'json' , description : 'List of file owners' } ,
337+ permissions : { type : 'json' , description : 'File permissions' } ,
338+ permissionIds : { type : 'json' , description : 'Permission IDs' } ,
339+ shared : { type : 'boolean' , description : 'Whether file is shared' } ,
340+ ownedByMe : { type : 'boolean' , description : 'Whether owned by current user' } ,
341+ writersCanShare : { type : 'boolean' , description : 'Whether writers can share' } ,
342+ viewersCanCopyContent : { type : 'boolean' , description : 'Whether viewers can copy' } ,
343+ copyRequiresWriterPermission : {
344+ type : 'boolean' ,
345+ description : 'Whether copy requires writer permission' ,
346+ } ,
347+ sharingUser : { type : 'json' , description : 'User who shared the file' } ,
348+ // Labels/Tags
349+ starred : { type : 'boolean' , description : 'Whether file is starred' } ,
350+ trashed : { type : 'boolean' , description : 'Whether file is in trash' } ,
351+ explicitlyTrashed : { type : 'boolean' , description : 'Whether explicitly trashed' } ,
352+ properties : { type : 'json' , description : 'Custom properties' } ,
353+ appProperties : { type : 'json' , description : 'App-specific properties' } ,
354+ // Timestamps
355+ createdTime : { type : 'string' , description : 'File creation time' } ,
356+ modifiedTime : { type : 'string' , description : 'Last modification time' } ,
357+ modifiedByMeTime : { type : 'string' , description : 'When modified by current user' } ,
358+ viewedByMeTime : { type : 'string' , description : 'When last viewed by current user' } ,
359+ sharedWithMeTime : { type : 'string' , description : 'When shared with current user' } ,
360+ // User Info
361+ lastModifyingUser : { type : 'json' , description : 'User who last modified the file' } ,
362+ viewedByMe : { type : 'boolean' , description : 'Whether viewed by current user' } ,
363+ modifiedByMe : { type : 'boolean' , description : 'Whether modified by current user' } ,
364+ // Links
365+ webViewLink : { type : 'string' , description : 'URL to view in browser' } ,
366+ webContentLink : { type : 'string' , description : 'Direct download URL' } ,
367+ iconLink : { type : 'string' , description : 'URL to file icon' } ,
368+ thumbnailLink : { type : 'string' , description : 'URL to thumbnail' } ,
369+ exportLinks : { type : 'json' , description : 'Export format links' } ,
370+ // Size & Storage
371+ size : { type : 'string' , description : 'File size in bytes' } ,
372+ quotaBytesUsed : { type : 'string' , description : 'Storage quota used' } ,
373+ // Checksums
374+ md5Checksum : { type : 'string' , description : 'MD5 hash' } ,
375+ sha1Checksum : { type : 'string' , description : 'SHA-1 hash' } ,
376+ sha256Checksum : { type : 'string' , description : 'SHA-256 hash' } ,
377+ // Hierarchy & Location
378+ parents : { type : 'json' , description : 'Parent folder IDs' } ,
379+ spaces : { type : 'json' , description : 'Spaces containing file' } ,
380+ driveId : { type : 'string' , description : 'Shared drive ID' } ,
381+ // Capabilities
382+ capabilities : { type : 'json' , description : 'User capabilities on file' } ,
383+ // Versions
384+ version : { type : 'string' , description : 'Version number' } ,
385+ headRevisionId : { type : 'string' , description : 'Head revision ID' } ,
386+ // Media Metadata
387+ hasThumbnail : { type : 'boolean' , description : 'Whether has thumbnail' } ,
388+ thumbnailVersion : { type : 'string' , description : 'Thumbnail version' } ,
389+ imageMediaMetadata : { type : 'json' , description : 'Image-specific metadata' } ,
390+ videoMediaMetadata : { type : 'json' , description : 'Video-specific metadata' } ,
391+ // Other
392+ isAppAuthorized : { type : 'boolean' , description : 'Whether created by requesting app' } ,
393+ contentRestrictions : { type : 'json' , description : 'Content restrictions' } ,
394+ linkShareMetadata : { type : 'json' , description : 'Link share metadata' } ,
395+ // Revisions
396+ revisions : { type : 'json' , description : 'File revision history' } ,
397+ } ,
314398 } ,
315399 } ,
316400}
0 commit comments