@godscene/web 1.7.11
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/README.md +7 -0
- package/bin/midscene-playground +3 -0
- package/bin/midscene-web +2 -0
- package/dist/es/bin.mjs +14 -0
- package/dist/es/bridge-mode/agent-cli-side.mjs +135 -0
- package/dist/es/bridge-mode/browser.mjs +2 -0
- package/dist/es/bridge-mode/common.mjs +41 -0
- package/dist/es/bridge-mode/index.mjs +4 -0
- package/dist/es/bridge-mode/io-client.mjs +99 -0
- package/dist/es/bridge-mode/io-server.mjs +218 -0
- package/dist/es/bridge-mode/page-browser-side.mjs +119 -0
- package/dist/es/cdp-proxy-constants.mjs +7 -0
- package/dist/es/cdp-proxy-manager.mjs +217 -0
- package/dist/es/cdp-proxy.mjs +151 -0
- package/dist/es/cdp-target-store.mjs +26 -0
- package/dist/es/chrome-extension/agent.mjs +8 -0
- package/dist/es/chrome-extension/cdpInput.mjs +172 -0
- package/dist/es/chrome-extension/cdpInput.mjs.LICENSE.txt +5 -0
- package/dist/es/chrome-extension/dynamic-scripts.mjs +36 -0
- package/dist/es/chrome-extension/index.mjs +5 -0
- package/dist/es/chrome-extension/page.mjs +733 -0
- package/dist/es/cli-options.mjs +97 -0
- package/dist/es/cli.mjs +26 -0
- package/dist/es/common/cache-helper.mjs +26 -0
- package/dist/es/common/viewport.mjs +36 -0
- package/dist/es/index.mjs +8 -0
- package/dist/es/mcp-server.mjs +33 -0
- package/dist/es/mcp-tools-cdp.mjs +164 -0
- package/dist/es/mcp-tools-puppeteer.mjs +246 -0
- package/dist/es/mcp-tools.mjs +81 -0
- package/dist/es/platform.mjs +37 -0
- package/dist/es/playwright/ai-fixture.mjs +364 -0
- package/dist/es/playwright/index.mjs +36 -0
- package/dist/es/playwright/page.mjs +42 -0
- package/dist/es/playwright/reporter/index.mjs +178 -0
- package/dist/es/puppeteer/agent-launcher.mjs +172 -0
- package/dist/es/puppeteer/base-page.mjs +830 -0
- package/dist/es/puppeteer/index.mjs +35 -0
- package/dist/es/puppeteer/page.mjs +7 -0
- package/dist/es/static/index.mjs +3 -0
- package/dist/es/static/static-agent.mjs +10 -0
- package/dist/es/static/static-page.mjs +123 -0
- package/dist/es/utils.mjs +6 -0
- package/dist/es/web-element.mjs +57 -0
- package/dist/es/web-page.mjs +272 -0
- package/dist/lib/bin.js +20 -0
- package/dist/lib/bridge-mode/agent-cli-side.js +172 -0
- package/dist/lib/bridge-mode/browser.js +36 -0
- package/dist/lib/bridge-mode/common.js +105 -0
- package/dist/lib/bridge-mode/index.js +44 -0
- package/dist/lib/bridge-mode/io-client.js +133 -0
- package/dist/lib/bridge-mode/io-server.js +255 -0
- package/dist/lib/bridge-mode/page-browser-side.js +163 -0
- package/dist/lib/cdp-proxy-constants.js +50 -0
- package/dist/lib/cdp-proxy-manager.js +273 -0
- package/dist/lib/cdp-proxy.js +179 -0
- package/dist/lib/cdp-target-store.js +66 -0
- package/dist/lib/chrome-extension/agent.js +42 -0
- package/dist/lib/chrome-extension/cdpInput.js +206 -0
- package/dist/lib/chrome-extension/cdpInput.js.LICENSE.txt +5 -0
- package/dist/lib/chrome-extension/dynamic-scripts.js +86 -0
- package/dist/lib/chrome-extension/index.js +58 -0
- package/dist/lib/chrome-extension/page.js +767 -0
- package/dist/lib/cli-options.js +131 -0
- package/dist/lib/cli.js +54 -0
- package/dist/lib/common/cache-helper.js +66 -0
- package/dist/lib/common/viewport.js +88 -0
- package/dist/lib/index.js +66 -0
- package/dist/lib/mcp-server.js +73 -0
- package/dist/lib/mcp-tools-cdp.js +208 -0
- package/dist/lib/mcp-tools-puppeteer.js +296 -0
- package/dist/lib/mcp-tools.js +115 -0
- package/dist/lib/platform.js +71 -0
- package/dist/lib/playwright/ai-fixture.js +401 -0
- package/dist/lib/playwright/index.js +89 -0
- package/dist/lib/playwright/page.js +76 -0
- package/dist/lib/playwright/reporter/index.js +212 -0
- package/dist/lib/puppeteer/agent-launcher.js +240 -0
- package/dist/lib/puppeteer/base-page.js +876 -0
- package/dist/lib/puppeteer/index.js +85 -0
- package/dist/lib/puppeteer/page.js +41 -0
- package/dist/lib/static/index.js +50 -0
- package/dist/lib/static/static-agent.js +44 -0
- package/dist/lib/static/static-page.js +157 -0
- package/dist/lib/utils.js +38 -0
- package/dist/lib/web-element.js +94 -0
- package/dist/lib/web-page.js +322 -0
- package/dist/types/bin.d.ts +1 -0
- package/dist/types/bridge-mode/agent-cli-side.d.ts +49 -0
- package/dist/types/bridge-mode/browser.d.ts +2 -0
- package/dist/types/bridge-mode/common.d.ts +74 -0
- package/dist/types/bridge-mode/index.d.ts +4 -0
- package/dist/types/bridge-mode/io-client.d.ts +10 -0
- package/dist/types/bridge-mode/io-server.d.ts +27 -0
- package/dist/types/bridge-mode/page-browser-side.d.ts +21 -0
- package/dist/types/cdp-proxy-constants.d.ts +4 -0
- package/dist/types/cdp-proxy-manager.d.ts +53 -0
- package/dist/types/cdp-proxy.d.ts +37 -0
- package/dist/types/cdp-target-store.d.ts +26 -0
- package/dist/types/chrome-extension/agent.d.ts +4 -0
- package/dist/types/chrome-extension/cdpInput.d.ts +52 -0
- package/dist/types/chrome-extension/dynamic-scripts.d.ts +3 -0
- package/dist/types/chrome-extension/index.d.ts +5 -0
- package/dist/types/chrome-extension/page.d.ts +120 -0
- package/dist/types/cli-options.d.ts +8 -0
- package/dist/types/cli.d.ts +1 -0
- package/dist/types/common/cache-helper.d.ts +20 -0
- package/dist/types/common/viewport.d.ts +17 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/mcp-server.d.ts +26 -0
- package/dist/types/mcp-tools-cdp.d.ts +23 -0
- package/dist/types/mcp-tools-puppeteer.d.ts +23 -0
- package/dist/types/mcp-tools.d.ts +14 -0
- package/dist/types/platform.d.ts +10 -0
- package/dist/types/playwright/ai-fixture.d.ts +133 -0
- package/dist/types/playwright/index.d.ts +13 -0
- package/dist/types/playwright/page.d.ts +11 -0
- package/dist/types/playwright/reporter/index.d.ts +28 -0
- package/dist/types/puppeteer/agent-launcher.d.ts +59 -0
- package/dist/types/puppeteer/base-page.d.ts +123 -0
- package/dist/types/puppeteer/index.d.ts +11 -0
- package/dist/types/puppeteer/page.d.ts +6 -0
- package/dist/types/static/index.d.ts +2 -0
- package/dist/types/static/static-agent.d.ts +5 -0
- package/dist/types/static/static-page.d.ts +46 -0
- package/dist/types/utils.d.ts +6 -0
- package/dist/types/web-element.d.ts +48 -0
- package/dist/types/web-page.d.ts +69 -0
- package/package.json +173 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
parseWebCliOptions: ()=>parseWebCliOptions
|
|
28
|
+
});
|
|
29
|
+
const cli_namespaceObject = require("@godscene/shared/cli");
|
|
30
|
+
const viewport_js_namespaceObject = require("./common/viewport.js");
|
|
31
|
+
const viewportWidthFlag = '--viewport-width';
|
|
32
|
+
const viewportHeightFlag = '--viewport-height';
|
|
33
|
+
function isLikelyCdpEndpoint(value) {
|
|
34
|
+
return !!value && /^(wss?):\/\//.test(value);
|
|
35
|
+
}
|
|
36
|
+
function parsePositiveIntegerOption(flag, rawValue) {
|
|
37
|
+
const value = Number(rawValue);
|
|
38
|
+
if (!Number.isInteger(value) || value <= 0) throw new cli_namespaceObject.CLIError(`Invalid value for "${flag}": expected a positive integer, got "${rawValue}".`);
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
function readRequiredOptionValue(args, index, flag) {
|
|
42
|
+
const currentArg = args[index];
|
|
43
|
+
const inlinePrefix = `${flag}=`;
|
|
44
|
+
if (currentArg.startsWith(inlinePrefix)) return {
|
|
45
|
+
value: currentArg.slice(inlinePrefix.length),
|
|
46
|
+
nextIndex: index
|
|
47
|
+
};
|
|
48
|
+
const nextArg = args[index + 1];
|
|
49
|
+
if (!nextArg || nextArg.startsWith('--')) throw new cli_namespaceObject.CLIError(`Option "${flag}" requires a value.`);
|
|
50
|
+
return {
|
|
51
|
+
value: nextArg,
|
|
52
|
+
nextIndex: index + 1
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function readOptionalCdpEndpoint(args, index) {
|
|
56
|
+
const currentArg = args[index];
|
|
57
|
+
const inlinePrefix = '--cdp=';
|
|
58
|
+
if (currentArg.startsWith(inlinePrefix)) return {
|
|
59
|
+
value: currentArg.slice(inlinePrefix.length),
|
|
60
|
+
nextIndex: index
|
|
61
|
+
};
|
|
62
|
+
const nextArg = args[index + 1];
|
|
63
|
+
if (!isLikelyCdpEndpoint(nextArg)) return {
|
|
64
|
+
nextIndex: index
|
|
65
|
+
};
|
|
66
|
+
return {
|
|
67
|
+
value: nextArg,
|
|
68
|
+
nextIndex: index + 1
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function parseWebCliOptions(rawArgs, env = process.env) {
|
|
72
|
+
const argv = [];
|
|
73
|
+
let isBridge = false;
|
|
74
|
+
let isCdp = false;
|
|
75
|
+
let viewportWidth;
|
|
76
|
+
let viewportHeight;
|
|
77
|
+
let cdpEndpoint;
|
|
78
|
+
for(let index = 0; index < rawArgs.length; index += 1){
|
|
79
|
+
const arg = rawArgs[index];
|
|
80
|
+
if ('--bridge' === arg) {
|
|
81
|
+
isBridge = true;
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if ('--cdp' === arg || arg.startsWith('--cdp=')) {
|
|
85
|
+
isCdp = true;
|
|
86
|
+
const parsed = readOptionalCdpEndpoint(rawArgs, index);
|
|
87
|
+
cdpEndpoint = parsed.value ?? cdpEndpoint;
|
|
88
|
+
index = parsed.nextIndex;
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
if (arg === viewportWidthFlag || arg.startsWith(`${viewportWidthFlag}=`)) {
|
|
92
|
+
const parsed = readRequiredOptionValue(rawArgs, index, viewportWidthFlag);
|
|
93
|
+
viewportWidth = parsePositiveIntegerOption(viewportWidthFlag, parsed.value);
|
|
94
|
+
index = parsed.nextIndex;
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if (arg === viewportHeightFlag || arg.startsWith(`${viewportHeightFlag}=`)) {
|
|
98
|
+
const parsed = readRequiredOptionValue(rawArgs, index, viewportHeightFlag);
|
|
99
|
+
viewportHeight = parsePositiveIntegerOption(viewportHeightFlag, parsed.value);
|
|
100
|
+
index = parsed.nextIndex;
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
argv.push(arg);
|
|
104
|
+
}
|
|
105
|
+
if (isBridge && isCdp) throw new cli_namespaceObject.CLIError('--bridge and --cdp are mutually exclusive. Please specify only one.');
|
|
106
|
+
const mode = isBridge ? 'bridge' : isCdp ? 'cdp' : 'puppeteer';
|
|
107
|
+
if ('puppeteer' !== mode) {
|
|
108
|
+
if (void 0 !== viewportWidth || void 0 !== viewportHeight) throw new cli_namespaceObject.CLIError('Viewport options are only supported in the default Puppeteer mode.');
|
|
109
|
+
}
|
|
110
|
+
if ('cdp' === mode) {
|
|
111
|
+
cdpEndpoint = cdpEndpoint ?? env.MIDSCENE_CDP_ENDPOINT;
|
|
112
|
+
if (!cdpEndpoint) throw new cli_namespaceObject.CLIError('CDP endpoint is required. Provide it as: --cdp <ws-endpoint> or set MIDSCENE_CDP_ENDPOINT environment variable.');
|
|
113
|
+
}
|
|
114
|
+
const hasViewportOverride = void 0 !== viewportWidth || void 0 !== viewportHeight;
|
|
115
|
+
return {
|
|
116
|
+
argv,
|
|
117
|
+
mode,
|
|
118
|
+
cdpEndpoint,
|
|
119
|
+
viewport: hasViewportOverride ? (0, viewport_js_namespaceObject.resolveViewportSize)({
|
|
120
|
+
width: viewportWidth,
|
|
121
|
+
height: viewportHeight
|
|
122
|
+
}, viewport_js_namespaceObject.defaultPuppeteerWindowViewportSize) : void 0
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
exports.parseWebCliOptions = __webpack_exports__.parseWebCliOptions;
|
|
126
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
127
|
+
"parseWebCliOptions"
|
|
128
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
129
|
+
Object.defineProperty(exports, '__esModule', {
|
|
130
|
+
value: true
|
|
131
|
+
});
|
package/dist/lib/cli.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.n = (module)=>{
|
|
5
|
+
var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
|
|
6
|
+
__webpack_require__.d(getter, {
|
|
7
|
+
a: getter
|
|
8
|
+
});
|
|
9
|
+
return getter;
|
|
10
|
+
};
|
|
11
|
+
})();
|
|
12
|
+
(()=>{
|
|
13
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
14
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: definition[key]
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
})();
|
|
20
|
+
(()=>{
|
|
21
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
22
|
+
})();
|
|
23
|
+
var __webpack_exports__ = {};
|
|
24
|
+
const external_node_fs_namespaceObject = require("node:fs");
|
|
25
|
+
const external_node_path_namespaceObject = require("node:path");
|
|
26
|
+
const core_namespaceObject = require("@godscene/core");
|
|
27
|
+
const cli_namespaceObject = require("@godscene/shared/cli");
|
|
28
|
+
const external_dotenv_namespaceObject = require("dotenv");
|
|
29
|
+
var external_dotenv_default = /*#__PURE__*/ __webpack_require__.n(external_dotenv_namespaceObject);
|
|
30
|
+
const external_cli_options_js_namespaceObject = require("./cli-options.js");
|
|
31
|
+
const external_mcp_tools_js_namespaceObject = require("./mcp-tools.js");
|
|
32
|
+
const external_mcp_tools_cdp_js_namespaceObject = require("./mcp-tools-cdp.js");
|
|
33
|
+
const external_mcp_tools_puppeteer_js_namespaceObject = require("./mcp-tools-puppeteer.js");
|
|
34
|
+
const envFile = (0, external_node_path_namespaceObject.join)(process.cwd(), '.env');
|
|
35
|
+
if ((0, external_node_fs_namespaceObject.existsSync)(envFile)) external_dotenv_default().config({
|
|
36
|
+
path: envFile
|
|
37
|
+
});
|
|
38
|
+
Promise.resolve().then(()=>{
|
|
39
|
+
const parsedOptions = (0, external_cli_options_js_namespaceObject.parseWebCliOptions)(process.argv.slice(2));
|
|
40
|
+
let tools;
|
|
41
|
+
tools = 'bridge' === parsedOptions.mode ? new external_mcp_tools_js_namespaceObject.WebMidsceneTools() : 'cdp' === parsedOptions.mode ? new external_mcp_tools_cdp_js_namespaceObject.WebCdpMidsceneTools(parsedOptions.cdpEndpoint) : new external_mcp_tools_puppeteer_js_namespaceObject.WebPuppeteerMidsceneTools(parsedOptions.viewport);
|
|
42
|
+
return (0, cli_namespaceObject.runToolsCLI)(tools, 'midscene-web', {
|
|
43
|
+
stripPrefix: 'web_',
|
|
44
|
+
argv: parsedOptions.argv,
|
|
45
|
+
version: "1.7.10",
|
|
46
|
+
extraCommands: (0, core_namespaceObject.createReportCliCommands)()
|
|
47
|
+
});
|
|
48
|
+
}).catch((e)=>{
|
|
49
|
+
process.exit((0, cli_namespaceObject.reportCLIError)(e));
|
|
50
|
+
});
|
|
51
|
+
for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
52
|
+
Object.defineProperty(exports, '__esModule', {
|
|
53
|
+
value: true
|
|
54
|
+
});
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
judgeOrderSensitive: ()=>judgeOrderSensitive,
|
|
28
|
+
sanitizeXpaths: ()=>sanitizeXpaths,
|
|
29
|
+
buildRectFromElementInfo: ()=>buildRectFromElementInfo
|
|
30
|
+
});
|
|
31
|
+
const ai_model_namespaceObject = require("@godscene/core/ai-model");
|
|
32
|
+
const sanitizeXpaths = (xpaths)=>{
|
|
33
|
+
if (!Array.isArray(xpaths)) return [];
|
|
34
|
+
return xpaths.filter((xpath)=>'string' == typeof xpath && xpath.length > 0);
|
|
35
|
+
};
|
|
36
|
+
async function judgeOrderSensitive(options, debug) {
|
|
37
|
+
if (!options?.targetDescription || !options?.modelConfig) return false;
|
|
38
|
+
try {
|
|
39
|
+
const judgeResult = await (0, ai_model_namespaceObject.AiJudgeOrderSensitive)(options.targetDescription, ai_model_namespaceObject.callAIWithObjectResponse, options.modelConfig);
|
|
40
|
+
debug("judged isOrderSensitive=%s for description: %s", judgeResult.isOrderSensitive, options.targetDescription);
|
|
41
|
+
return judgeResult.isOrderSensitive;
|
|
42
|
+
} catch (error) {
|
|
43
|
+
debug('Failed to judge isOrderSensitive: %O', error);
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function buildRectFromElementInfo(elementInfo) {
|
|
48
|
+
const matchedRect = {
|
|
49
|
+
left: elementInfo.rect.left,
|
|
50
|
+
top: elementInfo.rect.top,
|
|
51
|
+
width: elementInfo.rect.width,
|
|
52
|
+
height: elementInfo.rect.height
|
|
53
|
+
};
|
|
54
|
+
return matchedRect;
|
|
55
|
+
}
|
|
56
|
+
exports.buildRectFromElementInfo = __webpack_exports__.buildRectFromElementInfo;
|
|
57
|
+
exports.judgeOrderSensitive = __webpack_exports__.judgeOrderSensitive;
|
|
58
|
+
exports.sanitizeXpaths = __webpack_exports__.sanitizeXpaths;
|
|
59
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
60
|
+
"buildRectFromElementInfo",
|
|
61
|
+
"judgeOrderSensitive",
|
|
62
|
+
"sanitizeXpaths"
|
|
63
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
64
|
+
Object.defineProperty(exports, '__esModule', {
|
|
65
|
+
value: true
|
|
66
|
+
});
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
defaultViewportSize: ()=>defaultViewportSize,
|
|
28
|
+
defaultStaticPageViewportSize: ()=>defaultStaticPageViewportSize,
|
|
29
|
+
defaultViewportWidth: ()=>defaultViewportWidth,
|
|
30
|
+
resolveViewportSize: ()=>resolveViewportSize,
|
|
31
|
+
resolveWebViewportSize: ()=>resolveWebViewportSize,
|
|
32
|
+
defaultPuppeteerWindowViewportSize: ()=>defaultPuppeteerWindowViewportSize,
|
|
33
|
+
defaultViewportHeight: ()=>defaultViewportHeight
|
|
34
|
+
});
|
|
35
|
+
const utils_namespaceObject = require("@godscene/shared/utils");
|
|
36
|
+
const defaultViewportWidth = 1440;
|
|
37
|
+
const defaultViewportHeight = 800;
|
|
38
|
+
const defaultViewportSize = {
|
|
39
|
+
width: defaultViewportWidth,
|
|
40
|
+
height: defaultViewportHeight
|
|
41
|
+
};
|
|
42
|
+
const defaultPuppeteerWindowViewportSize = {
|
|
43
|
+
width: defaultViewportWidth,
|
|
44
|
+
height: defaultViewportHeight
|
|
45
|
+
};
|
|
46
|
+
const defaultStaticPageViewportSize = {
|
|
47
|
+
width: defaultViewportWidth,
|
|
48
|
+
height: defaultViewportHeight
|
|
49
|
+
};
|
|
50
|
+
function parseViewportDimension(rawValue, name) {
|
|
51
|
+
const parsedValue = 'number' == typeof rawValue ? rawValue : Number(rawValue);
|
|
52
|
+
(0, utils_namespaceObject.assert)(Number.isInteger(parsedValue), `${name} must be a positive integer, but got ${rawValue}`);
|
|
53
|
+
(0, utils_namespaceObject.assert)(parsedValue > 0, `${name} must be greater than 0, but got ${rawValue}`);
|
|
54
|
+
return parsedValue;
|
|
55
|
+
}
|
|
56
|
+
function resolveViewportSize(viewport, fallback = defaultViewportSize) {
|
|
57
|
+
const width = viewport?.width === void 0 || null === viewport.width ? fallback.width : parseViewportDimension(viewport.width, 'viewportWidth');
|
|
58
|
+
const height = viewport?.height === void 0 || null === viewport.height ? fallback.height : parseViewportDimension(viewport.height, 'viewportHeight');
|
|
59
|
+
return {
|
|
60
|
+
width,
|
|
61
|
+
height
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function resolveWebViewportSize(viewport, fallback = defaultViewportSize) {
|
|
65
|
+
return resolveViewportSize({
|
|
66
|
+
width: viewport?.viewportWidth,
|
|
67
|
+
height: viewport?.viewportHeight
|
|
68
|
+
}, fallback);
|
|
69
|
+
}
|
|
70
|
+
exports.defaultPuppeteerWindowViewportSize = __webpack_exports__.defaultPuppeteerWindowViewportSize;
|
|
71
|
+
exports.defaultStaticPageViewportSize = __webpack_exports__.defaultStaticPageViewportSize;
|
|
72
|
+
exports.defaultViewportHeight = __webpack_exports__.defaultViewportHeight;
|
|
73
|
+
exports.defaultViewportSize = __webpack_exports__.defaultViewportSize;
|
|
74
|
+
exports.defaultViewportWidth = __webpack_exports__.defaultViewportWidth;
|
|
75
|
+
exports.resolveViewportSize = __webpack_exports__.resolveViewportSize;
|
|
76
|
+
exports.resolveWebViewportSize = __webpack_exports__.resolveWebViewportSize;
|
|
77
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
78
|
+
"defaultPuppeteerWindowViewportSize",
|
|
79
|
+
"defaultStaticPageViewportSize",
|
|
80
|
+
"defaultViewportHeight",
|
|
81
|
+
"defaultViewportSize",
|
|
82
|
+
"defaultViewportWidth",
|
|
83
|
+
"resolveViewportSize",
|
|
84
|
+
"resolveWebViewportSize"
|
|
85
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
86
|
+
Object.defineProperty(exports, '__esModule', {
|
|
87
|
+
value: true
|
|
88
|
+
});
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
PlaywrightAiFixture: ()=>index_js_namespaceObject.PlaywrightAiFixture,
|
|
28
|
+
StaticPageAgent: ()=>external_static_index_js_namespaceObject.StaticPageAgent,
|
|
29
|
+
PlaywrightAgent: ()=>index_js_namespaceObject.PlaywrightAgent,
|
|
30
|
+
PuppeteerAgent: ()=>external_puppeteer_index_js_namespaceObject.PuppeteerAgent,
|
|
31
|
+
StaticPage: ()=>external_static_index_js_namespaceObject.StaticPage,
|
|
32
|
+
PageAgent: ()=>agent_namespaceObject.Agent,
|
|
33
|
+
webPlaygroundPlatform: ()=>external_platform_js_namespaceObject.webPlaygroundPlatform,
|
|
34
|
+
WebCdpMidsceneTools: ()=>external_mcp_tools_cdp_js_namespaceObject.WebCdpMidsceneTools,
|
|
35
|
+
WebMidsceneTools: ()=>external_mcp_tools_js_namespaceObject.WebMidsceneTools
|
|
36
|
+
});
|
|
37
|
+
const index_js_namespaceObject = require("./playwright/index.js");
|
|
38
|
+
const agent_namespaceObject = require("@godscene/core/agent");
|
|
39
|
+
const external_puppeteer_index_js_namespaceObject = require("./puppeteer/index.js");
|
|
40
|
+
const external_static_index_js_namespaceObject = require("./static/index.js");
|
|
41
|
+
const external_mcp_tools_js_namespaceObject = require("./mcp-tools.js");
|
|
42
|
+
const external_platform_js_namespaceObject = require("./platform.js");
|
|
43
|
+
const external_mcp_tools_cdp_js_namespaceObject = require("./mcp-tools-cdp.js");
|
|
44
|
+
exports.PageAgent = __webpack_exports__.PageAgent;
|
|
45
|
+
exports.PlaywrightAgent = __webpack_exports__.PlaywrightAgent;
|
|
46
|
+
exports.PlaywrightAiFixture = __webpack_exports__.PlaywrightAiFixture;
|
|
47
|
+
exports.PuppeteerAgent = __webpack_exports__.PuppeteerAgent;
|
|
48
|
+
exports.StaticPage = __webpack_exports__.StaticPage;
|
|
49
|
+
exports.StaticPageAgent = __webpack_exports__.StaticPageAgent;
|
|
50
|
+
exports.WebCdpMidsceneTools = __webpack_exports__.WebCdpMidsceneTools;
|
|
51
|
+
exports.WebMidsceneTools = __webpack_exports__.WebMidsceneTools;
|
|
52
|
+
exports.webPlaygroundPlatform = __webpack_exports__.webPlaygroundPlatform;
|
|
53
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
54
|
+
"PageAgent",
|
|
55
|
+
"PlaywrightAgent",
|
|
56
|
+
"PlaywrightAiFixture",
|
|
57
|
+
"PuppeteerAgent",
|
|
58
|
+
"StaticPage",
|
|
59
|
+
"StaticPageAgent",
|
|
60
|
+
"WebCdpMidsceneTools",
|
|
61
|
+
"WebMidsceneTools",
|
|
62
|
+
"webPlaygroundPlatform"
|
|
63
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
64
|
+
Object.defineProperty(exports, '__esModule', {
|
|
65
|
+
value: true
|
|
66
|
+
});
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
mcpKitForAgent: ()=>mcpKitForAgent,
|
|
28
|
+
mcpServerForAgent: ()=>mcpServerForAgent,
|
|
29
|
+
WebMCPServer: ()=>WebMCPServer
|
|
30
|
+
});
|
|
31
|
+
const mcp_namespaceObject = require("@godscene/shared/mcp");
|
|
32
|
+
const external_mcp_tools_js_namespaceObject = require("./mcp-tools.js");
|
|
33
|
+
class WebMCPServer extends mcp_namespaceObject.BaseMCPServer {
|
|
34
|
+
createToolsManager() {
|
|
35
|
+
return new external_mcp_tools_js_namespaceObject.WebMidsceneTools();
|
|
36
|
+
}
|
|
37
|
+
constructor(toolsManager){
|
|
38
|
+
super({
|
|
39
|
+
name: '@godscene/web-bridge-mcp',
|
|
40
|
+
version: "1.7.10",
|
|
41
|
+
description: 'Control the browser using natural language commands'
|
|
42
|
+
}, toolsManager);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function mcpServerForAgent(agent) {
|
|
46
|
+
return (0, mcp_namespaceObject.createMCPServerLauncher)({
|
|
47
|
+
agent,
|
|
48
|
+
platformName: 'Web',
|
|
49
|
+
ToolsManagerClass: external_mcp_tools_js_namespaceObject.WebMidsceneTools,
|
|
50
|
+
MCPServerClass: WebMCPServer
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async function mcpKitForAgent(agent) {
|
|
54
|
+
const toolsManager = new external_mcp_tools_js_namespaceObject.WebMidsceneTools();
|
|
55
|
+
const webAgent = agent;
|
|
56
|
+
toolsManager.setAgent(webAgent);
|
|
57
|
+
await toolsManager.initTools();
|
|
58
|
+
return {
|
|
59
|
+
description: 'Midscene Bridge MCP Server: Control the browser using natural language commands for navigation, clicking, input, hovering, screenshots waitFor, and achieving goals.',
|
|
60
|
+
tools: toolsManager.getToolDefinitions()
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
exports.WebMCPServer = __webpack_exports__.WebMCPServer;
|
|
64
|
+
exports.mcpKitForAgent = __webpack_exports__.mcpKitForAgent;
|
|
65
|
+
exports.mcpServerForAgent = __webpack_exports__.mcpServerForAgent;
|
|
66
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
67
|
+
"WebMCPServer",
|
|
68
|
+
"mcpKitForAgent",
|
|
69
|
+
"mcpServerForAgent"
|
|
70
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
71
|
+
Object.defineProperty(exports, '__esModule', {
|
|
72
|
+
value: true
|
|
73
|
+
});
|