patchright-core 1.57.0 → 1.59.0
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/ThirdPartyNotices.txt +2688 -297
- package/browsers.json +23 -22
- package/lib/bootstrap.js +77 -0
- package/lib/cli/browserActions.js +308 -0
- package/lib/cli/driver.js +3 -2
- package/lib/cli/installActions.js +171 -0
- package/lib/cli/program.js +48 -413
- package/lib/client/android.js +4 -4
- package/lib/client/api.js +3 -0
- package/lib/client/browser.js +11 -5
- package/lib/client/browserContext.js +20 -23
- package/lib/client/browserType.js +23 -54
- package/lib/client/cdpSession.js +6 -2
- package/lib/client/channelOwner.js +1 -1
- package/lib/client/clientHelper.js +2 -1
- package/lib/client/clock.js +0 -1
- package/lib/client/{webSocket.js → connect.js} +57 -7
- package/lib/client/connection.js +8 -0
- package/lib/client/consoleMessage.js +3 -0
- package/lib/client/debugger.js +57 -0
- package/lib/client/dialog.js +8 -1
- package/lib/client/disposable.js +76 -0
- package/lib/client/electron.js +1 -0
- package/lib/client/elementHandle.js +1 -1
- package/lib/client/events.js +3 -0
- package/lib/client/fetch.js +2 -4
- package/lib/client/frame.js +9 -13
- package/lib/client/harRouter.js +13 -1
- package/lib/client/jsHandle.js +4 -8
- package/lib/client/locator.js +13 -36
- package/lib/client/network.js +14 -11
- package/lib/client/page.js +44 -50
- package/lib/client/screencast.js +88 -0
- package/lib/client/selectors.js +3 -1
- package/lib/client/tracing.js +11 -5
- package/lib/client/video.js +13 -20
- package/lib/client/worker.js +6 -6
- package/lib/generated/bindingsControllerSource.js +1 -1
- package/lib/generated/clockSource.js +1 -1
- package/lib/generated/injectedScriptSource.js +1 -1
- package/lib/generated/pollingRecorderSource.js +1 -1
- package/lib/generated/storageScriptSource.js +1 -1
- package/lib/generated/utilityScriptSource.js +1 -1
- package/lib/mcpBundle.js +78 -0
- package/lib/mcpBundleImpl.js +91 -0
- package/lib/protocol/serializers.js +5 -0
- package/lib/protocol/validator.js +228 -58
- package/lib/protocol/validatorPrimitives.js +1 -1
- package/lib/remote/playwrightConnection.js +10 -8
- package/lib/remote/playwrightPipeServer.js +100 -0
- package/lib/remote/playwrightServer.js +14 -10
- package/lib/remote/playwrightWebSocketServer.js +73 -0
- package/lib/remote/serverTransport.js +96 -0
- package/lib/server/android/android.js +2 -2
- package/lib/server/artifact.js +1 -1
- package/lib/server/bidi/bidiBrowser.js +80 -14
- package/lib/server/bidi/bidiChromium.js +23 -14
- package/lib/server/bidi/bidiConnection.js +1 -0
- package/lib/server/bidi/bidiDeserializer.js +116 -0
- package/lib/server/bidi/bidiExecutionContext.js +75 -29
- package/lib/server/bidi/bidiFirefox.js +6 -8
- package/lib/server/bidi/bidiNetworkManager.js +40 -12
- package/lib/server/bidi/bidiPage.js +67 -40
- package/lib/server/bidi/third_party/bidiProtocolCore.js +1 -0
- package/lib/server/bidi/third_party/firefoxPrefs.js +3 -1
- package/lib/server/browser.js +84 -21
- package/lib/server/browserContext.js +137 -77
- package/lib/server/browserType.js +26 -16
- package/lib/server/chromium/chromium.js +28 -31
- package/lib/server/chromium/chromiumSwitches.js +16 -4
- package/lib/server/chromium/crBrowser.js +40 -27
- package/lib/server/chromium/crConnection.js +0 -5
- package/lib/server/chromium/crDevTools.js +1 -2
- package/lib/server/chromium/crNetworkManager.js +54 -229
- package/lib/server/chromium/crPage.js +74 -260
- package/lib/server/chromium/crServiceWorker.js +7 -14
- package/lib/server/clock.js +33 -41
- package/lib/server/codegen/javascript.js +6 -29
- package/lib/server/console.js +5 -1
- package/lib/server/debugController.js +12 -6
- package/lib/server/debugger.js +40 -47
- package/lib/server/deviceDescriptorsSource.json +137 -137
- package/lib/server/dispatchers/browserContextDispatcher.js +30 -30
- package/lib/server/dispatchers/browserDispatcher.js +11 -5
- package/lib/server/dispatchers/browserTypeDispatcher.js +7 -0
- package/lib/server/dispatchers/cdpSessionDispatcher.js +4 -1
- package/lib/server/dispatchers/debuggerDispatcher.js +84 -0
- package/lib/server/dispatchers/dispatcher.js +7 -14
- package/lib/server/dispatchers/disposableDispatcher.js +39 -0
- package/lib/server/dispatchers/electronDispatcher.js +2 -1
- package/lib/server/dispatchers/frameDispatcher.js +7 -7
- package/lib/server/dispatchers/localUtilsDispatcher.js +37 -1
- package/lib/server/dispatchers/networkDispatchers.js +6 -5
- package/lib/server/dispatchers/pageDispatcher.js +101 -34
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +4 -5
- package/lib/server/disposable.js +41 -0
- package/lib/server/dom.js +56 -29
- package/lib/server/download.js +3 -2
- package/lib/server/electron/electron.js +17 -9
- package/lib/server/firefox/ffBrowser.js +9 -29
- package/lib/server/firefox/ffConnection.js +0 -5
- package/lib/server/firefox/ffInput.js +21 -5
- package/lib/server/firefox/ffNetworkManager.js +4 -4
- package/lib/server/firefox/ffPage.js +27 -33
- package/lib/server/firefox/firefox.js +6 -8
- package/lib/server/frameSelectors.js +14 -169
- package/lib/server/frames.js +263 -551
- package/lib/server/har/harRecorder.js +2 -2
- package/lib/server/har/harTracer.js +5 -4
- package/lib/server/input.js +49 -4
- package/lib/server/instrumentation.js +8 -0
- package/lib/server/javascript.js +6 -22
- package/lib/server/launchApp.js +0 -1
- package/lib/server/localUtils.js +6 -6
- package/lib/server/network.js +59 -20
- package/lib/server/overlay.js +138 -0
- package/lib/server/page.js +179 -157
- package/lib/server/progress.js +32 -6
- package/lib/server/recorder/recorderApp.js +84 -104
- package/lib/server/recorder.js +76 -40
- package/lib/server/registry/browserFetcher.js +6 -4
- package/lib/server/registry/index.js +222 -226
- package/lib/server/registry/nativeDeps.js +1 -0
- package/lib/server/registry/oopDownloadBrowserMain.js +3 -0
- package/lib/server/screencast.js +137 -0
- package/lib/server/trace/recorder/snapshotter.js +2 -2
- package/lib/server/trace/recorder/snapshotterInjected.js +21 -1
- package/lib/server/trace/recorder/tracing.js +98 -47
- package/lib/server/trace/viewer/traceViewer.js +24 -21
- package/lib/server/usKeyboardLayout.js +7 -0
- package/lib/server/utils/comparators.js +1 -1
- package/lib/server/utils/disposable.js +32 -0
- package/lib/server/utils/eventsHelper.js +3 -1
- package/lib/server/utils/expectUtils.js +87 -2
- package/lib/server/utils/fileUtils.js +16 -2
- package/lib/server/utils/happyEyeballs.js +15 -12
- package/lib/server/utils/httpServer.js +10 -23
- package/lib/server/utils/network.js +39 -29
- package/lib/server/utils/processLauncher.js +8 -6
- package/lib/server/utils/zipFile.js +2 -2
- package/lib/server/videoRecorder.js +194 -0
- package/lib/server/webkit/webkit.js +4 -6
- package/lib/server/webkit/wkBrowser.js +1 -10
- package/lib/server/webkit/wkConnection.js +1 -6
- package/lib/server/webkit/wkInterceptableRequest.js +29 -1
- package/lib/server/webkit/wkPage.js +88 -57
- package/lib/server/webkit/wkWorkers.js +2 -1
- package/lib/serverRegistry.js +156 -0
- package/lib/tools/backend/browserBackend.js +79 -0
- package/lib/tools/backend/common.js +63 -0
- package/lib/tools/backend/config.js +41 -0
- package/lib/tools/backend/console.js +66 -0
- package/lib/tools/backend/context.js +296 -0
- package/lib/tools/backend/cookies.js +152 -0
- package/lib/tools/backend/devtools.js +69 -0
- package/lib/tools/backend/dialogs.js +59 -0
- package/lib/tools/backend/evaluate.js +64 -0
- package/lib/tools/backend/files.js +60 -0
- package/lib/tools/backend/form.js +64 -0
- package/lib/tools/backend/keyboard.js +155 -0
- package/lib/tools/backend/logFile.js +95 -0
- package/lib/tools/backend/mouse.js +168 -0
- package/lib/tools/backend/navigate.js +106 -0
- package/lib/tools/backend/network.js +135 -0
- package/lib/tools/backend/pdf.js +48 -0
- package/lib/tools/backend/response.js +305 -0
- package/lib/tools/backend/route.js +140 -0
- package/lib/tools/backend/runCode.js +77 -0
- package/lib/tools/backend/screenshot.js +88 -0
- package/lib/tools/backend/sessionLog.js +74 -0
- package/lib/tools/backend/snapshot.js +208 -0
- package/lib/tools/backend/storage.js +68 -0
- package/lib/tools/backend/tab.js +445 -0
- package/lib/tools/backend/tabs.js +67 -0
- package/lib/tools/backend/tool.js +47 -0
- package/lib/tools/backend/tools.js +102 -0
- package/lib/tools/backend/tracing.js +78 -0
- package/lib/tools/backend/utils.js +83 -0
- package/lib/tools/backend/verify.js +151 -0
- package/lib/tools/backend/video.js +98 -0
- package/lib/tools/backend/wait.js +63 -0
- package/lib/tools/backend/webstorage.js +223 -0
- package/lib/tools/cli-client/cli.js +6 -0
- package/lib/tools/cli-client/help.json +399 -0
- package/lib/tools/cli-client/minimist.js +128 -0
- package/lib/tools/cli-client/program.js +350 -0
- package/lib/tools/cli-client/registry.js +176 -0
- package/lib/tools/cli-client/session.js +289 -0
- package/lib/tools/cli-client/skill/SKILL.md +328 -0
- package/lib/tools/cli-client/skill/references/element-attributes.md +23 -0
- package/lib/tools/cli-client/skill/references/playwright-tests.md +39 -0
- package/lib/tools/cli-client/skill/references/request-mocking.md +87 -0
- package/lib/tools/cli-client/skill/references/running-code.md +231 -0
- package/lib/tools/cli-client/skill/references/session-management.md +169 -0
- package/lib/tools/cli-client/skill/references/storage-state.md +275 -0
- package/lib/tools/cli-client/skill/references/test-generation.md +88 -0
- package/lib/tools/cli-client/skill/references/tracing.md +139 -0
- package/lib/tools/cli-client/skill/references/video-recording.md +143 -0
- package/lib/tools/cli-daemon/command.js +73 -0
- package/lib/tools/cli-daemon/commands.js +956 -0
- package/lib/tools/cli-daemon/daemon.js +157 -0
- package/lib/tools/cli-daemon/helpGenerator.js +177 -0
- package/lib/tools/cli-daemon/program.js +129 -0
- package/lib/tools/dashboard/appIcon.png +0 -0
- package/lib/tools/dashboard/dashboardApp.js +284 -0
- package/lib/tools/dashboard/dashboardController.js +296 -0
- package/lib/tools/exports.js +60 -0
- package/lib/tools/mcp/browserFactory.js +233 -0
- package/lib/tools/mcp/cdpRelay.js +352 -0
- package/lib/tools/mcp/cli-stub.js +7 -0
- package/lib/tools/mcp/config.d.js +16 -0
- package/lib/tools/mcp/config.js +446 -0
- package/lib/tools/mcp/configIni.js +189 -0
- package/lib/tools/mcp/extensionContextFactory.js +55 -0
- package/lib/tools/mcp/index.js +62 -0
- package/lib/tools/mcp/log.js +35 -0
- package/lib/tools/mcp/program.js +107 -0
- package/lib/tools/mcp/protocol.js +28 -0
- package/lib/tools/mcp/watchdog.js +44 -0
- package/lib/tools/trace/SKILL.md +171 -0
- package/lib/tools/trace/installSkill.js +48 -0
- package/lib/tools/trace/traceActions.js +142 -0
- package/lib/tools/trace/traceAttachments.js +69 -0
- package/lib/tools/trace/traceCli.js +87 -0
- package/lib/tools/trace/traceConsole.js +97 -0
- package/lib/tools/trace/traceErrors.js +55 -0
- package/lib/tools/trace/traceOpen.js +69 -0
- package/lib/tools/trace/traceParser.js +96 -0
- package/lib/tools/trace/traceRequests.js +182 -0
- package/lib/tools/trace/traceScreenshot.js +68 -0
- package/lib/tools/trace/traceSnapshot.js +149 -0
- package/lib/tools/trace/traceUtils.js +153 -0
- package/lib/tools/utils/connect.js +32 -0
- package/lib/tools/utils/mcp/http.js +152 -0
- package/lib/tools/utils/mcp/server.js +230 -0
- package/lib/tools/utils/mcp/tool.js +47 -0
- package/lib/tools/utils/socketConnection.js +108 -0
- package/lib/utils/isomorphic/ariaSnapshot.js +60 -2
- package/lib/utils/isomorphic/formatUtils.js +64 -0
- package/lib/utils/isomorphic/jsonSchema.js +89 -0
- package/lib/utils/isomorphic/lruCache.js +51 -0
- package/lib/utils/isomorphic/mimeType.js +7 -2
- package/lib/utils/isomorphic/protocolFormatter.js +2 -2
- package/lib/utils/isomorphic/protocolMetainfo.js +127 -98
- package/lib/utils/isomorphic/stringUtils.js +49 -0
- package/lib/utils/isomorphic/timeoutRunner.js +3 -3
- package/lib/utils/isomorphic/trace/entries.js +16 -0
- package/lib/utils/isomorphic/trace/snapshotRenderer.js +492 -0
- package/lib/utils/isomorphic/trace/snapshotServer.js +120 -0
- package/lib/utils/isomorphic/trace/snapshotStorage.js +89 -0
- package/lib/utils/isomorphic/trace/traceLoader.js +132 -0
- package/lib/utils/isomorphic/trace/traceModel.js +366 -0
- package/lib/utils/isomorphic/trace/traceModernizer.js +401 -0
- package/lib/utils/isomorphic/trace/versions/traceV3.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV4.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV5.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV6.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV7.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV8.js +16 -0
- package/lib/utils/isomorphic/urlMatch.js +54 -1
- package/lib/utils/isomorphic/utilityScriptSerializers.js +11 -0
- package/lib/utils/isomorphic/yaml.js +84 -0
- package/lib/utils.js +8 -2
- package/lib/utilsBundle.js +5 -26
- package/lib/utilsBundleImpl/index.js +172 -173
- package/lib/vite/dashboard/assets/index-BAOybkp8.js +50 -0
- package/lib/vite/dashboard/assets/index-CZAYOG76.css +1 -0
- package/lib/vite/dashboard/index.html +28 -0
- package/lib/vite/htmlReport/index.html +2 -70
- package/lib/vite/htmlReport/report.css +1 -0
- package/lib/vite/htmlReport/report.js +72 -0
- package/lib/vite/recorder/assets/codeMirrorModule-C8KMvO9L.js +32 -0
- package/lib/vite/recorder/assets/{codeMirrorModule-C3UTv-Ge.css → codeMirrorModule-DYBRYzYX.css} +1 -1
- package/lib/vite/recorder/assets/{index-Ri0uHF7I.css → index-BSjZa4pk.css} +1 -1
- package/lib/vite/recorder/assets/index-CqAYX1I3.js +193 -0
- package/lib/vite/recorder/index.html +2 -2
- package/lib/vite/traceViewer/assets/codeMirrorModule-DS0FLvoc.js +32 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-GTWI-W_B.js +262 -0
- package/lib/vite/traceViewer/{codeMirrorModule.C3UTv-Ge.css → codeMirrorModule.DYBRYzYX.css} +1 -1
- package/lib/vite/traceViewer/defaultSettingsView.B4dS75f0.css +1 -0
- package/lib/vite/traceViewer/index.CzXZzn5A.css +1 -0
- package/lib/vite/traceViewer/index.Dtstcb7U.js +2 -0
- package/lib/vite/traceViewer/index.html +4 -4
- package/lib/vite/traceViewer/sw.bundle.js +5 -3
- package/lib/vite/traceViewer/uiMode.Vipi55dB.js +6 -0
- package/lib/vite/traceViewer/uiMode.html +3 -3
- package/lib/zipBundleImpl.js +2 -2
- package/lib/zodBundle.js +39 -0
- package/lib/zodBundleImpl.js +40 -0
- package/package.json +7 -1
- package/types/protocol.d.ts +1696 -221
- package/types/types.d.ts +879 -112
- package/lib/server/bidi/third_party/bidiDeserializer.js +0 -98
- package/lib/server/chromium/videoRecorder.js +0 -115
- package/lib/server/pageBinding.js +0 -87
- package/lib/server/trace/test/inMemorySnapshotter.js +0 -87
- package/lib/utils/isomorphic/oldUtilityScriptSerializers.js +0 -248
- package/lib/vite/recorder/assets/codeMirrorModule-CBbSe-ZI.js +0 -25
- package/lib/vite/recorder/assets/index-CpZVd2nA.js +0 -193
- package/lib/vite/traceViewer/assets/codeMirrorModule-DHz0wP2C.js +0 -25
- package/lib/vite/traceViewer/assets/defaultSettingsView-WsZP88O6.js +0 -266
- package/lib/vite/traceViewer/defaultSettingsView.ConWv5KN.css +0 -1
- package/lib/vite/traceViewer/index.C4Y3Aw8n.css +0 -1
- package/lib/vite/traceViewer/index.C8xAeo93.js +0 -2
- package/lib/vite/traceViewer/uiMode.BltraIJB.js +0 -5
- /package/lib/{server/utils → utils/isomorphic}/imageUtils.js +0 -0
- /package/lib/utils/isomorphic/{traceUtils.js → trace/traceUtils.js} +0 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var snapshot_exports = {};
|
|
20
|
+
__export(snapshot_exports, {
|
|
21
|
+
default: () => snapshot_default,
|
|
22
|
+
elementSchema: () => elementSchema
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(snapshot_exports);
|
|
25
|
+
var import_zodBundle = require("../../zodBundle");
|
|
26
|
+
var import_stringUtils = require("../../utils/isomorphic/stringUtils");
|
|
27
|
+
var import_tool = require("./tool");
|
|
28
|
+
const snapshot = (0, import_tool.defineTool)({
|
|
29
|
+
capability: "core",
|
|
30
|
+
schema: {
|
|
31
|
+
name: "browser_snapshot",
|
|
32
|
+
title: "Page snapshot",
|
|
33
|
+
description: "Capture accessibility snapshot of the current page, this is better than screenshot",
|
|
34
|
+
inputSchema: import_zodBundle.z.object({
|
|
35
|
+
filename: import_zodBundle.z.string().optional().describe("Save snapshot to markdown file instead of returning it in the response."),
|
|
36
|
+
selector: import_zodBundle.z.string().optional().describe("Element selector of the root element to capture a partial snapshot instead of the whole page"),
|
|
37
|
+
depth: import_zodBundle.z.number().optional().describe("Limit the depth of the snapshot tree")
|
|
38
|
+
}),
|
|
39
|
+
type: "readOnly"
|
|
40
|
+
},
|
|
41
|
+
handle: async (context, params, response) => {
|
|
42
|
+
await context.ensureTab();
|
|
43
|
+
response.setIncludeFullSnapshot(params.filename, params.selector, params.depth);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
const elementSchema = import_zodBundle.z.object({
|
|
47
|
+
element: import_zodBundle.z.string().optional().describe("Human-readable element description used to obtain permission to interact with the element"),
|
|
48
|
+
ref: import_zodBundle.z.string().describe("Exact target element reference from the page snapshot"),
|
|
49
|
+
selector: import_zodBundle.z.string().optional().describe('CSS or role selector for the target element, when "ref" is not available')
|
|
50
|
+
});
|
|
51
|
+
const clickSchema = elementSchema.extend({
|
|
52
|
+
doubleClick: import_zodBundle.z.boolean().optional().describe("Whether to perform a double click instead of a single click"),
|
|
53
|
+
button: import_zodBundle.z.enum(["left", "right", "middle"]).optional().describe("Button to click, defaults to left"),
|
|
54
|
+
modifiers: import_zodBundle.z.array(import_zodBundle.z.enum(["Alt", "Control", "ControlOrMeta", "Meta", "Shift"])).optional().describe("Modifier keys to press")
|
|
55
|
+
});
|
|
56
|
+
const click = (0, import_tool.defineTabTool)({
|
|
57
|
+
capability: "core",
|
|
58
|
+
schema: {
|
|
59
|
+
name: "browser_click",
|
|
60
|
+
title: "Click",
|
|
61
|
+
description: "Perform click on a web page",
|
|
62
|
+
inputSchema: clickSchema,
|
|
63
|
+
type: "input"
|
|
64
|
+
},
|
|
65
|
+
handle: async (tab, params, response) => {
|
|
66
|
+
response.setIncludeSnapshot();
|
|
67
|
+
const { locator, resolved } = await tab.refLocator(params);
|
|
68
|
+
const options = {
|
|
69
|
+
button: params.button,
|
|
70
|
+
modifiers: params.modifiers,
|
|
71
|
+
...tab.actionTimeoutOptions
|
|
72
|
+
};
|
|
73
|
+
const optionsArg = (0, import_stringUtils.formatObjectOrVoid)(options);
|
|
74
|
+
if (params.doubleClick)
|
|
75
|
+
response.addCode(`await page.${resolved}.dblclick(${optionsArg});`);
|
|
76
|
+
else
|
|
77
|
+
response.addCode(`await page.${resolved}.click(${optionsArg});`);
|
|
78
|
+
await tab.waitForCompletion(async () => {
|
|
79
|
+
if (params.doubleClick)
|
|
80
|
+
await locator.dblclick(options);
|
|
81
|
+
else
|
|
82
|
+
await locator.click(options);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
const drag = (0, import_tool.defineTabTool)({
|
|
87
|
+
capability: "core",
|
|
88
|
+
schema: {
|
|
89
|
+
name: "browser_drag",
|
|
90
|
+
title: "Drag mouse",
|
|
91
|
+
description: "Perform drag and drop between two elements",
|
|
92
|
+
inputSchema: import_zodBundle.z.object({
|
|
93
|
+
startElement: import_zodBundle.z.string().describe("Human-readable source element description used to obtain the permission to interact with the element"),
|
|
94
|
+
startRef: import_zodBundle.z.string().describe("Exact source element reference from the page snapshot"),
|
|
95
|
+
startSelector: import_zodBundle.z.string().optional().describe("CSS or role selector for the source element, when ref is not available"),
|
|
96
|
+
endElement: import_zodBundle.z.string().describe("Human-readable target element description used to obtain the permission to interact with the element"),
|
|
97
|
+
endRef: import_zodBundle.z.string().describe("Exact target element reference from the page snapshot"),
|
|
98
|
+
endSelector: import_zodBundle.z.string().optional().describe("CSS or role selector for the target element, when ref is not available")
|
|
99
|
+
}),
|
|
100
|
+
type: "input"
|
|
101
|
+
},
|
|
102
|
+
handle: async (tab, params, response) => {
|
|
103
|
+
response.setIncludeSnapshot();
|
|
104
|
+
const [start, end] = await tab.refLocators([
|
|
105
|
+
{ ref: params.startRef, selector: params.startSelector, element: params.startElement },
|
|
106
|
+
{ ref: params.endRef, selector: params.endSelector, element: params.endElement }
|
|
107
|
+
]);
|
|
108
|
+
await tab.waitForCompletion(async () => {
|
|
109
|
+
await start.locator.dragTo(end.locator, tab.actionTimeoutOptions);
|
|
110
|
+
});
|
|
111
|
+
response.addCode(`await page.${start.resolved}.dragTo(page.${end.resolved});`);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
const hover = (0, import_tool.defineTabTool)({
|
|
115
|
+
capability: "core",
|
|
116
|
+
schema: {
|
|
117
|
+
name: "browser_hover",
|
|
118
|
+
title: "Hover mouse",
|
|
119
|
+
description: "Hover over element on page",
|
|
120
|
+
inputSchema: elementSchema,
|
|
121
|
+
type: "input"
|
|
122
|
+
},
|
|
123
|
+
handle: async (tab, params, response) => {
|
|
124
|
+
response.setIncludeSnapshot();
|
|
125
|
+
const { locator, resolved } = await tab.refLocator(params);
|
|
126
|
+
response.addCode(`await page.${resolved}.hover();`);
|
|
127
|
+
await locator.hover(tab.actionTimeoutOptions);
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
const selectOptionSchema = elementSchema.extend({
|
|
131
|
+
values: import_zodBundle.z.array(import_zodBundle.z.string()).describe("Array of values to select in the dropdown. This can be a single value or multiple values.")
|
|
132
|
+
});
|
|
133
|
+
const selectOption = (0, import_tool.defineTabTool)({
|
|
134
|
+
capability: "core",
|
|
135
|
+
schema: {
|
|
136
|
+
name: "browser_select_option",
|
|
137
|
+
title: "Select option",
|
|
138
|
+
description: "Select an option in a dropdown",
|
|
139
|
+
inputSchema: selectOptionSchema,
|
|
140
|
+
type: "input"
|
|
141
|
+
},
|
|
142
|
+
handle: async (tab, params, response) => {
|
|
143
|
+
response.setIncludeSnapshot();
|
|
144
|
+
const { locator, resolved } = await tab.refLocator(params);
|
|
145
|
+
response.addCode(`await page.${resolved}.selectOption(${(0, import_stringUtils.formatObject)(params.values)});`);
|
|
146
|
+
await locator.selectOption(params.values, tab.actionTimeoutOptions);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
const pickLocator = (0, import_tool.defineTabTool)({
|
|
150
|
+
capability: "testing",
|
|
151
|
+
schema: {
|
|
152
|
+
name: "browser_generate_locator",
|
|
153
|
+
title: "Create locator for element",
|
|
154
|
+
description: "Generate locator for the given element to use in tests",
|
|
155
|
+
inputSchema: elementSchema,
|
|
156
|
+
type: "readOnly"
|
|
157
|
+
},
|
|
158
|
+
handle: async (tab, params, response) => {
|
|
159
|
+
const { resolved } = await tab.refLocator(params);
|
|
160
|
+
response.addTextResult(resolved);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
const check = (0, import_tool.defineTabTool)({
|
|
164
|
+
capability: "core-input",
|
|
165
|
+
skillOnly: true,
|
|
166
|
+
schema: {
|
|
167
|
+
name: "browser_check",
|
|
168
|
+
title: "Check",
|
|
169
|
+
description: "Check a checkbox or radio button",
|
|
170
|
+
inputSchema: elementSchema,
|
|
171
|
+
type: "input"
|
|
172
|
+
},
|
|
173
|
+
handle: async (tab, params, response) => {
|
|
174
|
+
const { locator, resolved } = await tab.refLocator(params);
|
|
175
|
+
response.addCode(`await page.${resolved}.check();`);
|
|
176
|
+
await locator.check(tab.actionTimeoutOptions);
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
const uncheck = (0, import_tool.defineTabTool)({
|
|
180
|
+
capability: "core-input",
|
|
181
|
+
skillOnly: true,
|
|
182
|
+
schema: {
|
|
183
|
+
name: "browser_uncheck",
|
|
184
|
+
title: "Uncheck",
|
|
185
|
+
description: "Uncheck a checkbox or radio button",
|
|
186
|
+
inputSchema: elementSchema,
|
|
187
|
+
type: "input"
|
|
188
|
+
},
|
|
189
|
+
handle: async (tab, params, response) => {
|
|
190
|
+
const { locator, resolved } = await tab.refLocator(params);
|
|
191
|
+
response.addCode(`await page.${resolved}.uncheck();`);
|
|
192
|
+
await locator.uncheck(tab.actionTimeoutOptions);
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
var snapshot_default = [
|
|
196
|
+
snapshot,
|
|
197
|
+
click,
|
|
198
|
+
drag,
|
|
199
|
+
hover,
|
|
200
|
+
selectOption,
|
|
201
|
+
pickLocator,
|
|
202
|
+
check,
|
|
203
|
+
uncheck
|
|
204
|
+
];
|
|
205
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
206
|
+
0 && (module.exports = {
|
|
207
|
+
elementSchema
|
|
208
|
+
});
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var storage_exports = {};
|
|
20
|
+
__export(storage_exports, {
|
|
21
|
+
default: () => storage_default
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(storage_exports);
|
|
24
|
+
var import_zodBundle = require("../../zodBundle");
|
|
25
|
+
var import_tool = require("./tool");
|
|
26
|
+
const storageState = (0, import_tool.defineTool)({
|
|
27
|
+
capability: "storage",
|
|
28
|
+
schema: {
|
|
29
|
+
name: "browser_storage_state",
|
|
30
|
+
title: "Save storage state",
|
|
31
|
+
description: "Save storage state (cookies, local storage) to a file for later reuse",
|
|
32
|
+
inputSchema: import_zodBundle.z.object({
|
|
33
|
+
filename: import_zodBundle.z.string().optional().describe("File name to save the storage state to. Defaults to `storage-state-{timestamp}.json` if not specified.")
|
|
34
|
+
}),
|
|
35
|
+
type: "readOnly"
|
|
36
|
+
},
|
|
37
|
+
handle: async (context, params, response) => {
|
|
38
|
+
const browserContext = await context.ensureBrowserContext();
|
|
39
|
+
const state = await browserContext.storageState();
|
|
40
|
+
const serializedState = JSON.stringify(state, null, 2);
|
|
41
|
+
const resolvedFile = await response.resolveClientFile({ prefix: "storage-state", ext: "json", suggestedFilename: params.filename }, "Storage state");
|
|
42
|
+
response.addCode(`await page.context().storageState({ path: '${resolvedFile.relativeName}' });`);
|
|
43
|
+
await response.addFileResult(resolvedFile, serializedState);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
const setStorageState = (0, import_tool.defineTool)({
|
|
47
|
+
capability: "storage",
|
|
48
|
+
schema: {
|
|
49
|
+
name: "browser_set_storage_state",
|
|
50
|
+
title: "Restore storage state",
|
|
51
|
+
description: "Restore storage state (cookies, local storage) from a file. This clears existing cookies and local storage before restoring.",
|
|
52
|
+
inputSchema: import_zodBundle.z.object({
|
|
53
|
+
filename: import_zodBundle.z.string().describe("Path to the storage state file to restore from")
|
|
54
|
+
}),
|
|
55
|
+
type: "action"
|
|
56
|
+
},
|
|
57
|
+
handle: async (context, params, response) => {
|
|
58
|
+
const browserContext = await context.ensureBrowserContext();
|
|
59
|
+
const resolvedFilename = await response.resolveClientFilename(params.filename);
|
|
60
|
+
await browserContext.setStorageState(resolvedFilename);
|
|
61
|
+
response.addTextResult(`Storage state restored from ${params.filename}`);
|
|
62
|
+
response.addCode(`await page.context().setStorageState('${params.filename}');`);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
var storage_default = [
|
|
66
|
+
storageState,
|
|
67
|
+
setStorageState
|
|
68
|
+
];
|