@midscene/shared 1.0.1-beta-20251024063839.0 → 1.0.1-beta-20251024064637.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 (40) hide show
  1. package/dist/es/env/constants.mjs +28 -28
  2. package/dist/es/env/decide-model-config.mjs +2 -5
  3. package/dist/es/env/init-debug.mjs +6 -6
  4. package/dist/es/env/model-config-manager.mjs +1 -2
  5. package/dist/es/env/types.mjs +53 -57
  6. package/dist/es/extractor/dom-util.mjs +7 -9
  7. package/dist/es/extractor/index.mjs +1 -2
  8. package/dist/es/extractor/tree.mjs +1 -3
  9. package/dist/es/extractor/util.mjs +1 -25
  10. package/dist/es/node/fs.mjs +2 -2
  11. package/dist/lib/env/constants.js +27 -27
  12. package/dist/lib/env/decide-model-config.js +2 -5
  13. package/dist/lib/env/init-debug.js +5 -5
  14. package/dist/lib/env/model-config-manager.js +1 -2
  15. package/dist/lib/env/types.js +130 -140
  16. package/dist/lib/extractor/dom-util.js +7 -9
  17. package/dist/lib/extractor/index.js +7 -14
  18. package/dist/lib/extractor/tree.js +1 -3
  19. package/dist/lib/extractor/util.js +0 -33
  20. package/dist/lib/node/fs.js +2 -2
  21. package/dist/types/env/model-config-manager.d.ts +2 -2
  22. package/dist/types/env/types.d.ts +59 -76
  23. package/dist/types/extractor/dom-util.d.ts +2 -15
  24. package/dist/types/extractor/index.d.ts +0 -1
  25. package/dist/types/extractor/tree.d.ts +1 -4
  26. package/dist/types/extractor/util.d.ts +0 -3
  27. package/dist/types/types/index.d.ts +6 -2
  28. package/package.json +1 -1
  29. package/src/env/constants.ts +52 -54
  30. package/src/env/decide-model-config.ts +2 -20
  31. package/src/env/init-debug.ts +6 -11
  32. package/src/env/model-config-manager.ts +3 -9
  33. package/src/env/types.ts +95 -122
  34. package/src/extractor/dom-util.ts +12 -8
  35. package/src/extractor/index.ts +0 -2
  36. package/src/extractor/locator.ts +0 -1
  37. package/src/extractor/tree.ts +4 -4
  38. package/src/extractor/util.ts +0 -32
  39. package/src/node/fs.ts +1 -1
  40. package/src/types/index.ts +9 -2
@@ -1,47 +1,47 @@
1
- import { MIDSCENE_GROUNDING_LOCATOR_MODE, MIDSCENE_GROUNDING_MODEL_API_KEY, MIDSCENE_GROUNDING_MODEL_BASE_URL, MIDSCENE_GROUNDING_MODEL_HTTP_PROXY, MIDSCENE_GROUNDING_MODEL_INIT_CONFIG_JSON, MIDSCENE_GROUNDING_MODEL_NAME, MIDSCENE_GROUNDING_MODEL_SOCKS_PROXY, MIDSCENE_LOCATOR_MODE, MIDSCENE_MODEL_API_KEY, MIDSCENE_MODEL_BASE_URL, MIDSCENE_MODEL_HTTP_PROXY, MIDSCENE_MODEL_INIT_CONFIG_JSON, MIDSCENE_MODEL_NAME, MIDSCENE_MODEL_SOCKS_PROXY, MIDSCENE_PLANNING_LOCATOR_MODE, MIDSCENE_PLANNING_MODEL_API_KEY, MIDSCENE_PLANNING_MODEL_BASE_URL, MIDSCENE_PLANNING_MODEL_HTTP_PROXY, MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON, MIDSCENE_PLANNING_MODEL_NAME, MIDSCENE_PLANNING_MODEL_SOCKS_PROXY, MIDSCENE_VQA_LOCATOR_MODE, MIDSCENE_VQA_MODEL_API_KEY, MIDSCENE_VQA_MODEL_BASE_URL, MIDSCENE_VQA_MODEL_HTTP_PROXY, MIDSCENE_VQA_MODEL_INIT_CONFIG_JSON, MIDSCENE_VQA_MODEL_NAME, MIDSCENE_VQA_MODEL_SOCKS_PROXY, OPENAI_API_KEY, OPENAI_BASE_URL } from "./types.mjs";
1
+ import { 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_VL_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_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_VL_MODE, MIDSCENE_VL_MODE, 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_VL_MODE, OPENAI_API_KEY, OPENAI_BASE_URL } from "./types.mjs";
2
2
  const VQA_MODEL_CONFIG_KEYS = {
3
3
  modelName: MIDSCENE_VQA_MODEL_NAME,
4
- socksProxy: MIDSCENE_VQA_MODEL_SOCKS_PROXY,
5
- httpProxy: MIDSCENE_VQA_MODEL_HTTP_PROXY,
6
- openaiBaseURL: MIDSCENE_VQA_MODEL_BASE_URL,
7
- openaiApiKey: MIDSCENE_VQA_MODEL_API_KEY,
8
- openaiExtraConfig: MIDSCENE_VQA_MODEL_INIT_CONFIG_JSON,
9
- vlMode: MIDSCENE_VQA_LOCATOR_MODE
4
+ socksProxy: MIDSCENE_VQA_OPENAI_SOCKS_PROXY,
5
+ httpProxy: MIDSCENE_VQA_OPENAI_HTTP_PROXY,
6
+ openaiBaseURL: MIDSCENE_VQA_OPENAI_BASE_URL,
7
+ openaiApiKey: MIDSCENE_VQA_OPENAI_API_KEY,
8
+ openaiExtraConfig: MIDSCENE_VQA_OPENAI_INIT_CONFIG_JSON,
9
+ vlMode: MIDSCENE_VQA_VL_MODE
10
10
  };
