@midscene/shared 1.2.1-beta-20260109075435.0 → 1.2.1-beta-20260112081017.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/env/global-config-manager.mjs +11 -7
- package/dist/es/env/types.mjs +1 -0
- package/dist/lib/env/global-config-manager.js +11 -7
- package/dist/lib/env/types.js +1 -0
- package/dist/types/env/global-config-manager.d.ts +5 -4
- package/dist/types/env/types.d.ts +3 -3
- package/package.json +1 -1
- package/src/env/global-config-manager.ts +31 -14
- package/src/env/types.ts +1 -0
|
@@ -37,13 +37,6 @@ class GlobalConfigManager {
|
|
|
37
37
|
if ('string' == typeof value) return value.trim();
|
|
38
38
|
return value;
|
|
39
39
|
}
|
|
40
|
-
getEnvConfigInNumber(key) {
|
|
41
|
-
const allConfig = this.getAllEnvConfig();
|
|
42
|
-
if (!NUMBER_ENV_KEYS.includes(key)) throw new Error(`getEnvConfigInNumber with key ${key} is not supported`);
|
|
43
|
-
const value = allConfig[key];
|
|
44
|
-
this.keysHaveBeenRead[key] = true;
|
|
45
|
-
return Number(value || '');
|
|
46
|
-
}
|
|
47
40
|
getEnvConfigInBoolean(key) {
|
|
48
41
|
const allConfig = this.getAllEnvConfig();
|
|
49
42
|
if (!BOOLEAN_ENV_KEYS.includes(key)) throw new Error(`getEnvConfigInBoolean with key ${key} is not supported`);
|
|
@@ -54,6 +47,17 @@ class GlobalConfigManager {
|
|
|
54
47
|
if (/^(false|0)$/i.test(value)) return false;
|
|
55
48
|
return !!value.trim();
|
|
56
49
|
}
|
|
50
|
+
getEnvConfigValueAsNumber(key) {
|
|
51
|
+
if (!STRING_ENV_KEYS.includes(key) && !NUMBER_ENV_KEYS.includes(key)) throw new Error(`getEnvConfigValueAsNumber with key ${key} is not supported.`);
|
|
52
|
+
const allConfig = this.getAllEnvConfig();
|
|
53
|
+
const value = allConfig[key];
|
|
54
|
+
this.keysHaveBeenRead[key] = true;
|
|
55
|
+
if ('string' != typeof value) return;
|
|
56
|
+
const trimmed = value.trim();
|
|
57
|
+
if (!trimmed) return;
|
|
58
|
+
const numValue = Number(trimmed);
|
|
59
|
+
return Number.isNaN(numValue) ? void 0 : numValue;
|
|
60
|
+
}
|
|
57
61
|
registerModelConfigManager(globalModelConfigManager) {
|
|
58
62
|
this.globalModelConfigManager = globalModelConfigManager;
|
|
59
63
|
}
|
package/dist/es/env/types.mjs
CHANGED
|
@@ -65,13 +65,6 @@ class GlobalConfigManager {
|
|
|
65
65
|
if ('string' == typeof value) return value.trim();
|
|
66
66
|
return value;
|
|
67
67
|
}
|
|
68
|
-
getEnvConfigInNumber(key) {
|
|
69
|
-
const allConfig = this.getAllEnvConfig();
|
|
70
|
-
if (!external_types_js_namespaceObject.NUMBER_ENV_KEYS.includes(key)) throw new Error(`getEnvConfigInNumber with key ${key} is not supported`);
|
|
71
|
-
const value = allConfig[key];
|
|
72
|
-
this.keysHaveBeenRead[key] = true;
|
|
73
|
-
return Number(value || '');
|
|
74
|
-
}
|
|
75
68
|
getEnvConfigInBoolean(key) {
|
|
76
69
|
const allConfig = this.getAllEnvConfig();
|
|
77
70
|
if (!external_types_js_namespaceObject.BOOLEAN_ENV_KEYS.includes(key)) throw new Error(`getEnvConfigInBoolean with key ${key} is not supported`);
|
|
@@ -82,6 +75,17 @@ class GlobalConfigManager {
|
|
|
82
75
|
if (/^(false|0)$/i.test(value)) return false;
|
|
83
76
|
return !!value.trim();
|
|
84
77
|
}
|
|
78
|
+
getEnvConfigValueAsNumber(key) {
|
|
79
|
+
if (!external_types_js_namespaceObject.STRING_ENV_KEYS.includes(key) && !external_types_js_namespaceObject.NUMBER_ENV_KEYS.includes(key)) throw new Error(`getEnvConfigValueAsNumber with key ${key} is not supported.`);
|
|
80
|
+
const allConfig = this.getAllEnvConfig();
|
|
81
|
+
const value = allConfig[key];
|
|
82
|
+
this.keysHaveBeenRead[key] = true;
|
|
83
|
+
if ('string' != typeof value) return;
|
|
84
|
+
const trimmed = value.trim();
|
|
85
|
+
if (!trimmed) return;
|
|
86
|
+
const numValue = Number(trimmed);
|
|
87
|
+
return Number.isNaN(numValue) ? void 0 : numValue;
|
|
88
|
+
}
|
|
85
89
|
registerModelConfigManager(globalModelConfigManager) {
|
|
86
90
|
this.globalModelConfigManager = globalModelConfigManager;
|
|
87
91
|
}
|
package/dist/lib/env/types.js
CHANGED
|
@@ -15,14 +15,15 @@ export declare class GlobalConfigManager {
|
|
|
15
15
|
*/
|
|
16
16
|
getAllEnvConfig(): Record<string, string | undefined>;
|
|
17
17
|
getEnvConfigValue(key: (typeof STRING_ENV_KEYS)[number]): string | undefined;
|
|
18
|
-
/**
|
|
19
|
-
* read number only from process.env
|
|
20
|
-
*/
|
|
21
|
-
getEnvConfigInNumber(key: (typeof NUMBER_ENV_KEYS)[number]): number;
|
|
22
18
|
/**
|
|
23
19
|
* read boolean only from process.env
|
|
24
20
|
*/
|
|
25
21
|
getEnvConfigInBoolean(key: (typeof BOOLEAN_ENV_KEYS)[number]): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Read environment variable value and convert it to number.
|
|
24
|
+
* Returns undefined if the value is not set or cannot be converted to a valid number.
|
|
25
|
+
*/
|
|
26
|
+
getEnvConfigValueAsNumber(key: (typeof STRING_ENV_KEYS)[number] | (typeof NUMBER_ENV_KEYS)[number]): number | undefined;
|
|
26
27
|
registerModelConfigManager(globalModelConfigManager: ModelConfigManager): void;
|
|
27
28
|
/**
|
|
28
29
|
* @deprecated use the modelConfig param in Agent constructor instead
|
|
@@ -88,21 +88,21 @@ export declare const UNUSED_ENV_KEYS: string[];
|
|
|
88
88
|
*/
|
|
89
89
|
export declare const BASIC_ENV_KEYS: readonly ["MIDSCENE_DEBUG_MODE", "MIDSCENE_DEBUG_MODEL_PROFILE", "MIDSCENE_DEBUG_MODEL_RESPONSE", "MIDSCENE_RUN_DIR"];
|
|
90
90
|
export declare const BOOLEAN_ENV_KEYS: readonly ["MIDSCENE_CACHE", "MIDSCENE_FORCE_DEEP_THINK", "MIDSCENE_MCP_USE_PUPPETEER_MODE", "MIDSCENE_MCP_ANDROID_MODE", "MIDSCENE_LANGSMITH_DEBUG", "MIDSCENE_LANGFUSE_DEBUG"];
|
|
91
|
-
export declare const NUMBER_ENV_KEYS: readonly ["MIDSCENE_CACHE_MAX_FILENAME_LENGTH", "MIDSCENE_REPLANNING_CYCLE_LIMIT"];
|
|
91
|
+
export declare const NUMBER_ENV_KEYS: readonly ["MIDSCENE_MODEL_MAX_TOKENS", "MIDSCENE_CACHE_MAX_FILENAME_LENGTH", "MIDSCENE_REPLANNING_CYCLE_LIMIT"];
|
|
92
92
|
export declare const STRING_ENV_KEYS: readonly ["MIDSCENE_MODEL_MAX_TOKENS", "OPENAI_MAX_TOKENS", "MIDSCENE_ADB_PATH", "MIDSCENE_ADB_REMOTE_HOST", "MIDSCENE_ADB_REMOTE_PORT", "MIDSCENE_ANDROID_IME_STRATEGY", "MIDSCENE_IOS_DEVICE_UDID", "MIDSCENE_IOS_SIMULATOR_UDID", "MIDSCENE_REPORT_TAG_NAME", "MIDSCENE_PREFERRED_LANGUAGE", "MATCH_BY_POSITION", "MIDSCENE_MCP_CHROME_PATH", "DOCKER_CONTAINER"];
|
|
93
93
|
/**
|
|
94
94
|
* Non model related env keys, used for globally controlling the behavior of midscene
|
|
95
95
|
* Can not be override by agent.modelConfig but can be override by overrideAIConfig
|
|
96
96
|
* Can be access at any time
|
|
97
97
|
*/
|
|
98
|
-
export declare const GLOBAL_ENV_KEYS: readonly ["MIDSCENE_CACHE", "MIDSCENE_FORCE_DEEP_THINK", "MIDSCENE_MCP_USE_PUPPETEER_MODE", "MIDSCENE_MCP_ANDROID_MODE", "MIDSCENE_LANGSMITH_DEBUG", "MIDSCENE_LANGFUSE_DEBUG", "MIDSCENE_CACHE_MAX_FILENAME_LENGTH", "MIDSCENE_REPLANNING_CYCLE_LIMIT", "MIDSCENE_MODEL_MAX_TOKENS", "OPENAI_MAX_TOKENS", "MIDSCENE_ADB_PATH", "MIDSCENE_ADB_REMOTE_HOST", "MIDSCENE_ADB_REMOTE_PORT", "MIDSCENE_ANDROID_IME_STRATEGY", "MIDSCENE_IOS_DEVICE_UDID", "MIDSCENE_IOS_SIMULATOR_UDID", "MIDSCENE_REPORT_TAG_NAME", "MIDSCENE_PREFERRED_LANGUAGE", "MATCH_BY_POSITION", "MIDSCENE_MCP_CHROME_PATH", "DOCKER_CONTAINER"];
|
|
98
|
+
export declare const GLOBAL_ENV_KEYS: readonly ["MIDSCENE_CACHE", "MIDSCENE_FORCE_DEEP_THINK", "MIDSCENE_MCP_USE_PUPPETEER_MODE", "MIDSCENE_MCP_ANDROID_MODE", "MIDSCENE_LANGSMITH_DEBUG", "MIDSCENE_LANGFUSE_DEBUG", "MIDSCENE_MODEL_MAX_TOKENS", "MIDSCENE_CACHE_MAX_FILENAME_LENGTH", "MIDSCENE_REPLANNING_CYCLE_LIMIT", "MIDSCENE_MODEL_MAX_TOKENS", "OPENAI_MAX_TOKENS", "MIDSCENE_ADB_PATH", "MIDSCENE_ADB_REMOTE_HOST", "MIDSCENE_ADB_REMOTE_PORT", "MIDSCENE_ANDROID_IME_STRATEGY", "MIDSCENE_IOS_DEVICE_UDID", "MIDSCENE_IOS_SIMULATOR_UDID", "MIDSCENE_REPORT_TAG_NAME", "MIDSCENE_PREFERRED_LANGUAGE", "MATCH_BY_POSITION", "MIDSCENE_MCP_CHROME_PATH", "DOCKER_CONTAINER"];
|
|
99
99
|
/**
|
|
100
100
|
* Model related eve keys, used for declare which model to use.
|
|
101
101
|
* Can be override by both agent.modelConfig and overrideAIConfig
|
|
102
102
|
* Can only be access after agent.constructor
|
|
103
103
|
*/
|
|
104
104
|
export declare const MODEL_ENV_KEYS: readonly ["MIDSCENE_MODEL_NAME", "MIDSCENE_MODEL_INIT_CONFIG_JSON", "MIDSCENE_MODEL_API_KEY", "MIDSCENE_MODEL_BASE_URL", "MIDSCENE_MODEL_SOCKS_PROXY", "MIDSCENE_MODEL_HTTP_PROXY", "MIDSCENE_MODEL_TIMEOUT", "MIDSCENE_MODEL_TEMPERATURE", "MIDSCENE_USE_VLM_UI_TARS", "MIDSCENE_USE_QWEN_VL", "MIDSCENE_USE_QWEN3_VL", "MIDSCENE_USE_DOUBAO_VISION", "MIDSCENE_USE_GEMINI", "MIDSCENE_USE_VL_MODEL", "OPENAI_API_KEY", "OPENAI_BASE_URL", "MIDSCENE_OPENAI_INIT_CONFIG_JSON", "MIDSCENE_OPENAI_HTTP_PROXY", "MIDSCENE_OPENAI_SOCKS_PROXY", "MIDSCENE_INSIGHT_MODEL_NAME", "MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY", "MIDSCENE_INSIGHT_MODEL_HTTP_PROXY", "MIDSCENE_INSIGHT_MODEL_BASE_URL", "MIDSCENE_INSIGHT_MODEL_API_KEY", "MIDSCENE_INSIGHT_MODEL_INIT_CONFIG_JSON", "MIDSCENE_INSIGHT_MODEL_TIMEOUT", "MIDSCENE_INSIGHT_MODEL_TEMPERATURE", "MIDSCENE_PLANNING_MODEL_NAME", "MIDSCENE_PLANNING_MODEL_SOCKS_PROXY", "MIDSCENE_PLANNING_MODEL_HTTP_PROXY", "MIDSCENE_PLANNING_MODEL_BASE_URL", "MIDSCENE_PLANNING_MODEL_API_KEY", "MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON", "MIDSCENE_PLANNING_MODEL_TIMEOUT", "MIDSCENE_PLANNING_MODEL_TEMPERATURE", "MIDSCENE_MODEL_FAMILY"];
|
|
105
|
-
export declare const ALL_ENV_KEYS: readonly [...string[], "MIDSCENE_DEBUG_MODE", "MIDSCENE_DEBUG_MODEL_PROFILE", "MIDSCENE_DEBUG_MODEL_RESPONSE", "MIDSCENE_RUN_DIR", "MIDSCENE_CACHE", "MIDSCENE_FORCE_DEEP_THINK", "MIDSCENE_MCP_USE_PUPPETEER_MODE", "MIDSCENE_MCP_ANDROID_MODE", "MIDSCENE_LANGSMITH_DEBUG", "MIDSCENE_LANGFUSE_DEBUG", "MIDSCENE_CACHE_MAX_FILENAME_LENGTH", "MIDSCENE_REPLANNING_CYCLE_LIMIT", "MIDSCENE_MODEL_MAX_TOKENS", "OPENAI_MAX_TOKENS", "MIDSCENE_ADB_PATH", "MIDSCENE_ADB_REMOTE_HOST", "MIDSCENE_ADB_REMOTE_PORT", "MIDSCENE_ANDROID_IME_STRATEGY", "MIDSCENE_IOS_DEVICE_UDID", "MIDSCENE_IOS_SIMULATOR_UDID", "MIDSCENE_REPORT_TAG_NAME", "MIDSCENE_PREFERRED_LANGUAGE", "MATCH_BY_POSITION", "MIDSCENE_MCP_CHROME_PATH", "DOCKER_CONTAINER", "MIDSCENE_MODEL_NAME", "MIDSCENE_MODEL_INIT_CONFIG_JSON", "MIDSCENE_MODEL_API_KEY", "MIDSCENE_MODEL_BASE_URL", "MIDSCENE_MODEL_SOCKS_PROXY", "MIDSCENE_MODEL_HTTP_PROXY", "MIDSCENE_MODEL_TIMEOUT", "MIDSCENE_MODEL_TEMPERATURE", "MIDSCENE_USE_VLM_UI_TARS", "MIDSCENE_USE_QWEN_VL", "MIDSCENE_USE_QWEN3_VL", "MIDSCENE_USE_DOUBAO_VISION", "MIDSCENE_USE_GEMINI", "MIDSCENE_USE_VL_MODEL", "OPENAI_API_KEY", "OPENAI_BASE_URL", "MIDSCENE_OPENAI_INIT_CONFIG_JSON", "MIDSCENE_OPENAI_HTTP_PROXY", "MIDSCENE_OPENAI_SOCKS_PROXY", "MIDSCENE_INSIGHT_MODEL_NAME", "MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY", "MIDSCENE_INSIGHT_MODEL_HTTP_PROXY", "MIDSCENE_INSIGHT_MODEL_BASE_URL", "MIDSCENE_INSIGHT_MODEL_API_KEY", "MIDSCENE_INSIGHT_MODEL_INIT_CONFIG_JSON", "MIDSCENE_INSIGHT_MODEL_TIMEOUT", "MIDSCENE_INSIGHT_MODEL_TEMPERATURE", "MIDSCENE_PLANNING_MODEL_NAME", "MIDSCENE_PLANNING_MODEL_SOCKS_PROXY", "MIDSCENE_PLANNING_MODEL_HTTP_PROXY", "MIDSCENE_PLANNING_MODEL_BASE_URL", "MIDSCENE_PLANNING_MODEL_API_KEY", "MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON", "MIDSCENE_PLANNING_MODEL_TIMEOUT", "MIDSCENE_PLANNING_MODEL_TEMPERATURE", "MIDSCENE_MODEL_FAMILY"];
|
|
105
|
+
export declare const ALL_ENV_KEYS: readonly [...string[], "MIDSCENE_DEBUG_MODE", "MIDSCENE_DEBUG_MODEL_PROFILE", "MIDSCENE_DEBUG_MODEL_RESPONSE", "MIDSCENE_RUN_DIR", "MIDSCENE_CACHE", "MIDSCENE_FORCE_DEEP_THINK", "MIDSCENE_MCP_USE_PUPPETEER_MODE", "MIDSCENE_MCP_ANDROID_MODE", "MIDSCENE_LANGSMITH_DEBUG", "MIDSCENE_LANGFUSE_DEBUG", "MIDSCENE_MODEL_MAX_TOKENS", "MIDSCENE_CACHE_MAX_FILENAME_LENGTH", "MIDSCENE_REPLANNING_CYCLE_LIMIT", "MIDSCENE_MODEL_MAX_TOKENS", "OPENAI_MAX_TOKENS", "MIDSCENE_ADB_PATH", "MIDSCENE_ADB_REMOTE_HOST", "MIDSCENE_ADB_REMOTE_PORT", "MIDSCENE_ANDROID_IME_STRATEGY", "MIDSCENE_IOS_DEVICE_UDID", "MIDSCENE_IOS_SIMULATOR_UDID", "MIDSCENE_REPORT_TAG_NAME", "MIDSCENE_PREFERRED_LANGUAGE", "MATCH_BY_POSITION", "MIDSCENE_MCP_CHROME_PATH", "DOCKER_CONTAINER", "MIDSCENE_MODEL_NAME", "MIDSCENE_MODEL_INIT_CONFIG_JSON", "MIDSCENE_MODEL_API_KEY", "MIDSCENE_MODEL_BASE_URL", "MIDSCENE_MODEL_SOCKS_PROXY", "MIDSCENE_MODEL_HTTP_PROXY", "MIDSCENE_MODEL_TIMEOUT", "MIDSCENE_MODEL_TEMPERATURE", "MIDSCENE_USE_VLM_UI_TARS", "MIDSCENE_USE_QWEN_VL", "MIDSCENE_USE_QWEN3_VL", "MIDSCENE_USE_DOUBAO_VISION", "MIDSCENE_USE_GEMINI", "MIDSCENE_USE_VL_MODEL", "OPENAI_API_KEY", "OPENAI_BASE_URL", "MIDSCENE_OPENAI_INIT_CONFIG_JSON", "MIDSCENE_OPENAI_HTTP_PROXY", "MIDSCENE_OPENAI_SOCKS_PROXY", "MIDSCENE_INSIGHT_MODEL_NAME", "MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY", "MIDSCENE_INSIGHT_MODEL_HTTP_PROXY", "MIDSCENE_INSIGHT_MODEL_BASE_URL", "MIDSCENE_INSIGHT_MODEL_API_KEY", "MIDSCENE_INSIGHT_MODEL_INIT_CONFIG_JSON", "MIDSCENE_INSIGHT_MODEL_TIMEOUT", "MIDSCENE_INSIGHT_MODEL_TEMPERATURE", "MIDSCENE_PLANNING_MODEL_NAME", "MIDSCENE_PLANNING_MODEL_SOCKS_PROXY", "MIDSCENE_PLANNING_MODEL_HTTP_PROXY", "MIDSCENE_PLANNING_MODEL_BASE_URL", "MIDSCENE_PLANNING_MODEL_API_KEY", "MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON", "MIDSCENE_PLANNING_MODEL_TIMEOUT", "MIDSCENE_PLANNING_MODEL_TEMPERATURE", "MIDSCENE_MODEL_FAMILY"];
|
|
106
106
|
export type TEnvKeys = (typeof ALL_ENV_KEYS)[number];
|
|
107
107
|
export type TGlobalConfig = Record<TEnvKeys, string | undefined>;
|
|
108
108
|
export type TVlModeValues = 'qwen2.5-vl' | 'qwen3-vl' | 'doubao-vision' | 'gemini' | 'vlm-ui-tars' | 'vlm-ui-tars-doubao' | 'vlm-ui-tars-doubao-1.5';
|
package/package.json
CHANGED
|
@@ -79,20 +79,6 @@ export class GlobalConfigManager {
|
|
|
79
79
|
return value;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
/**
|
|
83
|
-
* read number only from process.env
|
|
84
|
-
*/
|
|
85
|
-
getEnvConfigInNumber(key: (typeof NUMBER_ENV_KEYS)[number]): number {
|
|
86
|
-
const allConfig = this.getAllEnvConfig();
|
|
87
|
-
|
|
88
|
-
if (!NUMBER_ENV_KEYS.includes(key)) {
|
|
89
|
-
throw new Error(`getEnvConfigInNumber with key ${key} is not supported`);
|
|
90
|
-
}
|
|
91
|
-
const value = allConfig[key];
|
|
92
|
-
this.keysHaveBeenRead[key] = true;
|
|
93
|
-
return Number(value || '');
|
|
94
|
-
}
|
|
95
|
-
|
|
96
82
|
/**
|
|
97
83
|
* read boolean only from process.env
|
|
98
84
|
*/
|
|
@@ -118,6 +104,37 @@ export class GlobalConfigManager {
|
|
|
118
104
|
return !!value.trim();
|
|
119
105
|
}
|
|
120
106
|
|
|
107
|
+
/**
|
|
108
|
+
* Read environment variable value and convert it to number.
|
|
109
|
+
* Returns undefined if the value is not set or cannot be converted to a valid number.
|
|
110
|
+
*/
|
|
111
|
+
getEnvConfigValueAsNumber(
|
|
112
|
+
key: (typeof STRING_ENV_KEYS)[number] | (typeof NUMBER_ENV_KEYS)[number],
|
|
113
|
+
): number | undefined {
|
|
114
|
+
if (
|
|
115
|
+
!STRING_ENV_KEYS.includes(key as never) &&
|
|
116
|
+
!NUMBER_ENV_KEYS.includes(key as never)
|
|
117
|
+
) {
|
|
118
|
+
throw new Error(
|
|
119
|
+
`getEnvConfigValueAsNumber with key ${key} is not supported.`,
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const allConfig = this.getAllEnvConfig();
|
|
124
|
+
const value = allConfig[key];
|
|
125
|
+
this.keysHaveBeenRead[key] = true;
|
|
126
|
+
|
|
127
|
+
if (typeof value !== 'string') {
|
|
128
|
+
return undefined;
|
|
129
|
+
}
|
|
130
|
+
const trimmed = value.trim();
|
|
131
|
+
if (!trimmed) {
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
const numValue = Number(trimmed);
|
|
135
|
+
return Number.isNaN(numValue) ? undefined : numValue;
|
|
136
|
+
}
|
|
137
|
+
|
|
121
138
|
registerModelConfigManager(globalModelConfigManager: ModelConfigManager) {
|
|
122
139
|
this.globalModelConfigManager = globalModelConfigManager;
|
|
123
140
|
}
|