@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.
Files changed (129) hide show
  1. package/dist/es/build/rspack-config.mjs +4 -0
  2. package/dist/es/constants/example-code.mjs +4 -4
  3. package/dist/es/env/constants.mjs +27 -82
  4. package/dist/es/env/global-config-manager.mjs +2 -3
  5. package/dist/es/env/helper.mjs +12 -17
  6. package/dist/es/env/init-debug.mjs +6 -6
  7. package/dist/es/env/model-config-manager.mjs +45 -65
  8. package/dist/es/env/parse-model-config.mjs +112 -0
  9. package/dist/es/env/types.mjs +70 -162
  10. package/dist/es/extractor/dom-util.mjs +10 -18
  11. package/dist/es/extractor/index.mjs +2 -3
  12. package/dist/es/extractor/locator.mjs +8 -15
  13. package/dist/es/extractor/tree.mjs +2 -5
  14. package/dist/es/extractor/util.mjs +4 -28
  15. package/dist/es/extractor/web-extractor.mjs +7 -14
  16. package/dist/es/index.mjs +2 -1
  17. package/dist/es/mcp/base-server.mjs +250 -0
  18. package/dist/es/mcp/base-tools.mjs +84 -0
  19. package/dist/es/mcp/index.mjs +5 -0
  20. package/dist/es/mcp/inject-report-html-plugin.mjs +53 -0
  21. package/dist/es/mcp/tool-generator.mjs +207 -0
  22. package/dist/es/mcp/types.mjs +3 -0
  23. package/dist/es/node/fs.mjs +2 -2
  24. package/dist/es/utils.mjs +2 -3
  25. package/dist/es/zod-schema-utils.mjs +54 -0
  26. package/dist/lib/baseDB.js +2 -2
  27. package/dist/lib/build/copy-static.js +4 -4
  28. package/dist/lib/build/rspack-config.js +38 -0
  29. package/dist/lib/common.js +4 -4
  30. package/dist/lib/constants/example-code.js +6 -6
  31. package/dist/lib/constants/index.js +13 -13
  32. package/dist/lib/env/basic.js +2 -2
  33. package/dist/lib/env/constants.js +32 -90
  34. package/dist/lib/env/global-config-manager.js +4 -5
  35. package/dist/lib/env/helper.js +13 -22
  36. package/dist/lib/env/index.js +24 -28
  37. package/dist/lib/env/init-debug.js +7 -7
  38. package/dist/lib/env/model-config-manager.js +47 -67
  39. package/dist/lib/env/parse-model-config.js +155 -0
  40. package/dist/lib/env/types.js +146 -379
  41. package/dist/lib/env/utils.js +4 -4
  42. package/dist/lib/extractor/constants.js +4 -4
  43. package/dist/lib/extractor/debug.js +1 -1
  44. package/dist/lib/extractor/dom-util.js +18 -26
  45. package/dist/lib/extractor/index.js +11 -21
  46. package/dist/lib/extractor/locator.js +10 -20
  47. package/dist/lib/extractor/tree.js +4 -7
  48. package/dist/lib/extractor/util.js +17 -50
  49. package/dist/lib/extractor/web-extractor.js +12 -19
  50. package/dist/lib/img/box-select.js +4 -4
  51. package/dist/lib/img/draw-box.js +2 -2
  52. package/dist/lib/img/get-jimp.js +16 -34
  53. package/dist/lib/img/get-photon.js +24 -47
  54. package/dist/lib/img/get-sharp.js +16 -34
  55. package/dist/lib/img/index.js +18 -18
  56. package/dist/lib/img/info.js +4 -4
  57. package/dist/lib/img/transform.js +10 -10
  58. package/dist/lib/index.js +8 -4
  59. package/dist/lib/logger.js +4 -4
  60. package/dist/lib/mcp/base-server.js +300 -0
  61. package/dist/lib/mcp/base-tools.js +118 -0
  62. package/dist/lib/mcp/index.js +86 -0
  63. package/dist/lib/mcp/inject-report-html-plugin.js +98 -0
  64. package/dist/lib/mcp/tool-generator.js +244 -0
  65. package/dist/lib/mcp/types.js +40 -0
  66. package/dist/lib/node/fs.js +6 -6
  67. package/dist/lib/node/index.js +6 -8
  68. package/dist/lib/polyfills/async-hooks.js +2 -2
  69. package/dist/lib/polyfills/index.js +6 -8
  70. package/dist/lib/types/index.js +2 -2
  71. package/dist/lib/us-keyboard-layout.js +2 -2
  72. package/dist/lib/utils.js +13 -14
  73. package/dist/lib/zod-schema-utils.js +97 -0
  74. package/dist/types/build/rspack-config.d.ts +8 -0
  75. package/dist/types/constants/example-code.d.ts +1 -1
  76. package/dist/types/env/constants.d.ts +5 -18
  77. package/dist/types/env/global-config-manager.d.ts +1 -2
  78. package/dist/types/env/helper.d.ts +2 -4
  79. package/dist/types/env/model-config-manager.d.ts +8 -7
  80. package/dist/types/env/parse-model-config.d.ts +28 -0
  81. package/dist/types/env/types.d.ts +152 -191
  82. package/dist/types/extractor/dom-util.d.ts +2 -15
  83. package/dist/types/extractor/index.d.ts +1 -2
  84. package/dist/types/extractor/locator.d.ts +0 -1
  85. package/dist/types/extractor/tree.d.ts +1 -4
  86. package/dist/types/extractor/util.d.ts +0 -3
  87. package/dist/types/index.d.ts +1 -0
  88. package/dist/types/mcp/base-server.d.ts +77 -0
  89. package/dist/types/mcp/base-tools.d.ts +55 -0
  90. package/dist/types/mcp/index.d.ts +5 -0
  91. package/dist/types/mcp/inject-report-html-plugin.d.ts +18 -0
  92. package/dist/types/mcp/tool-generator.d.ts +11 -0
  93. package/dist/types/mcp/types.d.ts +100 -0
  94. package/dist/types/types/index.d.ts +5 -2
  95. package/dist/types/zod-schema-utils.d.ts +23 -0
  96. package/package.json +19 -4
  97. package/src/build/rspack-config.ts +12 -0
  98. package/src/constants/example-code.ts +4 -4
  99. package/src/env/constants.ts +58 -203
  100. package/src/env/global-config-manager.ts +7 -7
  101. package/src/env/helper.ts +10 -31
  102. package/src/env/init-debug.ts +11 -6
  103. package/src/env/model-config-manager.ts +91 -87
  104. package/src/env/parse-model-config.ts +265 -0
  105. package/src/env/types.ts +212 -344
  106. package/src/extractor/dom-util.ts +15 -12
  107. package/src/extractor/index.ts +0 -3
  108. package/src/extractor/locator.ts +3 -12
  109. package/src/extractor/tree.ts +4 -4
  110. package/src/extractor/util.ts +0 -32
  111. package/src/index.ts +2 -0
  112. package/src/mcp/base-server.ts +435 -0
  113. package/src/mcp/base-tools.ts +196 -0
  114. package/src/mcp/index.ts +5 -0
  115. package/src/mcp/inject-report-html-plugin.ts +119 -0
  116. package/src/mcp/tool-generator.ts +330 -0
  117. package/src/mcp/types.ts +108 -0
  118. package/src/node/fs.ts +1 -1
  119. package/src/types/index.ts +8 -2
  120. package/src/utils.ts +1 -1
  121. package/src/zod-schema-utils.ts +133 -0
  122. package/dist/es/env/decide-model-config.mjs +0 -172
  123. package/dist/es/env/parse.mjs +0 -69
  124. package/dist/lib/env/decide-model-config.js +0 -212
  125. package/dist/lib/env/parse.js +0 -106
  126. package/dist/types/env/decide-model-config.d.ts +0 -14
  127. package/dist/types/env/parse.d.ts +0 -12
  128. package/src/env/decide-model-config.ts +0 -319
  129. 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
+ });