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.
- package/LICENSE +21 -0
- package/README.md +652 -0
- package/dist/browser.js +67 -0
- package/dist/browser.js.map +1 -0
- package/dist/config.js +11 -0
- package/dist/config.js.map +1 -0
- package/dist/context.js +210 -0
- package/dist/context.js.map +1 -0
- package/dist/index.js +296 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.js +97 -0
- package/dist/logger.js.map +1 -0
- package/dist/server-info.js +33 -0
- package/dist/server-info.js.map +1 -0
- package/dist/server.js +131 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/content/get-as-html.js +164 -0
- package/dist/tools/content/get-as-html.js.map +1 -0
- package/dist/tools/content/get-as-text.js +76 -0
- package/dist/tools/content/get-as-text.js.map +1 -0
- package/dist/tools/content/index.js +16 -0
- package/dist/tools/content/index.js.map +1 -0
- package/dist/tools/content/save-as-pdf.js +146 -0
- package/dist/tools/content/save-as-pdf.js.map +1 -0
- package/dist/tools/content/take-aria-snapshot.js +49 -0
- package/dist/tools/content/take-aria-snapshot.js.map +1 -0
- package/dist/tools/content/take-screenshot.js +113 -0
- package/dist/tools/content/take-screenshot.js.map +1 -0
- package/dist/tools/index.js +29 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/interaction/click.js +29 -0
- package/dist/tools/interaction/click.js.map +1 -0
- package/dist/tools/interaction/drag.js +41 -0
- package/dist/tools/interaction/drag.js.map +1 -0
- package/dist/tools/interaction/evaluate.js +33 -0
- package/dist/tools/interaction/evaluate.js.map +1 -0
- package/dist/tools/interaction/fill.js +28 -0
- package/dist/tools/interaction/fill.js.map +1 -0
- package/dist/tools/interaction/hover.js +29 -0
- package/dist/tools/interaction/hover.js.map +1 -0
- package/dist/tools/interaction/index.js +20 -0
- package/dist/tools/interaction/index.js.map +1 -0
- package/dist/tools/interaction/press-key.js +36 -0
- package/dist/tools/interaction/press-key.js.map +1 -0
- package/dist/tools/interaction/select.js +30 -0
- package/dist/tools/interaction/select.js.map +1 -0
- package/dist/tools/monitoring/get-console-messages.js +151 -0
- package/dist/tools/monitoring/get-console-messages.js.map +1 -0
- package/dist/tools/monitoring/get-http-requests.js +216 -0
- package/dist/tools/monitoring/get-http-requests.js.map +1 -0
- package/dist/tools/monitoring/index.js +7 -0
- package/dist/tools/monitoring/index.js.map +1 -0
- package/dist/tools/navigation/go-back.js +76 -0
- package/dist/tools/navigation/go-back.js.map +1 -0
- package/dist/tools/navigation/go-forward.js +76 -0
- package/dist/tools/navigation/go-forward.js.map +1 -0
- package/dist/tools/navigation/go-to.js +80 -0
- package/dist/tools/navigation/go-to.js.map +1 -0
- package/dist/tools/navigation/index.js +8 -0
- package/dist/tools/navigation/index.js.map +1 -0
- package/dist/tools/tool-executor.js +57 -0
- package/dist/tools/tool-executor.js.map +1 -0
- package/dist/tools/types.js +3 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/types.js +55 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.js +47 -0
- package/dist/utils.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.SaveAsPdf = exports.PageFormat = exports.SizeUnit = void 0;
|
|
37
|
+
const utils_1 = require("../../utils");
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const zod_1 = require("zod");
|
|
40
|
+
var SizeUnit;
|
|
41
|
+
(function (SizeUnit) {
|
|
42
|
+
SizeUnit["PIXED"] = "px";
|
|
43
|
+
SizeUnit["INCH"] = "in";
|
|
44
|
+
SizeUnit["CENTIMETER"] = "cm";
|
|
45
|
+
SizeUnit["MILLIMETER"] = "mm";
|
|
46
|
+
})(SizeUnit || (exports.SizeUnit = SizeUnit = {}));
|
|
47
|
+
var PageFormat;
|
|
48
|
+
(function (PageFormat) {
|
|
49
|
+
PageFormat["LETTER"] = "Letter";
|
|
50
|
+
PageFormat["LEGAL"] = "Legal";
|
|
51
|
+
PageFormat["TABLOID"] = "Tabloid";
|
|
52
|
+
PageFormat["LEDGER"] = "Ledger";
|
|
53
|
+
PageFormat["A0"] = "A0";
|
|
54
|
+
PageFormat["A1"] = "A1";
|
|
55
|
+
PageFormat["A2"] = "A2";
|
|
56
|
+
PageFormat["A3"] = "A3";
|
|
57
|
+
PageFormat["A4"] = "A4";
|
|
58
|
+
PageFormat["A5"] = "A5";
|
|
59
|
+
PageFormat["A6"] = "A6";
|
|
60
|
+
})(PageFormat || (exports.PageFormat = PageFormat = {}));
|
|
61
|
+
const DEFAULT_NAME = 'page';
|
|
62
|
+
const DEFAULT_MARGIN = '1cm';
|
|
63
|
+
const DEFAULT_FORMAT = PageFormat.A4;
|
|
64
|
+
const DEFAULT_MARGINS = {
|
|
65
|
+
top: DEFAULT_MARGIN,
|
|
66
|
+
right: DEFAULT_MARGIN,
|
|
67
|
+
bottom: DEFAULT_MARGIN,
|
|
68
|
+
left: DEFAULT_MARGIN,
|
|
69
|
+
};
|
|
70
|
+
class SaveAsPdf {
|
|
71
|
+
name() {
|
|
72
|
+
return 'content_save-as-pdf';
|
|
73
|
+
}
|
|
74
|
+
description() {
|
|
75
|
+
return 'Saves the current page as a PDF file.';
|
|
76
|
+
}
|
|
77
|
+
inputSchema() {
|
|
78
|
+
return {
|
|
79
|
+
outputPath: zod_1.z
|
|
80
|
+
.string()
|
|
81
|
+
.describe('Directory path where PDF will be saved.'),
|
|
82
|
+
name: zod_1.z
|
|
83
|
+
.string()
|
|
84
|
+
.describe(`Name of the save/export. Default value is "${DEFAULT_NAME}". ` +
|
|
85
|
+
'Note that final saved/exported file name is in the "{name}-{time}.pdf" format ' +
|
|
86
|
+
'in which "{time}" is in the "YYYYMMDD-HHmmss" format.')
|
|
87
|
+
.optional()
|
|
88
|
+
.default(DEFAULT_NAME),
|
|
89
|
+
format: zod_1.z
|
|
90
|
+
.enum((0, utils_1.getEnumKeyTuples)(PageFormat))
|
|
91
|
+
.transform((0, utils_1.createEnumTransformer)(PageFormat))
|
|
92
|
+
.describe(`Page format. Valid values are: ${(0, utils_1.getEnumKeyTuples)(PageFormat)}.`)
|
|
93
|
+
.optional()
|
|
94
|
+
.default(DEFAULT_FORMAT),
|
|
95
|
+
printBackground: zod_1.z
|
|
96
|
+
.boolean()
|
|
97
|
+
.describe('Whether to print background graphics (default: "false").')
|
|
98
|
+
.optional()
|
|
99
|
+
.default(false),
|
|
100
|
+
margin: zod_1.z
|
|
101
|
+
.object({
|
|
102
|
+
top: zod_1.z
|
|
103
|
+
.string()
|
|
104
|
+
.describe('Top margin.')
|
|
105
|
+
.default(DEFAULT_MARGIN),
|
|
106
|
+
right: zod_1.z
|
|
107
|
+
.string()
|
|
108
|
+
.describe('Right margin.')
|
|
109
|
+
.default(DEFAULT_MARGIN),
|
|
110
|
+
bottom: zod_1.z
|
|
111
|
+
.string()
|
|
112
|
+
.describe('Bottom margin.')
|
|
113
|
+
.default(DEFAULT_MARGIN),
|
|
114
|
+
left: zod_1.z
|
|
115
|
+
.string()
|
|
116
|
+
.describe('Left margin.')
|
|
117
|
+
.default(DEFAULT_MARGIN),
|
|
118
|
+
})
|
|
119
|
+
.describe('Page margins. Numeric margin values labeled with units ("100px", "10cm", etc ...). ' +
|
|
120
|
+
'Unlabeled values are treated as pixels. ' +
|
|
121
|
+
`Valid units are: ${(0, utils_1.getEnumKeyTuples)(SizeUnit)}.`)
|
|
122
|
+
.optional(),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
outputSchema() {
|
|
126
|
+
return {
|
|
127
|
+
filePath: zod_1.z.string().describe('Full path of the saved PDF file.'),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
async handle(context, args) {
|
|
131
|
+
const filename = `${args.name || DEFAULT_NAME}-${(0, utils_1.formattedTimeForFilename)()}.pdf`;
|
|
132
|
+
const filePath = path.resolve(args.outputPath, filename);
|
|
133
|
+
const options = {
|
|
134
|
+
path: filePath,
|
|
135
|
+
format: args.format,
|
|
136
|
+
printBackground: args.printBackground,
|
|
137
|
+
margin: args.margin || DEFAULT_MARGINS,
|
|
138
|
+
};
|
|
139
|
+
await context.page.pdf(options);
|
|
140
|
+
return {
|
|
141
|
+
filePath,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
exports.SaveAsPdf = SaveAsPdf;
|
|
146
|
+
//# sourceMappingURL=save-as-pdf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-as-pdf.js","sourceRoot":"","sources":["../../../src/tools/content/save-as-pdf.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,uCAIqB;AAErB,2CAA6B;AAE7B,6BAAwB;AAExB,IAAY,QAKX;AALD,WAAY,QAAQ;IAChB,wBAAY,CAAA;IACZ,uBAAW,CAAA;IACX,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;AACrB,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB;AAED,IAAY,UAYX;AAZD,WAAY,UAAU;IAClB,+BAAiB,CAAA;IACjB,6BAAe,CAAA;IACf,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;IACjB,uBAAS,CAAA;IACT,uBAAS,CAAA;IACT,uBAAS,CAAA;IACT,uBAAS,CAAA;IACT,uBAAS,CAAA;IACT,uBAAS,CAAA;IACT,uBAAS,CAAA;AACb,CAAC,EAZW,UAAU,0BAAV,UAAU,QAYrB;AAmBD,MAAM,YAAY,GAAW,MAAM,CAAC;AACpC,MAAM,cAAc,GAAW,KAAK,CAAC;AACrC,MAAM,cAAc,GAAe,UAAU,CAAC,EAAE,CAAC;AAEjD,MAAM,eAAe,GAAG;IACpB,GAAG,EAAE,cAAc;IACnB,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,cAAc;IACtB,IAAI,EAAE,cAAc;CACvB,CAAC;AAEF,MAAa,SAAS;IAClB,IAAI;QACA,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAED,WAAW;QACP,OAAO,uCAAuC,CAAC;IACnD,CAAC;IAED,WAAW;QACP,OAAO;YACH,UAAU,EAAE,OAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CAAC,yCAAyC,CAAC;YACxD,IAAI,EAAE,OAAC;iBACF,MAAM,EAAE;iBACR,QAAQ,CACL,8CAA8C,YAAY,KAAK;gBAC3D,gFAAgF;gBAChF,uDAAuD,CAC9D;iBACA,QAAQ,EAAE;iBACV,OAAO,CAAC,YAAY,CAAC;YAC1B,MAAM,EAAE,OAAC;iBACJ,IAAI,CAAC,IAAA,wBAAgB,EAAC,UAAU,CAAC,CAAC;iBAClC,SAAS,CAAC,IAAA,6BAAqB,EAAC,UAAU,CAAC,CAAC;iBAC5C,QAAQ,CACL,kCAAkC,IAAA,wBAAgB,EAAC,UAAU,CAAC,GAAG,CACpE;iBACA,QAAQ,EAAE;iBACV,OAAO,CAAC,cAAc,CAAC;YAC5B,eAAe,EAAE,OAAC;iBACb,OAAO,EAAE;iBACT,QAAQ,CACL,0DAA0D,CAC7D;iBACA,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;YACnB,MAAM,EAAE,OAAC;iBACJ,MAAM,CAAC;gBACJ,GAAG,EAAE,OAAC;qBACD,MAAM,EAAE;qBACR,QAAQ,CAAC,aAAa,CAAC;qBACvB,OAAO,CAAC,cAAc,CAAC;gBAC5B,KAAK,EAAE,OAAC;qBACH,MAAM,EAAE;qBACR,QAAQ,CAAC,eAAe,CAAC;qBACzB,OAAO,CAAC,cAAc,CAAC;gBAC5B,MAAM,EAAE,OAAC;qBACJ,MAAM,EAAE;qBACR,QAAQ,CAAC,gBAAgB,CAAC;qBAC1B,OAAO,CAAC,cAAc,CAAC;gBAC5B,IAAI,EAAE,OAAC;qBACF,MAAM,EAAE;qBACR,QAAQ,CAAC,cAAc,CAAC;qBACxB,OAAO,CAAC,cAAc,CAAC;aAC/B,CAAC;iBACD,QAAQ,CACL,qFAAqF;gBACjF,0CAA0C;gBAC1C,oBAAoB,IAAA,wBAAgB,EAAC,QAAQ,CAAC,GAAG,CACxD;iBACA,QAAQ,EAAE;SAClB,CAAC;IACN,CAAC;IAED,YAAY;QACR,OAAO;YACH,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;SACpE,CAAC;IACN,CAAC;IAED,KAAK,CAAC,MAAM,CACR,OAA0B,EAC1B,IAAoB;QAEpB,MAAM,QAAQ,GAAW,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,IAAI,IAAA,gCAAwB,GAAE,MAAM,CAAC;QAC1F,MAAM,QAAQ,GAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEjE,MAAM,OAAO,GAAG;YACZ,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,eAAe;SACzC,CAAC;QAEF,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEhC,OAAO;YACH,QAAQ;SACX,CAAC;IACN,CAAC;CACJ;AA5FD,8BA4FC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TakeAriaSnapshot = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
class TakeAriaSnapshot {
|
|
6
|
+
name() {
|
|
7
|
+
return 'content_take-aria-snapshot';
|
|
8
|
+
}
|
|
9
|
+
description() {
|
|
10
|
+
return `
|
|
11
|
+
Captures an ARIA (accessibility) snapshot of the current page or a specific element.
|
|
12
|
+
If a selector is provided, the snapshot is scoped to that element; otherwise, the entire page is captured.
|
|
13
|
+
The output includes the page URL, title, and a YAML-formatted accessibility tree.
|
|
14
|
+
`;
|
|
15
|
+
}
|
|
16
|
+
inputSchema() {
|
|
17
|
+
return {
|
|
18
|
+
selector: zod_1.z
|
|
19
|
+
.string()
|
|
20
|
+
.describe('CSS selector for element to take snapshot.')
|
|
21
|
+
.optional(),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
outputSchema() {
|
|
25
|
+
return {
|
|
26
|
+
output: zod_1.z
|
|
27
|
+
.string()
|
|
28
|
+
.describe('Includes the page URL, title, and a YAML-formatted accessibility tree.'),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
async handle(context, args) {
|
|
32
|
+
const snapshot = await context.page
|
|
33
|
+
.locator(args.selector || 'body')
|
|
34
|
+
.ariaSnapshot();
|
|
35
|
+
const output = `
|
|
36
|
+
- Page URL: ${context.page.url()}
|
|
37
|
+
- Page Title: ${await context.page.title()}
|
|
38
|
+
- Page/Component Snapshot:
|
|
39
|
+
\`\`\`yaml
|
|
40
|
+
${snapshot}
|
|
41
|
+
\`\`\`
|
|
42
|
+
`.trim();
|
|
43
|
+
return {
|
|
44
|
+
output,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.TakeAriaSnapshot = TakeAriaSnapshot;
|
|
49
|
+
//# sourceMappingURL=take-aria-snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"take-aria-snapshot.js","sourceRoot":"","sources":["../../../src/tools/content/take-aria-snapshot.ts"],"names":[],"mappings":";;;AASA,6BAAwB;AAUxB,MAAa,gBAAgB;IACzB,IAAI;QACA,OAAO,4BAA4B,CAAC;IACxC,CAAC;IAED,WAAW;QACP,OAAO;;;;SAIN,CAAC;IACN,CAAC;IAED,WAAW;QACP,OAAO;YACH,QAAQ,EAAE,OAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CAAC,4CAA4C,CAAC;iBACtD,QAAQ,EAAE;SAClB,CAAC;IACN,CAAC;IAED,YAAY;QACR,OAAO;YACH,MAAM,EAAE,OAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CACL,wEAAwE,CAC3E;SACR,CAAC;IACN,CAAC;IAED,KAAK,CAAC,MAAM,CACR,OAA0B,EAC1B,IAAuB;QAEvB,MAAM,QAAQ,GAAW,MAAM,OAAO,CAAC,IAAI;aACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC;aAChC,YAAY,EAAE,CAAC;QACpB,MAAM,MAAM,GAAW;cACjB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;gBAChB,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;;;EAGxC,QAAQ;;SAED,CAAC,IAAI,EAAE,CAAC;QACT,OAAO;YACH,MAAM;SACT,CAAC;IACN,CAAC;CACJ;AAnDD,4CAmDC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.TakeScreenshot = exports.ScreenshotType = void 0;
|
|
37
|
+
const utils_1 = require("../../utils");
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const zod_1 = require("zod");
|
|
40
|
+
var ScreenshotType;
|
|
41
|
+
(function (ScreenshotType) {
|
|
42
|
+
ScreenshotType["PNG"] = "png";
|
|
43
|
+
ScreenshotType["JPEG"] = "jpeg";
|
|
44
|
+
})(ScreenshotType || (exports.ScreenshotType = ScreenshotType = {}));
|
|
45
|
+
const DEFAULT_SCREENSHOT_NAME = 'screenshot';
|
|
46
|
+
const DEFAULT_SCREENSHOT_TYPE = ScreenshotType.PNG;
|
|
47
|
+
class TakeScreenshot {
|
|
48
|
+
name() {
|
|
49
|
+
return 'content_take-screenshot';
|
|
50
|
+
}
|
|
51
|
+
description() {
|
|
52
|
+
return 'Takes a screenshot of the current page or a specific element.';
|
|
53
|
+
}
|
|
54
|
+
inputSchema() {
|
|
55
|
+
return {
|
|
56
|
+
outputPath: zod_1.z
|
|
57
|
+
.string()
|
|
58
|
+
.describe('Directory path where screenshot will be saved.'),
|
|
59
|
+
name: zod_1.z
|
|
60
|
+
.string()
|
|
61
|
+
.describe(`Name of the screenshot. Default value is "${DEFAULT_SCREENSHOT_NAME}". ` +
|
|
62
|
+
'Note that final saved/exported file name is in the "{name}-{time}.{type}" format ' +
|
|
63
|
+
'in which "{time}" is in the "YYYYMMDD-HHmmss" format.')
|
|
64
|
+
.optional()
|
|
65
|
+
.default(DEFAULT_SCREENSHOT_NAME),
|
|
66
|
+
selector: zod_1.z
|
|
67
|
+
.string()
|
|
68
|
+
.describe('CSS selector for element to take screenshot.')
|
|
69
|
+
.optional(),
|
|
70
|
+
fullPage: zod_1.z
|
|
71
|
+
.boolean()
|
|
72
|
+
.describe('Whether to take a screenshot of the full scrollable page, instead of the currently visible viewport (default: "false").')
|
|
73
|
+
.optional()
|
|
74
|
+
.default(false),
|
|
75
|
+
type: zod_1.z
|
|
76
|
+
.enum((0, utils_1.getEnumKeyTuples)(ScreenshotType))
|
|
77
|
+
.transform((0, utils_1.createEnumTransformer)(ScreenshotType))
|
|
78
|
+
.describe(`Page format. Valid values are: ${(0, utils_1.getEnumKeyTuples)(ScreenshotType)}`)
|
|
79
|
+
.optional()
|
|
80
|
+
.default(DEFAULT_SCREENSHOT_TYPE),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
outputSchema() {
|
|
84
|
+
return {
|
|
85
|
+
filePath: zod_1.z
|
|
86
|
+
.string()
|
|
87
|
+
.describe('Full path of the saved screenshot file.'),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
async handle(context, args) {
|
|
91
|
+
const screenshotType = args.type || DEFAULT_SCREENSHOT_TYPE;
|
|
92
|
+
const filename = `${args.name || DEFAULT_SCREENSHOT_NAME}-${(0, utils_1.formattedTimeForFilename)()}.${screenshotType}`;
|
|
93
|
+
const filePath = path.resolve(args.outputPath, filename);
|
|
94
|
+
const options = {
|
|
95
|
+
path: filePath,
|
|
96
|
+
type: screenshotType,
|
|
97
|
+
fullPage: !!args.fullPage,
|
|
98
|
+
};
|
|
99
|
+
if (args.selector) {
|
|
100
|
+
const element = await context.page.$(args.selector);
|
|
101
|
+
if (!element) {
|
|
102
|
+
throw new Error(`Element not found: ${args.selector}`);
|
|
103
|
+
}
|
|
104
|
+
options.element = element;
|
|
105
|
+
}
|
|
106
|
+
await context.page.screenshot(options);
|
|
107
|
+
return {
|
|
108
|
+
filePath,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.TakeScreenshot = TakeScreenshot;
|
|
113
|
+
//# sourceMappingURL=take-screenshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"take-screenshot.js","sourceRoot":"","sources":["../../../src/tools/content/take-screenshot.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,uCAIqB;AAErB,2CAA6B;AAG7B,6BAAwB;AAExB,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,+BAAa,CAAA;AACjB,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAYD,MAAM,uBAAuB,GAAW,YAAY,CAAC;AACrD,MAAM,uBAAuB,GAAmB,cAAc,CAAC,GAAG,CAAC;AAEnE,MAAa,cAAc;IACvB,IAAI;QACA,OAAO,yBAAyB,CAAC;IACrC,CAAC;IAED,WAAW;QACP,OAAO,+DAA+D,CAAC;IAC3E,CAAC;IAED,WAAW;QACP,OAAO;YACH,UAAU,EAAE,OAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CAAC,gDAAgD,CAAC;YAC/D,IAAI,EAAE,OAAC;iBACF,MAAM,EAAE;iBACR,QAAQ,CACL,6CAA6C,uBAAuB,KAAK;gBACrE,mFAAmF;gBACnF,uDAAuD,CAC9D;iBACA,QAAQ,EAAE;iBACV,OAAO,CAAC,uBAAuB,CAAC;YACrC,QAAQ,EAAE,OAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CAAC,8CAA8C,CAAC;iBACxD,QAAQ,EAAE;YACf,QAAQ,EAAE,OAAC;iBACN,OAAO,EAAE;iBACT,QAAQ,CACL,yHAAyH,CAC5H;iBACA,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;YACnB,IAAI,EAAE,OAAC;iBACF,IAAI,CAAC,IAAA,wBAAgB,EAAC,cAAc,CAAC,CAAC;iBACtC,SAAS,CAAC,IAAA,6BAAqB,EAAC,cAAc,CAAC,CAAC;iBAChD,QAAQ,CACL,kCAAkC,IAAA,wBAAgB,EAAC,cAAc,CAAC,EAAE,CACvE;iBACA,QAAQ,EAAE;iBACV,OAAO,CAAC,uBAAuB,CAAC;SACxC,CAAC;IACN,CAAC;IAED,YAAY;QACR,OAAO;YACH,QAAQ,EAAE,OAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CAAC,yCAAyC,CAAC;SAC3D,CAAC;IACN,CAAC;IAED,KAAK,CAAC,MAAM,CACR,OAA0B,EAC1B,IAAyB;QAEzB,MAAM,cAAc,GAChB,IAAI,CAAC,IAAI,IAAI,uBAAuB,CAAC;QACzC,MAAM,QAAQ,GAAW,GAAG,IAAI,CAAC,IAAI,IAAI,uBAAuB,IAAI,IAAA,gCAAwB,GAAE,IAAI,cAAc,EAAE,CAAC;QACnH,MAAM,QAAQ,GAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEjE,MAAM,OAAO,GAAQ;YACjB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;SAC5B,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,MAAM,OAAO,GAAyB,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CACtD,IAAI,CAAC,QAAQ,CAChB,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9B,CAAC;QAED,MAAM,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEvC,OAAO;YACH,QAAQ;SACX,CAAC;IACN,CAAC;CACJ;AApFD,wCAoFC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.tools = void 0;
|
|
18
|
+
const content_1 = require("./content");
|
|
19
|
+
const interaction_1 = require("./interaction");
|
|
20
|
+
const monitoring_1 = require("./monitoring");
|
|
21
|
+
const navigation_1 = require("./navigation");
|
|
22
|
+
__exportStar(require("./tool-executor"), exports);
|
|
23
|
+
exports.tools = [
|
|
24
|
+
...content_1.tools,
|
|
25
|
+
...interaction_1.tools,
|
|
26
|
+
...monitoring_1.tools,
|
|
27
|
+
...navigation_1.tools,
|
|
28
|
+
];
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,uCAAkD;AAClD,+CAA0D;AAC1D,6CAAwD;AACxD,6CAAwD;AAExD,kDAAgC;AAEnB,QAAA,KAAK,GAAW;IACzB,GAAG,eAAY;IACf,GAAG,mBAAgB;IACnB,GAAG,kBAAe;IAClB,GAAG,kBAAe;CACrB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Click = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
class Click {
|
|
6
|
+
name() {
|
|
7
|
+
return 'interaction_click';
|
|
8
|
+
}
|
|
9
|
+
description() {
|
|
10
|
+
return 'Clicks an element on the page.';
|
|
11
|
+
}
|
|
12
|
+
inputSchema() {
|
|
13
|
+
return {
|
|
14
|
+
selector: zod_1.z
|
|
15
|
+
.string()
|
|
16
|
+
.describe('CSS selector for the element to click.'),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
outputSchema() {
|
|
20
|
+
return {};
|
|
21
|
+
}
|
|
22
|
+
async handle(context, args) {
|
|
23
|
+
const element = await context.page.waitForSelector(args.selector);
|
|
24
|
+
await element.click();
|
|
25
|
+
return {};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.Click = Click;
|
|
29
|
+
//# sourceMappingURL=click.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"click.js","sourceRoot":"","sources":["../../../src/tools/interaction/click.ts"],"names":[],"mappings":";;;AASA,6BAAwB;AASxB,MAAa,KAAK;IACd,IAAI;QACA,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,WAAW;QACP,OAAO,gCAAgC,CAAC;IAC5C,CAAC;IAED,WAAW;QACP,OAAO;YACH,QAAQ,EAAE,OAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CAAC,wCAAwC,CAAC;SAC1D,CAAC;IACN,CAAC;IAED,YAAY;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CACR,OAA0B,EAC1B,IAAgB;QAEhB,MAAM,OAAO,GAAkB,MAAM,OAAO,CAAC,IAAI,CAAC,eAAe,CAC7D,IAAI,CAAC,QAAQ,CAChB,CAAC;QACF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AA/BD,sBA+BC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Drag = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
class Drag {
|
|
6
|
+
name() {
|
|
7
|
+
return 'interaction_drag';
|
|
8
|
+
}
|
|
9
|
+
description() {
|
|
10
|
+
return 'Drags an element to a target location.';
|
|
11
|
+
}
|
|
12
|
+
inputSchema() {
|
|
13
|
+
return {
|
|
14
|
+
sourceSelector: zod_1.z
|
|
15
|
+
.string()
|
|
16
|
+
.describe('CSS selector for the element to drag.'),
|
|
17
|
+
targetSelector: zod_1.z
|
|
18
|
+
.string()
|
|
19
|
+
.describe('CSS selector for the target location.'),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
outputSchema() {
|
|
23
|
+
return {};
|
|
24
|
+
}
|
|
25
|
+
async handle(context, args) {
|
|
26
|
+
const sourceElement = await context.page.waitForSelector(args.sourceSelector);
|
|
27
|
+
const targetElement = await context.page.waitForSelector(args.targetSelector);
|
|
28
|
+
const sourceBound = await sourceElement.boundingBox();
|
|
29
|
+
const targetBound = await targetElement.boundingBox();
|
|
30
|
+
if (!sourceBound || !targetBound) {
|
|
31
|
+
throw new Error('Could not get element positions for drag operation');
|
|
32
|
+
}
|
|
33
|
+
await context.page.mouse.move(sourceBound.x + sourceBound.width / 2, sourceBound.y + sourceBound.height / 2);
|
|
34
|
+
await context.page.mouse.down();
|
|
35
|
+
await context.page.mouse.move(targetBound.x + targetBound.width / 2, targetBound.y + targetBound.height / 2);
|
|
36
|
+
await context.page.mouse.up();
|
|
37
|
+
return {};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.Drag = Drag;
|
|
41
|
+
//# sourceMappingURL=drag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drag.js","sourceRoot":"","sources":["../../../src/tools/interaction/drag.ts"],"names":[],"mappings":";;;AAUA,6BAAwB;AASxB,MAAa,IAAI;IACb,IAAI;QACA,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAED,WAAW;QACP,OAAO,wCAAwC,CAAC;IACpD,CAAC;IAED,WAAW;QACP,OAAO;YACH,cAAc,EAAE,OAAC;iBACZ,MAAM,EAAE;iBACR,QAAQ,CAAC,uCAAuC,CAAC;YACtD,cAAc,EAAE,OAAC;iBACZ,MAAM,EAAE;iBACR,QAAQ,CAAC,uCAAuC,CAAC;SACzD,CAAC;IACN,CAAC;IAED,YAAY;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CACR,OAA0B,EAC1B,IAAe;QAEf,MAAM,aAAa,GAAkB,MAAM,OAAO,CAAC,IAAI,CAAC,eAAe,CACnE,IAAI,CAAC,cAAc,CACtB,CAAC;QACF,MAAM,aAAa,GAAkB,MAAM,OAAO,CAAC,IAAI,CAAC,eAAe,CACnE,IAAI,CAAC,cAAc,CACtB,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QAEtD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACX,oDAAoD,CACvD,CAAC;QACN,CAAC;QAED,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACzB,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,EACrC,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CACzC,CAAC;QACF,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACzB,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,EACrC,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CACzC,CAAC;QACF,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAE9B,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAzDD,oBAyDC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Evaluate = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
class Evaluate {
|
|
6
|
+
name() {
|
|
7
|
+
return 'interaction_evaluate';
|
|
8
|
+
}
|
|
9
|
+
description() {
|
|
10
|
+
return 'Executes JavaScript in the browser console.';
|
|
11
|
+
}
|
|
12
|
+
inputSchema() {
|
|
13
|
+
return {
|
|
14
|
+
script: zod_1.z.string().describe('JavaScript code to execute.'),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
outputSchema() {
|
|
18
|
+
return {
|
|
19
|
+
result: zod_1.z.any().describe(`
|
|
20
|
+
The result of the evaluation. This value can be of any type, including primitives, arrays, or objects.
|
|
21
|
+
It represents the direct return value of the JavaScript expression executed in the page context.
|
|
22
|
+
The structure and type of this value are not constrained and depend entirely on the evaluated code.`),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
async handle(context, args) {
|
|
26
|
+
const result = await context.page.evaluate(args.script);
|
|
27
|
+
return {
|
|
28
|
+
result,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.Evaluate = Evaluate;
|
|
33
|
+
//# sourceMappingURL=evaluate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../../src/tools/interaction/evaluate.ts"],"names":[],"mappings":";;;AASA,6BAAwB;AAQxB,MAAa,QAAQ;IACjB,IAAI;QACA,OAAO,sBAAsB,CAAC;IAClC,CAAC;IAED,WAAW;QACP,OAAO,6CAA6C,CAAC;IACzD,CAAC;IAED,WAAW;QACP,OAAO;YACH,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;SAC7D,CAAC;IACN,CAAC;IAED,YAAY;QACR,OAAO;YACH,MAAM,EAAE,OAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;;;oGAG+D,CAAC;SAC5F,CAAC;IACN,CAAC;IAED,KAAK,CAAC,MAAM,CACR,OAA0B,EAC1B,IAAmB;QAEnB,MAAM,MAAM,GAAQ,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO;YACH,MAAM;SACT,CAAC;IACN,CAAC;CACJ;AAjCD,4BAiCC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Fill = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
class Fill {
|
|
6
|
+
name() {
|
|
7
|
+
return 'interaction_fill';
|
|
8
|
+
}
|
|
9
|
+
description() {
|
|
10
|
+
return 'Fills out an input field.';
|
|
11
|
+
}
|
|
12
|
+
inputSchema() {
|
|
13
|
+
return {
|
|
14
|
+
selector: zod_1.z.string().describe('CSS selector for the input field.'),
|
|
15
|
+
value: zod_1.z.string().describe('Value to fill.'),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
outputSchema() {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
async handle(context, args) {
|
|
22
|
+
const element = await context.page.waitForSelector(args.selector);
|
|
23
|
+
await element.fill(args.value);
|
|
24
|
+
return {};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.Fill = Fill;
|
|
28
|
+
//# sourceMappingURL=fill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fill.js","sourceRoot":"","sources":["../../../src/tools/interaction/fill.ts"],"names":[],"mappings":";;;AAUA,6BAAwB;AASxB,MAAa,IAAI;IACb,IAAI;QACA,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAED,WAAW;QACP,OAAO,2BAA2B,CAAC;IACvC,CAAC;IAED,WAAW;QACP,OAAO;YACH,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAClE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;SAC/C,CAAC;IACN,CAAC;IAED,YAAY;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CACR,OAA0B,EAC1B,IAAe;QAEf,MAAM,OAAO,GAAkB,MAAM,OAAO,CAAC,IAAI,CAAC,eAAe,CAC7D,IAAI,CAAC,QAAQ,CAChB,CAAC;QACF,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AA9BD,oBA8BC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Hover = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
class Hover {
|
|
6
|
+
name() {
|
|
7
|
+
return 'interaction_hover';
|
|
8
|
+
}
|
|
9
|
+
description() {
|
|
10
|
+
return 'Hovers an element on the page.';
|
|
11
|
+
}
|
|
12
|
+
inputSchema() {
|
|
13
|
+
return {
|
|
14
|
+
selector: zod_1.z
|
|
15
|
+
.string()
|
|
16
|
+
.describe('CSS selector for the element to hover.'),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
outputSchema() {
|
|
20
|
+
return {};
|
|
21
|
+
}
|
|
22
|
+
async handle(context, args) {
|
|
23
|
+
const element = await context.page.waitForSelector(args.selector);
|
|
24
|
+
await element.hover();
|
|
25
|
+
return {};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.Hover = Hover;
|
|
29
|
+
//# sourceMappingURL=hover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hover.js","sourceRoot":"","sources":["../../../src/tools/interaction/hover.ts"],"names":[],"mappings":";;;AAUA,6BAAwB;AAQxB,MAAa,KAAK;IACd,IAAI;QACA,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,WAAW;QACP,OAAO,gCAAgC,CAAC;IAC5C,CAAC;IAED,WAAW;QACP,OAAO;YACH,QAAQ,EAAE,OAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CAAC,wCAAwC,CAAC;SAC1D,CAAC;IACN,CAAC;IAED,YAAY;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CACR,OAA0B,EAC1B,IAAgB;QAEhB,MAAM,OAAO,GAAkB,MAAM,OAAO,CAAC,IAAI,CAAC,eAAe,CAC7D,IAAI,CAAC,QAAQ,CAChB,CAAC;QACF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AA/BD,sBA+BC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tools = void 0;
|
|
4
|
+
const click_1 = require("./click");
|
|
5
|
+
const drag_1 = require("./drag");
|
|
6
|
+
const evaluate_1 = require("./evaluate");
|
|
7
|
+
const fill_1 = require("./fill");
|
|
8
|
+
const hover_1 = require("./hover");
|
|
9
|
+
const press_key_1 = require("./press-key");
|
|
10
|
+
const select_1 = require("./select");
|
|
11
|
+
exports.tools = [
|
|
12
|
+
new click_1.Click(),
|
|
13
|
+
new drag_1.Drag(),
|
|
14
|
+
new evaluate_1.Evaluate(),
|
|
15
|
+
new fill_1.Fill(),
|
|
16
|
+
new hover_1.Hover(),
|
|
17
|
+
new press_key_1.PressKey(),
|
|
18
|
+
new select_1.Select(),
|
|
19
|
+
];
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/interaction/index.ts"],"names":[],"mappings":";;;AACA,mCAAgC;AAChC,iCAA8B;AAC9B,yCAAsC;AACtC,iCAA8B;AAC9B,mCAAgC;AAChC,2CAAuC;AACvC,qCAAkC;AAErB,QAAA,KAAK,GAAW;IACzB,IAAI,aAAK,EAAE;IACX,IAAI,WAAI,EAAE;IACV,IAAI,mBAAQ,EAAE;IACd,IAAI,WAAI,EAAE;IACV,IAAI,aAAK,EAAE;IACX,IAAI,oBAAQ,EAAE;IACd,IAAI,eAAM,EAAE;CACf,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PressKey = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
class PressKey {
|
|
6
|
+
name() {
|
|
7
|
+
return 'interaction_press-key';
|
|
8
|
+
}
|
|
9
|
+
description() {
|
|
10
|
+
return 'Presses a keyboard key.';
|
|
11
|
+
}
|
|
12
|
+
inputSchema() {
|
|
13
|
+
return {
|
|
14
|
+
key: zod_1.z
|
|
15
|
+
.string()
|
|
16
|
+
.describe('Key to press (e.g. "Enter", "ArrowDown", "a").'),
|
|
17
|
+
selector: zod_1.z
|
|
18
|
+
.string()
|
|
19
|
+
.describe('Optional CSS selector to focus before pressing key.')
|
|
20
|
+
.optional(),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
outputSchema() {
|
|
24
|
+
return {};
|
|
25
|
+
}
|
|
26
|
+
async handle(context, args) {
|
|
27
|
+
if (args.selector) {
|
|
28
|
+
const element = await context.page.waitForSelector(args.selector);
|
|
29
|
+
await element.focus();
|
|
30
|
+
}
|
|
31
|
+
await context.page.keyboard.press(args.key);
|
|
32
|
+
return {};
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.PressKey = PressKey;
|
|
36
|
+
//# sourceMappingURL=press-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"press-key.js","sourceRoot":"","sources":["../../../src/tools/interaction/press-key.ts"],"names":[],"mappings":";;;AAUA,6BAAwB;AASxB,MAAa,QAAQ;IACjB,IAAI;QACA,OAAO,uBAAuB,CAAC;IACnC,CAAC;IAED,WAAW;QACP,OAAO,yBAAyB,CAAC;IACrC,CAAC;IAED,WAAW;QACP,OAAO;YACH,GAAG,EAAE,OAAC;iBACD,MAAM,EAAE;iBACR,QAAQ,CAAC,gDAAgD,CAAC;YAC/D,QAAQ,EAAE,OAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CAAC,qDAAqD,CAAC;iBAC/D,QAAQ,EAAE;SAClB,CAAC;IACN,CAAC;IAED,YAAY;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CACR,OAA0B,EAC1B,IAAmB;QAEnB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,MAAM,OAAO,GAAkB,MAAM,OAAO,CAAC,IAAI,CAAC,eAAe,CAC7D,IAAI,CAAC,QAAQ,CAChB,CAAC;YACF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;QACD,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAtCD,4BAsCC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Select = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
class Select {
|
|
6
|
+
name() {
|
|
7
|
+
return 'interaction_select';
|
|
8
|
+
}
|
|
9
|
+
description() {
|
|
10
|
+
return 'Select an element on the page with the given value';
|
|
11
|
+
}
|
|
12
|
+
inputSchema() {
|
|
13
|
+
return {
|
|
14
|
+
selector: zod_1.z
|
|
15
|
+
.string()
|
|
16
|
+
.describe('CSS selector for element to select.'),
|
|
17
|
+
value: zod_1.z.string().describe('Value to select.'),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
outputSchema() {
|
|
21
|
+
return {};
|
|
22
|
+
}
|
|
23
|
+
async handle(context, args) {
|
|
24
|
+
const element = await context.page.waitForSelector(args.selector);
|
|
25
|
+
await element.selectOption(args.value);
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.Select = Select;
|
|
30
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/tools/interaction/select.ts"],"names":[],"mappings":";;;AAUA,6BAAwB;AASxB,MAAa,MAAM;IACf,IAAI;QACA,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAED,WAAW;QACP,OAAO,oDAAoD,CAAC;IAChE,CAAC;IAED,WAAW;QACP,OAAO;YACH,QAAQ,EAAE,OAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CAAC,qCAAqC,CAAC;YACpD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;SACjD,CAAC;IACN,CAAC;IAED,YAAY;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CACR,OAA0B,EAC1B,IAAiB;QAEjB,MAAM,OAAO,GAAkB,MAAM,OAAO,CAAC,IAAI,CAAC,eAAe,CAC7D,IAAI,CAAC,QAAQ,CAChB,CAAC;QACF,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAhCD,wBAgCC"}
|