@rpascene/shared 0.30.11 → 0.30.13

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.
@@ -21,54 +21,100 @@ const DEFAULT_WAIT_FOR_NAVIGATION_TIMEOUT = 5000;
21
21
  const DEFAULT_WAIT_FOR_NETWORK_IDLE_TIMEOUT = 2000;
22
22
  const DEFAULT_WAIT_FOR_NETWORK_IDLE_TIME = 300;
23
23
  const DEFAULT_WAIT_FOR_NETWORK_IDLE_CONCURRENCY = 2;
24
+ const rpasceneCommand = {
25
+ Tap: "Tap",
26
+ RightClick: "RightClick",
27
+ DoubleClick: "DoubleClick",
28
+ Hover: "Hover",
29
+ Input: "Input",
30
+ KeyboardPress: "KeyboardPress",
31
+ Scroll: "Scroll",
32
+ DragAndDrop: "DragAndDrop",
33
+ ClearInput: "ClearInput",
34
+ Sleep: "Sleep",
35
+ LongPress: "LongPress",
36
+ Swipe: "Swipe",
37
+ Reload: "Reload",
38
+ GoBack: "GoBack",
39
+ Navigate: 'Navigate'
40
+ };
41
+ const rpastudioCommand = {
42
+ SeleniumClickCommand: "SeleniumClickCommand",
43
+ SeleniumRightClickCommand: "SeleniumRightClickCommand",
44
+ SeleniumDoubleClickCommand: "SeleniumDoubleClickCommand",
45
+ SeleniumMouseHoverCommand: "SeleniumMouseHoverCommand",
46
+ SeleniumSetValueCommand: "SeleniumSetValueCommand",
47
+ SeleniumElementSendKeysCommand: "SeleniumElementSendKeysCommand",
48
+ SeleniumSendKeysCommand: "SeleniumSendKeysCommand",
49
+ SeleniumElementScrollCommand: 'SeleniumElementScrollCommand',
50
+ SeleniumWindowScrollCommand: 'SeleniumWindowScrollCommand',
51
+ SeleniumDragAndDropCommand: 'SeleniumDragAndDropCommand',
52
+ SeleniumClearValueCommand: "SeleniumClearValueCommand",
53
+ PauseCommand: "PauseCommand",
54
+ SeleniumBrowserRefreshCommand: "SeleniumBrowserRefreshCommand",
55
+ SeleniumBrowserNavigateBackCommand: 'SeleniumBrowserNavigateBackCommand',
56
+ SeleniumBrowserNavigateCommand: 'SeleniumBrowserNavigateCommand'
57
+ };
24
58
  const commandMap = {
25
- Tap: {
26
- CommandName: "SeleniumClickCommand",
59
+ [rpasceneCommand.Tap]: {
60
+ CommandName: rpastudioCommand.SeleniumClickCommand,
27
61
  DisplayName: "\u5143\u7D20\u70B9\u51FB"
28
62
  },
29
- RightClick: {
30
- CommandName: "SeleniumRightClickCommand",
63
+ [rpasceneCommand.RightClick]: {
64
+ CommandName: rpastudioCommand.SeleniumRightClickCommand,
31
65
  DisplayName: "\u5143\u7D20\u53F3\u952E\u70B9\u51FB"
32
66
  },
33
- DoubleClick: {
34
- CommandName: "SeleniumDoubleClickCommand",
67
+ [rpasceneCommand.DoubleClick]: {
68
+ CommandName: rpastudioCommand.SeleniumDoubleClickCommand,
35
69
  DisplayName: "\u5143\u7D20\u53CC\u51FB"
36
70
  },
37
- Hover: {
38
- CommandName: "SeleniumMouseHoverCommand",
71
+ [rpasceneCommand.Hover]: {
72
+ CommandName: rpastudioCommand.SeleniumMouseHoverCommand,
39
73
  DisplayName: "\u9F20\u6807\u60AC\u505C"
40
74
  },
41
- Input: {
42
- CommandName: "SeleniumSetValueCommand",
75
+ [rpasceneCommand.Input]: {
76
+ CommandName: rpastudioCommand.SeleniumSetValueCommand,
43
77
  DisplayName: "\u8BBE\u7F6E\u6587\u672C"
44
78
  },
45
- KeyboardPress: {
46
- CommandName: "SeleniumSendKeysCommand",
79
+ [rpasceneCommand.KeyboardPress]: {
80
+ CommandName: rpastudioCommand.SeleniumElementSendKeysCommand,
47
81
  DisplayName: "\u6A21\u62DF\u6309\u952E"
48
82
  },
49
- Scroll: {
50
- CommandName: "SeleniumElementScrollCommand",
83
+ [rpasceneCommand.Scroll]: {
84
+ CommandName: rpastudioCommand.SeleniumElementScrollCommand,
51
85
  DisplayName: "\u5143\u7D20\u6EDA\u52A8"
52
86
  },
53
- DragAndDrop: {
54
- CommandName: "SeleniumDragDropCommand",
87
+ [rpasceneCommand.DragAndDrop]: {
88
+ CommandName: rpastudioCommand.SeleniumDragAndDropCommand,
55
89
  DisplayName: "\u5143\u7D20\u62D6\u62FD\uFF08\u81F3\u6307\u5B9A\u5143\u7D20\uFF09"
56
90
  },
57
- ClearInput: {
58
- CommandName: "SeleniumClearTextCommand",
91
+ [rpasceneCommand.ClearInput]: {
92
+ CommandName: rpastudioCommand.SeleniumClearValueCommand,
59
93
  DisplayName: "\u6E05\u7A7A\u6587\u672C"
60
94
  },
61
- Sleep: {
62
- CommandName: "SeleniumPauseCommand",
95
+ [rpasceneCommand.Sleep]: {
96
+ CommandName: rpastudioCommand.PauseCommand,
63
97
  DisplayName: "\u6682\u505C\u811A\u672C"
64
98
  },
65
- LongPress: {
66
- CommandName: "SeleniumSendKeysCommand",
67
- DisplayName: "\u6A21\u62DF\u6309\u952E"
99
+ [rpasceneCommand.LongPress]: {
100
+ CommandName: "",
101
+ DisplayName: ""
68
102
  },
69
- Swipe: {
70
- CommandName: "SeleniumClickCommand",
71
- DisplayName: "\u5143\u7D20\u70B9\u51FB"
103
+ [rpasceneCommand.Swipe]: {
104
+ CommandName: "",
105
+ DisplayName: ""
106
+ },
107
+ [rpasceneCommand.Reload]: {
108
+ CommandName: rpastudioCommand.SeleniumBrowserRefreshCommand,
109
+ DisplayName: "\u5237\u65B0"
110
+ },
111
+ [rpasceneCommand.GoBack]: {
112
+ CommandName: rpastudioCommand.SeleniumBrowserNavigateBackCommand,
113
+ DisplayName: "\u540E\u9000"
114
+ },
115
+ [rpasceneCommand.Navigate]: {
116
+ CommandName: rpastudioCommand.SeleniumBrowserNavigateCommand,
117
+ DisplayName: "\u6253\u5F00\u9875\u9762"
72
118
  }
73
119
  };
74
- export { CONTAINER_MINI_HEIGHT, CONTAINER_MINI_WIDTH, DEFAULT_WAIT_FOR_NAVIGATION_TIMEOUT, DEFAULT_WAIT_FOR_NETWORK_IDLE_CONCURRENCY, DEFAULT_WAIT_FOR_NETWORK_IDLE_TIME, DEFAULT_WAIT_FOR_NETWORK_IDLE_TIMEOUT, DEFAULT_WDA_PORT, constants_NodeType as NodeType, PLAYGROUND_SERVER_PORT, PLAYWRIGHT_EXAMPLE_CODE, SCRCPY_SERVER_PORT, TEXT_MAX_SIZE, TEXT_SIZE_THRESHOLD, WEBDRIVER_ELEMENT_ID_KEY, YAML_EXAMPLE_CODE, commandMap };
120
+ export { CONTAINER_MINI_HEIGHT, CONTAINER_MINI_WIDTH, DEFAULT_WAIT_FOR_NAVIGATION_TIMEOUT, DEFAULT_WAIT_FOR_NETWORK_IDLE_CONCURRENCY, DEFAULT_WAIT_FOR_NETWORK_IDLE_TIME, DEFAULT_WAIT_FOR_NETWORK_IDLE_TIMEOUT, DEFAULT_WDA_PORT, constants_NodeType as NodeType, PLAYGROUND_SERVER_PORT, PLAYWRIGHT_EXAMPLE_CODE, SCRCPY_SERVER_PORT, TEXT_MAX_SIZE, TEXT_SIZE_THRESHOLD, WEBDRIVER_ELEMENT_ID_KEY, YAML_EXAMPLE_CODE, commandMap, rpasceneCommand, rpastudioCommand };
@@ -16,7 +16,16 @@ const VQA_MODEL_CONFIG_KEYS = {
16
16
  azureExtraConfig: MIDSCENE_VQA_AZURE_OPENAI_INIT_CONFIG_JSON,
17
17
  useAnthropicSdk: MIDSCENE_VQA_USE_ANTHROPIC_SDK,
18
18
  anthropicApiKey: MIDSCENE_VQA_ANTHROPIC_API_KEY,
19
- vlMode: MIDSCENE_VQA_VL_MODE
19
+ vlMode: MIDSCENE_VQA_VL_MODE,
20
+ domain: 'domain',
21
+ yht_access_token: 'yht_access_token',
22
+ model: 'model',
23
+ baseURL: 'baseURL',
24
+ chatType: 'chatType',
25
+ modelCategory: 'modelCategory',
26
+ stream: 'stream',
27
+ temperature: 'temperature',
28
+ top_p: 'top_p'
20
29
  };
21
30
  const GROUNDING_MODEL_CONFIG_KEYS = {
22
31
  modelName: MIDSCENE_GROUNDING_MODEL_NAME,
@@ -35,7 +44,16 @@ const GROUNDING_MODEL_CONFIG_KEYS = {
35
44
  azureExtraConfig: MIDSCENE_GROUNDING_AZURE_OPENAI_INIT_CONFIG_JSON,
36
45
  useAnthropicSdk: MIDSCENE_GROUNDING_USE_ANTHROPIC_SDK,
37
46
  anthropicApiKey: MIDSCENE_GROUNDING_ANTHROPIC_API_KEY,
38
- vlMode: MIDSCENE_GROUNDING_VL_MODE
47
+ vlMode: MIDSCENE_GROUNDING_VL_MODE,
48
+ domain: 'domain',
49
+ yht_access_token: 'yht_access_token',
50
+ model: 'model',
51
+ baseURL: 'baseURL',
52
+ chatType: 'chatType',
53
+ modelCategory: 'modelCategory',
54
+ stream: 'stream',
55
+ temperature: 'temperature',
56
+ top_p: 'top_p'
39
57
  };
40
58
  const PLANNING_MODEL_CONFIG_KEYS = {
41
59
  modelName: MIDSCENE_PLANNING_MODEL_NAME,
@@ -54,7 +72,16 @@ const PLANNING_MODEL_CONFIG_KEYS = {
54
72
  azureExtraConfig: MIDSCENE_PLANNING_AZURE_OPENAI_INIT_CONFIG_JSON,
55
73
  useAnthropicSdk: MIDSCENE_PLANNING_USE_ANTHROPIC_SDK,
56
74
  anthropicApiKey: MIDSCENE_PLANNING_ANTHROPIC_API_KEY,
57
- vlMode: MIDSCENE_PLANNING_VL_MODE
75
+ vlMode: MIDSCENE_PLANNING_VL_MODE,
76
+ domain: 'domain',
77
+ yht_access_token: 'yht_access_token',
78
+ model: 'model',
79
+ baseURL: 'baseURL',
80
+ chatType: 'chatType',
81
+ modelCategory: 'modelCategory',
82
+ stream: 'stream',
83
+ temperature: 'temperature',
84
+ top_p: 'top_p'
58
85
  };
59
86
  const DEFAULT_MODEL_CONFIG_KEYS = {
60
87
  modelName: MIDSCENE_MODEL_NAME,
@@ -73,7 +100,16 @@ const DEFAULT_MODEL_CONFIG_KEYS = {
73
100
  azureExtraConfig: MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON,
74
101
  useAnthropicSdk: MIDSCENE_USE_ANTHROPIC_SDK,
75
102
  anthropicApiKey: MIDSCENE_ANTHROPIC_API_KEY,
76
- vlMode: MIDSCENE_VL_MODE
103
+ vlMode: MIDSCENE_VL_MODE,
104
+ domain: 'domain',
105
+ yht_access_token: 'yht_access_token',
106
+ model: 'model',
107
+ baseURL: 'baseURL',
108
+ chatType: 'chatType',
109
+ modelCategory: 'modelCategory',
110
+ stream: 'stream',
111
+ temperature: 'temperature',
112
+ top_p: 'top_p'
77
113
  };
78
114
  const DEFAULT_MODEL_CONFIG_KEYS_LEGACY = {
79
115
  modelName: MIDSCENE_MODEL_NAME,
@@ -92,6 +128,15 @@ const DEFAULT_MODEL_CONFIG_KEYS_LEGACY = {
92
128
  azureExtraConfig: MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON,
93
129
  useAnthropicSdk: MIDSCENE_USE_ANTHROPIC_SDK,
94
130
  anthropicApiKey: ANTHROPIC_API_KEY,
95
- vlMode: 'DEFAULT_MODEL_CONFIG_KEYS has no vlMode key'
131
+ vlMode: 'DEFAULT_MODEL_CONFIG_KEYS has no vlMode key',
132
+ domain: 'domain',
133
+ yht_access_token: 'yht_access_token',
134
+ model: 'model',
135
+ baseURL: 'baseURL',
136
+ chatType: 'chatType',
137
+ modelCategory: 'modelCategory',
138
+ stream: 'stream',
139
+ temperature: 'temperature',
140
+ top_p: 'top_p'
96
141
  };
97
142
  export { DEFAULT_MODEL_CONFIG_KEYS, DEFAULT_MODEL_CONFIG_KEYS_LEGACY, GROUNDING_MODEL_CONFIG_KEYS, PLANNING_MODEL_CONFIG_KEYS, VQA_MODEL_CONFIG_KEYS };
@@ -1,5 +1,5 @@
1
1
  import { initDebugConfig } from "./init-debug.mjs";
2
- import { ALL_ENV_KEYS, BOOLEAN_ENV_KEYS, MATCH_BY_POSITION, NUMBER_ENV_KEYS, STRING_ENV_KEYS } from "./types.mjs";
2
+ import { ALL_ENV_KEYS, BOOLEAN_ENV_KEYS, GLOBAL_ENV_KEYS, MATCH_BY_POSITION, MODEL_ENV_KEYS, NUMBER_ENV_KEYS, STRING_ENV_KEYS } from "./types.mjs";
3
3
  function _define_property(obj, key, value) {
4
4
  if (key in obj) Object.defineProperty(obj, key, {
5
5
  value: value,
@@ -59,6 +59,15 @@ class GlobalConfigManager {
59
59
  }
60
60
  overrideAIConfig(newConfig, extendMode = false) {
61
61
  var _this_override;
62
+ for(const key in newConfig){
63
+ if (![
64
+ ...GLOBAL_ENV_KEYS,
65
+ ...MODEL_ENV_KEYS
66
+ ].includes(key)) throw new Error(`Failed to override AI config, invalid key: ${key}`);
67
+ const value = newConfig[key];
68
+ if ('string' != typeof value) throw new Error(`Failed to override AI config, value for key ${key} must be a string, but got with type ${typeof value}`);
69
+ if (this.keysHaveBeenRead[key]) console.warn(`Warning: try to override AI config with key ${key} ,but it has been read.`);
70
+ }
62
71
  const savedNewConfig = extendMode ? {
63
72
  ...null == (_this_override = this.override) ? void 0 : _this_override.newConfig,
64
73
  ...newConfig
@@ -144,6 +144,19 @@ const GLOBAL_ENV_KEYS = [
144
144
  ...NUMBER_ENV_KEYS,
145
145
  ...STRING_ENV_KEYS
146
146
  ];
147
+ const YHT_STRING_ENV_KEYS = [
148
+ 'domain',
149
+ 'yht_access_token',
150
+ 'model',
151
+ 'baseURL'
152
+ ];
153
+ const YHT_NUMBER_ENV_KEYS = [
154
+ 'chatType',
155
+ 'modelCategory',
156
+ 'stream',
157
+ 'temperature',
158
+ 'top_p'
159
+ ];
147
160
  const MODEL_ENV_KEYS = [
148
161
  MIDSCENE_MODEL_NAME,
149
162
  MIDSCENE_OPENAI_INIT_CONFIG_JSON,
@@ -226,25 +239,15 @@ const MODEL_ENV_KEYS = [
226
239
  MIDSCENE_GROUNDING_AZURE_OPENAI_INIT_CONFIG_JSON,
227
240
  MIDSCENE_GROUNDING_USE_ANTHROPIC_SDK,
228
241
  MIDSCENE_GROUNDING_ANTHROPIC_API_KEY,
229
- MIDSCENE_GROUNDING_VL_MODE
230
- ];
231
- const Yht_ENV_KEYS = [
232
- 'domain',
233
- 'yht_access_token',
234
- 'chatType',
235
- 'model',
236
- 'modelCategory',
237
- 'stream',
238
- 'temperature',
239
- 'top_p',
240
- 'baseURL'
242
+ MIDSCENE_GROUNDING_VL_MODE,
243
+ ...YHT_STRING_ENV_KEYS,
244
+ ...YHT_NUMBER_ENV_KEYS
241
245
  ];
242
246
  const ALL_ENV_KEYS = [
243
247
  ...UNUSED_ENV_KEYS,
244
248
  ...BASIC_ENV_KEYS,
245
249
  ...GLOBAL_ENV_KEYS,
246
- ...MODEL_ENV_KEYS,
247
- ...Yht_ENV_KEYS
250
+ ...MODEL_ENV_KEYS
248
251
  ];
249
252
  var types_UITarsModelVersion = /*#__PURE__*/ function(UITarsModelVersion) {
250
253
  UITarsModelVersion["V1_0"] = "1.0";
@@ -262,4 +265,4 @@ const VL_MODE_RAW_VALID_VALUES = [
262
265
  'vlm-ui-tars-doubao',
263
266
  'vlm-ui-tars-doubao-1.5'
264
267
  ];
265
- export { ALL_ENV_KEYS, ANTHROPIC_API_KEY, AZURE_OPENAI_API_VERSION, AZURE_OPENAI_DEPLOYMENT, AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_KEY, BASIC_ENV_KEYS, BOOLEAN_ENV_KEYS, DOCKER_CONTAINER, GLOBAL_ENV_KEYS, MATCH_BY_POSITION, MIDSCENE_ADB_PATH, MIDSCENE_ADB_REMOTE_HOST, MIDSCENE_ADB_REMOTE_PORT, MIDSCENE_ANDROID_IME_STRATEGY, MIDSCENE_ANTHROPIC_API_KEY, MIDSCENE_API_TYPE, MIDSCENE_AZURE_OPENAI_API_VERSION, MIDSCENE_AZURE_OPENAI_DEPLOYMENT, MIDSCENE_AZURE_OPENAI_ENDPOINT, MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_AZURE_OPENAI_KEY, MIDSCENE_AZURE_OPENAI_SCOPE, MIDSCENE_CACHE, MIDSCENE_CACHE_MAX_FILENAME_LENGTH, MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG, MIDSCENE_DEBUG_AI_PROFILE, MIDSCENE_DEBUG_AI_RESPONSE, MIDSCENE_DEBUG_MODE, MIDSCENE_FORCE_DEEP_THINK, MIDSCENE_GROUNDING_ANTHROPIC_API_KEY, MIDSCENE_GROUNDING_AZURE_OPENAI_API_VERSION, MIDSCENE_GROUNDING_AZURE_OPENAI_DEPLOYMENT, MIDSCENE_GROUNDING_AZURE_OPENAI_ENDPOINT, MIDSCENE_GROUNDING_AZURE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_GROUNDING_AZURE_OPENAI_KEY, MIDSCENE_GROUNDING_AZURE_OPENAI_SCOPE, MIDSCENE_GROUNDING_MODEL_NAME, MIDSCENE_GROUNDING_OPENAI_API_KEY, MIDSCENE_GROUNDING_OPENAI_BASE_URL, MIDSCENE_GROUNDING_OPENAI_HTTP_PROXY, MIDSCENE_GROUNDING_OPENAI_INIT_CONFIG_JSON, MIDSCENE_GROUNDING_OPENAI_SOCKS_PROXY, MIDSCENE_GROUNDING_OPENAI_USE_AZURE, MIDSCENE_GROUNDING_USE_ANTHROPIC_SDK, MIDSCENE_GROUNDING_USE_AZURE_OPENAI, MIDSCENE_GROUNDING_VL_MODE, MIDSCENE_IOS_DEVICE_UDID, MIDSCENE_IOS_SIMULATOR_UDID, MIDSCENE_LANGSMITH_DEBUG, MIDSCENE_MCP_ANDROID_MODE, MIDSCENE_MCP_CHROME_PATH, MIDSCENE_MCP_USE_PUPPETEER_MODE, MIDSCENE_MODEL_NAME, MIDSCENE_OPENAI_API_KEY, MIDSCENE_OPENAI_BASE_URL, MIDSCENE_OPENAI_HTTP_PROXY, MIDSCENE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_OPENAI_SOCKS_PROXY, MIDSCENE_OPENAI_USE_AZURE, MIDSCENE_PLANNING_ANTHROPIC_API_KEY, MIDSCENE_PLANNING_AZURE_OPENAI_API_VERSION, MIDSCENE_PLANNING_AZURE_OPENAI_DEPLOYMENT, MIDSCENE_PLANNING_AZURE_OPENAI_ENDPOINT, MIDSCENE_PLANNING_AZURE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_PLANNING_AZURE_OPENAI_KEY, MIDSCENE_PLANNING_AZURE_OPENAI_SCOPE, MIDSCENE_PLANNING_MODEL_NAME, MIDSCENE_PLANNING_OPENAI_API_KEY, MIDSCENE_PLANNING_OPENAI_BASE_URL, MIDSCENE_PLANNING_OPENAI_HTTP_PROXY, MIDSCENE_PLANNING_OPENAI_INIT_CONFIG_JSON, MIDSCENE_PLANNING_OPENAI_SOCKS_PROXY, MIDSCENE_PLANNING_OPENAI_USE_AZURE, MIDSCENE_PLANNING_USE_ANTHROPIC_SDK, MIDSCENE_PLANNING_USE_AZURE_OPENAI, MIDSCENE_PLANNING_VL_MODE, MIDSCENE_PREFERRED_LANGUAGE, MIDSCENE_REPLANNING_CYCLE_LIMIT, MIDSCENE_REPORT_TAG_NAME, MIDSCENE_RUN_DIR, MIDSCENE_USE_ANTHROPIC_SDK, MIDSCENE_USE_AZURE_OPENAI, MIDSCENE_USE_DOUBAO_VISION, MIDSCENE_USE_GEMINI, MIDSCENE_USE_QWEN3_VL, MIDSCENE_USE_QWEN_VL, MIDSCENE_USE_VLM_UI_TARS, MIDSCENE_USE_VL_MODEL, MIDSCENE_VL_MODE, MIDSCENE_VQA_ANTHROPIC_API_KEY, MIDSCENE_VQA_AZURE_OPENAI_API_VERSION, MIDSCENE_VQA_AZURE_OPENAI_DEPLOYMENT, MIDSCENE_VQA_AZURE_OPENAI_ENDPOINT, MIDSCENE_VQA_AZURE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_VQA_AZURE_OPENAI_KEY, MIDSCENE_VQA_AZURE_OPENAI_SCOPE, MIDSCENE_VQA_MODEL_NAME, MIDSCENE_VQA_OPENAI_API_KEY, MIDSCENE_VQA_OPENAI_BASE_URL, MIDSCENE_VQA_OPENAI_HTTP_PROXY, MIDSCENE_VQA_OPENAI_INIT_CONFIG_JSON, MIDSCENE_VQA_OPENAI_SOCKS_PROXY, MIDSCENE_VQA_OPENAI_USE_AZURE, MIDSCENE_VQA_USE_ANTHROPIC_SDK, MIDSCENE_VQA_USE_AZURE_OPENAI, MIDSCENE_VQA_VL_MODE, MODEL_ENV_KEYS, NUMBER_ENV_KEYS, OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MAX_TOKENS, OPENAI_USE_AZURE, STRING_ENV_KEYS, types_UITarsModelVersion as UITarsModelVersion, UNUSED_ENV_KEYS, VL_MODE_RAW_VALID_VALUES, Yht_ENV_KEYS };
268
+ export { ALL_ENV_KEYS, ANTHROPIC_API_KEY, AZURE_OPENAI_API_VERSION, AZURE_OPENAI_DEPLOYMENT, AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_KEY, BASIC_ENV_KEYS, BOOLEAN_ENV_KEYS, DOCKER_CONTAINER, GLOBAL_ENV_KEYS, MATCH_BY_POSITION, MIDSCENE_ADB_PATH, MIDSCENE_ADB_REMOTE_HOST, MIDSCENE_ADB_REMOTE_PORT, MIDSCENE_ANDROID_IME_STRATEGY, MIDSCENE_ANTHROPIC_API_KEY, MIDSCENE_API_TYPE, MIDSCENE_AZURE_OPENAI_API_VERSION, MIDSCENE_AZURE_OPENAI_DEPLOYMENT, MIDSCENE_AZURE_OPENAI_ENDPOINT, MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_AZURE_OPENAI_KEY, MIDSCENE_AZURE_OPENAI_SCOPE, MIDSCENE_CACHE, MIDSCENE_CACHE_MAX_FILENAME_LENGTH, MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG, MIDSCENE_DEBUG_AI_PROFILE, MIDSCENE_DEBUG_AI_RESPONSE, MIDSCENE_DEBUG_MODE, MIDSCENE_FORCE_DEEP_THINK, MIDSCENE_GROUNDING_ANTHROPIC_API_KEY, MIDSCENE_GROUNDING_AZURE_OPENAI_API_VERSION, MIDSCENE_GROUNDING_AZURE_OPENAI_DEPLOYMENT, MIDSCENE_GROUNDING_AZURE_OPENAI_ENDPOINT, MIDSCENE_GROUNDING_AZURE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_GROUNDING_AZURE_OPENAI_KEY, MIDSCENE_GROUNDING_AZURE_OPENAI_SCOPE, MIDSCENE_GROUNDING_MODEL_NAME, MIDSCENE_GROUNDING_OPENAI_API_KEY, MIDSCENE_GROUNDING_OPENAI_BASE_URL, MIDSCENE_GROUNDING_OPENAI_HTTP_PROXY, MIDSCENE_GROUNDING_OPENAI_INIT_CONFIG_JSON, MIDSCENE_GROUNDING_OPENAI_SOCKS_PROXY, MIDSCENE_GROUNDING_OPENAI_USE_AZURE, MIDSCENE_GROUNDING_USE_ANTHROPIC_SDK, MIDSCENE_GROUNDING_USE_AZURE_OPENAI, MIDSCENE_GROUNDING_VL_MODE, MIDSCENE_IOS_DEVICE_UDID, MIDSCENE_IOS_SIMULATOR_UDID, MIDSCENE_LANGSMITH_DEBUG, MIDSCENE_MCP_ANDROID_MODE, MIDSCENE_MCP_CHROME_PATH, MIDSCENE_MCP_USE_PUPPETEER_MODE, MIDSCENE_MODEL_NAME, MIDSCENE_OPENAI_API_KEY, MIDSCENE_OPENAI_BASE_URL, MIDSCENE_OPENAI_HTTP_PROXY, MIDSCENE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_OPENAI_SOCKS_PROXY, MIDSCENE_OPENAI_USE_AZURE, MIDSCENE_PLANNING_ANTHROPIC_API_KEY, MIDSCENE_PLANNING_AZURE_OPENAI_API_VERSION, MIDSCENE_PLANNING_AZURE_OPENAI_DEPLOYMENT, MIDSCENE_PLANNING_AZURE_OPENAI_ENDPOINT, MIDSCENE_PLANNING_AZURE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_PLANNING_AZURE_OPENAI_KEY, MIDSCENE_PLANNING_AZURE_OPENAI_SCOPE, MIDSCENE_PLANNING_MODEL_NAME, MIDSCENE_PLANNING_OPENAI_API_KEY, MIDSCENE_PLANNING_OPENAI_BASE_URL, MIDSCENE_PLANNING_OPENAI_HTTP_PROXY, MIDSCENE_PLANNING_OPENAI_INIT_CONFIG_JSON, MIDSCENE_PLANNING_OPENAI_SOCKS_PROXY, MIDSCENE_PLANNING_OPENAI_USE_AZURE, MIDSCENE_PLANNING_USE_ANTHROPIC_SDK, MIDSCENE_PLANNING_USE_AZURE_OPENAI, MIDSCENE_PLANNING_VL_MODE, MIDSCENE_PREFERRED_LANGUAGE, MIDSCENE_REPLANNING_CYCLE_LIMIT, MIDSCENE_REPORT_TAG_NAME, MIDSCENE_RUN_DIR, MIDSCENE_USE_ANTHROPIC_SDK, MIDSCENE_USE_AZURE_OPENAI, MIDSCENE_USE_DOUBAO_VISION, MIDSCENE_USE_GEMINI, MIDSCENE_USE_QWEN3_VL, MIDSCENE_USE_QWEN_VL, MIDSCENE_USE_VLM_UI_TARS, MIDSCENE_USE_VL_MODEL, MIDSCENE_VL_MODE, MIDSCENE_VQA_ANTHROPIC_API_KEY, MIDSCENE_VQA_AZURE_OPENAI_API_VERSION, MIDSCENE_VQA_AZURE_OPENAI_DEPLOYMENT, MIDSCENE_VQA_AZURE_OPENAI_ENDPOINT, MIDSCENE_VQA_AZURE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_VQA_AZURE_OPENAI_KEY, MIDSCENE_VQA_AZURE_OPENAI_SCOPE, MIDSCENE_VQA_MODEL_NAME, MIDSCENE_VQA_OPENAI_API_KEY, MIDSCENE_VQA_OPENAI_BASE_URL, MIDSCENE_VQA_OPENAI_HTTP_PROXY, MIDSCENE_VQA_OPENAI_INIT_CONFIG_JSON, MIDSCENE_VQA_OPENAI_SOCKS_PROXY, MIDSCENE_VQA_OPENAI_USE_AZURE, MIDSCENE_VQA_USE_ANTHROPIC_SDK, MIDSCENE_VQA_USE_AZURE_OPENAI, MIDSCENE_VQA_VL_MODE, MODEL_ENV_KEYS, NUMBER_ENV_KEYS, OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MAX_TOKENS, OPENAI_USE_AZURE, STRING_ENV_KEYS, types_UITarsModelVersion as UITarsModelVersion, UNUSED_ENV_KEYS, VL_MODE_RAW_VALID_VALUES, YHT_NUMBER_ENV_KEYS, YHT_STRING_ENV_KEYS };
@@ -13,6 +13,10 @@ const getPreferredLanguage = ()=>{
13
13
  return isChina ? 'Chinese' : 'English';
14
14
  };
15
15
  const overrideAIConfig = (newConfig, extendMode = false)=>{
16
- globalConfigManager.overrideAIConfig(newConfig, extendMode);
16
+ const config = Object.entries(newConfig).reduce((pre, [key, value])=>({
17
+ ...pre,
18
+ [key]: String(value)
19
+ }), {});
20
+ globalConfigManager.overrideAIConfig(config, extendMode);
17
21
  };
18
22
  export { getPreferredLanguage, globalConfigManager, globalModelConfigManager, overrideAIConfig };
@@ -1,7 +1,7 @@
1
1
  import { descriptionOfTree, traverseTree, treeToList, trimAttributes, truncateText } from "./tree.mjs";
2
- import { extractTextWithPosition, extractTreeNode, extractTreeNodeAsString } from "./web-extractor.mjs";
2
+ import { extractTextWithPosition, extractTreeNode, extractTreeNodeAsString, getElementFromPoint } from "./web-extractor.mjs";
3
3
  import { getNodeFromCacheList, setNodeHashCacheListOnWindow } from "./util.mjs";
4
4
  import { getElementInfoByXpath, getElementXpath, getNodeInfoByXpath, getXpathsById, getXpathsByPoint } from "./locator.mjs";
5
5
  import { generateElementByPosition, isNotContainerElement } from "./dom-util.mjs";
6
6
  export * from "./customLocator.mjs";
7
- export { descriptionOfTree, generateElementByPosition, getElementInfoByXpath, getElementXpath, getNodeFromCacheList, getNodeInfoByXpath, getXpathsById, getXpathsByPoint, isNotContainerElement, setNodeHashCacheListOnWindow, traverseTree, treeToList, trimAttributes, truncateText, extractTreeNode as webExtractNodeTree, extractTreeNodeAsString as webExtractNodeTreeAsString, extractTextWithPosition as webExtractTextWithPosition };
7
+ export { descriptionOfTree, generateElementByPosition, getElementFromPoint, getElementInfoByXpath, getElementXpath, getNodeFromCacheList, getNodeInfoByXpath, getXpathsById, getXpathsByPoint, isNotContainerElement, setNodeHashCacheListOnWindow, traverseTree, treeToList, trimAttributes, truncateText, extractTreeNode as webExtractNodeTree, extractTreeNodeAsString as webExtractNodeTreeAsString, extractTextWithPosition as webExtractTextWithPosition };
@@ -357,5 +357,65 @@ if ('undefined' != typeof window) onWindowMessage(window, async ({ action, data
357
357
  error: 'error message'
358
358
  };
359
359
  }
360
+ if ('getElementFromPoint' === action) try {
361
+ return await getElementFromPoint({
362
+ x: data.x,
363
+ y: data.y,
364
+ containerPaths: data.containerPaths
365
+ });
366
+ } catch (error) {
367
+ return {
368
+ error: 'error message'
369
+ };
370
+ }
360
371
  });
361
- export { collectElementInfo, extractTextWithPosition, extractTreeNode, extractTreeNodeAsString, mergeElementAndChildrenRects };
372
+ const getElementOffset = (element)=>{
373
+ const pLeft = parseInt(window.getComputedStyle(element, null).getPropertyValue('padding-left'), 10) || 0;
374
+ const pTop = parseInt(window.getComputedStyle(element, null).getPropertyValue('padding-top'), 10) || 0;
375
+ const bLeft = parseInt(window.getComputedStyle(element, null).getPropertyValue('border-left-width'), 10) || 0;
376
+ const bTop = parseInt(window.getComputedStyle(element, null).getPropertyValue('border-top-width'), 10) || 0;
377
+ return {
378
+ x: pLeft + bLeft,
379
+ y: pTop + bTop
380
+ };
381
+ };
382
+ const web_extractor_getCssScale = (element)=>{
383
+ try {
384
+ const { width, height } = element.getBoundingClientRect();
385
+ return {
386
+ cssScaleX: Number((width / element.offsetWidth).toFixed(1)),
387
+ cssScaleY: Number((height / element.offsetHeight).toFixed(1))
388
+ };
389
+ } catch (error) {
390
+ return {
391
+ cssScaleX: 1,
392
+ cssScaleY: 1
393
+ };
394
+ }
395
+ };
396
+ const getElementFromPoint = async (args)=>{
397
+ if (!args.containerPaths) args.containerPaths = [];
398
+ const dom = document.elementFromPoint(args.x, args.y);
399
+ if ((null == dom ? void 0 : dom.nodeName) === 'IFRAME') {
400
+ const containerPath = getContainerPath(dom);
401
+ const bounding = dom.getBoundingClientRect();
402
+ const offset = getElementOffset(dom);
403
+ const { cssScaleX, cssScaleY } = web_extractor_getCssScale(dom);
404
+ return await postWindowMessage(dom.contentWindow, window, {
405
+ action: 'getElementFromPoint',
406
+ data: {
407
+ x: (args.x - bounding.x - offset.x) / cssScaleX,
408
+ y: (args.y - bounding.y - offset.y) / cssScaleY,
409
+ containerPaths: args.containerPaths.concat(containerPath)
410
+ }
411
+ });
412
+ }
413
+ {
414
+ const elementInfo = {
415
+ allPaths: getLocators(dom),
416
+ containerPaths: args.containerPaths
417
+ };
418
+ return elementInfo;
419
+ }
420
+ };
421
+ export { collectElementInfo, extractTextWithPosition, extractTreeNode, extractTreeNodeAsString, getElementFromPoint, mergeElementAndChildrenRects };