@@ -284,7 +284,12 @@ class GetDocumentTool extends BaseGoogleDocsTool {
284284 const params = { ...arg , ...this . defaultParams }
285285
286286 try {
287- const endpoint = `documents/${ encodeURIComponent ( params . documentId ) } `
287+ const queryParams = new URLSearchParams ( )
288+ if ( params . includeTabsContent ) {
289+ queryParams . set ( 'includeTabsContent' , 'true' )
290+ }
291+ const endpoint =
292+ `documents/${ encodeURIComponent ( params . documentId ) } ` + ( queryParams . size > 0 ? `?${ queryParams . toString ( ) } ` : '' )
288293 const response = await this . makeGoogleDocsRequest ( { endpoint, params } )
289294 return response
290295 } catch ( error ) {
@@ -562,10 +567,14 @@ class GetTextContentTool extends BaseGoogleDocsTool {
562567 const params = { ...arg , ...this . defaultParams }
563568
564569 try {
565- const endpoint = `documents/${ encodeURIComponent ( params . documentId ) } `
570+ const queryParams = new URLSearchParams ( )
571+ if ( params . includeTabsContent ) {
572+ queryParams . set ( 'includeTabsContent' , 'true' )
573+ }
574+ const endpoint =
575+ `documents/${ encodeURIComponent ( params . documentId ) } ` + ( queryParams . size > 0 ? `?${ queryParams . toString ( ) } ` : '' )
566576 const response = await this . makeGoogleDocsRequest ( { endpoint, params } )
567577
568- // Extract and return just the text content
569578 const docData = JSON . parse ( response . split ( TOOL_ARGS_PREFIX ) [ 0 ] )
570579 let textContent = ''
571580
@@ -579,7 +588,20 @@ class GetTextContentTool extends BaseGoogleDocsTool {
579588 }
580589 }
581590
582- docData . body . content ?. forEach ( extractText )
591+ const extractFromTabs = ( tabs : any [ ] ) => {
592+ for ( const tab of tabs ) {
593+ tab . documentTab ?. body ?. content ?. forEach ( extractText )
594+ if ( tab . childTabs ?. length ) {
595+ extractFromTabs ( tab . childTabs )
596+ }
597+ }
598+ }
599+
600+ if ( docData . tabs ?. length ) {
601+ extractFromTabs ( docData . tabs )
602+ } else {
603+ docData . body ?. content ?. forEach ( extractText )
604+ }
583605
584606 return JSON . stringify ( { textContent } ) + TOOL_ARGS_PREFIX + JSON . stringify ( params )
585607 } catch ( error ) {
0 commit comments