@midscene/shared 0.30.10 → 1.0.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/dist/es/build/rspack-config.mjs +4 -0
- package/dist/es/constants/example-code.mjs +4 -4
- package/dist/es/env/constants.mjs +27 -82
- package/dist/es/env/global-config-manager.mjs +2 -3
- package/dist/es/env/helper.mjs +12 -17
- package/dist/es/env/init-debug.mjs +6 -6
- package/dist/es/env/model-config-manager.mjs +45 -65
- package/dist/es/env/parse-model-config.mjs +112 -0
- package/dist/es/env/types.mjs +70 -162
- package/dist/es/extractor/dom-util.mjs +10 -18
- package/dist/es/extractor/index.mjs +2 -3
- package/dist/es/extractor/locator.mjs +8 -15
- package/dist/es/extractor/tree.mjs +2 -5
- package/dist/es/extractor/util.mjs +4 -28
- package/dist/es/extractor/web-extractor.mjs +7 -14
- package/dist/es/index.mjs +2 -1
- package/dist/es/mcp/base-server.mjs +250 -0
- package/dist/es/mcp/base-tools.mjs +84 -0
- package/dist/es/mcp/index.mjs +5 -0
- package/dist/es/mcp/inject-report-html-plugin.mjs +53 -0
- package/dist/es/mcp/tool-generator.mjs +207 -0
- package/dist/es/mcp/types.mjs +3 -0
- package/dist/es/node/fs.mjs +2 -2
- package/dist/es/utils.mjs +2 -3
- package/dist/es/zod-schema-utils.mjs +54 -0
- package/dist/lib/baseDB.js +2 -2
- package/dist/lib/build/copy-static.js +4 -4
- package/dist/lib/build/rspack-config.js +38 -0
- package/dist/lib/common.js +4 -4
- package/dist/lib/constants/example-code.js +6 -6
- package/dist/lib/constants/index.js +13 -13
- package/dist/lib/env/basic.js +2 -2
- package/dist/lib/env/constants.js +32 -90
- package/dist/lib/env/global-config-manager.js +4 -5
- package/dist/lib/env/helper.js +13 -22
- package/dist/lib/env/index.js +24 -28
- package/dist/lib/env/init-debug.js +7 -7
- package/dist/lib/env/model-config-manager.js +47 -67
- package/dist/lib/env/parse-model-config.js +155 -0
- package/dist/lib/env/types.js +146 -379
- package/dist/lib/env/utils.js +4 -4
- package/dist/lib/extractor/constants.js +4 -4
- package/dist/lib/extractor/debug.js +1 -1
- package/dist/lib/extractor/dom-util.js +18 -26
- package/dist/lib/extractor/index.js +11 -21
- package/dist/lib/extractor/locator.js +10 -20
- package/dist/lib/extractor/tree.js +4 -7
- package/dist/lib/extractor/util.js +17 -50
- package/dist/lib/extractor/web-extractor.js +12 -19
- package/dist/lib/img/box-select.js +4 -4
- package/dist/lib/img/draw-box.js +2 -2
- package/dist/lib/img/get-jimp.js +16 -34
- package/dist/lib/img/get-photon.js +24 -47
- package/dist/lib/img/get-sharp.js +16 -34
- package/dist/lib/img/index.js +18 -18
- package/dist/lib/img/info.js +4 -4
- package/dist/lib/img/transform.js +10 -10
- package/dist/lib/index.js +8 -4
- package/dist/lib/logger.js +4 -4
- package/dist/lib/mcp/base-server.js +300 -0
- package/dist/lib/mcp/base-tools.js +118 -0
- package/dist/lib/mcp/index.js +86 -0
- package/dist/lib/mcp/inject-report-html-plugin.js +98 -0
- package/dist/lib/mcp/tool-generator.js +244 -0
- package/dist/lib/mcp/types.js +40 -0
- package/dist/lib/node/fs.js +6 -6
- package/dist/lib/node/index.js +6 -8
- package/dist/lib/polyfills/async-hooks.js +2 -2
- package/dist/lib/polyfills/index.js +6 -8
- package/dist/lib/types/index.js +2 -2
- package/dist/lib/us-keyboard-layout.js +2 -2
- package/dist/lib/utils.js +13 -14
- package/dist/lib/zod-schema-utils.js +97 -0
- package/dist/types/build/rspack-config.d.ts +8 -0
- package/dist/types/constants/example-code.d.ts +1 -1
- package/dist/types/env/constants.d.ts +5 -18
- package/dist/types/env/global-config-manager.d.ts +1 -2
- package/dist/types/env/helper.d.ts +2 -4
- package/dist/types/env/model-config-manager.d.ts +8 -7
- package/dist/types/env/parse-model-config.d.ts +28 -0
- package/dist/types/env/types.d.ts +152 -191
- package/dist/types/extractor/dom-util.d.ts +2 -15
- package/dist/types/extractor/index.d.ts +1 -2
- package/dist/types/extractor/locator.d.ts +0 -1
- package/dist/types/extractor/tree.d.ts +1 -4
- package/dist/types/extractor/util.d.ts +0 -3
- package/dist/types/index.d.ts +1 -0
- package/dist/types/mcp/base-server.d.ts +77 -0
- package/dist/types/mcp/base-tools.d.ts +55 -0
- package/dist/types/mcp/index.d.ts +5 -0
- package/dist/types/mcp/inject-report-html-plugin.d.ts +18 -0
- package/dist/types/mcp/tool-generator.d.ts +11 -0
- package/dist/types/mcp/types.d.ts +100 -0
- package/dist/types/types/index.d.ts +5 -2
- package/dist/types/zod-schema-utils.d.ts +23 -0
- package/package.json +19 -4
- package/src/build/rspack-config.ts +12 -0
- package/src/constants/example-code.ts +4 -4
- package/src/env/constants.ts +58 -203
- package/src/env/global-config-manager.ts +7 -7
- package/src/env/helper.ts +10 -31
- package/src/env/init-debug.ts +11 -6
- package/src/env/model-config-manager.ts +91 -87
- package/src/env/parse-model-config.ts +265 -0
- package/src/env/types.ts +212 -344
- package/src/extractor/dom-util.ts +15 -12
- package/src/extractor/index.ts +0 -3
- package/src/extractor/locator.ts +3 -12
- package/src/extractor/tree.ts +4 -4
- package/src/extractor/util.ts +0 -32
- package/src/index.ts +2 -0
- package/src/mcp/base-server.ts +435 -0
- package/src/mcp/base-tools.ts +196 -0
- package/src/mcp/index.ts +5 -0
- package/src/mcp/inject-report-html-plugin.ts +119 -0
- package/src/mcp/tool-generator.ts +330 -0
- package/src/mcp/types.ts +108 -0
- package/src/node/fs.ts +1 -1
- package/src/types/index.ts +8 -2
- package/src/utils.ts +1 -1
- package/src/zod-schema-utils.ts +133 -0
- package/dist/es/env/decide-model-config.mjs +0 -172
- package/dist/es/env/parse.mjs +0 -69
- package/dist/lib/env/decide-model-config.js +0 -212
- package/dist/lib/env/parse.js +0 -106
- package/dist/types/env/decide-model-config.d.ts +0 -14
- package/dist/types/env/parse.d.ts +0 -12
- package/src/env/decide-model-config.ts +0 -319
- package/src/env/parse.ts +0 -131
|
@@ -0,0 +1,155 @@
|
|
|
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 ('undefined' != 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
|
+
modelFamilyToVLConfig: ()=>modelFamilyToVLConfig,
|
|
28
|
+
parseOpenaiSdkConfig: ()=>parseOpenaiSdkConfig,
|
|
29
|
+
legacyConfigToModelFamily: ()=>legacyConfigToModelFamily,
|
|
30
|
+
decideModelConfigFromIntentConfig: ()=>decideModelConfigFromIntentConfig
|
|
31
|
+
});
|
|
32
|
+
const external_constants_js_namespaceObject = require("./constants.js");
|
|
33
|
+
const external_types_js_namespaceObject = require("./types.js");
|
|
34
|
+
const external_logger_js_namespaceObject = require("../logger.js");
|
|
35
|
+
const external_utils_js_namespaceObject = require("../utils.js");
|
|
36
|
+
const external_helper_js_namespaceObject = require("./helper.js");
|
|
37
|
+
const external_init_debug_js_namespaceObject = require("./init-debug.js");
|
|
38
|
+
const KEYS_MAP = {
|
|
39
|
+
insight: external_constants_js_namespaceObject.INSIGHT_MODEL_CONFIG_KEYS,
|
|
40
|
+
planning: external_constants_js_namespaceObject.PLANNING_MODEL_CONFIG_KEYS,
|
|
41
|
+
default: external_constants_js_namespaceObject.DEFAULT_MODEL_CONFIG_KEYS
|
|
42
|
+
};
|
|
43
|
+
const modelFamilyToVLConfig = (modelFamily)=>{
|
|
44
|
+
if (!modelFamily) return {
|
|
45
|
+
vlMode: void 0,
|
|
46
|
+
uiTarsVersion: void 0
|
|
47
|
+
};
|
|
48
|
+
if ('vlm-ui-tars' === modelFamily) return {
|
|
49
|
+
vlMode: 'vlm-ui-tars',
|
|
50
|
+
uiTarsVersion: external_types_js_namespaceObject.UITarsModelVersion.V1_0
|
|
51
|
+
};
|
|
52
|
+
if ('vlm-ui-tars-doubao' === modelFamily || 'vlm-ui-tars-doubao-1.5' === modelFamily) return {
|
|
53
|
+
vlMode: 'vlm-ui-tars',
|
|
54
|
+
uiTarsVersion: external_types_js_namespaceObject.UITarsModelVersion.DOUBAO_1_5_20B
|
|
55
|
+
};
|
|
56
|
+
if (!external_types_js_namespaceObject.MODEL_FAMILY_VALUES.includes(modelFamily)) throw new Error(`Invalid MIDSCENE_MODEL_FAMILY value: ${modelFamily}`);
|
|
57
|
+
return {
|
|
58
|
+
vlMode: modelFamily,
|
|
59
|
+
uiTarsVersion: void 0
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
const legacyConfigToModelFamily = (provider)=>{
|
|
63
|
+
const isDoubao = provider[external_types_js_namespaceObject.MIDSCENE_USE_DOUBAO_VISION];
|
|
64
|
+
const isQwen = provider[external_types_js_namespaceObject.MIDSCENE_USE_QWEN_VL];
|
|
65
|
+
const isQwen3 = provider[external_types_js_namespaceObject.MIDSCENE_USE_QWEN3_VL];
|
|
66
|
+
const isUiTars = provider[external_types_js_namespaceObject.MIDSCENE_USE_VLM_UI_TARS];
|
|
67
|
+
const isGemini = provider[external_types_js_namespaceObject.MIDSCENE_USE_GEMINI];
|
|
68
|
+
const enabledModes = [
|
|
69
|
+
isDoubao && external_types_js_namespaceObject.MIDSCENE_USE_DOUBAO_VISION,
|
|
70
|
+
isQwen && external_types_js_namespaceObject.MIDSCENE_USE_QWEN_VL,
|
|
71
|
+
isQwen3 && external_types_js_namespaceObject.MIDSCENE_USE_QWEN3_VL,
|
|
72
|
+
isUiTars && external_types_js_namespaceObject.MIDSCENE_USE_VLM_UI_TARS,
|
|
73
|
+
isGemini && external_types_js_namespaceObject.MIDSCENE_USE_GEMINI
|
|
74
|
+
].filter(Boolean);
|
|
75
|
+
if (enabledModes.length > 1) throw new Error(`Only one vision mode can be enabled at a time. Currently enabled modes: ${enabledModes.join(', ')}. Please disable all but one mode.`);
|
|
76
|
+
if (isQwen3) return 'qwen3-vl';
|
|
77
|
+
if (isQwen) return 'qwen2.5-vl';
|
|
78
|
+
if (isDoubao) return 'doubao-vision';
|
|
79
|
+
if (isGemini) return 'gemini';
|
|
80
|
+
if (isUiTars) if ('1' === isUiTars) return 'vlm-ui-tars';
|
|
81
|
+
else if ('DOUBAO' === isUiTars || 'DOUBAO-1.5' === isUiTars) return 'vlm-ui-tars-doubao-1.5';
|
|
82
|
+
else return 'vlm-ui-tars-doubao';
|
|
83
|
+
};
|
|
84
|
+
const parseOpenaiSdkConfig = ({ keys, provider, useLegacyLogic = false })=>{
|
|
85
|
+
(0, external_init_debug_js_namespaceObject.initDebugConfig)();
|
|
86
|
+
const debugLog = (0, external_logger_js_namespaceObject.getDebug)('ai:config');
|
|
87
|
+
debugLog('enter parseOpenaiSdkConfig with keys:', keys);
|
|
88
|
+
const legacyAPIKey = useLegacyLogic ? provider[external_types_js_namespaceObject.OPENAI_API_KEY] : void 0;
|
|
89
|
+
const legacyBaseURL = useLegacyLogic ? provider[external_types_js_namespaceObject.OPENAI_BASE_URL] : void 0;
|
|
90
|
+
const legacySocksProxy = useLegacyLogic ? provider[external_types_js_namespaceObject.MIDSCENE_OPENAI_SOCKS_PROXY] : void 0;
|
|
91
|
+
const legacyHttpProxy = useLegacyLogic ? provider[external_types_js_namespaceObject.MIDSCENE_OPENAI_HTTP_PROXY] : void 0;
|
|
92
|
+
const legacyOpenaiExtraConfig = useLegacyLogic ? provider[external_types_js_namespaceObject.MIDSCENE_OPENAI_INIT_CONFIG_JSON] : void 0;
|
|
93
|
+
const legacyModelFamily = useLegacyLogic ? legacyConfigToModelFamily(provider) : void 0;
|
|
94
|
+
const modelFamilyRaw = provider[keys.modelFamily] || legacyModelFamily;
|
|
95
|
+
const openaiApiKey = provider[keys.openaiApiKey] || legacyAPIKey;
|
|
96
|
+
const openaiBaseURL = provider[keys.openaiBaseURL] || legacyBaseURL;
|
|
97
|
+
const socksProxy = provider[keys.socksProxy] || legacySocksProxy;
|
|
98
|
+
const httpProxy = provider[keys.httpProxy] || legacyHttpProxy;
|
|
99
|
+
const modelName = provider[keys.modelName];
|
|
100
|
+
const openaiExtraConfigStr = provider[keys.openaiExtraConfig];
|
|
101
|
+
const openaiExtraConfig = (0, external_helper_js_namespaceObject.parseJson)(keys.openaiExtraConfig, openaiExtraConfigStr || legacyOpenaiExtraConfig);
|
|
102
|
+
const { vlMode, uiTarsVersion } = modelFamilyToVLConfig(modelFamilyRaw);
|
|
103
|
+
const getModelDescription = (vlMode, uiTarsVersion)=>{
|
|
104
|
+
if (vlMode) if (uiTarsVersion) return `UI-TARS=${uiTarsVersion}`;
|
|
105
|
+
else return `${vlMode} mode`;
|
|
106
|
+
return '';
|
|
107
|
+
};
|
|
108
|
+
const modelDescription = getModelDescription(vlMode, uiTarsVersion);
|
|
109
|
+
return {
|
|
110
|
+
socksProxy,
|
|
111
|
+
httpProxy,
|
|
112
|
+
vlModeRaw: vlMode,
|
|
113
|
+
openaiBaseURL,
|
|
114
|
+
openaiApiKey,
|
|
115
|
+
openaiExtraConfig,
|
|
116
|
+
vlMode,
|
|
117
|
+
uiTarsModelVersion: uiTarsVersion,
|
|
118
|
+
modelName: modelName,
|
|
119
|
+
modelDescription,
|
|
120
|
+
intent: '-',
|
|
121
|
+
timeout: provider[keys.timeout] ? Number(provider[keys.timeout]) : void 0
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
const decideModelConfigFromIntentConfig = (intent, configMap)=>{
|
|
125
|
+
const debugLog = (0, external_logger_js_namespaceObject.getDebug)('ai:config');
|
|
126
|
+
debugLog('will decideModelConfig base on agent.modelConfig()', intent, (0, external_helper_js_namespaceObject.maskConfig)(configMap));
|
|
127
|
+
const keysForFn = KEYS_MAP[intent];
|
|
128
|
+
const modelName = configMap[keysForFn.modelName];
|
|
129
|
+
if (!modelName) return void debugLog('no modelName found for intent', intent);
|
|
130
|
+
const finalResult = parseOpenaiSdkConfig({
|
|
131
|
+
keys: keysForFn,
|
|
132
|
+
provider: configMap,
|
|
133
|
+
useLegacyLogic: 'default' === intent
|
|
134
|
+
});
|
|
135
|
+
finalResult.intent = intent;
|
|
136
|
+
debugLog('decideModelConfig result by agent.modelConfig() with intent', intent, (0, external_helper_js_namespaceObject.maskConfig)({
|
|
137
|
+
...finalResult
|
|
138
|
+
}));
|
|
139
|
+
(0, external_utils_js_namespaceObject.assert)(finalResult.openaiBaseURL, `failed to get base URL of model (intent=${intent}). See https://midscenejs.com/model-strategy`);
|
|
140
|
+
if (!finalResult.modelName) console.warn(`modelName is not set for intent ${intent}, this may cause unexpected behavior. See https://midscenejs.com/model-strategy`);
|
|
141
|
+
return finalResult;
|
|
142
|
+
};
|
|
143
|
+
exports.decideModelConfigFromIntentConfig = __webpack_exports__.decideModelConfigFromIntentConfig;
|
|
144
|
+
exports.legacyConfigToModelFamily = __webpack_exports__.legacyConfigToModelFamily;
|
|
145
|
+
exports.modelFamilyToVLConfig = __webpack_exports__.modelFamilyToVLConfig;
|
|
146
|
+
exports.parseOpenaiSdkConfig = __webpack_exports__.parseOpenaiSdkConfig;
|
|
147
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
148
|
+
"decideModelConfigFromIntentConfig",
|
|
149
|
+
"legacyConfigToModelFamily",
|
|
150
|
+
"modelFamilyToVLConfig",
|
|
151
|
+
"parseOpenaiSdkConfig"
|
|
152
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
153
|
+
Object.defineProperty(exports, '__esModule', {
|
|
154
|
+
value: true
|
|
155
|
+
});
|