11
11
  const GROUNDING_MODEL_CONFIG_KEYS = {
12
12
  modelName: MIDSCENE_GROUNDING_MODEL_NAME,
13
- socksProxy: MIDSCENE_GROUNDING_MODEL_SOCKS_PROXY,
14
- httpProxy: MIDSCENE_GROUNDING_MODEL_HTTP_PROXY,
15
- openaiBaseURL: MIDSCENE_GROUNDING_MODEL_BASE_URL,
16
- openaiApiKey: MIDSCENE_GROUNDING_MODEL_API_KEY,
17
- openaiExtraConfig: MIDSCENE_GROUNDING_MODEL_INIT_CONFIG_JSON,
18
- vlMode: MIDSCENE_GROUNDING_LOCATOR_MODE
13
+ socksProxy: MIDSCENE_GROUNDING_OPENAI_SOCKS_PROXY,
14
+ httpProxy: MIDSCENE_GROUNDING_OPENAI_HTTP_PROXY,
15
+ openaiBaseURL: MIDSCENE_GROUNDING_OPENAI_BASE_URL,
16
+ openaiApiKey: MIDSCENE_GROUNDING_OPENAI_API_KEY,
17
+ openaiExtraConfig: MIDSCENE_GROUNDING_OPENAI_INIT_CONFIG_JSON,
18
+ vlMode: MIDSCENE_GROUNDING_VL_MODE
19
19
  };
20
20
  const PLANNING_MODEL_CONFIG_KEYS = {
21
21
  modelName: MIDSCENE_PLANNING_MODEL_NAME,
22
- socksProxy: MIDSCENE_PLANNING_MODEL_SOCKS_PROXY,
23
- httpProxy: MIDSCENE_PLANNING_MODEL_HTTP_PROXY,
24
- openaiBaseURL: MIDSCENE_PLANNING_MODEL_BASE_URL,
25
- openaiApiKey: MIDSCENE_PLANNING_MODEL_API_KEY,
26
- openaiExtraConfig: MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON,
27
- vlMode: MIDSCENE_PLANNING_LOCATOR_MODE
22
+ socksProxy: MIDSCENE_PLANNING_OPENAI_SOCKS_PROXY,
23
+ httpProxy: MIDSCENE_PLANNING_OPENAI_HTTP_PROXY,
24
+ openaiBaseURL: MIDSCENE_PLANNING_OPENAI_BASE_URL,
25
+ openaiApiKey: MIDSCENE_PLANNING_OPENAI_API_KEY,
26
+ openaiExtraConfig: MIDSCENE_PLANNING_OPENAI_INIT_CONFIG_JSON,
27
+ vlMode: MIDSCENE_PLANNING_VL_MODE
28
28
  };
29
29
  const DEFAULT_MODEL_CONFIG_KEYS = {
30
30
  modelName: MIDSCENE_MODEL_NAME,
31
- socksProxy: MIDSCENE_MODEL_SOCKS_PROXY,
32
- httpProxy: MIDSCENE_MODEL_HTTP_PROXY,
33
- openaiBaseURL: MIDSCENE_MODEL_BASE_URL,
34
- openaiApiKey: MIDSCENE_MODEL_API_KEY,
35
- openaiExtraConfig: MIDSCENE_MODEL_INIT_CONFIG_JSON,
36
- vlMode: MIDSCENE_LOCATOR_MODE
31
+ socksProxy: MIDSCENE_OPENAI_SOCKS_PROXY,
32
+ httpProxy: MIDSCENE_OPENAI_HTTP_PROXY,
33
+ openaiBaseURL: MIDSCENE_OPENAI_BASE_URL,
34
+ openaiApiKey: MIDSCENE_OPENAI_API_KEY,
35
+ openaiExtraConfig: MIDSCENE_OPENAI_INIT_CONFIG_JSON,
36
+ vlMode: MIDSCENE_VL_MODE
37
37
  };
38
38
  const DEFAULT_MODEL_CONFIG_KEYS_LEGACY = {
39
39
  modelName: MIDSCENE_MODEL_NAME,
40
- socksProxy: MIDSCENE_MODEL_SOCKS_PROXY,
41
- httpProxy: MIDSCENE_MODEL_HTTP_PROXY,
40
+ socksProxy: MIDSCENE_OPENAI_SOCKS_PROXY,
41
+ httpProxy: MIDSCENE_OPENAI_HTTP_PROXY,
42
42
  openaiBaseURL: OPENAI_BASE_URL,
43
43
  openaiApiKey: OPENAI_API_KEY,
44
- openaiExtraConfig: MIDSCENE_MODEL_INIT_CONFIG_JSON,
44
+ openaiExtraConfig: MIDSCENE_OPENAI_INIT_CONFIG_JSON,
45
45
  vlMode: 'DEFAULT_MODEL_CONFIG_KEYS has no vlMode key'
46
46
  };
