@@ -9,7 +9,7 @@ import z from 'zod';
99import { logger } from '../logger.js' ;
1010
1111import { ToolCategories } from './categories.js' ;
12- import { CLOSE_PAGE_ERROR , defineTool } from './ToolDefinition.js' ;
12+ import { CLOSE_PAGE_ERROR , defineTool , timeoutSchema } from './ToolDefinition.js' ;
1313
1414export const listPages = defineTool ( {
1515 name : 'list_pages' ,
@@ -83,12 +83,15 @@ export const newPage = defineTool({
8383 } ,
8484 schema : {
8585 url : z . string ( ) . describe ( 'URL to load in a new page.' ) ,
86+ ...timeoutSchema ,
8687 } ,
8788 handler : async ( request , response , context ) => {
8889 const page = await context . newPage ( ) ;
8990
9091 await context . waitForEventsAfterAction ( async ( ) => {
91- await page . goto ( request . params . url ) ;
92+ await page . goto ( request . params . url , {
93+ timeout : request . params . timeout ?? undefined ,
94+ } ) ;
9295 } ) ;
9396
9497 response . setIncludePages ( true ) ;
@@ -104,12 +107,15 @@ export const navigatePage = defineTool({
104107 } ,
105108 schema : {
106109 url : z . string ( ) . describe ( 'URL to navigate the page to' ) ,
110+ ...timeoutSchema ,
107111 } ,
108112 handler : async ( request , response , context ) => {
109113 const page = context . getSelectedPage ( ) ;
110114
111115 await context . waitForEventsAfterAction ( async ( ) => {
112- await page . goto ( request . params . url ) ;
116+ await page . goto ( request . params . url , {
117+ timeout : request . params . timeout ?? undefined ,
118+ } ) ;
113119 } ) ;
114120
115121 response . setIncludePages ( true ) ;
@@ -129,15 +135,18 @@ export const navigatePageHistory = defineTool({
129135 . describe (
130136 'Whether to navigate back or navigate forward in the selected pages history' ,
131137 ) ,
138+ ...timeoutSchema ,
132139 } ,
133140 handler : async ( request , response , context ) => {
134141 const page = context . getSelectedPage ( ) ;
135-
142+ const options = {
143+ timeout : request . params . timeout ?? undefined ,
144+ } ;
136145 try {
137146 if ( request . params . navigate === 'back' ) {
138- await page . goBack ( ) ;
147+ await page . goBack ( options ) ;
139148 } else {
140- await page . goForward ( ) ;
149+ await page . goForward ( options ) ;
141150 }
142151 } catch {
143152 response . appendResponseLine (
0 commit comments