@rpascene/shared 0.30.8
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 +9 -0
- package/dist/es/baseDB.mjs +109 -0
- package/dist/es/build/copy-static.mjs +29 -0
- package/dist/es/common.mjs +37 -0
- package/dist/es/constants/example-code.mjs +202 -0
- package/dist/es/constants/index.mjs +74 -0
- package/dist/es/env/basic.mjs +6 -0
- package/dist/es/env/constants.mjs +97 -0
- package/dist/es/env/decide-model-config.mjs +172 -0
- package/dist/es/env/global-config-manager.mjs +82 -0
- package/dist/es/env/helper.mjs +45 -0
- package/dist/es/env/index.mjs +5 -0
- package/dist/es/env/init-debug.mjs +18 -0
- package/dist/es/env/model-config-manager.mjs +99 -0
- package/dist/es/env/parse.mjs +69 -0
- package/dist/es/env/types.mjs +265 -0
- package/dist/es/env/utils.mjs +18 -0
- package/dist/es/extractor/constants.mjs +2 -0
- package/dist/es/extractor/cs_postmessage.mjs +61 -0
- package/dist/es/extractor/customLocator.mjs +646 -0
- package/dist/es/extractor/debug.mjs +6 -0
- package/dist/es/extractor/dom-util.mjs +92 -0
- package/dist/es/extractor/index.mjs +7 -0
- package/dist/es/extractor/locator.mjs +95 -0
- package/dist/es/extractor/tree.mjs +81 -0
- package/dist/es/extractor/util.mjs +244 -0
- package/dist/es/extractor/web-extractor.mjs +361 -0
- package/dist/es/img/box-select.mjs +184 -0
- package/dist/es/img/draw-box.mjs +42 -0
- package/dist/es/img/get-jimp.mjs +10 -0
- package/dist/es/img/get-photon.mjs +19 -0
- package/dist/es/img/get-sharp.mjs +11 -0
- package/dist/es/img/index.mjs +5 -0
- package/dist/es/img/info.mjs +32 -0
- package/dist/es/img/transform.mjs +192 -0
- package/dist/es/index.mjs +3 -0
- package/dist/es/logger.mjs +61 -0
- package/dist/es/node/fs.mjs +44 -0
- package/dist/es/node/index.mjs +1 -0
- package/dist/es/polyfills/async-hooks.mjs +2 -0
- package/dist/es/polyfills/index.mjs +1 -0
- package/dist/es/types/index.mjs +3 -0
- package/dist/es/us-keyboard-layout.mjs +1414 -0
- package/dist/es/us-keyboard-layout.mjs.LICENSE.txt +5 -0
- package/dist/es/utils.mjs +66 -0
- package/dist/lib/baseDB.js +149 -0
- package/dist/lib/build/copy-static.js +77 -0
- package/dist/lib/common.js +93 -0
- package/dist/lib/constants/example-code.js +239 -0
- package/dist/lib/constants/index.js +153 -0
- package/dist/lib/env/basic.js +40 -0
- package/dist/lib/env/constants.js +143 -0
- package/dist/lib/env/decide-model-config.js +212 -0
- package/dist/lib/env/global-config-manager.js +116 -0
- package/dist/lib/env/helper.js +85 -0
- package/dist/lib/env/index.js +94 -0
- package/dist/lib/env/init-debug.js +52 -0
- package/dist/lib/env/model-config-manager.js +133 -0
- package/dist/lib/env/parse.js +106 -0
- package/dist/lib/env/types.js +650 -0
- package/dist/lib/env/utils.js +61 -0
- package/dist/lib/extractor/constants.js +42 -0
- package/dist/lib/extractor/cs_postmessage.js +98 -0
- package/dist/lib/extractor/customLocator.js +698 -0
- package/dist/lib/extractor/debug.js +12 -0
- package/dist/lib/extractor/dom-util.js +150 -0
- package/dist/lib/extractor/index.js +153 -0
- package/dist/lib/extractor/locator.js +141 -0
- package/dist/lib/extractor/tree.js +127 -0
- package/dist/lib/extractor/util.js +335 -0
- package/dist/lib/extractor/web-extractor.js +407 -0
- package/dist/lib/img/box-select.js +232 -0
- package/dist/lib/img/draw-box.js +89 -0
- package/dist/lib/img/get-jimp.js +72 -0
- package/dist/lib/img/get-photon.js +76 -0
- package/dist/lib/img/get-sharp.js +63 -0
- package/dist/lib/img/index.js +102 -0
- package/dist/lib/img/info.js +86 -0
- package/dist/lib/img/transform.js +279 -0
- package/dist/lib/index.js +43 -0
- package/dist/lib/logger.js +114 -0
- package/dist/lib/node/fs.js +97 -0
- package/dist/lib/node/index.js +60 -0
- package/dist/lib/polyfills/async-hooks.js +36 -0
- package/dist/lib/polyfills/index.js +60 -0
- package/dist/lib/types/index.js +37 -0
- package/dist/lib/us-keyboard-layout.js +1457 -0
- package/dist/lib/us-keyboard-layout.js.LICENSE.txt +5 -0
- package/dist/lib/utils.js +136 -0
- package/dist/types/baseDB.d.ts +25 -0
- package/dist/types/build/copy-static.d.ts +31 -0
- package/dist/types/common.d.ts +12 -0
- package/dist/types/constants/example-code.d.ts +2 -0
- package/dist/types/constants/index.d.ts +23 -0
- package/dist/types/env/basic.d.ts +6 -0
- package/dist/types/env/constants.d.ts +40 -0
- package/dist/types/env/decide-model-config.d.ts +14 -0
- package/dist/types/env/global-config-manager.d.ts +32 -0
- package/dist/types/env/helper.d.ts +6 -0
- package/dist/types/env/index.d.ts +4 -0
- package/dist/types/env/init-debug.d.ts +1 -0
- package/dist/types/env/model-config-manager.d.ts +24 -0
- package/dist/types/env/parse.d.ts +12 -0
- package/dist/types/env/types.d.ts +295 -0
- package/dist/types/env/utils.d.ts +7 -0
- package/dist/types/extractor/constants.d.ts +1 -0
- package/dist/types/extractor/cs_postmessage.d.ts +2 -0
- package/dist/types/extractor/customLocator.d.ts +69 -0
- package/dist/types/extractor/debug.d.ts +1 -0
- package/dist/types/extractor/dom-util.d.ts +26 -0
- package/dist/types/extractor/index.d.ts +36 -0
- package/dist/types/extractor/locator.d.ts +7 -0
- package/dist/types/extractor/tree.d.ts +9 -0
- package/dist/types/extractor/util.d.ts +43 -0
- package/dist/types/extractor/web-extractor.d.ts +19 -0
- package/dist/types/img/box-select.d.ts +25 -0
- package/dist/types/img/draw-box.d.ts +15 -0
- package/dist/types/img/get-jimp.d.ts +2 -0
- package/dist/types/img/get-photon.d.ts +8 -0
- package/dist/types/img/get-sharp.d.ts +3 -0
- package/dist/types/img/index.d.ts +4 -0
- package/dist/types/img/info.d.ts +29 -0
- package/dist/types/img/transform.d.ts +88 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/logger.d.ts +4 -0
- package/dist/types/node/fs.d.ts +15 -0
- package/dist/types/node/index.d.ts +1 -0
- package/dist/types/polyfills/async-hooks.d.ts +6 -0
- package/dist/types/polyfills/index.d.ts +4 -0
- package/dist/types/types/index.d.ts +37 -0
- package/dist/types/us-keyboard-layout.d.ts +32 -0
- package/dist/types/utils.d.ts +22 -0
- package/package.json +102 -0
- package/src/baseDB.ts +158 -0
- package/src/build/copy-static.ts +62 -0
- package/src/common.ts +67 -0
- package/src/constants/example-code.ts +202 -0
- package/src/constants/index.ts +81 -0
- package/src/env/basic.ts +12 -0
- package/src/env/constants.ts +291 -0
- package/src/env/decide-model-config.ts +319 -0
- package/src/env/global-config-manager.ts +174 -0
- package/src/env/helper.ts +80 -0
- package/src/env/index.ts +4 -0
- package/src/env/init-debug.ts +29 -0
- package/src/env/model-config-manager.ts +145 -0
- package/src/env/parse.ts +131 -0
- package/src/env/types.ts +573 -0
- package/src/env/utils.ts +39 -0
- package/src/extractor/constants.ts +5 -0
- package/src/extractor/cs_postmessage.ts +101 -0
- package/src/extractor/customLocator.ts +1138 -0
- package/src/extractor/debug.ts +10 -0
- package/src/extractor/dom-util.ts +141 -0
- package/src/extractor/index.ts +54 -0
- package/src/extractor/locator.ts +179 -0
- package/src/extractor/tree.ts +179 -0
- package/src/extractor/util.ts +468 -0
- package/src/extractor/web-extractor.ts +559 -0
- package/src/img/box-select.ts +346 -0
- package/src/img/draw-box.ts +60 -0
- package/src/img/get-jimp.ts +12 -0
- package/src/img/get-photon.ts +48 -0
- package/src/img/get-sharp.ts +18 -0
- package/src/img/index.ts +24 -0
- package/src/img/info.ts +79 -0
- package/src/img/jimp.d.ts +4 -0
- package/src/img/transform.ts +396 -0
- package/src/index.ts +6 -0
- package/src/logger.ts +93 -0
- package/src/node/fs.ts +84 -0
- package/src/node/index.ts +1 -0
- package/src/polyfills/async-hooks.ts +6 -0
- package/src/polyfills/index.ts +4 -0
- package/src/types/index.ts +53 -0
- package/src/us-keyboard-layout.ts +723 -0
- package/src/utils.ts +127 -0
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
const RPASCENE_OPENAI_INIT_CONFIG_JSON = 'RPASCENE_OPENAI_INIT_CONFIG_JSON';
|
|
2
|
+
const RPASCENE_MODEL_NAME = 'RPASCENE_MODEL_NAME';
|
|
3
|
+
const RPASCENE_LANGSMITH_DEBUG = 'RPASCENE_LANGSMITH_DEBUG';
|
|
4
|
+
const RPASCENE_DEBUG_AI_PROFILE = 'RPASCENE_DEBUG_AI_PROFILE';
|
|
5
|
+
const RPASCENE_DEBUG_AI_RESPONSE = 'RPASCENE_DEBUG_AI_RESPONSE';
|
|
6
|
+
const RPASCENE_DANGEROUSLY_PRINT_ALL_CONFIG = 'RPASCENE_DANGEROUSLY_PRINT_ALL_CONFIG';
|
|
7
|
+
const RPASCENE_DEBUG_MODE = 'RPASCENE_DEBUG_MODE';
|
|
8
|
+
const RPASCENE_MCP_USE_PUPPETEER_MODE = 'RPASCENE_MCP_USE_PUPPETEER_MODE';
|
|
9
|
+
const RPASCENE_MCP_CHROME_PATH = 'RPASCENE_MCP_CHROME_PATH';
|
|
10
|
+
const RPASCENE_MCP_ANDROID_MODE = 'RPASCENE_MCP_ANDROID_MODE';
|
|
11
|
+
const DOCKER_CONTAINER = 'DOCKER_CONTAINER';
|
|
12
|
+
const RPASCENE_FORCE_DEEP_THINK = 'RPASCENE_FORCE_DEEP_THINK';
|
|
13
|
+
const RPASCENE_OPENAI_SOCKS_PROXY = 'RPASCENE_OPENAI_SOCKS_PROXY';
|
|
14
|
+
const RPASCENE_OPENAI_HTTP_PROXY = 'RPASCENE_OPENAI_HTTP_PROXY';
|
|
15
|
+
const OPENAI_API_KEY = 'OPENAI_API_KEY';
|
|
16
|
+
const OPENAI_BASE_URL = 'OPENAI_BASE_URL';
|
|
17
|
+
const OPENAI_MAX_TOKENS = 'OPENAI_MAX_TOKENS';
|
|
18
|
+
const RPASCENE_ADB_PATH = 'RPASCENE_ADB_PATH';
|
|
19
|
+
const RPASCENE_ADB_REMOTE_HOST = 'RPASCENE_ADB_REMOTE_HOST';
|
|
20
|
+
const RPASCENE_ADB_REMOTE_PORT = 'RPASCENE_ADB_REMOTE_PORT';
|
|
21
|
+
const RPASCENE_ANDROID_IME_STRATEGY = 'RPASCENE_ANDROID_IME_STRATEGY';
|
|
22
|
+
const RPASCENE_IOS_DEVICE_UDID = 'RPASCENE_IOS_DEVICE_UDID';
|
|
23
|
+
const RPASCENE_IOS_SIMULATOR_UDID = 'RPASCENE_IOS_SIMULATOR_UDID';
|
|
24
|
+
const RPASCENE_CACHE = 'RPASCENE_CACHE';
|
|
25
|
+
const RPASCENE_USE_VLM_UI_TARS = 'RPASCENE_USE_VLM_UI_TARS';
|
|
26
|
+
const RPASCENE_USE_QWEN_VL = 'RPASCENE_USE_QWEN_VL';
|
|
27
|
+
const RPASCENE_USE_QWEN3_VL = 'RPASCENE_USE_QWEN3_VL';
|
|
28
|
+
const RPASCENE_USE_DOUBAO_VISION = 'RPASCENE_USE_DOUBAO_VISION';
|
|
29
|
+
const RPASCENE_USE_GEMINI = 'RPASCENE_USE_GEMINI';
|
|
30
|
+
const RPASCENE_USE_VL_MODEL = 'RPASCENE_USE_VL_MODEL';
|
|
31
|
+
const MATCH_BY_POSITION = 'MATCH_BY_POSITION';
|
|
32
|
+
const RPASCENE_API_TYPE = 'RPASCENE-API-TYPE';
|
|
33
|
+
const RPASCENE_REPORT_TAG_NAME = 'RPASCENE_REPORT_TAG_NAME';
|
|
34
|
+
const RPASCENE_REPLANNING_CYCLE_LIMIT = 'RPASCENE_REPLANNING_CYCLE_LIMIT';
|
|
35
|
+
const RPASCENE_PREFERRED_LANGUAGE = 'RPASCENE_PREFERRED_LANGUAGE';
|
|
36
|
+
const RPASCENE_USE_AZURE_OPENAI = 'RPASCENE_USE_AZURE_OPENAI';
|
|
37
|
+
const RPASCENE_AZURE_OPENAI_SCOPE = 'RPASCENE_AZURE_OPENAI_SCOPE';
|
|
38
|
+
const RPASCENE_AZURE_OPENAI_INIT_CONFIG_JSON = 'RPASCENE_AZURE_OPENAI_INIT_CONFIG_JSON';
|
|
39
|
+
const RPASCENE_CACHE_MAX_FILENAME_LENGTH = 'RPASCENE_CACHE_MAX_FILENAME_LENGTH';
|
|
40
|
+
const AZURE_OPENAI_ENDPOINT = 'AZURE_OPENAI_ENDPOINT';
|
|
41
|
+
const AZURE_OPENAI_KEY = 'AZURE_OPENAI_KEY';
|
|
42
|
+
const AZURE_OPENAI_API_VERSION = 'AZURE_OPENAI_API_VERSION';
|
|
43
|
+
const AZURE_OPENAI_DEPLOYMENT = 'AZURE_OPENAI_DEPLOYMENT';
|
|
44
|
+
const RPASCENE_USE_ANTHROPIC_SDK = 'RPASCENE_USE_ANTHROPIC_SDK';
|
|
45
|
+
const ANTHROPIC_API_KEY = 'ANTHROPIC_API_KEY';
|
|
46
|
+
const RPASCENE_RUN_DIR = 'RPASCENE_RUN_DIR';
|
|
47
|
+
const RPASCENE_OPENAI_BASE_URL = 'RPASCENE_OPENAI_BASE_URL';
|
|
48
|
+
const RPASCENE_OPENAI_API_KEY = 'RPASCENE_OPENAI_API_KEY';
|
|
49
|
+
const RPASCENE_OPENAI_USE_AZURE = 'RPASCENE_OPENAI_USE_AZURE';
|
|
50
|
+
const RPASCENE_AZURE_OPENAI_KEY = 'RPASCENE_AZURE_OPENAI_KEY';
|
|
51
|
+
const RPASCENE_AZURE_OPENAI_ENDPOINT = 'RPASCENE_AZURE_OPENAI_ENDPOINT';
|
|
52
|
+
const RPASCENE_AZURE_OPENAI_API_VERSION = 'RPASCENE_AZURE_OPENAI_API_VERSION';
|
|
53
|
+
const RPASCENE_AZURE_OPENAI_DEPLOYMENT = 'RPASCENE_AZURE_OPENAI_DEPLOYMENT';
|
|
54
|
+
const RPASCENE_ANTHROPIC_API_KEY = 'RPASCENE_ANTHROPIC_API_KEY';
|
|
55
|
+
const RPASCENE_VL_MODE = 'RPASCENE_VL_MODE';
|
|
56
|
+
const RPASCENE_VQA_MODEL_NAME = 'RPASCENE_VQA_MODEL_NAME';
|
|
57
|
+
const RPASCENE_VQA_OPENAI_SOCKS_PROXY = 'RPASCENE_VQA_OPENAI_SOCKS_PROXY';
|
|
58
|
+
const RPASCENE_VQA_OPENAI_HTTP_PROXY = 'RPASCENE_VQA_OPENAI_HTTP_PROXY';
|
|
59
|
+
const RPASCENE_VQA_OPENAI_BASE_URL = 'RPASCENE_VQA_OPENAI_BASE_URL';
|
|
60
|
+
const RPASCENE_VQA_OPENAI_API_KEY = 'RPASCENE_VQA_OPENAI_API_KEY';
|
|
61
|
+
const RPASCENE_VQA_OPENAI_INIT_CONFIG_JSON = 'RPASCENE_VQA_OPENAI_INIT_CONFIG_JSON';
|
|
62
|
+
const RPASCENE_VQA_OPENAI_USE_AZURE = 'RPASCENE_VQA_OPENAI_USE_AZURE';
|
|
63
|
+
const RPASCENE_VQA_USE_AZURE_OPENAI = 'RPASCENE_VQA_USE_AZURE_OPENAI';
|
|
64
|
+
const RPASCENE_VQA_AZURE_OPENAI_SCOPE = 'RPASCENE_VQA_AZURE_OPENAI_SCOPE';
|
|
65
|
+
const RPASCENE_VQA_AZURE_OPENAI_KEY = 'RPASCENE_VQA_AZURE_OPENAI_KEY';
|
|
66
|
+
const RPASCENE_VQA_AZURE_OPENAI_ENDPOINT = 'RPASCENE_VQA_AZURE_OPENAI_ENDPOINT';
|
|
67
|
+
const RPASCENE_VQA_AZURE_OPENAI_API_VERSION = 'RPASCENE_VQA_AZURE_OPENAI_API_VERSION';
|
|
68
|
+
const RPASCENE_VQA_AZURE_OPENAI_DEPLOYMENT = 'RPASCENE_VQA_AZURE_OPENAI_DEPLOYMENT';
|
|
69
|
+
const RPASCENE_VQA_AZURE_OPENAI_INIT_CONFIG_JSON = 'RPASCENE_VQA_AZURE_OPENAI_INIT_CONFIG_JSON';
|
|
70
|
+
const RPASCENE_VQA_USE_ANTHROPIC_SDK = 'RPASCENE_VQA_USE_ANTHROPIC_SDK';
|
|
71
|
+
const RPASCENE_VQA_ANTHROPIC_API_KEY = 'RPASCENE_VQA_ANTHROPIC_API_KEY';
|
|
72
|
+
const RPASCENE_VQA_VL_MODE = 'RPASCENE_VQA_VL_MODE';
|
|
73
|
+
const RPASCENE_PLANNING_MODEL_NAME = 'RPASCENE_PLANNING_MODEL_NAME';
|
|
74
|
+
const RPASCENE_PLANNING_OPENAI_SOCKS_PROXY = 'RPASCENE_PLANNING_OPENAI_SOCKS_PROXY';
|
|
75
|
+
const RPASCENE_PLANNING_OPENAI_HTTP_PROXY = 'RPASCENE_PLANNING_OPENAI_HTTP_PROXY';
|
|
76
|
+
const RPASCENE_PLANNING_OPENAI_BASE_URL = 'RPASCENE_PLANNING_OPENAI_BASE_URL';
|
|
77
|
+
const RPASCENE_PLANNING_OPENAI_API_KEY = 'RPASCENE_PLANNING_OPENAI_API_KEY';
|
|
78
|
+
const RPASCENE_PLANNING_OPENAI_INIT_CONFIG_JSON = 'RPASCENE_PLANNING_OPENAI_INIT_CONFIG_JSON';
|
|
79
|
+
const RPASCENE_PLANNING_OPENAI_USE_AZURE = 'RPASCENE_PLANNING_OPENAI_USE_AZURE';
|
|
80
|
+
const RPASCENE_PLANNING_USE_AZURE_OPENAI = 'RPASCENE_PLANNING_USE_AZURE_OPENAI';
|
|
81
|
+
const RPASCENE_PLANNING_AZURE_OPENAI_SCOPE = 'RPASCENE_PLANNING_AZURE_OPENAI_SCOPE';
|
|
82
|
+
const RPASCENE_PLANNING_AZURE_OPENAI_KEY = 'RPASCENE_PLANNING_AZURE_OPENAI_KEY';
|
|
83
|
+
const RPASCENE_PLANNING_AZURE_OPENAI_ENDPOINT = 'RPASCENE_PLANNING_AZURE_OPENAI_ENDPOINT';
|
|
84
|
+
const RPASCENE_PLANNING_AZURE_OPENAI_API_VERSION = 'RPASCENE_PLANNING_AZURE_OPENAI_API_VERSION';
|
|
85
|
+
const RPASCENE_PLANNING_AZURE_OPENAI_DEPLOYMENT = 'RPASCENE_PLANNING_AZURE_OPENAI_DEPLOYMENT';
|
|
86
|
+
const RPASCENE_PLANNING_AZURE_OPENAI_INIT_CONFIG_JSON = 'RPASCENE_PLANNING_AZURE_OPENAI_INIT_CONFIG_JSON';
|
|
87
|
+
const RPASCENE_PLANNING_USE_ANTHROPIC_SDK = 'RPASCENE_PLANNING_USE_ANTHROPIC_SDK';
|
|
88
|
+
const RPASCENE_PLANNING_ANTHROPIC_API_KEY = 'RPASCENE_PLANNING_ANTHROPIC_API_KEY';
|
|
89
|
+
const RPASCENE_PLANNING_VL_MODE = 'RPASCENE_PLANNING_VL_MODE';
|
|
90
|
+
const RPASCENE_GROUNDING_MODEL_NAME = 'RPASCENE_GROUNDING_MODEL_NAME';
|
|
91
|
+
const RPASCENE_GROUNDING_OPENAI_SOCKS_PROXY = 'RPASCENE_GROUNDING_OPENAI_SOCKS_PROXY';
|
|
92
|
+
const RPASCENE_GROUNDING_OPENAI_HTTP_PROXY = 'RPASCENE_GROUNDING_OPENAI_HTTP_PROXY';
|
|
93
|
+
const RPASCENE_GROUNDING_OPENAI_BASE_URL = 'RPASCENE_GROUNDING_OPENAI_BASE_URL';
|
|
94
|
+
const RPASCENE_GROUNDING_OPENAI_API_KEY = 'RPASCENE_GROUNDING_OPENAI_API_KEY';
|
|
95
|
+
const RPASCENE_GROUNDING_OPENAI_INIT_CONFIG_JSON = 'RPASCENE_GROUNDING_OPENAI_INIT_CONFIG_JSON';
|
|
96
|
+
const RPASCENE_GROUNDING_OPENAI_USE_AZURE = 'RPASCENE_GROUNDING_OPENAI_USE_AZURE';
|
|
97
|
+
const RPASCENE_GROUNDING_USE_AZURE_OPENAI = 'RPASCENE_GROUNDING_USE_AZURE_OPENAI';
|
|
98
|
+
const RPASCENE_GROUNDING_AZURE_OPENAI_SCOPE = 'RPASCENE_GROUNDING_AZURE_OPENAI_SCOPE';
|
|
99
|
+
const RPASCENE_GROUNDING_AZURE_OPENAI_KEY = 'RPASCENE_GROUNDING_AZURE_OPENAI_KEY';
|
|
100
|
+
const RPASCENE_GROUNDING_AZURE_OPENAI_ENDPOINT = 'RPASCENE_GROUNDING_AZURE_OPENAI_ENDPOINT';
|
|
101
|
+
const RPASCENE_GROUNDING_AZURE_OPENAI_API_VERSION = 'RPASCENE_GROUNDING_AZURE_OPENAI_API_VERSION';
|
|
102
|
+
const RPASCENE_GROUNDING_AZURE_OPENAI_DEPLOYMENT = 'RPASCENE_GROUNDING_AZURE_OPENAI_DEPLOYMENT';
|
|
103
|
+
const RPASCENE_GROUNDING_AZURE_OPENAI_INIT_CONFIG_JSON = 'RPASCENE_GROUNDING_AZURE_OPENAI_INIT_CONFIG_JSON';
|
|
104
|
+
const RPASCENE_GROUNDING_USE_ANTHROPIC_SDK = 'RPASCENE_GROUNDING_USE_ANTHROPIC_SDK';
|
|
105
|
+
const RPASCENE_GROUNDING_ANTHROPIC_API_KEY = 'RPASCENE_GROUNDING_ANTHROPIC_API_KEY';
|
|
106
|
+
const RPASCENE_GROUNDING_VL_MODE = 'RPASCENE_GROUNDING_VL_MODE';
|
|
107
|
+
const OPENAI_USE_AZURE = 'OPENAI_USE_AZURE';
|
|
108
|
+
const UNUSED_ENV_KEYS = [
|
|
109
|
+
RPASCENE_DANGEROUSLY_PRINT_ALL_CONFIG
|
|
110
|
+
];
|
|
111
|
+
const BASIC_ENV_KEYS = [
|
|
112
|
+
RPASCENE_DEBUG_MODE,
|
|
113
|
+
RPASCENE_DEBUG_AI_PROFILE,
|
|
114
|
+
RPASCENE_DEBUG_AI_RESPONSE,
|
|
115
|
+
RPASCENE_RUN_DIR
|
|
116
|
+
];
|
|
117
|
+
const BOOLEAN_ENV_KEYS = [
|
|
118
|
+
RPASCENE_CACHE,
|
|
119
|
+
RPASCENE_LANGSMITH_DEBUG,
|
|
120
|
+
RPASCENE_FORCE_DEEP_THINK,
|
|
121
|
+
RPASCENE_MCP_USE_PUPPETEER_MODE,
|
|
122
|
+
RPASCENE_MCP_ANDROID_MODE
|
|
123
|
+
];
|
|
124
|
+
const NUMBER_ENV_KEYS = [
|
|
125
|
+
RPASCENE_CACHE_MAX_FILENAME_LENGTH,
|
|
126
|
+
RPASCENE_REPLANNING_CYCLE_LIMIT
|
|
127
|
+
];
|
|
128
|
+
const STRING_ENV_KEYS = [
|
|
129
|
+
OPENAI_MAX_TOKENS,
|
|
130
|
+
RPASCENE_ADB_PATH,
|
|
131
|
+
RPASCENE_ADB_REMOTE_HOST,
|
|
132
|
+
RPASCENE_ADB_REMOTE_PORT,
|
|
133
|
+
RPASCENE_ANDROID_IME_STRATEGY,
|
|
134
|
+
RPASCENE_IOS_DEVICE_UDID,
|
|
135
|
+
RPASCENE_IOS_SIMULATOR_UDID,
|
|
136
|
+
RPASCENE_REPORT_TAG_NAME,
|
|
137
|
+
RPASCENE_PREFERRED_LANGUAGE,
|
|
138
|
+
MATCH_BY_POSITION,
|
|
139
|
+
RPASCENE_MCP_CHROME_PATH,
|
|
140
|
+
DOCKER_CONTAINER
|
|
141
|
+
];
|
|
142
|
+
const GLOBAL_ENV_KEYS = [
|
|
143
|
+
...BOOLEAN_ENV_KEYS,
|
|
144
|
+
...NUMBER_ENV_KEYS,
|
|
145
|
+
...STRING_ENV_KEYS
|
|
146
|
+
];
|
|
147
|
+
const MODEL_ENV_KEYS = [
|
|
148
|
+
RPASCENE_MODEL_NAME,
|
|
149
|
+
RPASCENE_OPENAI_INIT_CONFIG_JSON,
|
|
150
|
+
RPASCENE_OPENAI_API_KEY,
|
|
151
|
+
RPASCENE_OPENAI_BASE_URL,
|
|
152
|
+
RPASCENE_OPENAI_USE_AZURE,
|
|
153
|
+
RPASCENE_OPENAI_SOCKS_PROXY,
|
|
154
|
+
RPASCENE_OPENAI_HTTP_PROXY,
|
|
155
|
+
RPASCENE_USE_AZURE_OPENAI,
|
|
156
|
+
RPASCENE_AZURE_OPENAI_SCOPE,
|
|
157
|
+
RPASCENE_AZURE_OPENAI_INIT_CONFIG_JSON,
|
|
158
|
+
RPASCENE_USE_ANTHROPIC_SDK,
|
|
159
|
+
RPASCENE_USE_VLM_UI_TARS,
|
|
160
|
+
RPASCENE_USE_QWEN_VL,
|
|
161
|
+
RPASCENE_USE_QWEN3_VL,
|
|
162
|
+
RPASCENE_USE_DOUBAO_VISION,
|
|
163
|
+
RPASCENE_USE_GEMINI,
|
|
164
|
+
RPASCENE_USE_VL_MODEL,
|
|
165
|
+
ANTHROPIC_API_KEY,
|
|
166
|
+
RPASCENE_AZURE_OPENAI_ENDPOINT,
|
|
167
|
+
RPASCENE_AZURE_OPENAI_KEY,
|
|
168
|
+
RPASCENE_AZURE_OPENAI_API_VERSION,
|
|
169
|
+
RPASCENE_AZURE_OPENAI_DEPLOYMENT,
|
|
170
|
+
RPASCENE_VL_MODE,
|
|
171
|
+
OPENAI_API_KEY,
|
|
172
|
+
OPENAI_BASE_URL,
|
|
173
|
+
OPENAI_USE_AZURE,
|
|
174
|
+
ANTHROPIC_API_KEY,
|
|
175
|
+
AZURE_OPENAI_ENDPOINT,
|
|
176
|
+
AZURE_OPENAI_KEY,
|
|
177
|
+
AZURE_OPENAI_API_VERSION,
|
|
178
|
+
AZURE_OPENAI_DEPLOYMENT,
|
|
179
|
+
RPASCENE_VQA_MODEL_NAME,
|
|
180
|
+
RPASCENE_VQA_OPENAI_SOCKS_PROXY,
|
|
181
|
+
RPASCENE_VQA_OPENAI_HTTP_PROXY,
|
|
182
|
+
RPASCENE_VQA_OPENAI_BASE_URL,
|
|
183
|
+
RPASCENE_VQA_OPENAI_API_KEY,
|
|
184
|
+
RPASCENE_VQA_OPENAI_INIT_CONFIG_JSON,
|
|
185
|
+
RPASCENE_VQA_OPENAI_USE_AZURE,
|
|
186
|
+
RPASCENE_VQA_USE_AZURE_OPENAI,
|
|
187
|
+
RPASCENE_VQA_AZURE_OPENAI_SCOPE,
|
|
188
|
+
RPASCENE_VQA_AZURE_OPENAI_KEY,
|
|
189
|
+
RPASCENE_VQA_AZURE_OPENAI_ENDPOINT,
|
|
190
|
+
RPASCENE_VQA_AZURE_OPENAI_API_VERSION,
|
|
191
|
+
RPASCENE_VQA_AZURE_OPENAI_DEPLOYMENT,
|
|
192
|
+
RPASCENE_VQA_AZURE_OPENAI_INIT_CONFIG_JSON,
|
|
193
|
+
RPASCENE_VQA_USE_ANTHROPIC_SDK,
|
|
194
|
+
RPASCENE_VQA_ANTHROPIC_API_KEY,
|
|
195
|
+
RPASCENE_VQA_VL_MODE,
|
|
196
|
+
RPASCENE_PLANNING_MODEL_NAME,
|
|
197
|
+
RPASCENE_PLANNING_OPENAI_SOCKS_PROXY,
|
|
198
|
+
RPASCENE_PLANNING_OPENAI_HTTP_PROXY,
|
|
199
|
+
RPASCENE_PLANNING_OPENAI_BASE_URL,
|
|
200
|
+
RPASCENE_PLANNING_OPENAI_API_KEY,
|
|
201
|
+
RPASCENE_PLANNING_OPENAI_INIT_CONFIG_JSON,
|
|
202
|
+
RPASCENE_PLANNING_OPENAI_USE_AZURE,
|
|
203
|
+
RPASCENE_PLANNING_USE_AZURE_OPENAI,
|
|
204
|
+
RPASCENE_PLANNING_AZURE_OPENAI_SCOPE,
|
|
205
|
+
RPASCENE_PLANNING_AZURE_OPENAI_KEY,
|
|
206
|
+
RPASCENE_PLANNING_AZURE_OPENAI_ENDPOINT,
|
|
207
|
+
RPASCENE_PLANNING_AZURE_OPENAI_API_VERSION,
|
|
208
|
+
RPASCENE_PLANNING_AZURE_OPENAI_DEPLOYMENT,
|
|
209
|
+
RPASCENE_PLANNING_AZURE_OPENAI_INIT_CONFIG_JSON,
|
|
210
|
+
RPASCENE_PLANNING_USE_ANTHROPIC_SDK,
|
|
211
|
+
RPASCENE_PLANNING_ANTHROPIC_API_KEY,
|
|
212
|
+
RPASCENE_PLANNING_VL_MODE,
|
|
213
|
+
RPASCENE_GROUNDING_MODEL_NAME,
|
|
214
|
+
RPASCENE_GROUNDING_OPENAI_SOCKS_PROXY,
|
|
215
|
+
RPASCENE_GROUNDING_OPENAI_HTTP_PROXY,
|
|
216
|
+
RPASCENE_GROUNDING_OPENAI_BASE_URL,
|
|
217
|
+
RPASCENE_GROUNDING_OPENAI_API_KEY,
|
|
218
|
+
RPASCENE_GROUNDING_OPENAI_INIT_CONFIG_JSON,
|
|
219
|
+
RPASCENE_GROUNDING_OPENAI_USE_AZURE,
|
|
220
|
+
RPASCENE_GROUNDING_USE_AZURE_OPENAI,
|
|
221
|
+
RPASCENE_GROUNDING_AZURE_OPENAI_SCOPE,
|
|
222
|
+
RPASCENE_GROUNDING_AZURE_OPENAI_KEY,
|
|
223
|
+
RPASCENE_GROUNDING_AZURE_OPENAI_ENDPOINT,
|
|
224
|
+
RPASCENE_GROUNDING_AZURE_OPENAI_API_VERSION,
|
|
225
|
+
RPASCENE_GROUNDING_AZURE_OPENAI_DEPLOYMENT,
|
|
226
|
+
RPASCENE_GROUNDING_AZURE_OPENAI_INIT_CONFIG_JSON,
|
|
227
|
+
RPASCENE_GROUNDING_USE_ANTHROPIC_SDK,
|
|
228
|
+
RPASCENE_GROUNDING_ANTHROPIC_API_KEY,
|
|
229
|
+
RPASCENE_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'
|
|
241
|
+
];
|
|
242
|
+
const ALL_ENV_KEYS = [
|
|
243
|
+
...UNUSED_ENV_KEYS,
|
|
244
|
+
...BASIC_ENV_KEYS,
|
|
245
|
+
...GLOBAL_ENV_KEYS,
|
|
246
|
+
...MODEL_ENV_KEYS,
|
|
247
|
+
...Yht_ENV_KEYS
|
|
248
|
+
];
|
|
249
|
+
var types_UITarsModelVersion = /*#__PURE__*/ function(UITarsModelVersion) {
|
|
250
|
+
UITarsModelVersion["V1_0"] = "1.0";
|
|
251
|
+
UITarsModelVersion["V1_5"] = "1.5";
|
|
252
|
+
UITarsModelVersion["DOUBAO_1_5_15B"] = "doubao-1.5-15B";
|
|
253
|
+
UITarsModelVersion["DOUBAO_1_5_20B"] = "doubao-1.5-20B";
|
|
254
|
+
return UITarsModelVersion;
|
|
255
|
+
}({});
|
|
256
|
+
const VL_MODE_RAW_VALID_VALUES = [
|
|
257
|
+
'doubao-vision',
|
|
258
|
+
'gemini',
|
|
259
|
+
'qwen-vl',
|
|
260
|
+
'qwen3-vl',
|
|
261
|
+
'vlm-ui-tars',
|
|
262
|
+
'vlm-ui-tars-doubao',
|
|
263
|
+
'vlm-ui-tars-doubao-1.5'
|
|
264
|
+
];
|
|
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, MODEL_ENV_KEYS, NUMBER_ENV_KEYS, OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MAX_TOKENS, OPENAI_USE_AZURE, RPASCENE_ADB_PATH, RPASCENE_ADB_REMOTE_HOST, RPASCENE_ADB_REMOTE_PORT, RPASCENE_ANDROID_IME_STRATEGY, RPASCENE_ANTHROPIC_API_KEY, RPASCENE_API_TYPE, RPASCENE_AZURE_OPENAI_API_VERSION, RPASCENE_AZURE_OPENAI_DEPLOYMENT, RPASCENE_AZURE_OPENAI_ENDPOINT, RPASCENE_AZURE_OPENAI_INIT_CONFIG_JSON, RPASCENE_AZURE_OPENAI_KEY, RPASCENE_AZURE_OPENAI_SCOPE, RPASCENE_CACHE, RPASCENE_CACHE_MAX_FILENAME_LENGTH, RPASCENE_DANGEROUSLY_PRINT_ALL_CONFIG, RPASCENE_DEBUG_AI_PROFILE, RPASCENE_DEBUG_AI_RESPONSE, RPASCENE_DEBUG_MODE, RPASCENE_FORCE_DEEP_THINK, RPASCENE_GROUNDING_ANTHROPIC_API_KEY, RPASCENE_GROUNDING_AZURE_OPENAI_API_VERSION, RPASCENE_GROUNDING_AZURE_OPENAI_DEPLOYMENT, RPASCENE_GROUNDING_AZURE_OPENAI_ENDPOINT, RPASCENE_GROUNDING_AZURE_OPENAI_INIT_CONFIG_JSON, RPASCENE_GROUNDING_AZURE_OPENAI_KEY, RPASCENE_GROUNDING_AZURE_OPENAI_SCOPE, RPASCENE_GROUNDING_MODEL_NAME, RPASCENE_GROUNDING_OPENAI_API_KEY, RPASCENE_GROUNDING_OPENAI_BASE_URL, RPASCENE_GROUNDING_OPENAI_HTTP_PROXY, RPASCENE_GROUNDING_OPENAI_INIT_CONFIG_JSON, RPASCENE_GROUNDING_OPENAI_SOCKS_PROXY, RPASCENE_GROUNDING_OPENAI_USE_AZURE, RPASCENE_GROUNDING_USE_ANTHROPIC_SDK, RPASCENE_GROUNDING_USE_AZURE_OPENAI, RPASCENE_GROUNDING_VL_MODE, RPASCENE_IOS_DEVICE_UDID, RPASCENE_IOS_SIMULATOR_UDID, RPASCENE_LANGSMITH_DEBUG, RPASCENE_MCP_ANDROID_MODE, RPASCENE_MCP_CHROME_PATH, RPASCENE_MCP_USE_PUPPETEER_MODE, RPASCENE_MODEL_NAME, RPASCENE_OPENAI_API_KEY, RPASCENE_OPENAI_BASE_URL, RPASCENE_OPENAI_HTTP_PROXY, RPASCENE_OPENAI_INIT_CONFIG_JSON, RPASCENE_OPENAI_SOCKS_PROXY, RPASCENE_OPENAI_USE_AZURE, RPASCENE_PLANNING_ANTHROPIC_API_KEY, RPASCENE_PLANNING_AZURE_OPENAI_API_VERSION, RPASCENE_PLANNING_AZURE_OPENAI_DEPLOYMENT, RPASCENE_PLANNING_AZURE_OPENAI_ENDPOINT, RPASCENE_PLANNING_AZURE_OPENAI_INIT_CONFIG_JSON, RPASCENE_PLANNING_AZURE_OPENAI_KEY, RPASCENE_PLANNING_AZURE_OPENAI_SCOPE, RPASCENE_PLANNING_MODEL_NAME, RPASCENE_PLANNING_OPENAI_API_KEY, RPASCENE_PLANNING_OPENAI_BASE_URL, RPASCENE_PLANNING_OPENAI_HTTP_PROXY, RPASCENE_PLANNING_OPENAI_INIT_CONFIG_JSON, RPASCENE_PLANNING_OPENAI_SOCKS_PROXY, RPASCENE_PLANNING_OPENAI_USE_AZURE, RPASCENE_PLANNING_USE_ANTHROPIC_SDK, RPASCENE_PLANNING_USE_AZURE_OPENAI, RPASCENE_PLANNING_VL_MODE, RPASCENE_PREFERRED_LANGUAGE, RPASCENE_REPLANNING_CYCLE_LIMIT, RPASCENE_REPORT_TAG_NAME, RPASCENE_RUN_DIR, RPASCENE_USE_ANTHROPIC_SDK, RPASCENE_USE_AZURE_OPENAI, RPASCENE_USE_DOUBAO_VISION, RPASCENE_USE_GEMINI, RPASCENE_USE_QWEN3_VL, RPASCENE_USE_QWEN_VL, RPASCENE_USE_VLM_UI_TARS, RPASCENE_USE_VL_MODEL, RPASCENE_VL_MODE, RPASCENE_VQA_ANTHROPIC_API_KEY, RPASCENE_VQA_AZURE_OPENAI_API_VERSION, RPASCENE_VQA_AZURE_OPENAI_DEPLOYMENT, RPASCENE_VQA_AZURE_OPENAI_ENDPOINT, RPASCENE_VQA_AZURE_OPENAI_INIT_CONFIG_JSON, RPASCENE_VQA_AZURE_OPENAI_KEY, RPASCENE_VQA_AZURE_OPENAI_SCOPE, RPASCENE_VQA_MODEL_NAME, RPASCENE_VQA_OPENAI_API_KEY, RPASCENE_VQA_OPENAI_BASE_URL, RPASCENE_VQA_OPENAI_HTTP_PROXY, RPASCENE_VQA_OPENAI_INIT_CONFIG_JSON, RPASCENE_VQA_OPENAI_SOCKS_PROXY, RPASCENE_VQA_OPENAI_USE_AZURE, RPASCENE_VQA_USE_ANTHROPIC_SDK, RPASCENE_VQA_USE_AZURE_OPENAI, RPASCENE_VQA_VL_MODE, STRING_ENV_KEYS, types_UITarsModelVersion as UITarsModelVersion, UNUSED_ENV_KEYS, VL_MODE_RAW_VALID_VALUES, Yht_ENV_KEYS };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { GlobalConfigManager } from "./global-config-manager.mjs";
|
|
2
|
+
import { ModelConfigManager } from "./model-config-manager.mjs";
|
|
3
|
+
import { RPASCENE_PREFERRED_LANGUAGE } from "./types.mjs";
|
|
4
|
+
const globalModelConfigManager = new ModelConfigManager();
|
|
5
|
+
const globalConfigManager = new GlobalConfigManager();
|
|
6
|
+
globalConfigManager.registerModelConfigManager(globalModelConfigManager);
|
|
7
|
+
globalModelConfigManager.registerGlobalConfigManager(globalConfigManager);
|
|
8
|
+
const getPreferredLanguage = ()=>{
|
|
9
|
+
const prefer = globalConfigManager.getEnvConfigValue(RPASCENE_PREFERRED_LANGUAGE);
|
|
10
|
+
if (prefer) return prefer;
|
|
11
|
+
const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
12
|
+
const isChina = 'Asia/Shanghai' === timeZone;
|
|
13
|
+
return isChina ? 'Chinese' : 'English';
|
|
14
|
+
};
|
|
15
|
+
const overrideAIConfig = (newConfig, extendMode = false)=>{
|
|
16
|
+
globalConfigManager.overrideAIConfig(newConfig, extendMode);
|
|
17
|
+
};
|
|
18
|
+
export { getPreferredLanguage, globalConfigManager, globalModelConfigManager, overrideAIConfig };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
const TYPE = 'RPA_IDE_CS_MSG';
|
|
2
|
+
const postWindowMessage = (targetWin, sourceWin, payload, targetOrigin = '*', timeout = 60000)=>new Promise((resolve, reject)=>{
|
|
3
|
+
if (!targetWin || !targetWin.postMessage) reject(new Error('E350: csPostMessage: targetWin is not a window'));
|
|
4
|
+
if (!sourceWin || !sourceWin.addEventListener || !sourceWin.removeEventListener) reject(new Error('E351: csPostMessage: sourceWin is not a window'));
|
|
5
|
+
const secret = Math.random();
|
|
6
|
+
const type = TYPE;
|
|
7
|
+
const onMsg = (e)=>{
|
|
8
|
+
if (e.data && e.data.type === TYPE && !e.data.isRequest && e.data.secret === secret) {
|
|
9
|
+
sourceWin.removeEventListener('message', onMsg);
|
|
10
|
+
const { payload, error } = e.data;
|
|
11
|
+
if (error) return reject(new Error(error));
|
|
12
|
+
if (void 0 !== payload) return resolve(payload);
|
|
13
|
+
reject(new Error('E352: csPostMessage: No payload nor error found'));
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
sourceWin.addEventListener('message', onMsg);
|
|
17
|
+
targetWin.postMessage({
|
|
18
|
+
type,
|
|
19
|
+
secret,
|
|
20
|
+
payload,
|
|
21
|
+
isRequest: true
|
|
22
|
+
}, targetOrigin);
|
|
23
|
+
setTimeout(()=>{
|
|
24
|
+
reject(new Error(`E353: csPostMessage: timeout ${timeout} ms`));
|
|
25
|
+
}, timeout);
|
|
26
|
+
});
|
|
27
|
+
const onWindowMessage = (win, fn)=>{
|
|
28
|
+
if (!win || !win.addEventListener || !win.removeEventListener) throw new Error('csOnMessage: not a window');
|
|
29
|
+
const onMsg = (e)=>{
|
|
30
|
+
if (e && e.data && e.data.type === TYPE && e.data.isRequest && e.data.secret) {
|
|
31
|
+
const tpl = {
|
|
32
|
+
type: TYPE,
|
|
33
|
+
secret: e.data.secret
|
|
34
|
+
};
|
|
35
|
+
new Promise((resolve, reject)=>{
|
|
36
|
+
let ret;
|
|
37
|
+
try {
|
|
38
|
+
ret = fn(e.data.payload, {
|
|
39
|
+
source: e.source
|
|
40
|
+
});
|
|
41
|
+
} catch (err) {
|
|
42
|
+
reject(err);
|
|
43
|
+
}
|
|
44
|
+
if (void 0 !== ret) resolve(ret);
|
|
45
|
+
}).then((res)=>{
|
|
46
|
+
e.source.postMessage({
|
|
47
|
+
...tpl,
|
|
48
|
+
payload: res
|
|
49
|
+
}, '*');
|
|
50
|
+
}, (err)=>{
|
|
51
|
+
e.source.postMessage({
|
|
52
|
+
...tpl,
|
|
53
|
+
error: err.message
|
|
54
|
+
}, '*');
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
win.addEventListener('message', onMsg);
|
|
59
|
+
return ()=>win.removeEventListener('message', onMsg);
|
|
60
|
+
};
|
|
61
|
+
export { onWindowMessage, postWindowMessage };
|