47
47
  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,4 @@
1
1
  import { DEFAULT_MODEL_CONFIG_KEYS, DEFAULT_MODEL_CONFIG_KEYS_LEGACY, GROUNDING_MODEL_CONFIG_KEYS, PLANNING_MODEL_CONFIG_KEYS, VQA_MODEL_CONFIG_KEYS } from "./constants.mjs";
2
- import { MODEL_API_KEY, MODEL_BASE_URL } from "./types.mjs";
3
2
  import { getDebug } from "../logger.mjs";
4
3
  import { assert } from "../utils.mjs";
5
4
  import { createAssert, maskConfig, parseJson } from "./helper.mjs";
@@ -18,10 +17,8 @@ const decideOpenaiSdkConfig = ({ keys, provider, valueAssert })=>{
18
17
  const httpProxy = provider[keys.httpProxy];
19
18
  const vlMode = provider[keys.vlMode];
20
19
  debugLog('enter decideOpenaiSdkConfig with keys:', keys);
21
- let openaiBaseURL;
22
- let openaiApiKey;
23
- openaiBaseURL = 'OPENAI_BASE_URL' === keys.openaiBaseURL ? provider[MODEL_BASE_URL] || provider[keys.openaiBaseURL] : provider[keys.openaiBaseURL];
24
- openaiApiKey = 'OPENAI_API_KEY' === keys.openaiApiKey ? provider[MODEL_API_KEY] || provider[keys.openaiApiKey] : provider[keys.openaiApiKey];
20
+ const openaiBaseURL = provider[keys.openaiBaseURL];
21
+ const openaiApiKey = provider[keys.openaiApiKey];
25
22
  const openaiExtraConfig = parseJson(keys.openaiExtraConfig, provider[keys.openaiExtraConfig]);
26
23
  valueAssert(openaiApiKey, keys.openaiApiKey);
27
24
  return {
@@ -1,16 +1,16 @@
1
1
  import { enableDebug } from "../logger.mjs";
2
2
  import { getBasicEnvValue } from "./basic.mjs";
3
- import { MIDSCENE_DEBUG_MODEL_PROFILE, MIDSCENE_DEBUG_MODEL_RESPONSE } from "./types.mjs";
3
+ import { MIDSCENE_DEBUG_AI_PROFILE, MIDSCENE_DEBUG_AI_RESPONSE } from "./types.mjs";
4
4
  const initDebugConfig = ()=>{
5
- const shouldPrintTiming = getBasicEnvValue(MIDSCENE_DEBUG_MODEL_PROFILE);
5
+ const shouldPrintTiming = getBasicEnvValue(MIDSCENE_DEBUG_AI_PROFILE);
6
6
  let debugConfig = '';
7
7
  if (shouldPrintTiming) {
8
- console.warn('MIDSCENE_DEBUG_MODEL_PROFILE is deprecated, use DEBUG=midscene:ai:profile instead');
8
+ console.warn('MIDSCENE_DEBUG_AI_PROFILE is deprecated, use DEBUG=midscene:ai:profile instead');
9
9
  debugConfig = 'ai:profile';
10
10
  }
11
- const shouldPrintModelResponse = getBasicEnvValue(MIDSCENE_DEBUG_MODEL_RESPONSE);
12
- if (shouldPrintModelResponse) {
13
- console.warn('MIDSCENE_DEBUG_MODEL_RESPONSE is deprecated, use DEBUG=midscene:ai:response instead');
11
+ const shouldPrintAIResponse = getBasicEnvValue(MIDSCENE_DEBUG_AI_RESPONSE);
12
+ if (shouldPrintAIResponse) {
13
+ console.warn('MIDSCENE_DEBUG_AI_RESPONSE is deprecated, use DEBUG=midscene:ai:response instead');
14
14
  debugConfig = debugConfig ? 'ai:*' : 'ai:call';
15
15
  }
16
16
  if (debugConfig) enableDebug(debugConfig);
@@ -113,8 +113,7 @@ Learn more: https://midscenejs.com/choose-a-model`);
113
113
  this.createOpenAIClientFn = createOpenAIClientFn;
114
114
  if (modelConfigFn) {
115
115
  this.isolatedMode = true;
116
- const internalFn = modelConfigFn;
117
- const intentConfigMap = this.calcIntentConfigMap(internalFn);
116
+ const intentConfigMap = this.calcIntentConfigMap(modelConfigFn);
118
117
  this.modelConfigMap = this.calcModelConfigMapBaseOnIntent(intentConfigMap);
119
118
  }
120
119
  }
@@ -1,8 +1,8 @@
1
- const MIDSCENE_MODEL_INIT_CONFIG_JSON = 'MIDSCENE_MODEL_INIT_CONFIG_JSON';
1
+ const MIDSCENE_OPENAI_INIT_CONFIG_JSON = 'MIDSCENE_OPENAI_INIT_CONFIG_JSON';
2
2
  const MIDSCENE_MODEL_NAME = 'MIDSCENE_MODEL_NAME';
3
3
  const MIDSCENE_LANGSMITH_DEBUG = 'MIDSCENE_LANGSMITH_DEBUG';
4
- const MIDSCENE_DEBUG_MODEL_PROFILE = 'MIDSCENE_DEBUG_MODEL_PROFILE';
5
- const MIDSCENE_DEBUG_MODEL_RESPONSE = 'MIDSCENE_DEBUG_MODEL_RESPONSE';
4
+ const MIDSCENE_DEBUG_AI_PROFILE = 'MIDSCENE_DEBUG_AI_PROFILE';
5
+ const MIDSCENE_DEBUG_AI_RESPONSE = 'MIDSCENE_DEBUG_AI_RESPONSE';
6
6
  const MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG = 'MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG';
7
7
  const MIDSCENE_DEBUG_MODE = 'MIDSCENE_DEBUG_MODE';
8
8
  const MIDSCENE_MCP_USE_PUPPETEER_MODE = 'MIDSCENE_MCP_USE_PUPPETEER_MODE';
@@ -10,10 +10,8 @@ const MIDSCENE_MCP_CHROME_PATH = 'MIDSCENE_MCP_CHROME_PATH';
10
10
  const MIDSCENE_MCP_ANDROID_MODE = 'MIDSCENE_MCP_ANDROID_MODE';
11
11
  const DOCKER_CONTAINER = 'DOCKER_CONTAINER';
12
12
  const MIDSCENE_FORCE_DEEP_THINK = 'MIDSCENE_FORCE_DEEP_THINK';
13
- const MIDSCENE_MODEL_SOCKS_PROXY = 'MIDSCENE_MODEL_SOCKS_PROXY';
14
- const MIDSCENE_MODEL_HTTP_PROXY = 'MIDSCENE_MODEL_HTTP_PROXY';
15
- const MODEL_API_KEY = 'MODEL_API_KEY';
16
- const MODEL_BASE_URL = 'MODEL_BASE_URL';
13
+ const MIDSCENE_OPENAI_SOCKS_PROXY = 'MIDSCENE_OPENAI_SOCKS_PROXY';
14
+ const MIDSCENE_OPENAI_HTTP_PROXY = 'MIDSCENE_OPENAI_HTTP_PROXY';
17
15
  const OPENAI_API_KEY = 'OPENAI_API_KEY';
18
16
  const OPENAI_BASE_URL = 'OPENAI_BASE_URL';
19
17
  const OPENAI_MAX_TOKENS = 'OPENAI_MAX_TOKENS';
@@ -36,37 +34,37 @@ const MIDSCENE_REPLANNING_CYCLE_LIMIT = 'MIDSCENE_REPLANNING_CYCLE_LIMIT';
36
34
  const MIDSCENE_PREFERRED_LANGUAGE = 'MIDSCENE_PREFERRED_LANGUAGE';
37
35
  const MIDSCENE_CACHE_MAX_FILENAME_LENGTH = 'MIDSCENE_CACHE_MAX_FILENAME_LENGTH';
38
36
  const MIDSCENE_RUN_DIR = 'MIDSCENE_RUN_DIR';
39
- const MIDSCENE_MODEL_BASE_URL = 'MIDSCENE_MODEL_BASE_URL';
40
- const MIDSCENE_MODEL_API_KEY = 'MIDSCENE_MODEL_API_KEY';
41
- const MIDSCENE_LOCATOR_MODE = 'MIDSCENE_LOCATOR_MODE';
37
+ const MIDSCENE_OPENAI_BASE_URL = 'MIDSCENE_OPENAI_BASE_URL';
38
+ const MIDSCENE_OPENAI_API_KEY = 'MIDSCENE_OPENAI_API_KEY';
39
+ const MIDSCENE_VL_MODE = 'MIDSCENE_VL_MODE';
42
40
  const MIDSCENE_VQA_MODEL_NAME = 'MIDSCENE_VQA_MODEL_NAME';
43
- const MIDSCENE_VQA_MODEL_SOCKS_PROXY = 'MIDSCENE_VQA_MODEL_SOCKS_PROXY';
44
- const MIDSCENE_VQA_MODEL_HTTP_PROXY = 'MIDSCENE_VQA_MODEL_HTTP_PROXY';
45
- const MIDSCENE_VQA_MODEL_BASE_URL = 'MIDSCENE_VQA_MODEL_BASE_URL';
46
- const MIDSCENE_VQA_MODEL_API_KEY = 'MIDSCENE_VQA_MODEL_API_KEY';
47
- const MIDSCENE_VQA_MODEL_INIT_CONFIG_JSON = 'MIDSCENE_VQA_MODEL_INIT_CONFIG_JSON';
48
- const MIDSCENE_VQA_LOCATOR_MODE = 'MIDSCENE_VQA_LOCATOR_MODE';
41
+ const MIDSCENE_VQA_OPENAI_SOCKS_PROXY = 'MIDSCENE_VQA_OPENAI_SOCKS_PROXY';
42
+ const MIDSCENE_VQA_OPENAI_HTTP_PROXY = 'MIDSCENE_VQA_OPENAI_HTTP_PROXY';
43
+ const MIDSCENE_VQA_OPENAI_BASE_URL = 'MIDSCENE_VQA_OPENAI_BASE_URL';
44
+ const MIDSCENE_VQA_OPENAI_API_KEY = 'MIDSCENE_VQA_OPENAI_API_KEY';
45
+ const MIDSCENE_VQA_OPENAI_INIT_CONFIG_JSON = 'MIDSCENE_VQA_OPENAI_INIT_CONFIG_JSON';
46
+ const MIDSCENE_VQA_VL_MODE = 'MIDSCENE_VQA_VL_MODE';
49
47
  const MIDSCENE_PLANNING_MODEL_NAME = 'MIDSCENE_PLANNING_MODEL_NAME';
50
- const MIDSCENE_PLANNING_MODEL_SOCKS_PROXY = 'MIDSCENE_PLANNING_MODEL_SOCKS_PROXY';
51
- const MIDSCENE_PLANNING_MODEL_HTTP_PROXY = 'MIDSCENE_PLANNING_MODEL_HTTP_PROXY';
52
- const MIDSCENE_PLANNING_MODEL_BASE_URL = 'MIDSCENE_PLANNING_MODEL_BASE_URL';
53
- const MIDSCENE_PLANNING_MODEL_API_KEY = 'MIDSCENE_PLANNING_MODEL_API_KEY';
54
- const MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON = 'MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON';
55
- const MIDSCENE_PLANNING_LOCATOR_MODE = 'MIDSCENE_PLANNING_LOCATOR_MODE';
48
+ const MIDSCENE_PLANNING_OPENAI_SOCKS_PROXY = 'MIDSCENE_PLANNING_OPENAI_SOCKS_PROXY';
49
+ const MIDSCENE_PLANNING_OPENAI_HTTP_PROXY = 'MIDSCENE_PLANNING_OPENAI_HTTP_PROXY';
50
+ const MIDSCENE_PLANNING_OPENAI_BASE_URL = 'MIDSCENE_PLANNING_OPENAI_BASE_URL';
51
+ const MIDSCENE_PLANNING_OPENAI_API_KEY = 'MIDSCENE_PLANNING_OPENAI_API_KEY';
52
+ const MIDSCENE_PLANNING_OPENAI_INIT_CONFIG_JSON = 'MIDSCENE_PLANNING_OPENAI_INIT_CONFIG_JSON';
53
+ const MIDSCENE_PLANNING_VL_MODE = 'MIDSCENE_PLANNING_VL_MODE';
56
54
  const MIDSCENE_GROUNDING_MODEL_NAME = 'MIDSCENE_GROUNDING_MODEL_NAME';
57
- const MIDSCENE_GROUNDING_MODEL_SOCKS_PROXY = 'MIDSCENE_GROUNDING_MODEL_SOCKS_PROXY';
58
- const MIDSCENE_GROUNDING_MODEL_HTTP_PROXY = 'MIDSCENE_GROUNDING_MODEL_HTTP_PROXY';
59
- const MIDSCENE_GROUNDING_MODEL_BASE_URL = 'MIDSCENE_GROUNDING_MODEL_BASE_URL';
60
- const MIDSCENE_GROUNDING_MODEL_API_KEY = 'MIDSCENE_GROUNDING_MODEL_API_KEY';
61
- const MIDSCENE_GROUNDING_MODEL_INIT_CONFIG_JSON = 'MIDSCENE_GROUNDING_MODEL_INIT_CONFIG_JSON';
62
- const MIDSCENE_GROUNDING_LOCATOR_MODE = 'MIDSCENE_GROUNDING_LOCATOR_MODE';
55
+ const MIDSCENE_GROUNDING_OPENAI_SOCKS_PROXY = 'MIDSCENE_GROUNDING_OPENAI_SOCKS_PROXY';
56
+ const MIDSCENE_GROUNDING_OPENAI_HTTP_PROXY = 'MIDSCENE_GROUNDING_OPENAI_HTTP_PROXY';
57
+ const MIDSCENE_GROUNDING_OPENAI_BASE_URL = 'MIDSCENE_GROUNDING_OPENAI_BASE_URL';
58
+ const MIDSCENE_GROUNDING_OPENAI_API_KEY = 'MIDSCENE_GROUNDING_OPENAI_API_KEY';
59
+ const MIDSCENE_GROUNDING_OPENAI_INIT_CONFIG_JSON = 'MIDSCENE_GROUNDING_OPENAI_INIT_CONFIG_JSON';
60
+ const MIDSCENE_GROUNDING_VL_MODE = 'MIDSCENE_GROUNDING_VL_MODE';
63
61
  const UNUSED_ENV_KEYS = [
64
62
  MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG
65
63
  ];
66
64
  const BASIC_ENV_KEYS = [
67
65
  MIDSCENE_DEBUG_MODE,
68
- MIDSCENE_DEBUG_MODEL_PROFILE,
69
- MIDSCENE_DEBUG_MODEL_RESPONSE,
66
+ MIDSCENE_DEBUG_AI_PROFILE,
67
+ MIDSCENE_DEBUG_AI_RESPONSE,
70
68
  MIDSCENE_RUN_DIR
71
69
  ];
72
70
  const BOOLEAN_ENV_KEYS = [
@@ -101,43 +99,41 @@ const GLOBAL_ENV_KEYS = [
101
99
  ];
102
100
  const MODEL_ENV_KEYS = [
103
101
  MIDSCENE_MODEL_NAME,
104
- MIDSCENE_MODEL_INIT_CONFIG_JSON,
105
- MIDSCENE_MODEL_API_KEY,
106
- MIDSCENE_MODEL_BASE_URL,
107
- MIDSCENE_MODEL_SOCKS_PROXY,
108
- MIDSCENE_MODEL_HTTP_PROXY,
102
+ MIDSCENE_OPENAI_INIT_CONFIG_JSON,
103
+ MIDSCENE_OPENAI_API_KEY,
104
+ MIDSCENE_OPENAI_BASE_URL,
105
+ MIDSCENE_OPENAI_SOCKS_PROXY,
106
+ MIDSCENE_OPENAI_HTTP_PROXY,
109
107
  MIDSCENE_USE_VLM_UI_TARS,
110
108
  MIDSCENE_USE_QWEN_VL,
111
109
  MIDSCENE_USE_QWEN3_VL,
112
110
  MIDSCENE_USE_DOUBAO_VISION,
113
111
  MIDSCENE_USE_GEMINI,
114
112
  MIDSCENE_USE_VL_MODEL,
115
- MIDSCENE_LOCATOR_MODE,
113
+ MIDSCENE_VL_MODE,
116
114
  OPENAI_API_KEY,
117
115
  OPENAI_BASE_URL,
118
- MODEL_API_KEY,
119
- MODEL_BASE_URL,
120
116
  MIDSCENE_VQA_MODEL_NAME,
121
- MIDSCENE_VQA_MODEL_SOCKS_PROXY,
122
- MIDSCENE_VQA_MODEL_HTTP_PROXY,
123
- MIDSCENE_VQA_MODEL_BASE_URL,
124
- MIDSCENE_VQA_MODEL_API_KEY,
125
- MIDSCENE_VQA_MODEL_INIT_CONFIG_JSON,
126
- MIDSCENE_VQA_LOCATOR_MODE,
117
+ MIDSCENE_VQA_OPENAI_SOCKS_PROXY,
118
+ MIDSCENE_VQA_OPENAI_HTTP_PROXY,
119
+ MIDSCENE_VQA_OPENAI_BASE_URL,
120
+ MIDSCENE_VQA_OPENAI_API_KEY,
121
+ MIDSCENE_VQA_OPENAI_INIT_CONFIG_JSON,
122
+ MIDSCENE_VQA_VL_MODE,
127
123
  MIDSCENE_PLANNING_MODEL_NAME,
128
- MIDSCENE_PLANNING_MODEL_SOCKS_PROXY,
129
- MIDSCENE_PLANNING_MODEL_HTTP_PROXY,
130
- MIDSCENE_PLANNING_MODEL_BASE_URL,
131
- MIDSCENE_PLANNING_MODEL_API_KEY,
132
- MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON,
133
- MIDSCENE_PLANNING_LOCATOR_MODE,
124
+ MIDSCENE_PLANNING_OPENAI_SOCKS_PROXY,
125
+ MIDSCENE_PLANNING_OPENAI_HTTP_PROXY,
126
+ MIDSCENE_PLANNING_OPENAI_BASE_URL,
127
+ MIDSCENE_PLANNING_OPENAI_API_KEY,
128
+ MIDSCENE_PLANNING_OPENAI_INIT_CONFIG_JSON,
129
+ MIDSCENE_PLANNING_VL_MODE,
134
130
  MIDSCENE_GROUNDING_MODEL_NAME,
135
- MIDSCENE_GROUNDING_MODEL_SOCKS_PROXY,
136
- MIDSCENE_GROUNDING_MODEL_HTTP_PROXY,
137
- MIDSCENE_GROUNDING_MODEL_BASE_URL,
138
- MIDSCENE_GROUNDING_MODEL_API_KEY,
139
- MIDSCENE_GROUNDING_MODEL_INIT_CONFIG_JSON,
140
- MIDSCENE_GROUNDING_LOCATOR_MODE
131
+ MIDSCENE_GROUNDING_OPENAI_SOCKS_PROXY,
132
+ MIDSCENE_GROUNDING_OPENAI_HTTP_PROXY,
133
+ MIDSCENE_GROUNDING_OPENAI_BASE_URL,
134
+ MIDSCENE_GROUNDING_OPENAI_API_KEY,
135
+ MIDSCENE_GROUNDING_OPENAI_INIT_CONFIG_JSON,
136
+ MIDSCENE_GROUNDING_VL_MODE
141
137
  ];
142
138
  const ALL_ENV_KEYS = [
143
139
  ...UNUSED_ENV_KEYS,
@@ -161,4 +157,4 @@ const VL_MODE_RAW_VALID_VALUES = [
161
157
  'vlm-ui-tars-doubao',
162
158
  'vlm-ui-tars-doubao-1.5'
163
159
  ];
164
- export { ALL_ENV_KEYS, 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_CACHE, MIDSCENE_CACHE_MAX_FILENAME_LENGTH, MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG, MIDSCENE_DEBUG_MODE, MIDSCENE_DEBUG_MODEL_PROFILE, MIDSCENE_DEBUG_MODEL_RESPONSE, MIDSCENE_FORCE_DEEP_THINK, MIDSCENE_GROUNDING_LOCATOR_MODE, MIDSCENE_GROUNDING_MODEL_API_KEY, MIDSCENE_GROUNDING_MODEL_BASE_URL, MIDSCENE_GROUNDING_MODEL_HTTP_PROXY, MIDSCENE_GROUNDING_MODEL_INIT_CONFIG_JSON, MIDSCENE_GROUNDING_MODEL_NAME, MIDSCENE_GROUNDING_MODEL_SOCKS_PROXY, MIDSCENE_IOS_DEVICE_UDID, MIDSCENE_IOS_SIMULATOR_UDID, MIDSCENE_LANGSMITH_DEBUG, MIDSCENE_LOCATOR_MODE, MIDSCENE_MCP_ANDROID_MODE, MIDSCENE_MCP_CHROME_PATH, MIDSCENE_MCP_USE_PUPPETEER_MODE, MIDSCENE_MODEL_API_KEY, MIDSCENE_MODEL_BASE_URL, MIDSCENE_MODEL_HTTP_PROXY, MIDSCENE_MODEL_INIT_CONFIG_JSON, MIDSCENE_MODEL_NAME, MIDSCENE_MODEL_SOCKS_PROXY, MIDSCENE_PLANNING_LOCATOR_MODE, MIDSCENE_PLANNING_MODEL_API_KEY, MIDSCENE_PLANNING_MODEL_BASE_URL, MIDSCENE_PLANNING_MODEL_HTTP_PROXY, MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON, MIDSCENE_PLANNING_MODEL_NAME, MIDSCENE_PLANNING_MODEL_SOCKS_PROXY, MIDSCENE_PREFERRED_LANGUAGE, MIDSCENE_REPLANNING_CYCLE_LIMIT, MIDSCENE_REPORT_TAG_NAME, MIDSCENE_RUN_DIR, 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_VQA_LOCATOR_MODE, MIDSCENE_VQA_MODEL_API_KEY, MIDSCENE_VQA_MODEL_BASE_URL, MIDSCENE_VQA_MODEL_HTTP_PROXY, MIDSCENE_VQA_MODEL_INIT_CONFIG_JSON, MIDSCENE_VQA_MODEL_NAME, MIDSCENE_VQA_MODEL_SOCKS_PROXY, MODEL_API_KEY, MODEL_BASE_URL, MODEL_ENV_KEYS, NUMBER_ENV_KEYS, OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MAX_TOKENS, STRING_ENV_KEYS, types_UITarsModelVersion as UITarsModelVersion, UNUSED_ENV_KEYS, VL_MODE_RAW_VALID_VALUES };
160
+ export { ALL_ENV_KEYS, 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_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_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_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_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_VL_MODE, MIDSCENE_PREFERRED_LANGUAGE, MIDSCENE_REPLANNING_CYCLE_LIMIT, MIDSCENE_REPORT_TAG_NAME, MIDSCENE_RUN_DIR, 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_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_VL_MODE, MODEL_ENV_KEYS, NUMBER_ENV_KEYS, OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MAX_TOKENS, STRING_ENV_KEYS, types_UITarsModelVersion as UITarsModelVersion, UNUSED_ENV_KEYS, VL_MODE_RAW_VALID_VALUES };
@@ -1,4 +1,3 @@
1
- import { NodeType } from "../constants/index.mjs";
2
1
  import { generateHashId } from "../utils.mjs";
3
2
  function isFormElement(node) {
4
3
  return node instanceof HTMLElement && ('input' === node.tagName.toLowerCase() || 'textarea' === node.tagName.toLowerCase() || 'select' === node.tagName.toLowerCase() || 'option' === node.tagName.toLowerCase());
@@ -68,24 +67,23 @@ function includeBaseElement(node) {
68
67
  return false;
69
68
  }
70
69
  function generateElementByPosition(position) {
70
+ const edgeSize = 8;
71
71
  const rect = {
72
- left: Math.max(position.x - 4, 0),
73
- top: Math.max(position.y - 4, 0),
74
- width: 8,
75
- height: 8
72
+ left: Math.round(Math.max(position.x - edgeSize / 2, 0)),
73
+ top: Math.round(Math.max(position.y - edgeSize / 2, 0)),
74
+ width: edgeSize,
75
+ height: edgeSize
76
76
  };
77
77
  const id = generateHashId(rect);
78
78
  const element = {
79
79
  id,
80
- attributes: {
81
- nodeType: NodeType.POSITION
82
- },
83
80
  rect,
84
81
  content: '',
85
82
  center: [
86
83
  position.x,
87
84
  position.y
88
- ]
85
+ ],
86
+ isOrderSensitive: false
89
87
  };
90
88
  return element;
91
89
  }
@@ -1,6 +1,5 @@
1
1
  import { descriptionOfTree, traverseTree, treeToList, trimAttributes, truncateText } from "./tree.mjs";
2
2
  import { extractTextWithPosition, extractTreeNode, extractTreeNodeAsString } from "./web-extractor.mjs";
3
- import { getNodeFromCacheList, setNodeHashCacheListOnWindow } from "./util.mjs";
4
3
  import { getElementInfoByXpath, getElementXpath, getNodeInfoByXpath, getXpathsByPoint } from "./locator.mjs";
5
4
  import { generateElementByPosition, isNotContainerElement } from "./dom-util.mjs";
6
- export { descriptionOfTree, generateElementByPosition, getElementInfoByXpath, getElementXpath, getNodeFromCacheList, getNodeInfoByXpath, getXpathsByPoint, isNotContainerElement, setNodeHashCacheListOnWindow, traverseTree, treeToList, trimAttributes, truncateText, extractTreeNode as webExtractNodeTree, extractTreeNodeAsString as webExtractNodeTreeAsString, extractTextWithPosition as webExtractTextWithPosition };
5
+ export { descriptionOfTree, generateElementByPosition, getElementInfoByXpath, getElementXpath, getNodeInfoByXpath, getXpathsByPoint, isNotContainerElement, traverseTree, treeToList, trimAttributes, truncateText, extractTreeNode as webExtractNodeTree, extractTreeNodeAsString as webExtractNodeTreeAsString, extractTextWithPosition as webExtractTextWithPosition };
@@ -34,15 +34,13 @@ function descriptionOfTree(tree, truncateTextLength, filterNonTextContent = fals
34
34
  emptyNode = false;
35
35
  let nodeTypeString;
36
36
  nodeTypeString = (null == (_node_node_attributes = node.node.attributes) ? void 0 : _node_node_attributes.htmlTagName) ? node.node.attributes.htmlTagName.replace(/[<>]/g, '') : node.node.attributes.nodeType.replace(/\sNode$/, '').toLowerCase();
37
- const markerId = node.node.indexId;
38
- const markerIdString = markerId ? `markerId="${markerId}"` : '';
39
37
  const rectAttribute = node.node.rect ? {
40
38
  left: node.node.rect.left,
41
39
  top: node.node.rect.top,
42
40
  width: node.node.rect.width,
43
41
  height: node.node.rect.height
44
42
  } : {};
45
- before = `<${nodeTypeString} id="${node.node.id}" ${markerIdString} ${attributesString(trimAttributes(node.node.attributes || {}, truncateTextLength))} ${attributesString(rectAttribute)}>`;
43
+ before = `<${nodeTypeString} id="${node.node.id}" ${attributesString(trimAttributes(node.node.attributes || {}, truncateTextLength))} ${attributesString(rectAttribute)}>`;
46
44
  const content = truncateText(node.node.content, truncateTextLength);
47
45
  contentWithIndent = content ? `\n${indentStr} ${content}` : '';
48
46
  after = `</${nodeTypeString}>`;
@@ -199,32 +199,8 @@ function getNodeAttributes(node, currentWindow) {
199
199
  }
200
200
  function midsceneGenerateHash(node, content, rect) {
201
201
  const slicedHash = generateHashId(rect, content);
202
- if (node) {
203
- if (!window.midsceneNodeHashCacheList) setNodeHashCacheListOnWindow();
204
- setNodeToCacheList(node, slicedHash);
205
- }
206
202
  return slicedHash;
207
203
  }
208
- function setNodeHashCacheListOnWindow() {
209
- if ('undefined' != typeof window) window.midsceneNodeHashCacheList = [];
210
- }
211
- function setNodeToCacheList(node, id) {
212
- if ('undefined' != typeof window) {
213
- var _window_midsceneNodeHashCacheList;
214
- if (getNodeFromCacheList(id)) return;
215
- null == (_window_midsceneNodeHashCacheList = window.midsceneNodeHashCacheList) || _window_midsceneNodeHashCacheList.push({
216
- node,
217
- id
218
- });
219
- }
220
- }
221
- function getNodeFromCacheList(id) {
222
- if ('undefined' != typeof window) {
223
- var _window_midsceneNodeHashCacheList_find, _window_midsceneNodeHashCacheList;
224
- return null == (_window_midsceneNodeHashCacheList = window.midsceneNodeHashCacheList) ? void 0 : null == (_window_midsceneNodeHashCacheList_find = _window_midsceneNodeHashCacheList.find((item)=>item.id === id)) ? void 0 : _window_midsceneNodeHashCacheList_find.node;
225
- }
226
- return null;
227
- }
228
204
  function generateId(numberId) {
229
205
  return `${numberId}`;
230
206
  }
@@ -241,4 +217,4 @@ function getTopDocument() {
241
217
  const container = document.body || document;
242
218
  return container;
243
219
  }
244
- export { elementRect, generateId, getDebugMode, getNodeAttributes, getNodeFromCacheList, getPseudoElementContent, getRect, getTopDocument, hasOverflowY, isElementPartiallyInViewport, logger, midsceneGenerateHash, overlappedRect, setDebugMode, setExtractTextWithPositionOnWindow, setGenerateHashOnWindow, setMidsceneVisibleRectOnWindow, setNodeHashCacheListOnWindow, setNodeToCacheList, validTextNodeContent };
220
+ export { elementRect, generateId, getDebugMode, getNodeAttributes, getPseudoElementContent, getRect, getTopDocument, hasOverflowY, isElementPartiallyInViewport, logger, midsceneGenerateHash, overlappedRect, setDebugMode, setExtractTextWithPositionOnWindow, setGenerateHashOnWindow, setMidsceneVisibleRectOnWindow, validTextNodeContent };