browser-devtools-mcp 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +652 -0
  3. package/dist/browser.js +67 -0
  4. package/dist/browser.js.map +1 -0
  5. package/dist/config.js +11 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/context.js +210 -0
  8. package/dist/context.js.map +1 -0
  9. package/dist/index.js +296 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/logger.js +97 -0
  12. package/dist/logger.js.map +1 -0
  13. package/dist/server-info.js +33 -0
  14. package/dist/server-info.js.map +1 -0
  15. package/dist/server.js +131 -0
  16. package/dist/server.js.map +1 -0
  17. package/dist/tools/content/get-as-html.js +164 -0
  18. package/dist/tools/content/get-as-html.js.map +1 -0
  19. package/dist/tools/content/get-as-text.js +76 -0
  20. package/dist/tools/content/get-as-text.js.map +1 -0
  21. package/dist/tools/content/index.js +16 -0
  22. package/dist/tools/content/index.js.map +1 -0
  23. package/dist/tools/content/save-as-pdf.js +146 -0
  24. package/dist/tools/content/save-as-pdf.js.map +1 -0
  25. package/dist/tools/content/take-aria-snapshot.js +49 -0
  26. package/dist/tools/content/take-aria-snapshot.js.map +1 -0
  27. package/dist/tools/content/take-screenshot.js +113 -0
  28. package/dist/tools/content/take-screenshot.js.map +1 -0
  29. package/dist/tools/index.js +29 -0
  30. package/dist/tools/index.js.map +1 -0
  31. package/dist/tools/interaction/click.js +29 -0
  32. package/dist/tools/interaction/click.js.map +1 -0
  33. package/dist/tools/interaction/drag.js +41 -0
  34. package/dist/tools/interaction/drag.js.map +1 -0
  35. package/dist/tools/interaction/evaluate.js +33 -0
  36. package/dist/tools/interaction/evaluate.js.map +1 -0
  37. package/dist/tools/interaction/fill.js +28 -0
  38. package/dist/tools/interaction/fill.js.map +1 -0
  39. package/dist/tools/interaction/hover.js +29 -0
  40. package/dist/tools/interaction/hover.js.map +1 -0
  41. package/dist/tools/interaction/index.js +20 -0
  42. package/dist/tools/interaction/index.js.map +1 -0
  43. package/dist/tools/interaction/press-key.js +36 -0
  44. package/dist/tools/interaction/press-key.js.map +1 -0
  45. package/dist/tools/interaction/select.js +30 -0
  46. package/dist/tools/interaction/select.js.map +1 -0
  47. package/dist/tools/monitoring/get-console-messages.js +151 -0
  48. package/dist/tools/monitoring/get-console-messages.js.map +1 -0
  49. package/dist/tools/monitoring/get-http-requests.js +216 -0
  50. package/dist/tools/monitoring/get-http-requests.js.map +1 -0
  51. package/dist/tools/monitoring/index.js +7 -0
  52. package/dist/tools/monitoring/index.js.map +1 -0
  53. package/dist/tools/navigation/go-back.js +76 -0
  54. package/dist/tools/navigation/go-back.js.map +1 -0
  55. package/dist/tools/navigation/go-forward.js +76 -0
  56. package/dist/tools/navigation/go-forward.js.map +1 -0
  57. package/dist/tools/navigation/go-to.js +80 -0
  58. package/dist/tools/navigation/go-to.js.map +1 -0
  59. package/dist/tools/navigation/index.js +8 -0
  60. package/dist/tools/navigation/index.js.map +1 -0
  61. package/dist/tools/tool-executor.js +57 -0
  62. package/dist/tools/tool-executor.js.map +1 -0
  63. package/dist/tools/types.js +3 -0
  64. package/dist/tools/types.js.map +1 -0
  65. package/dist/types.js +55 -0
  66. package/dist/types.js.map +1 -0
  67. package/dist/utils.js +47 -0
  68. package/dist/utils.js.map +1 -0
  69. package/package.json +73 -0
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetConsoleMessages = void 0;
4
+ const types_1 = require("../../types");
5
+ const utils_1 = require("../../utils");
6
+ const zod_1 = require("zod");
7
+ class GetConsoleMessages {
8
+ name() {
9
+ return 'monitoring_get-console-messages';
10
+ }
11
+ description() {
12
+ return 'Retrieves console messages/logs from the browser with filtering options.';
13
+ }
14
+ inputSchema() {
15
+ return {
16
+ type: zod_1.z
17
+ .enum((0, utils_1.getEnumKeyTuples)(types_1.ConsoleMessageLevelName))
18
+ .transform((0, utils_1.createEnumTransformer)(types_1.ConsoleMessageLevelName))
19
+ .describe(`
20
+ Type of console messages to retrieve.
21
+ When specified, console messages with equal or higher levels are retrieved.
22
+ Valid values are (in ascending order according to their levels): ${(0, utils_1.getEnumKeyTuples)(types_1.ConsoleMessageLevelName)}.`)
23
+ .optional(),
24
+ search: zod_1.z
25
+ .string()
26
+ .describe('Text to search for in console messages.')
27
+ .optional(),
28
+ timestamp: zod_1.z
29
+ .number()
30
+ .int()
31
+ .nonnegative()
32
+ .describe(`
33
+ Start time filter as a Unix epoch timestamp in milliseconds.
34
+ If provided, only console messages recorded at or after this timestamp will be returned.`)
35
+ .optional(),
36
+ sequenceNumber: zod_1.z
37
+ .number()
38
+ .int()
39
+ .nonnegative()
40
+ .describe(`
41
+ Sequence number for incremental retrieval.
42
+ If provided, only console messages with a sequence number greater than this value will be returned.
43
+ This allows clients to fetch console messages incrementally by passing the last received sequence number on subsequent requests.`)
44
+ .optional(),
45
+ limit: zod_1.z
46
+ .object({
47
+ count: zod_1.z.number().int().nonnegative().default(0).describe(`
48
+ Count of the maximum number of console messages to return.
49
+ If the result exceeds this limit, it will be truncated.
50
+ "0" means no count limit.`),
51
+ from: zod_1.z.enum(['start', 'end']).default('end').describe(`
52
+ Controls which side is kept when truncation is applied.
53
+ "start" keeps the first N items (trims from the end).
54
+ "end" keeps the last N items (trims from the start).`),
55
+ })
56
+ .describe('Maximum number of console messages to return.')
57
+ .optional(),
58
+ };
59
+ }
60
+ outputSchema() {
61
+ return {
62
+ messages: zod_1.z
63
+ .array(zod_1.z
64
+ .object({
65
+ type: zod_1.z
66
+ .string()
67
+ .describe('Type of the console message.'),
68
+ text: zod_1.z
69
+ .string()
70
+ .describe('Text of the console message.'),
71
+ location: zod_1.z
72
+ .object({
73
+ url: zod_1.z
74
+ .string()
75
+ .describe('URL of the resource.'),
76
+ lineNumber: zod_1.z
77
+ .number()
78
+ .nonnegative()
79
+ .describe('0-based line number in the resource.'),
80
+ columnNumber: zod_1.z
81
+ .number()
82
+ .nonnegative()
83
+ .describe('0-based column number in the resource.'),
84
+ })
85
+ .describe('Location of the console message in the resource.')
86
+ .optional(),
87
+ timestamp: zod_1.z
88
+ .number()
89
+ .int()
90
+ .nonnegative()
91
+ .describe('Unix epoch timestamp (in milliseconds) of the console message.'),
92
+ sequenceNumber: zod_1.z.number().int().nonnegative()
93
+ .describe(`
94
+ A monotonically increasing sequence number assigned to each console message.
95
+ It reflects the order in which messages were captured and can be used by clients
96
+ to retrieve messages incrementally by requesting only those with a higher sequence
97
+ number than the last one received.`),
98
+ })
99
+ .describe('Console message item.'))
100
+ .describe('Retrieved console messages.'),
101
+ };
102
+ }
103
+ async handle(context, args) {
104
+ const consoleMessageLevelCodeThreshold = args.type
105
+ ? types_1.ConsoleMessageLevel[args.type]?.code
106
+ : undefined;
107
+ const filteredConsoleMessages = context
108
+ .getConsoleMessages()
109
+ .filter((msg) => {
110
+ let filter = true;
111
+ if (consoleMessageLevelCodeThreshold !== undefined) {
112
+ filter = msg.level.code >= consoleMessageLevelCodeThreshold;
113
+ }
114
+ if (filter && args.timestamp) {
115
+ filter = msg.timestamp >= args.timestamp;
116
+ }
117
+ if (filter && args.sequenceNumber) {
118
+ filter = msg.sequenceNumber > args.sequenceNumber;
119
+ }
120
+ if (filter && args.search) {
121
+ filter = msg.text.includes(args.search);
122
+ }
123
+ return filter;
124
+ });
125
+ const trimmedConsoleMessages = args.limit?.count
126
+ ? args.limit.from === 'start'
127
+ ? filteredConsoleMessages.slice(0, args.limit.count)
128
+ : filteredConsoleMessages.slice(-args.limit.count)
129
+ : filteredConsoleMessages;
130
+ const consoleMessagesToReturn = trimmedConsoleMessages.map((msg) => {
131
+ return {
132
+ type: msg.type,
133
+ text: msg.text,
134
+ location: msg.location
135
+ ? {
136
+ url: msg.location.url,
137
+ lineNumber: msg.location.lineNumber,
138
+ columnNumber: msg.location.columnNumber,
139
+ }
140
+ : undefined,
141
+ timestamp: msg.timestamp,
142
+ sequenceNumber: msg.sequenceNumber,
143
+ };
144
+ });
145
+ return {
146
+ messages: consoleMessagesToReturn,
147
+ };
148
+ }
149
+ }
150
+ exports.GetConsoleMessages = GetConsoleMessages;
151
+ //# sourceMappingURL=get-console-messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-console-messages.js","sourceRoot":"","sources":["../../../src/tools/monitoring/get-console-messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetHttpRequests = void 0;
4
+ const types_1 = require("../../types");
5
+ const zod_1 = require("zod");
6
+ const utils_1 = require("../../utils");
7
+ class GetHttpRequests {
8
+ name() {
9
+ return 'monitoring_get-http-requests';
10
+ }
11
+ description() {
12
+ return 'Retrieves HTTP requests from the browser with filtering options.';
13
+ }
14
+ inputSchema() {
15
+ return {
16
+ resourceType: zod_1.z
17
+ .enum((0, utils_1.getEnumKeyTuples)(types_1.HttpResourceType))
18
+ .transform((0, utils_1.createEnumTransformer)(types_1.HttpResourceType))
19
+ .describe(`
20
+ Resource type of the HTTP requests to retrieve.
21
+ Valid values are: ${(0, utils_1.getEnumKeyTuples)(types_1.HttpResourceType)}.`)
22
+ .optional(),
23
+ status: zod_1.z
24
+ .object({
25
+ min: zod_1.z
26
+ .number()
27
+ .int()
28
+ .positive()
29
+ .describe('Minimum status code of the HTTP requests to retrieve.')
30
+ .optional(),
31
+ max: zod_1.z
32
+ .number()
33
+ .int()
34
+ .positive()
35
+ .describe('Maximum status code of the HTTP requests to retrieve.')
36
+ .optional(),
37
+ })
38
+ .describe('Status code of the HTTP requests to retrieve.')
39
+ .optional(),
40
+ ok: zod_1.z
41
+ .boolean()
42
+ .describe(`
43
+ Whether to retrieve successful or failed HTTP requests.
44
+ An HTTP request is considered successful only if its status code is 2XX.
45
+ Otherwise (non-2XX status code or no response at all because of timeout, network failure, etc ...) it is considered as failed.
46
+ When this flag is not set, all (successful and failed HTTP requests) are retrieved.`)
47
+ .optional(),
48
+ timestamp: zod_1.z
49
+ .number()
50
+ .int()
51
+ .nonnegative()
52
+ .describe(`
53
+ Start time filter as a Unix epoch timestamp in milliseconds.
54
+ If provided, only HTTP requests recorded at or after this timestamp will be returned.
55
+ `)
56
+ .optional(),
57
+ sequenceNumber: zod_1.z
58
+ .number()
59
+ .int()
60
+ .nonnegative()
61
+ .describe(`
62
+ Sequence number for incremental retrieval.
63
+ If provided, only HTTP requests with a sequence number greater than this value will be returned.
64
+ This allows clients to fetch HTTP requests incrementally by passing the last received sequence number on subsequent requests.
65
+ `)
66
+ .optional(),
67
+ limit: zod_1.z
68
+ .object({
69
+ count: zod_1.z.number().int().nonnegative().default(0).describe(`
70
+ Count of the maximum number of HTTP requests to return.
71
+ If the result exceeds this limit, it will be truncated.
72
+ "0" means no count limit.`),
73
+ from: zod_1.z.enum(['start', 'end']).default('end').describe(`
74
+ Controls which side is kept when truncation is applied.
75
+ "start" keeps the first N items (trims from the end).
76
+ "end" keeps the last N items (trims from the start).`),
77
+ })
78
+ .describe('Maximum number of HTTP requests to return.')
79
+ .optional(),
80
+ };
81
+ }
82
+ outputSchema() {
83
+ return {
84
+ requests: zod_1.z
85
+ .array(zod_1.z
86
+ .object({
87
+ url: zod_1.z.string().describe('HTTP request url.'),
88
+ method: zod_1.z
89
+ .enum((0, utils_1.getEnumKeyTuples)(types_1.HttpMethod))
90
+ .describe(`HTTP request method. Valid values are: ${(0, utils_1.getEnumKeyTuples)(types_1.HttpMethod)}`),
91
+ headers: zod_1.z
92
+ .record(zod_1.z.string(), zod_1.z.string())
93
+ .describe('HTTP request headers as key-value pairs.'),
94
+ body: zod_1.z
95
+ .string()
96
+ .describe('HTTP request body if available.')
97
+ .optional(),
98
+ resourceType: zod_1.z.enum((0, utils_1.getEnumKeyTuples)(types_1.HttpResourceType)).describe(`
99
+ HTTP request resource type as it was perceived by the rendering engine.
100
+ Valid values are: ${(0, utils_1.getEnumKeyTuples)(types_1.HttpResourceType)}`),
101
+ failure: zod_1.z
102
+ .string()
103
+ .describe('Error message of the HTTP request if failed.')
104
+ .optional(),
105
+ duration: zod_1.z
106
+ .number()
107
+ .describe('HTTP request duration in milliseconds. "-1" if not available (no response).')
108
+ .optional(),
109
+ response: zod_1.z
110
+ .object({
111
+ status: zod_1.z
112
+ .number()
113
+ .int()
114
+ .positive()
115
+ .describe('HTTP response status code.'),
116
+ statusText: zod_1.z
117
+ .string()
118
+ .describe('HTTP response status text.'),
119
+ headers: zod_1.z
120
+ .record(zod_1.z.string(), zod_1.z.string())
121
+ .describe('HTTP response headers as key-value pairs.'),
122
+ body: zod_1.z
123
+ .string()
124
+ .describe('HTTP response body if available.')
125
+ .optional(),
126
+ })
127
+ .describe('HTTP response.')
128
+ .optional(),
129
+ ok: zod_1.z
130
+ .boolean()
131
+ .describe(`
132
+ Flag to represent whether the HTTP request successful or failed.
133
+ An HTTP request is considered successful only if its status code is 2XX.
134
+ Otherwise (non-2XX status code or no response at all because of timeout, network failure, etc ...) it is considered as failed.`)
135
+ .optional(),
136
+ timestamp: zod_1.z
137
+ .number()
138
+ .int()
139
+ .nonnegative()
140
+ .describe('Unix epoch timestamp (in milliseconds) of the HTTP request.'),
141
+ sequenceNumber: zod_1.z.number().int().nonnegative()
142
+ .describe(`
143
+ A monotonically increasing sequence number assigned to each HTTP request.
144
+ It reflects the order in which requests were captured and can be used by clients
145
+ to retrieve requests incrementally by requesting only those with a higher sequence
146
+ number than the last one received.`),
147
+ })
148
+ .describe('HTTP request item.'))
149
+ .describe('Retrieved HTTP requests.'),
150
+ };
151
+ }
152
+ async handle(context, args) {
153
+ const filteredHttpRequests = context
154
+ .getHttpRequests()
155
+ .filter((req) => {
156
+ let filter = true;
157
+ if (filter && args.resourceType) {
158
+ filter = req.resourceType === args.resourceType;
159
+ }
160
+ if (filter && args.status) {
161
+ if (filter && args.status.min) {
162
+ filter = req.response
163
+ ? req.response.status >= args.status.min
164
+ : false;
165
+ }
166
+ if (filter && args.status.max) {
167
+ filter = req.response
168
+ ? req.response.status <= args.status.max
169
+ : false;
170
+ }
171
+ }
172
+ if (filter && args.ok !== undefined) {
173
+ filter = req.ok;
174
+ }
175
+ if (filter && args.timestamp) {
176
+ filter = req.timestamp >= args.timestamp;
177
+ }
178
+ if (filter && args.sequenceNumber) {
179
+ filter = req.sequenceNumber > args.sequenceNumber;
180
+ }
181
+ return filter;
182
+ });
183
+ const trimmedHttpRequests = args.limit?.count
184
+ ? args.limit.from === 'start'
185
+ ? filteredHttpRequests.slice(0, args.limit.count)
186
+ : filteredHttpRequests.slice(-args.limit.count)
187
+ : filteredHttpRequests;
188
+ const httpRequestsToReturn = trimmedHttpRequests.map((req) => {
189
+ return {
190
+ url: req.url,
191
+ method: req.method,
192
+ headers: req.headers,
193
+ body: req.body,
194
+ resourceType: req.resourceType,
195
+ failure: req.failure,
196
+ duration: req.duration,
197
+ response: req.response
198
+ ? {
199
+ status: req.response.status,
200
+ statusText: req.response.statusText,
201
+ headers: req.response.headers,
202
+ body: req.response.body,
203
+ }
204
+ : undefined,
205
+ ok: req.ok,
206
+ timestamp: req.timestamp,
207
+ sequenceNumber: req.sequenceNumber,
208
+ };
209
+ });
210
+ return {
211
+ requests: httpRequestsToReturn,
212
+ };
213
+ }
214
+ }
215
+ exports.GetHttpRequests = GetHttpRequests;
216
+ //# sourceMappingURL=get-http-requests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-http-requests.js","sourceRoot":"","sources":["../../../src/tools/monitoring/get-http-requests.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tools = void 0;
4
+ const get_console_messages_1 = require("./get-console-messages");
5
+ const get_http_requests_1 = require("./get-http-requests");
6
+ exports.tools = [new get_console_messages_1.GetConsoleMessages(), new get_http_requests_1.GetHttpRequests()];
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/monitoring/index.ts"],"names":[],"mappings":";;;AACA,iEAA4D;AAC5D,2DAAsD;AAEzC,QAAA,KAAK,GAAW,CAAC,IAAI,yCAAkB,EAAE,EAAE,IAAI,mCAAe,EAAE,CAAC,CAAC"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoBack = void 0;
4
+ const zod_1 = require("zod");
5
+ const DEFAULT_TIMEOUT_MS = 0;
6
+ const DEFAULT_WAIT_UNTIL = 'load';
7
+ class GoBack {
8
+ name() {
9
+ return 'navigation_go-back';
10
+ }
11
+ description() {
12
+ return `
13
+ Navigates to the previous page in history.
14
+ In case of multiple redirects, the navigation will resolve with the response of the last redirect.
15
+ If cannot go back, returns empty response.
16
+ `;
17
+ }
18
+ inputSchema() {
19
+ return {
20
+ timeout: zod_1.z
21
+ .number()
22
+ .int()
23
+ .nonnegative()
24
+ .describe('Maximum operation time in milliseconds. Defaults to `0` - no timeout.')
25
+ .optional()
26
+ .default(DEFAULT_TIMEOUT_MS),
27
+ waitUntil: zod_1.z
28
+ .enum(['load', 'domcontentloaded', 'networkidle', 'commit'])
29
+ .describe(`
30
+ When to consider operation succeeded, defaults to \`load\`. Events can be either:
31
+ - \`domcontentloaded\`: Consider operation to be finished when the \`DOMContentLoaded\` event is fired.
32
+ - \`load\`: Consider operation to be finished when the \`load\` event is fired.
33
+ - \`networkidle\`: **DISCOURAGED** consider operation to be finished when there are no network connections for
34
+ at least \`500\` ms. Don't use this method for testing, rely on web assertions to assess readiness instead.
35
+ - \`commit\`: Consider operation to be finished when network response is received and the document started loading.`)
36
+ .optional()
37
+ .default(DEFAULT_WAIT_UNTIL),
38
+ };
39
+ }
40
+ outputSchema() {
41
+ return {
42
+ url: zod_1.z
43
+ .string()
44
+ .describe('Contains the URL of the navigated page.')
45
+ .optional(),
46
+ status: zod_1.z
47
+ .number()
48
+ .int()
49
+ .positive()
50
+ .describe('Contains the status code of the navigated page (e.g., 200 for a success).')
51
+ .optional(),
52
+ statusText: zod_1.z
53
+ .string()
54
+ .describe('Contains the status text of the navigated page (e.g. usually an "OK" for a success).')
55
+ .optional(),
56
+ ok: zod_1.z
57
+ .boolean()
58
+ .describe('Contains a boolean stating whether the navigated page was successful (status in the range 200-299) or not.')
59
+ .optional(),
60
+ };
61
+ }
62
+ async handle(context, args) {
63
+ const response = await context.page.goBack({
64
+ timeout: args.timeout,
65
+ waitUntil: args.waitUntil,
66
+ });
67
+ return {
68
+ url: response?.url(),
69
+ status: response?.status(),
70
+ statusText: response?.statusText(),
71
+ ok: response?.ok(),
72
+ };
73
+ }
74
+ }
75
+ exports.GoBack = GoBack;
76
+ //# sourceMappingURL=go-back.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-back.js","sourceRoot":"","sources":["../../../src/tools/navigation/go-back.ts"],"names":[],"mappings":";;;AAUA,6BAAwB;AAExB,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAclC,MAAa,MAAM;IACf,IAAI;QACA,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAED,WAAW;QACP,OAAO;;;;SAIN,CAAC;IACN,CAAC;IAED,WAAW;QACP,OAAO;YACH,OAAO,EAAE,OAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,WAAW,EAAE;iBACb,QAAQ,CACL,uEAAuE,CAC1E;iBACA,QAAQ,EAAE;iBACV,OAAO,CAAC,kBAAkB,CAAC;YAChC,SAAS,EAAE,OAAC;iBACP,IAAI,CAAC,CAAC,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;iBAC3D,QAAQ,CACL;;;;;;oHAMgG,CACnG;iBACA,QAAQ,EAAE;iBACV,OAAO,CAAC,kBAAkB,CAAC;SACnC,CAAC;IACN,CAAC;IAED,YAAY;QACR,OAAO;YACH,GAAG,EAAE,OAAC;iBACD,MAAM,EAAE;iBACR,QAAQ,CAAC,yCAAyC,CAAC;iBACnD,QAAQ,EAAE;YACf,MAAM,EAAE,OAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CACL,2EAA2E,CAC9E;iBACA,QAAQ,EAAE;YACf,UAAU,EAAE,OAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CACL,sFAAsF,CACzF;iBACA,QAAQ,EAAE;YACf,EAAE,EAAE,OAAC;iBACA,OAAO,EAAE;iBACT,QAAQ,CACL,4GAA4G,CAC/G;iBACA,QAAQ,EAAE;SAClB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,MAAM,CACR,OAA0B,EAC1B,IAAiB;QAEjB,MAAM,QAAQ,GAAoB,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YACxD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC,CAAC;QACH,OAAO;YACH,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE;YACpB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;YAC1B,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE;YAClC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;SACrB,CAAC;IACN,CAAC;CACJ;AApFD,wBAoFC"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoForward = void 0;
4
+ const zod_1 = require("zod");
5
+ const DEFAULT_TIMEOUT_MS = 0;
6
+ const DEFAULT_WAIT_UNTIL = 'load';
7
+ class GoForward {
8
+ name() {
9
+ return 'navigation_go-forward';
10
+ }
11
+ description() {
12
+ return `
13
+ Navigates to the next page in history.
14
+ In case of multiple redirects, the navigation will resolve with the response of the last redirect.
15
+ If cannot go back, returns empty response.
16
+ `;
17
+ }
18
+ inputSchema() {
19
+ return {
20
+ timeout: zod_1.z
21
+ .number()
22
+ .int()
23
+ .nonnegative()
24
+ .describe('Maximum operation time in milliseconds. Defaults to `0` - no timeout.')
25
+ .optional()
26
+ .default(DEFAULT_TIMEOUT_MS),
27
+ waitUntil: zod_1.z
28
+ .enum(['load', 'domcontentloaded', 'networkidle', 'commit'])
29
+ .describe(`
30
+ When to consider operation succeeded, defaults to \`load\`. Events can be either:
31
+ - \`domcontentloaded\`: Consider operation to be finished when the \`DOMContentLoaded\` event is fired.
32
+ - \`load\`: Consider operation to be finished when the \`load\` event is fired.
33
+ - \`networkidle\`: **DISCOURAGED** consider operation to be finished when there are no network connections for
34
+ at least \`500\` ms. Don't use this method for testing, rely on web assertions to assess readiness instead.
35
+ - \`commit\`: Consider operation to be finished when network response is received and the document started loading.`)
36
+ .optional()
37
+ .default(DEFAULT_WAIT_UNTIL),
38
+ };
39
+ }
40
+ outputSchema() {
41
+ return {
42
+ url: zod_1.z
43
+ .string()
44
+ .describe('Contains the URL of the navigated page.')
45
+ .optional(),
46
+ status: zod_1.z
47
+ .number()
48
+ .int()
49
+ .positive()
50
+ .describe('Contains the status code of the navigated page (e.g., 200 for a success).')
51
+ .optional(),
52
+ statusText: zod_1.z
53
+ .string()
54
+ .describe('Contains the status text of the navigated page (e.g. usually an "OK" for a success).')
55
+ .optional(),
56
+ ok: zod_1.z
57
+ .boolean()
58
+ .describe('Contains a boolean stating whether the navigated page was successful (status in the range 200-299) or not.')
59
+ .optional(),
60
+ };
61
+ }
62
+ async handle(context, args) {
63
+ const response = await context.page.goForward({
64
+ timeout: args.timeout,
65
+ waitUntil: args.waitUntil,
66
+ });
67
+ return {
68
+ url: response?.url(),
69
+ status: response?.status(),
70
+ statusText: response?.statusText(),
71
+ ok: response?.ok(),
72
+ };
73
+ }
74
+ }
75
+ exports.GoForward = GoForward;
76
+ //# sourceMappingURL=go-forward.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-forward.js","sourceRoot":"","sources":["../../../src/tools/navigation/go-forward.ts"],"names":[],"mappings":";;;AAUA,6BAAwB;AAExB,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAclC,MAAa,SAAS;IAClB,IAAI;QACA,OAAO,uBAAuB,CAAC;IACnC,CAAC;IAED,WAAW;QACP,OAAO;;;;SAIN,CAAC;IACN,CAAC;IAED,WAAW;QACP,OAAO;YACH,OAAO,EAAE,OAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,WAAW,EAAE;iBACb,QAAQ,CACL,uEAAuE,CAC1E;iBACA,QAAQ,EAAE;iBACV,OAAO,CAAC,kBAAkB,CAAC;YAChC,SAAS,EAAE,OAAC;iBACP,IAAI,CAAC,CAAC,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;iBAC3D,QAAQ,CACL;;;;;;oHAMgG,CACnG;iBACA,QAAQ,EAAE;iBACV,OAAO,CAAC,kBAAkB,CAAC;SACnC,CAAC;IACN,CAAC;IAED,YAAY;QACR,OAAO;YACH,GAAG,EAAE,OAAC;iBACD,MAAM,EAAE;iBACR,QAAQ,CAAC,yCAAyC,CAAC;iBACnD,QAAQ,EAAE;YACf,MAAM,EAAE,OAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CACL,2EAA2E,CAC9E;iBACA,QAAQ,EAAE;YACf,UAAU,EAAE,OAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CACL,sFAAsF,CACzF;iBACA,QAAQ,EAAE;YACf,EAAE,EAAE,OAAC;iBACA,OAAO,EAAE;iBACT,QAAQ,CACL,4GAA4G,CAC/G;iBACA,QAAQ,EAAE;SAClB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,MAAM,CACR,OAA0B,EAC1B,IAAoB;QAEpB,MAAM,QAAQ,GAAoB,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3D,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC,CAAC;QACH,OAAO;YACH,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE;YACpB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;YAC1B,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE;YAClC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;SACrB,CAAC;IACN,CAAC;CACJ;AApFD,8BAoFC"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoTo = void 0;
4
+ const zod_1 = require("zod");
5
+ const DEFAULT_TIMEOUT_MS = 0;
6
+ const DEFAULT_WAIT_UNTIL = 'load';
7
+ class GoTo {
8
+ name() {
9
+ return 'navigation_go-to';
10
+ }
11
+ description() {
12
+ return `
13
+ Navigates to the given URL.
14
+ **NOTE**: The tool either throws an error or returns a main resource response.
15
+ The only exceptions are navigation to \`about:blank\` or navigation to the same URL with a different hash,
16
+ which would succeed and return empty response.
17
+ `;
18
+ }
19
+ inputSchema() {
20
+ return {
21
+ url: zod_1.z
22
+ .string()
23
+ .describe('URL to navigate page to. The url should include scheme, e.g. `http://`, `https://`.'),
24
+ timeout: zod_1.z
25
+ .number()
26
+ .int()
27
+ .nonnegative()
28
+ .describe('Maximum operation time in milliseconds. Defaults to `0` - no timeout.')
29
+ .optional()
30
+ .default(DEFAULT_TIMEOUT_MS),
31
+ waitUntil: zod_1.z
32
+ .enum(['load', 'domcontentloaded', 'networkidle', 'commit'])
33
+ .describe(`
34
+ When to consider operation succeeded, defaults to \`load\`. Events can be either:
35
+ - \`domcontentloaded\`: Consider operation to be finished when the \`DOMContentLoaded\` event is fired.
36
+ - \`load\`: Consider operation to be finished when the \`load\` event is fired.
37
+ - \`networkidle\`: **DISCOURAGED** consider operation to be finished when there are no network connections for
38
+ at least \`500\` ms. Don't use this method for testing, rely on web assertions to assess readiness instead.
39
+ - \`commit\`: Consider operation to be finished when network response is received and the document started loading.`)
40
+ .optional()
41
+ .default(DEFAULT_WAIT_UNTIL),
42
+ };
43
+ }
44
+ outputSchema() {
45
+ return {
46
+ url: zod_1.z
47
+ .string()
48
+ .describe('Contains the URL of the navigated page.')
49
+ .optional(),
50
+ status: zod_1.z
51
+ .number()
52
+ .int()
53
+ .positive()
54
+ .describe('Contains the status code of the navigated page (e.g., 200 for a success).')
55
+ .optional(),
56
+ statusText: zod_1.z
57
+ .string()
58
+ .describe('Contains the status text of the navigated page (e.g. usually an "OK" for a success).')
59
+ .optional(),
60
+ ok: zod_1.z
61
+ .boolean()
62
+ .describe('Contains a boolean stating whether the navigated page was successful (status in the range 200-299) or not.')
63
+ .optional(),
64
+ };
65
+ }
66
+ async handle(context, args) {
67
+ const response = await context.page.goto(args.url, {
68
+ timeout: args.timeout,
69
+ waitUntil: args.waitUntil,
70
+ });
71
+ return {
72
+ url: response?.url(),
73
+ status: response?.status(),
74
+ statusText: response?.statusText(),
75
+ ok: response?.ok(),
76
+ };
77
+ }
78
+ }
79
+ exports.GoTo = GoTo;
80
+ //# sourceMappingURL=go-to.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-to.js","sourceRoot":"","sources":["../../../src/tools/navigation/go-to.ts"],"names":[],"mappings":";;;AAUA,6BAAwB;AAExB,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAelC,MAAa,IAAI;IACb,IAAI;QACA,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAED,WAAW;QACP,OAAO;;;;;SAKN,CAAC;IACN,CAAC;IAED,WAAW;QACP,OAAO;YACH,GAAG,EAAE,OAAC;iBACD,MAAM,EAAE;iBACR,QAAQ,CACL,qFAAqF,CACxF;YACL,OAAO,EAAE,OAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,WAAW,EAAE;iBACb,QAAQ,CACL,uEAAuE,CAC1E;iBACA,QAAQ,EAAE;iBACV,OAAO,CAAC,kBAAkB,CAAC;YAChC,SAAS,EAAE,OAAC;iBACP,IAAI,CAAC,CAAC,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;iBAC3D,QAAQ,CACL;;;;;;oHAMgG,CACnG;iBACA,QAAQ,EAAE;iBACV,OAAO,CAAC,kBAAkB,CAAC;SACnC,CAAC;IACN,CAAC;IAED,YAAY;QACR,OAAO;YACH,GAAG,EAAE,OAAC;iBACD,MAAM,EAAE;iBACR,QAAQ,CAAC,yCAAyC,CAAC;iBACnD,QAAQ,EAAE;YACf,MAAM,EAAE,OAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CACL,2EAA2E,CAC9E;iBACA,QAAQ,EAAE;YACf,UAAU,EAAE,OAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CACL,sFAAsF,CACzF;iBACA,QAAQ,EAAE;YACf,EAAE,EAAE,OAAC;iBACA,OAAO,EAAE;iBACT,QAAQ,CACL,4GAA4G,CAC/G;iBACA,QAAQ,EAAE;SAClB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,MAAM,CACR,OAA0B,EAC1B,IAAe;QAEf,MAAM,QAAQ,GAAoB,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAChE,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC,CAAC;QACH,OAAO;YACH,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE;YACpB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;YAC1B,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE;YAClC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;SACrB,CAAC;IACN,CAAC;CACJ;AA1FD,oBA0FC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tools = void 0;
4
+ const go_back_1 = require("./go-back");
5
+ const go_forward_1 = require("./go-forward");
6
+ const go_to_1 = require("./go-to");
7
+ exports.tools = [new go_back_1.GoBack(), new go_forward_1.GoForward(), new go_to_1.GoTo()];
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/navigation/index.ts"],"names":[],"mappings":";;;AACA,uCAAmC;AACnC,6CAAyC;AACzC,mCAA+B;AAElB,QAAA,KAAK,GAAW,CAAC,IAAI,gBAAM,EAAE,EAAE,IAAI,sBAAS,EAAE,EAAE,IAAI,YAAI,EAAE,CAAC,CAAC"}