@aico-test/shared
Advanced tools
| declare const defaultRunDirName = "midscene_run"; | ||
| declare const isNodeEnv: boolean; | ||
| declare const getMidsceneRunDir: () => string; | ||
| declare const getMidsceneRunBaseDir: () => string; | ||
| /** | ||
| * Get the path to the midscene_run directory or a subdirectory within it. | ||
| * Creates the directory if it doesn't exist. | ||
| * | ||
| * @param subdir - Optional subdirectory name (e.g., 'log', 'report') | ||
| * @returns The absolute path to the requested directory | ||
| */ | ||
| declare const getMidsceneRunSubDir: (subdir: "dump" | "cache" | "report" | "tmp" | "log" | "output") => string; | ||
| declare const logDir: string; | ||
| export { defaultRunDirName, getMidsceneRunBaseDir, getMidsceneRunDir, getMidsceneRunSubDir, isNodeEnv, logDir }; |
| // src/common.ts | ||
| import { existsSync, mkdirSync } from "fs"; | ||
| import { tmpdir } from "os"; | ||
| import path from "path"; | ||
| // src/env.ts | ||
| var MIDSCENE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_OPENAI_INIT_CONFIG_JSON"; | ||
| var MIDSCENE_MODEL_NAME = "MIDSCENE_MODEL_NAME"; | ||
| var MIDSCENE_LANGSMITH_DEBUG = "MIDSCENE_LANGSMITH_DEBUG"; | ||
| var MIDSCENE_DEBUG_AI_PROFILE = "MIDSCENE_DEBUG_AI_PROFILE"; | ||
| var MIDSCENE_DEBUG_AI_RESPONSE = "MIDSCENE_DEBUG_AI_RESPONSE"; | ||
| var MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG = "MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG"; | ||
| var MIDSCENE_DEBUG_MODE = "MIDSCENE_DEBUG_MODE"; | ||
| var MIDSCENE_MCP_USE_PUPPETEER_MODE = "MIDSCENE_MCP_USE_PUPPETEER_MODE"; | ||
| var MIDSCENE_FORCE_DEEP_THINK = "MIDSCENE_FORCE_DEEP_THINK"; | ||
| var MIDSCENE_OPENAI_SOCKS_PROXY = "MIDSCENE_OPENAI_SOCKS_PROXY"; | ||
| var MIDSCENE_OPENAI_HTTPS_PROXY = "MIDSCENE_OPENAI_HTTPS_PROXY"; | ||
| var OPENAI_API_KEY = "OPENAI_API_KEY"; | ||
| var OPENAI_BASE_URL = "OPENAI_BASE_URL"; | ||
| var OPENAI_MAX_TOKENS = "OPENAI_MAX_TOKENS"; | ||
| var MIDSCENE_CACHE = "MIDSCENE_CACHE"; | ||
| var MIDSCENE_USE_VLM_UI_TARS = "MIDSCENE_USE_VLM_UI_TARS"; | ||
| var MIDSCENE_USE_QWEN_VL = "MIDSCENE_USE_QWEN_VL"; | ||
| var MIDSCENE_USE_DOUBAO_VISION = "MIDSCENE_USE_DOUBAO_VISION"; | ||
| var MIDSCENE_USE_GEMINI = "MIDSCENE_USE_GEMINI"; | ||
| var MIDSCENE_USE_VL_MODEL = "MIDSCENE_USE_VL_MODEL"; | ||
| var MATCH_BY_POSITION = "MATCH_BY_POSITION"; | ||
| var MIDSCENE_REPORT_TAG_NAME = "MIDSCENE_REPORT_TAG_NAME"; | ||
| var MIDSCENE_USE_AZURE_OPENAI = "MIDSCENE_USE_AZURE_OPENAI"; | ||
| var MIDSCENE_AZURE_OPENAI_SCOPE = "MIDSCENE_AZURE_OPENAI_SCOPE"; | ||
| var MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON"; | ||
| var AZURE_OPENAI_ENDPOINT = "AZURE_OPENAI_ENDPOINT"; | ||
| var AZURE_OPENAI_KEY = "AZURE_OPENAI_KEY"; | ||
| var AZURE_OPENAI_API_VERSION = "AZURE_OPENAI_API_VERSION"; | ||
| var AZURE_OPENAI_DEPLOYMENT = "AZURE_OPENAI_DEPLOYMENT"; | ||
| var MIDSCENE_USE_ANTHROPIC_SDK = "MIDSCENE_USE_ANTHROPIC_SDK"; | ||
| var ANTHROPIC_API_KEY = "ANTHROPIC_API_KEY"; | ||
| var MIDSCENE_RUN_DIR = "MIDSCENE_RUN_DIR"; | ||
| var OPENAI_USE_AZURE = "OPENAI_USE_AZURE"; | ||
| var allConfigFromEnv = () => { | ||
| return { | ||
| [MIDSCENE_OPENAI_INIT_CONFIG_JSON]: process.env[MIDSCENE_OPENAI_INIT_CONFIG_JSON] || void 0, | ||
| [MIDSCENE_MODEL_NAME]: process.env[MIDSCENE_MODEL_NAME] || void 0, | ||
| [MIDSCENE_DEBUG_MODE]: process.env[MIDSCENE_DEBUG_MODE] || void 0, | ||
| [MIDSCENE_FORCE_DEEP_THINK]: process.env[MIDSCENE_FORCE_DEEP_THINK] || void 0, | ||
| [MIDSCENE_LANGSMITH_DEBUG]: process.env[MIDSCENE_LANGSMITH_DEBUG] || void 0, | ||
| [MIDSCENE_DEBUG_AI_PROFILE]: process.env[MIDSCENE_DEBUG_AI_PROFILE] || void 0, | ||
| [MIDSCENE_DEBUG_AI_RESPONSE]: process.env[MIDSCENE_DEBUG_AI_RESPONSE] || void 0, | ||
| [MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG]: process.env[MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG] || void 0, | ||
| [OPENAI_API_KEY]: process.env[OPENAI_API_KEY] || void 0, | ||
| [OPENAI_BASE_URL]: process.env[OPENAI_BASE_URL] || void 0, | ||
| [OPENAI_MAX_TOKENS]: process.env[OPENAI_MAX_TOKENS] || void 0, | ||
| [OPENAI_USE_AZURE]: process.env[OPENAI_USE_AZURE] || void 0, | ||
| [MIDSCENE_CACHE]: process.env[MIDSCENE_CACHE] || void 0, | ||
| [MATCH_BY_POSITION]: process.env[MATCH_BY_POSITION] || void 0, | ||
| [MIDSCENE_REPORT_TAG_NAME]: process.env[MIDSCENE_REPORT_TAG_NAME] || void 0, | ||
| [MIDSCENE_OPENAI_SOCKS_PROXY]: process.env[MIDSCENE_OPENAI_SOCKS_PROXY] || void 0, | ||
| [MIDSCENE_OPENAI_HTTPS_PROXY]: process.env[MIDSCENE_OPENAI_HTTPS_PROXY] || void 0, | ||
| [MIDSCENE_USE_AZURE_OPENAI]: process.env[MIDSCENE_USE_AZURE_OPENAI] || void 0, | ||
| [MIDSCENE_AZURE_OPENAI_SCOPE]: process.env[MIDSCENE_AZURE_OPENAI_SCOPE] || void 0, | ||
| [MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON]: process.env[MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON] || void 0, | ||
| [MIDSCENE_USE_ANTHROPIC_SDK]: process.env[MIDSCENE_USE_ANTHROPIC_SDK] || void 0, | ||
| [MIDSCENE_USE_VLM_UI_TARS]: process.env[MIDSCENE_USE_VLM_UI_TARS] || void 0, | ||
| [MIDSCENE_USE_QWEN_VL]: process.env[MIDSCENE_USE_QWEN_VL] || void 0, | ||
| [MIDSCENE_USE_DOUBAO_VISION]: process.env[MIDSCENE_USE_DOUBAO_VISION] || void 0, | ||
| [MIDSCENE_USE_GEMINI]: process.env[MIDSCENE_USE_GEMINI] || void 0, | ||
| [MIDSCENE_USE_VL_MODEL]: process.env[MIDSCENE_USE_VL_MODEL] || void 0, | ||
| [ANTHROPIC_API_KEY]: process.env[ANTHROPIC_API_KEY] || void 0, | ||
| [AZURE_OPENAI_ENDPOINT]: process.env[AZURE_OPENAI_ENDPOINT] || void 0, | ||
| [AZURE_OPENAI_KEY]: process.env[AZURE_OPENAI_KEY] || void 0, | ||
| [AZURE_OPENAI_API_VERSION]: process.env[AZURE_OPENAI_API_VERSION] || void 0, | ||
| [AZURE_OPENAI_DEPLOYMENT]: process.env[AZURE_OPENAI_DEPLOYMENT] || void 0, | ||
| [MIDSCENE_MCP_USE_PUPPETEER_MODE]: process.env[MIDSCENE_MCP_USE_PUPPETEER_MODE] || void 0, | ||
| [MIDSCENE_RUN_DIR]: process.env[MIDSCENE_RUN_DIR] || void 0 | ||
| }; | ||
| }; | ||
| var globalConfig = null; | ||
| var getGlobalConfig = () => { | ||
| if (globalConfig === null) { | ||
| globalConfig = allConfigFromEnv(); | ||
| } | ||
| return globalConfig; | ||
| }; | ||
| var getAIConfig = (configKey) => { | ||
| if (configKey === MATCH_BY_POSITION) { | ||
| throw new Error( | ||
| "MATCH_BY_POSITION is deprecated, use MIDSCENE_USE_VL_MODEL instead" | ||
| ); | ||
| } | ||
| return getGlobalConfig()[configKey]?.trim(); | ||
| }; | ||
| // src/common.ts | ||
| var defaultRunDirName = "midscene_run"; | ||
| var isNodeEnv = typeof process !== "undefined" && process.versions != null && process.versions.node != null; | ||
| var getMidsceneRunDir = () => { | ||
| if (!isNodeEnv) { | ||
| return ""; | ||
| } | ||
| return getAIConfig(MIDSCENE_RUN_DIR) || defaultRunDirName; | ||
| }; | ||
| var getMidsceneRunBaseDir = () => { | ||
| if (!isNodeEnv) { | ||
| return ""; | ||
| } | ||
| let basePath = path.resolve(process.cwd(), getMidsceneRunDir()); | ||
| if (!existsSync(basePath)) { | ||
| try { | ||
| mkdirSync(basePath, { recursive: true }); | ||
| } catch (error) { | ||
| basePath = path.join(tmpdir(), defaultRunDirName); | ||
| mkdirSync(basePath, { recursive: true }); | ||
| } | ||
| } | ||
| return basePath; | ||
| }; | ||
| var getMidsceneRunSubDir = (subdir) => { | ||
| if (!isNodeEnv) { | ||
| return ""; | ||
| } | ||
| const basePath = getMidsceneRunBaseDir(); | ||
| const logPath = path.join(basePath, subdir); | ||
| if (!existsSync(logPath)) { | ||
| mkdirSync(logPath, { recursive: true }); | ||
| } | ||
| return logPath; | ||
| }; | ||
| var logDir = isNodeEnv ? getMidsceneRunSubDir("log") : ""; | ||
| export { | ||
| defaultRunDirName, | ||
| getMidsceneRunBaseDir, | ||
| getMidsceneRunDir, | ||
| getMidsceneRunSubDir, | ||
| isNodeEnv, | ||
| logDir | ||
| }; |
| declare const MIDSCENE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_OPENAI_INIT_CONFIG_JSON"; | ||
| declare const MIDSCENE_MODEL_NAME = "MIDSCENE_MODEL_NAME"; | ||
| declare const MIDSCENE_LANGSMITH_DEBUG = "MIDSCENE_LANGSMITH_DEBUG"; | ||
| declare const MIDSCENE_DEBUG_AI_PROFILE = "MIDSCENE_DEBUG_AI_PROFILE"; | ||
| declare const MIDSCENE_DEBUG_AI_RESPONSE = "MIDSCENE_DEBUG_AI_RESPONSE"; | ||
| declare const MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG = "MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG"; | ||
| declare const MIDSCENE_DEBUG_MODE = "MIDSCENE_DEBUG_MODE"; | ||
| declare const MIDSCENE_MCP_USE_PUPPETEER_MODE = "MIDSCENE_MCP_USE_PUPPETEER_MODE"; | ||
| declare const MIDSCENE_FORCE_DEEP_THINK = "MIDSCENE_FORCE_DEEP_THINK"; | ||
| declare const MIDSCENE_OPENAI_SOCKS_PROXY = "MIDSCENE_OPENAI_SOCKS_PROXY"; | ||
| declare const MIDSCENE_OPENAI_HTTPS_PROXY = "MIDSCENE_OPENAI_HTTPS_PROXY"; | ||
| declare const OPENAI_API_KEY = "OPENAI_API_KEY"; | ||
| declare const OPENAI_BASE_URL = "OPENAI_BASE_URL"; | ||
| declare const OPENAI_MAX_TOKENS = "OPENAI_MAX_TOKENS"; | ||
| declare const MIDSCENE_CACHE = "MIDSCENE_CACHE"; | ||
| declare const MIDSCENE_USE_VLM_UI_TARS = "MIDSCENE_USE_VLM_UI_TARS"; | ||
| declare const MIDSCENE_USE_QWEN_VL = "MIDSCENE_USE_QWEN_VL"; | ||
| declare const MIDSCENE_USE_DOUBAO_VISION = "MIDSCENE_USE_DOUBAO_VISION"; | ||
| declare const MIDSCENE_USE_GEMINI = "MIDSCENE_USE_GEMINI"; | ||
| declare const MIDSCENE_USE_VL_MODEL = "MIDSCENE_USE_VL_MODEL"; | ||
| declare const MATCH_BY_POSITION = "MATCH_BY_POSITION"; | ||
| declare const MIDSCENE_API_TYPE = "MIDSCENE-API-TYPE"; | ||
| declare const MIDSCENE_REPORT_TAG_NAME = "MIDSCENE_REPORT_TAG_NAME"; | ||
| declare const MIDSCENE_USE_AZURE_OPENAI = "MIDSCENE_USE_AZURE_OPENAI"; | ||
| declare const MIDSCENE_AZURE_OPENAI_SCOPE = "MIDSCENE_AZURE_OPENAI_SCOPE"; | ||
| declare const MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON"; | ||
| declare const AZURE_OPENAI_ENDPOINT = "AZURE_OPENAI_ENDPOINT"; | ||
| declare const AZURE_OPENAI_KEY = "AZURE_OPENAI_KEY"; | ||
| declare const AZURE_OPENAI_API_VERSION = "AZURE_OPENAI_API_VERSION"; | ||
| declare const AZURE_OPENAI_DEPLOYMENT = "AZURE_OPENAI_DEPLOYMENT"; | ||
| declare const MIDSCENE_USE_ANTHROPIC_SDK = "MIDSCENE_USE_ANTHROPIC_SDK"; | ||
| declare const ANTHROPIC_API_KEY = "ANTHROPIC_API_KEY"; | ||
| declare const MIDSCENE_RUN_DIR = "MIDSCENE_RUN_DIR"; | ||
| declare const OPENAI_USE_AZURE = "OPENAI_USE_AZURE"; | ||
| declare const allConfigFromEnv: () => { | ||
| MIDSCENE_OPENAI_INIT_CONFIG_JSON: string | undefined; | ||
| MIDSCENE_MODEL_NAME: string | undefined; | ||
| MIDSCENE_DEBUG_MODE: string | undefined; | ||
| MIDSCENE_FORCE_DEEP_THINK: string | undefined; | ||
| MIDSCENE_LANGSMITH_DEBUG: string | undefined; | ||
| MIDSCENE_DEBUG_AI_PROFILE: string | undefined; | ||
| MIDSCENE_DEBUG_AI_RESPONSE: string | undefined; | ||
| MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG: string | undefined; | ||
| OPENAI_API_KEY: string | undefined; | ||
| OPENAI_BASE_URL: string | undefined; | ||
| OPENAI_MAX_TOKENS: string | undefined; | ||
| OPENAI_USE_AZURE: string | undefined; | ||
| MIDSCENE_CACHE: string | undefined; | ||
| MATCH_BY_POSITION: string | undefined; | ||
| MIDSCENE_REPORT_TAG_NAME: string | undefined; | ||
| MIDSCENE_OPENAI_SOCKS_PROXY: string | undefined; | ||
| MIDSCENE_OPENAI_HTTPS_PROXY: string | undefined; | ||
| MIDSCENE_USE_AZURE_OPENAI: string | undefined; | ||
| MIDSCENE_AZURE_OPENAI_SCOPE: string | undefined; | ||
| MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON: string | undefined; | ||
| MIDSCENE_USE_ANTHROPIC_SDK: string | undefined; | ||
| MIDSCENE_USE_VLM_UI_TARS: string | undefined; | ||
| MIDSCENE_USE_QWEN_VL: string | undefined; | ||
| MIDSCENE_USE_DOUBAO_VISION: string | undefined; | ||
| MIDSCENE_USE_GEMINI: string | undefined; | ||
| MIDSCENE_USE_VL_MODEL: string | undefined; | ||
| ANTHROPIC_API_KEY: string | undefined; | ||
| AZURE_OPENAI_ENDPOINT: string | undefined; | ||
| AZURE_OPENAI_KEY: string | undefined; | ||
| AZURE_OPENAI_API_VERSION: string | undefined; | ||
| AZURE_OPENAI_DEPLOYMENT: string | undefined; | ||
| MIDSCENE_MCP_USE_PUPPETEER_MODE: string | undefined; | ||
| MIDSCENE_RUN_DIR: string | undefined; | ||
| }; | ||
| declare enum UITarsModelVersion { | ||
| V1_0 = "1.0", | ||
| V1_5 = "1.5", | ||
| DOUBAO_1_5_15B = "doubao-1.5-15B", | ||
| DOUBAO_1_5_20B = "doubao-1.5-20B" | ||
| } | ||
| declare const uiTarsModelVersion: () => UITarsModelVersion | false; | ||
| declare const vlLocateMode: () => "qwen-vl" | "doubao-vision" | "gemini" | "vl-model" | "vlm-ui-tars" | false; | ||
| declare const getAIConfig: (configKey: keyof ReturnType<typeof allConfigFromEnv>) => string | undefined; | ||
| declare const getAIConfigInBoolean: (configKey: keyof ReturnType<typeof allConfigFromEnv>) => boolean; | ||
| declare const getAIConfigInJson: (configKey: keyof ReturnType<typeof allConfigFromEnv>) => any; | ||
| declare const overrideAIConfig: (newConfig: Partial<ReturnType<typeof allConfigFromEnv>>, extendMode?: boolean) => void; | ||
| export { ANTHROPIC_API_KEY, AZURE_OPENAI_API_VERSION, AZURE_OPENAI_DEPLOYMENT, AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_KEY, MATCH_BY_POSITION, MIDSCENE_API_TYPE, MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_AZURE_OPENAI_SCOPE, MIDSCENE_CACHE, MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG, MIDSCENE_DEBUG_AI_PROFILE, MIDSCENE_DEBUG_AI_RESPONSE, MIDSCENE_DEBUG_MODE, MIDSCENE_FORCE_DEEP_THINK, MIDSCENE_LANGSMITH_DEBUG, MIDSCENE_MCP_USE_PUPPETEER_MODE, MIDSCENE_MODEL_NAME, MIDSCENE_OPENAI_HTTPS_PROXY, MIDSCENE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_OPENAI_SOCKS_PROXY, MIDSCENE_REPORT_TAG_NAME, MIDSCENE_RUN_DIR, MIDSCENE_USE_ANTHROPIC_SDK, MIDSCENE_USE_AZURE_OPENAI, MIDSCENE_USE_DOUBAO_VISION, MIDSCENE_USE_GEMINI, MIDSCENE_USE_QWEN_VL, MIDSCENE_USE_VLM_UI_TARS, MIDSCENE_USE_VL_MODEL, OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MAX_TOKENS, OPENAI_USE_AZURE, UITarsModelVersion, allConfigFromEnv, getAIConfig, getAIConfigInBoolean, getAIConfigInJson, overrideAIConfig, uiTarsModelVersion, vlLocateMode }; |
+217
| // src/env.ts | ||
| var MIDSCENE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_OPENAI_INIT_CONFIG_JSON"; | ||
| var MIDSCENE_MODEL_NAME = "MIDSCENE_MODEL_NAME"; | ||
| var MIDSCENE_LANGSMITH_DEBUG = "MIDSCENE_LANGSMITH_DEBUG"; | ||
| var MIDSCENE_DEBUG_AI_PROFILE = "MIDSCENE_DEBUG_AI_PROFILE"; | ||
| var MIDSCENE_DEBUG_AI_RESPONSE = "MIDSCENE_DEBUG_AI_RESPONSE"; | ||
| var MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG = "MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG"; | ||
| var MIDSCENE_DEBUG_MODE = "MIDSCENE_DEBUG_MODE"; | ||
| var MIDSCENE_MCP_USE_PUPPETEER_MODE = "MIDSCENE_MCP_USE_PUPPETEER_MODE"; | ||
| var MIDSCENE_FORCE_DEEP_THINK = "MIDSCENE_FORCE_DEEP_THINK"; | ||
| var MIDSCENE_OPENAI_SOCKS_PROXY = "MIDSCENE_OPENAI_SOCKS_PROXY"; | ||
| var MIDSCENE_OPENAI_HTTPS_PROXY = "MIDSCENE_OPENAI_HTTPS_PROXY"; | ||
| var OPENAI_API_KEY = "OPENAI_API_KEY"; | ||
| var OPENAI_BASE_URL = "OPENAI_BASE_URL"; | ||
| var OPENAI_MAX_TOKENS = "OPENAI_MAX_TOKENS"; | ||
| var MIDSCENE_CACHE = "MIDSCENE_CACHE"; | ||
| var MIDSCENE_USE_VLM_UI_TARS = "MIDSCENE_USE_VLM_UI_TARS"; | ||
| var MIDSCENE_USE_QWEN_VL = "MIDSCENE_USE_QWEN_VL"; | ||
| var MIDSCENE_USE_DOUBAO_VISION = "MIDSCENE_USE_DOUBAO_VISION"; | ||
| var MIDSCENE_USE_GEMINI = "MIDSCENE_USE_GEMINI"; | ||
| var MIDSCENE_USE_VL_MODEL = "MIDSCENE_USE_VL_MODEL"; | ||
| var MATCH_BY_POSITION = "MATCH_BY_POSITION"; | ||
| var MIDSCENE_API_TYPE = "MIDSCENE-API-TYPE"; | ||
| var MIDSCENE_REPORT_TAG_NAME = "MIDSCENE_REPORT_TAG_NAME"; | ||
| var MIDSCENE_USE_AZURE_OPENAI = "MIDSCENE_USE_AZURE_OPENAI"; | ||
| var MIDSCENE_AZURE_OPENAI_SCOPE = "MIDSCENE_AZURE_OPENAI_SCOPE"; | ||
| var MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON"; | ||
| var AZURE_OPENAI_ENDPOINT = "AZURE_OPENAI_ENDPOINT"; | ||
| var AZURE_OPENAI_KEY = "AZURE_OPENAI_KEY"; | ||
| var AZURE_OPENAI_API_VERSION = "AZURE_OPENAI_API_VERSION"; | ||
| var AZURE_OPENAI_DEPLOYMENT = "AZURE_OPENAI_DEPLOYMENT"; | ||
| var MIDSCENE_USE_ANTHROPIC_SDK = "MIDSCENE_USE_ANTHROPIC_SDK"; | ||
| var ANTHROPIC_API_KEY = "ANTHROPIC_API_KEY"; | ||
| var MIDSCENE_RUN_DIR = "MIDSCENE_RUN_DIR"; | ||
| var OPENAI_USE_AZURE = "OPENAI_USE_AZURE"; | ||
| var allConfigFromEnv = () => { | ||
| return { | ||
| [MIDSCENE_OPENAI_INIT_CONFIG_JSON]: process.env[MIDSCENE_OPENAI_INIT_CONFIG_JSON] || void 0, | ||
| [MIDSCENE_MODEL_NAME]: process.env[MIDSCENE_MODEL_NAME] || void 0, | ||
| [MIDSCENE_DEBUG_MODE]: process.env[MIDSCENE_DEBUG_MODE] || void 0, | ||
| [MIDSCENE_FORCE_DEEP_THINK]: process.env[MIDSCENE_FORCE_DEEP_THINK] || void 0, | ||
| [MIDSCENE_LANGSMITH_DEBUG]: process.env[MIDSCENE_LANGSMITH_DEBUG] || void 0, | ||
| [MIDSCENE_DEBUG_AI_PROFILE]: process.env[MIDSCENE_DEBUG_AI_PROFILE] || void 0, | ||
| [MIDSCENE_DEBUG_AI_RESPONSE]: process.env[MIDSCENE_DEBUG_AI_RESPONSE] || void 0, | ||
| [MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG]: process.env[MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG] || void 0, | ||
| [OPENAI_API_KEY]: process.env[OPENAI_API_KEY] || void 0, | ||
| [OPENAI_BASE_URL]: process.env[OPENAI_BASE_URL] || void 0, | ||
| [OPENAI_MAX_TOKENS]: process.env[OPENAI_MAX_TOKENS] || void 0, | ||
| [OPENAI_USE_AZURE]: process.env[OPENAI_USE_AZURE] || void 0, | ||
| [MIDSCENE_CACHE]: process.env[MIDSCENE_CACHE] || void 0, | ||
| [MATCH_BY_POSITION]: process.env[MATCH_BY_POSITION] || void 0, | ||
| [MIDSCENE_REPORT_TAG_NAME]: process.env[MIDSCENE_REPORT_TAG_NAME] || void 0, | ||
| [MIDSCENE_OPENAI_SOCKS_PROXY]: process.env[MIDSCENE_OPENAI_SOCKS_PROXY] || void 0, | ||
| [MIDSCENE_OPENAI_HTTPS_PROXY]: process.env[MIDSCENE_OPENAI_HTTPS_PROXY] || void 0, | ||
| [MIDSCENE_USE_AZURE_OPENAI]: process.env[MIDSCENE_USE_AZURE_OPENAI] || void 0, | ||
| [MIDSCENE_AZURE_OPENAI_SCOPE]: process.env[MIDSCENE_AZURE_OPENAI_SCOPE] || void 0, | ||
| [MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON]: process.env[MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON] || void 0, | ||
| [MIDSCENE_USE_ANTHROPIC_SDK]: process.env[MIDSCENE_USE_ANTHROPIC_SDK] || void 0, | ||
| [MIDSCENE_USE_VLM_UI_TARS]: process.env[MIDSCENE_USE_VLM_UI_TARS] || void 0, | ||
| [MIDSCENE_USE_QWEN_VL]: process.env[MIDSCENE_USE_QWEN_VL] || void 0, | ||
| [MIDSCENE_USE_DOUBAO_VISION]: process.env[MIDSCENE_USE_DOUBAO_VISION] || void 0, | ||
| [MIDSCENE_USE_GEMINI]: process.env[MIDSCENE_USE_GEMINI] || void 0, | ||
| [MIDSCENE_USE_VL_MODEL]: process.env[MIDSCENE_USE_VL_MODEL] || void 0, | ||
| [ANTHROPIC_API_KEY]: process.env[ANTHROPIC_API_KEY] || void 0, | ||
| [AZURE_OPENAI_ENDPOINT]: process.env[AZURE_OPENAI_ENDPOINT] || void 0, | ||
| [AZURE_OPENAI_KEY]: process.env[AZURE_OPENAI_KEY] || void 0, | ||
| [AZURE_OPENAI_API_VERSION]: process.env[AZURE_OPENAI_API_VERSION] || void 0, | ||
| [AZURE_OPENAI_DEPLOYMENT]: process.env[AZURE_OPENAI_DEPLOYMENT] || void 0, | ||
| [MIDSCENE_MCP_USE_PUPPETEER_MODE]: process.env[MIDSCENE_MCP_USE_PUPPETEER_MODE] || void 0, | ||
| [MIDSCENE_RUN_DIR]: process.env[MIDSCENE_RUN_DIR] || void 0 | ||
| }; | ||
| }; | ||
| var globalConfig = null; | ||
| var getGlobalConfig = () => { | ||
| if (globalConfig === null) { | ||
| globalConfig = allConfigFromEnv(); | ||
| } | ||
| return globalConfig; | ||
| }; | ||
| var UITarsModelVersion = /* @__PURE__ */ ((UITarsModelVersion2) => { | ||
| UITarsModelVersion2["V1_0"] = "1.0"; | ||
| UITarsModelVersion2["V1_5"] = "1.5"; | ||
| UITarsModelVersion2["DOUBAO_1_5_15B"] = "doubao-1.5-15B"; | ||
| UITarsModelVersion2["DOUBAO_1_5_20B"] = "doubao-1.5-20B"; | ||
| return UITarsModelVersion2; | ||
| })(UITarsModelVersion || {}); | ||
| var uiTarsModelVersion = () => { | ||
| if (vlLocateMode() !== "vlm-ui-tars") { | ||
| return false; | ||
| } | ||
| const versionConfig = getAIConfigInJson(MIDSCENE_USE_VLM_UI_TARS); | ||
| if (versionConfig === "1" || versionConfig === 1) { | ||
| return "1.0" /* V1_0 */; | ||
| } | ||
| if (versionConfig === "DOUBAO-1.5") { | ||
| return "doubao-1.5-20B" /* DOUBAO_1_5_20B */; | ||
| } | ||
| return `${versionConfig}`; | ||
| }; | ||
| var vlLocateMode = () => { | ||
| const enabledModes = [ | ||
| getAIConfigInBoolean(MIDSCENE_USE_DOUBAO_VISION) && "MIDSCENE_USE_DOUBAO_VISION", | ||
| getAIConfigInBoolean(MIDSCENE_USE_QWEN_VL) && "MIDSCENE_USE_QWEN_VL", | ||
| getAIConfigInBoolean(MIDSCENE_USE_VLM_UI_TARS) && "MIDSCENE_USE_VLM_UI_TARS", | ||
| getAIConfigInBoolean(MIDSCENE_USE_GEMINI) && "MIDSCENE_USE_GEMINI" | ||
| ].filter(Boolean); | ||
| if (enabledModes.length > 1) { | ||
| throw new Error( | ||
| `Only one vision mode can be enabled at a time. Currently enabled modes: ${enabledModes.join(", ")}. Please disable all but one mode.` | ||
| ); | ||
| } | ||
| if (getAIConfigInBoolean(MIDSCENE_USE_QWEN_VL)) { | ||
| return "qwen-vl"; | ||
| } | ||
| if (getAIConfigInBoolean(MIDSCENE_USE_DOUBAO_VISION)) { | ||
| return "doubao-vision"; | ||
| } | ||
| if (getAIConfigInBoolean(MIDSCENE_USE_GEMINI)) { | ||
| return "gemini"; | ||
| } | ||
| if (getAIConfigInBoolean(MIDSCENE_USE_VL_MODEL)) { | ||
| return "vl-model"; | ||
| } | ||
| if (getAIConfigInBoolean(MIDSCENE_USE_VLM_UI_TARS)) { | ||
| return "vlm-ui-tars"; | ||
| } | ||
| return false; | ||
| }; | ||
| var getAIConfig = (configKey) => { | ||
| if (configKey === MATCH_BY_POSITION) { | ||
| throw new Error( | ||
| "MATCH_BY_POSITION is deprecated, use MIDSCENE_USE_VL_MODEL instead" | ||
| ); | ||
| } | ||
| return getGlobalConfig()[configKey]?.trim(); | ||
| }; | ||
| var getAIConfigInBoolean = (configKey) => { | ||
| const config = getAIConfig(configKey) || ""; | ||
| if (/^(true|1)$/i.test(config)) { | ||
| return true; | ||
| } | ||
| if (/^(false|0)$/i.test(config)) { | ||
| return false; | ||
| } | ||
| return !!config.trim(); | ||
| }; | ||
| var getAIConfigInJson = (configKey) => { | ||
| const config = getAIConfig(configKey); | ||
| try { | ||
| return config ? JSON.parse(config) : void 0; | ||
| } catch (error) { | ||
| throw new Error( | ||
| `Failed to parse json config: ${configKey}. ${error.message}`, | ||
| { | ||
| cause: error | ||
| } | ||
| ); | ||
| } | ||
| }; | ||
| var overrideAIConfig = (newConfig, extendMode = false) => { | ||
| for (const key in newConfig) { | ||
| if (typeof key !== "string") { | ||
| throw new Error(`Failed to override AI config, invalid key: ${key}`); | ||
| } | ||
| if (typeof newConfig[key] === "object") { | ||
| throw new Error( | ||
| `Failed to override AI config, invalid value for key: ${key}, value: ${newConfig[key]}` | ||
| ); | ||
| } | ||
| } | ||
| const currentConfig = getGlobalConfig(); | ||
| globalConfig = extendMode ? { ...currentConfig, ...newConfig } : { ...newConfig }; | ||
| }; | ||
| export { | ||
| ANTHROPIC_API_KEY, | ||
| AZURE_OPENAI_API_VERSION, | ||
| AZURE_OPENAI_DEPLOYMENT, | ||
| AZURE_OPENAI_ENDPOINT, | ||
| AZURE_OPENAI_KEY, | ||
| MATCH_BY_POSITION, | ||
| MIDSCENE_API_TYPE, | ||
| MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON, | ||
| MIDSCENE_AZURE_OPENAI_SCOPE, | ||
| MIDSCENE_CACHE, | ||
| MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG, | ||
| MIDSCENE_DEBUG_AI_PROFILE, | ||
| MIDSCENE_DEBUG_AI_RESPONSE, | ||
| MIDSCENE_DEBUG_MODE, | ||
| MIDSCENE_FORCE_DEEP_THINK, | ||
| MIDSCENE_LANGSMITH_DEBUG, | ||
| MIDSCENE_MCP_USE_PUPPETEER_MODE, | ||
| MIDSCENE_MODEL_NAME, | ||
| MIDSCENE_OPENAI_HTTPS_PROXY, | ||
| MIDSCENE_OPENAI_INIT_CONFIG_JSON, | ||
| MIDSCENE_OPENAI_SOCKS_PROXY, | ||
| MIDSCENE_REPORT_TAG_NAME, | ||
| MIDSCENE_RUN_DIR, | ||
| MIDSCENE_USE_ANTHROPIC_SDK, | ||
| MIDSCENE_USE_AZURE_OPENAI, | ||
| MIDSCENE_USE_DOUBAO_VISION, | ||
| MIDSCENE_USE_GEMINI, | ||
| MIDSCENE_USE_QWEN_VL, | ||
| MIDSCENE_USE_VLM_UI_TARS, | ||
| MIDSCENE_USE_VL_MODEL, | ||
| OPENAI_API_KEY, | ||
| OPENAI_BASE_URL, | ||
| OPENAI_MAX_TOKENS, | ||
| OPENAI_USE_AZURE, | ||
| UITarsModelVersion, | ||
| allConfigFromEnv, | ||
| getAIConfig, | ||
| getAIConfigInBoolean, | ||
| getAIConfigInJson, | ||
| overrideAIConfig, | ||
| uiTarsModelVersion, | ||
| vlLocateMode | ||
| }; |
| declare const defaultRunDirName = "midscene_run"; | ||
| declare const isNodeEnv: boolean; | ||
| declare const getMidsceneRunDir: () => string; | ||
| declare const getMidsceneRunBaseDir: () => string; | ||
| /** | ||
| * Get the path to the midscene_run directory or a subdirectory within it. | ||
| * Creates the directory if it doesn't exist. | ||
| * | ||
| * @param subdir - Optional subdirectory name (e.g., 'log', 'report') | ||
| * @returns The absolute path to the requested directory | ||
| */ | ||
| declare const getMidsceneRunSubDir: (subdir: "dump" | "cache" | "report" | "tmp" | "log" | "output") => string; | ||
| declare const logDir: string; | ||
| export { defaultRunDirName, getMidsceneRunBaseDir, getMidsceneRunDir, getMidsceneRunSubDir, isNodeEnv, logDir }; |
| "use strict"; | ||
| var __create = Object.create; | ||
| var __defProp = Object.defineProperty; | ||
| var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | ||
| var __getOwnPropNames = Object.getOwnPropertyNames; | ||
| var __getProtoOf = Object.getPrototypeOf; | ||
| var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
| var __export = (target, all) => { | ||
| for (var name in all) | ||
| __defProp(target, name, { get: all[name], enumerable: true }); | ||
| }; | ||
| var __copyProps = (to, from, except, desc) => { | ||
| if (from && typeof from === "object" || typeof from === "function") { | ||
| for (let key of __getOwnPropNames(from)) | ||
| if (!__hasOwnProp.call(to, key) && key !== except) | ||
| __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | ||
| } | ||
| return to; | ||
| }; | ||
| var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( | ||
| // If the importer is in node compatibility mode or this is not an ESM | ||
| // file that has been converted to a CommonJS file using a Babel- | ||
| // compatible transform (i.e. "__esModule" has not been set), then set | ||
| // "default" to the CommonJS "module.exports" for node compatibility. | ||
| isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, | ||
| mod | ||
| )); | ||
| var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); | ||
| // src/common.ts | ||
| var common_exports = {}; | ||
| __export(common_exports, { | ||
| defaultRunDirName: () => defaultRunDirName, | ||
| getMidsceneRunBaseDir: () => getMidsceneRunBaseDir, | ||
| getMidsceneRunDir: () => getMidsceneRunDir, | ||
| getMidsceneRunSubDir: () => getMidsceneRunSubDir, | ||
| isNodeEnv: () => isNodeEnv, | ||
| logDir: () => logDir | ||
| }); | ||
| module.exports = __toCommonJS(common_exports); | ||
| var import_node_fs = require("fs"); | ||
| var import_node_os = require("os"); | ||
| var import_node_path = __toESM(require("path")); | ||
| // src/env.ts | ||
| var MIDSCENE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_OPENAI_INIT_CONFIG_JSON"; | ||
| var MIDSCENE_MODEL_NAME = "MIDSCENE_MODEL_NAME"; | ||
| var MIDSCENE_LANGSMITH_DEBUG = "MIDSCENE_LANGSMITH_DEBUG"; | ||
| var MIDSCENE_DEBUG_AI_PROFILE = "MIDSCENE_DEBUG_AI_PROFILE"; | ||
| var MIDSCENE_DEBUG_AI_RESPONSE = "MIDSCENE_DEBUG_AI_RESPONSE"; | ||
| var MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG = "MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG"; | ||
| var MIDSCENE_DEBUG_MODE = "MIDSCENE_DEBUG_MODE"; | ||
| var MIDSCENE_MCP_USE_PUPPETEER_MODE = "MIDSCENE_MCP_USE_PUPPETEER_MODE"; | ||
| var MIDSCENE_FORCE_DEEP_THINK = "MIDSCENE_FORCE_DEEP_THINK"; | ||
| var MIDSCENE_OPENAI_SOCKS_PROXY = "MIDSCENE_OPENAI_SOCKS_PROXY"; | ||
| var MIDSCENE_OPENAI_HTTPS_PROXY = "MIDSCENE_OPENAI_HTTPS_PROXY"; | ||
| var OPENAI_API_KEY = "OPENAI_API_KEY"; | ||
| var OPENAI_BASE_URL = "OPENAI_BASE_URL"; | ||
| var OPENAI_MAX_TOKENS = "OPENAI_MAX_TOKENS"; | ||
| var MIDSCENE_CACHE = "MIDSCENE_CACHE"; | ||
| var MIDSCENE_USE_VLM_UI_TARS = "MIDSCENE_USE_VLM_UI_TARS"; | ||
| var MIDSCENE_USE_QWEN_VL = "MIDSCENE_USE_QWEN_VL"; | ||
| var MIDSCENE_USE_DOUBAO_VISION = "MIDSCENE_USE_DOUBAO_VISION"; | ||
| var MIDSCENE_USE_GEMINI = "MIDSCENE_USE_GEMINI"; | ||
| var MIDSCENE_USE_VL_MODEL = "MIDSCENE_USE_VL_MODEL"; | ||
| var MATCH_BY_POSITION = "MATCH_BY_POSITION"; | ||
| var MIDSCENE_REPORT_TAG_NAME = "MIDSCENE_REPORT_TAG_NAME"; | ||
| var MIDSCENE_USE_AZURE_OPENAI = "MIDSCENE_USE_AZURE_OPENAI"; | ||
| var MIDSCENE_AZURE_OPENAI_SCOPE = "MIDSCENE_AZURE_OPENAI_SCOPE"; | ||
| var MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON"; | ||
| var AZURE_OPENAI_ENDPOINT = "AZURE_OPENAI_ENDPOINT"; | ||
| var AZURE_OPENAI_KEY = "AZURE_OPENAI_KEY"; | ||
| var AZURE_OPENAI_API_VERSION = "AZURE_OPENAI_API_VERSION"; | ||
| var AZURE_OPENAI_DEPLOYMENT = "AZURE_OPENAI_DEPLOYMENT"; | ||
| var MIDSCENE_USE_ANTHROPIC_SDK = "MIDSCENE_USE_ANTHROPIC_SDK"; | ||
| var ANTHROPIC_API_KEY = "ANTHROPIC_API_KEY"; | ||
| var MIDSCENE_RUN_DIR = "MIDSCENE_RUN_DIR"; | ||
| var OPENAI_USE_AZURE = "OPENAI_USE_AZURE"; | ||
| var allConfigFromEnv = () => { | ||
| return { | ||
| [MIDSCENE_OPENAI_INIT_CONFIG_JSON]: process.env[MIDSCENE_OPENAI_INIT_CONFIG_JSON] || void 0, | ||
| [MIDSCENE_MODEL_NAME]: process.env[MIDSCENE_MODEL_NAME] || void 0, | ||
| [MIDSCENE_DEBUG_MODE]: process.env[MIDSCENE_DEBUG_MODE] || void 0, | ||
| [MIDSCENE_FORCE_DEEP_THINK]: process.env[MIDSCENE_FORCE_DEEP_THINK] || void 0, | ||
| [MIDSCENE_LANGSMITH_DEBUG]: process.env[MIDSCENE_LANGSMITH_DEBUG] || void 0, | ||
| [MIDSCENE_DEBUG_AI_PROFILE]: process.env[MIDSCENE_DEBUG_AI_PROFILE] || void 0, | ||
| [MIDSCENE_DEBUG_AI_RESPONSE]: process.env[MIDSCENE_DEBUG_AI_RESPONSE] || void 0, | ||
| [MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG]: process.env[MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG] || void 0, | ||
| [OPENAI_API_KEY]: process.env[OPENAI_API_KEY] || void 0, | ||
| [OPENAI_BASE_URL]: process.env[OPENAI_BASE_URL] || void 0, | ||
| [OPENAI_MAX_TOKENS]: process.env[OPENAI_MAX_TOKENS] || void 0, | ||
| [OPENAI_USE_AZURE]: process.env[OPENAI_USE_AZURE] || void 0, | ||
| [MIDSCENE_CACHE]: process.env[MIDSCENE_CACHE] || void 0, | ||
| [MATCH_BY_POSITION]: process.env[MATCH_BY_POSITION] || void 0, | ||
| [MIDSCENE_REPORT_TAG_NAME]: process.env[MIDSCENE_REPORT_TAG_NAME] || void 0, | ||
| [MIDSCENE_OPENAI_SOCKS_PROXY]: process.env[MIDSCENE_OPENAI_SOCKS_PROXY] || void 0, | ||
| [MIDSCENE_OPENAI_HTTPS_PROXY]: process.env[MIDSCENE_OPENAI_HTTPS_PROXY] || void 0, | ||
| [MIDSCENE_USE_AZURE_OPENAI]: process.env[MIDSCENE_USE_AZURE_OPENAI] || void 0, | ||
| [MIDSCENE_AZURE_OPENAI_SCOPE]: process.env[MIDSCENE_AZURE_OPENAI_SCOPE] || void 0, | ||
| [MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON]: process.env[MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON] || void 0, | ||
| [MIDSCENE_USE_ANTHROPIC_SDK]: process.env[MIDSCENE_USE_ANTHROPIC_SDK] || void 0, | ||
| [MIDSCENE_USE_VLM_UI_TARS]: process.env[MIDSCENE_USE_VLM_UI_TARS] || void 0, | ||
| [MIDSCENE_USE_QWEN_VL]: process.env[MIDSCENE_USE_QWEN_VL] || void 0, | ||
| [MIDSCENE_USE_DOUBAO_VISION]: process.env[MIDSCENE_USE_DOUBAO_VISION] || void 0, | ||
| [MIDSCENE_USE_GEMINI]: process.env[MIDSCENE_USE_GEMINI] || void 0, | ||
| [MIDSCENE_USE_VL_MODEL]: process.env[MIDSCENE_USE_VL_MODEL] || void 0, | ||
| [ANTHROPIC_API_KEY]: process.env[ANTHROPIC_API_KEY] || void 0, | ||
| [AZURE_OPENAI_ENDPOINT]: process.env[AZURE_OPENAI_ENDPOINT] || void 0, | ||
| [AZURE_OPENAI_KEY]: process.env[AZURE_OPENAI_KEY] || void 0, | ||
| [AZURE_OPENAI_API_VERSION]: process.env[AZURE_OPENAI_API_VERSION] || void 0, | ||
| [AZURE_OPENAI_DEPLOYMENT]: process.env[AZURE_OPENAI_DEPLOYMENT] || void 0, | ||
| [MIDSCENE_MCP_USE_PUPPETEER_MODE]: process.env[MIDSCENE_MCP_USE_PUPPETEER_MODE] || void 0, | ||
| [MIDSCENE_RUN_DIR]: process.env[MIDSCENE_RUN_DIR] || void 0 | ||
| }; | ||
| }; | ||
| var globalConfig = null; | ||
| var getGlobalConfig = () => { | ||
| if (globalConfig === null) { | ||
| globalConfig = allConfigFromEnv(); | ||
| } | ||
| return globalConfig; | ||
| }; | ||
| var getAIConfig = (configKey) => { | ||
| if (configKey === MATCH_BY_POSITION) { | ||
| throw new Error( | ||
| "MATCH_BY_POSITION is deprecated, use MIDSCENE_USE_VL_MODEL instead" | ||
| ); | ||
| } | ||
| return getGlobalConfig()[configKey]?.trim(); | ||
| }; | ||
| // src/common.ts | ||
| var defaultRunDirName = "midscene_run"; | ||
| var isNodeEnv = typeof process !== "undefined" && process.versions != null && process.versions.node != null; | ||
| var getMidsceneRunDir = () => { | ||
| if (!isNodeEnv) { | ||
| return ""; | ||
| } | ||
| return getAIConfig(MIDSCENE_RUN_DIR) || defaultRunDirName; | ||
| }; | ||
| var getMidsceneRunBaseDir = () => { | ||
| if (!isNodeEnv) { | ||
| return ""; | ||
| } | ||
| let basePath = import_node_path.default.resolve(process.cwd(), getMidsceneRunDir()); | ||
| if (!(0, import_node_fs.existsSync)(basePath)) { | ||
| try { | ||
| (0, import_node_fs.mkdirSync)(basePath, { recursive: true }); | ||
| } catch (error) { | ||
| basePath = import_node_path.default.join((0, import_node_os.tmpdir)(), defaultRunDirName); | ||
| (0, import_node_fs.mkdirSync)(basePath, { recursive: true }); | ||
| } | ||
| } | ||
| return basePath; | ||
| }; | ||
| var getMidsceneRunSubDir = (subdir) => { | ||
| if (!isNodeEnv) { | ||
| return ""; | ||
| } | ||
| const basePath = getMidsceneRunBaseDir(); | ||
| const logPath = import_node_path.default.join(basePath, subdir); | ||
| if (!(0, import_node_fs.existsSync)(logPath)) { | ||
| (0, import_node_fs.mkdirSync)(logPath, { recursive: true }); | ||
| } | ||
| return logPath; | ||
| }; | ||
| var logDir = isNodeEnv ? getMidsceneRunSubDir("log") : ""; | ||
| // Annotate the CommonJS export names for ESM import in node: | ||
| 0 && (module.exports = { | ||
| defaultRunDirName, | ||
| getMidsceneRunBaseDir, | ||
| getMidsceneRunDir, | ||
| getMidsceneRunSubDir, | ||
| isNodeEnv, | ||
| logDir | ||
| }); |
| declare const MIDSCENE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_OPENAI_INIT_CONFIG_JSON"; | ||
| declare const MIDSCENE_MODEL_NAME = "MIDSCENE_MODEL_NAME"; | ||
| declare const MIDSCENE_LANGSMITH_DEBUG = "MIDSCENE_LANGSMITH_DEBUG"; | ||
| declare const MIDSCENE_DEBUG_AI_PROFILE = "MIDSCENE_DEBUG_AI_PROFILE"; | ||
| declare const MIDSCENE_DEBUG_AI_RESPONSE = "MIDSCENE_DEBUG_AI_RESPONSE"; | ||
| declare const MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG = "MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG"; | ||
| declare const MIDSCENE_DEBUG_MODE = "MIDSCENE_DEBUG_MODE"; | ||
| declare const MIDSCENE_MCP_USE_PUPPETEER_MODE = "MIDSCENE_MCP_USE_PUPPETEER_MODE"; | ||
| declare const MIDSCENE_FORCE_DEEP_THINK = "MIDSCENE_FORCE_DEEP_THINK"; | ||
| declare const MIDSCENE_OPENAI_SOCKS_PROXY = "MIDSCENE_OPENAI_SOCKS_PROXY"; | ||
| declare const MIDSCENE_OPENAI_HTTPS_PROXY = "MIDSCENE_OPENAI_HTTPS_PROXY"; | ||
| declare const OPENAI_API_KEY = "OPENAI_API_KEY"; | ||
| declare const OPENAI_BASE_URL = "OPENAI_BASE_URL"; | ||
| declare const OPENAI_MAX_TOKENS = "OPENAI_MAX_TOKENS"; | ||
| declare const MIDSCENE_CACHE = "MIDSCENE_CACHE"; | ||
| declare const MIDSCENE_USE_VLM_UI_TARS = "MIDSCENE_USE_VLM_UI_TARS"; | ||
| declare const MIDSCENE_USE_QWEN_VL = "MIDSCENE_USE_QWEN_VL"; | ||
| declare const MIDSCENE_USE_DOUBAO_VISION = "MIDSCENE_USE_DOUBAO_VISION"; | ||
| declare const MIDSCENE_USE_GEMINI = "MIDSCENE_USE_GEMINI"; | ||
| declare const MIDSCENE_USE_VL_MODEL = "MIDSCENE_USE_VL_MODEL"; | ||
| declare const MATCH_BY_POSITION = "MATCH_BY_POSITION"; | ||
| declare const MIDSCENE_API_TYPE = "MIDSCENE-API-TYPE"; | ||
| declare const MIDSCENE_REPORT_TAG_NAME = "MIDSCENE_REPORT_TAG_NAME"; | ||
| declare const MIDSCENE_USE_AZURE_OPENAI = "MIDSCENE_USE_AZURE_OPENAI"; | ||
| declare const MIDSCENE_AZURE_OPENAI_SCOPE = "MIDSCENE_AZURE_OPENAI_SCOPE"; | ||
| declare const MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON"; | ||
| declare const AZURE_OPENAI_ENDPOINT = "AZURE_OPENAI_ENDPOINT"; | ||
| declare const AZURE_OPENAI_KEY = "AZURE_OPENAI_KEY"; | ||
| declare const AZURE_OPENAI_API_VERSION = "AZURE_OPENAI_API_VERSION"; | ||
| declare const AZURE_OPENAI_DEPLOYMENT = "AZURE_OPENAI_DEPLOYMENT"; | ||
| declare const MIDSCENE_USE_ANTHROPIC_SDK = "MIDSCENE_USE_ANTHROPIC_SDK"; | ||
| declare const ANTHROPIC_API_KEY = "ANTHROPIC_API_KEY"; | ||
| declare const MIDSCENE_RUN_DIR = "MIDSCENE_RUN_DIR"; | ||
| declare const OPENAI_USE_AZURE = "OPENAI_USE_AZURE"; | ||
| declare const allConfigFromEnv: () => { | ||
| MIDSCENE_OPENAI_INIT_CONFIG_JSON: string | undefined; | ||
| MIDSCENE_MODEL_NAME: string | undefined; | ||
| MIDSCENE_DEBUG_MODE: string | undefined; | ||
| MIDSCENE_FORCE_DEEP_THINK: string | undefined; | ||
| MIDSCENE_LANGSMITH_DEBUG: string | undefined; | ||
| MIDSCENE_DEBUG_AI_PROFILE: string | undefined; | ||
| MIDSCENE_DEBUG_AI_RESPONSE: string | undefined; | ||
| MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG: string | undefined; | ||
| OPENAI_API_KEY: string | undefined; | ||
| OPENAI_BASE_URL: string | undefined; | ||
| OPENAI_MAX_TOKENS: string | undefined; | ||
| OPENAI_USE_AZURE: string | undefined; | ||
| MIDSCENE_CACHE: string | undefined; | ||
| MATCH_BY_POSITION: string | undefined; | ||
| MIDSCENE_REPORT_TAG_NAME: string | undefined; | ||
| MIDSCENE_OPENAI_SOCKS_PROXY: string | undefined; | ||
| MIDSCENE_OPENAI_HTTPS_PROXY: string | undefined; | ||
| MIDSCENE_USE_AZURE_OPENAI: string | undefined; | ||
| MIDSCENE_AZURE_OPENAI_SCOPE: string | undefined; | ||
| MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON: string | undefined; | ||
| MIDSCENE_USE_ANTHROPIC_SDK: string | undefined; | ||
| MIDSCENE_USE_VLM_UI_TARS: string | undefined; | ||
| MIDSCENE_USE_QWEN_VL: string | undefined; | ||
| MIDSCENE_USE_DOUBAO_VISION: string | undefined; | ||
| MIDSCENE_USE_GEMINI: string | undefined; | ||
| MIDSCENE_USE_VL_MODEL: string | undefined; | ||
| ANTHROPIC_API_KEY: string | undefined; | ||
| AZURE_OPENAI_ENDPOINT: string | undefined; | ||
| AZURE_OPENAI_KEY: string | undefined; | ||
| AZURE_OPENAI_API_VERSION: string | undefined; | ||
| AZURE_OPENAI_DEPLOYMENT: string | undefined; | ||
| MIDSCENE_MCP_USE_PUPPETEER_MODE: string | undefined; | ||
| MIDSCENE_RUN_DIR: string | undefined; | ||
| }; | ||
| declare enum UITarsModelVersion { | ||
| V1_0 = "1.0", | ||
| V1_5 = "1.5", | ||
| DOUBAO_1_5_15B = "doubao-1.5-15B", | ||
| DOUBAO_1_5_20B = "doubao-1.5-20B" | ||
| } | ||
| declare const uiTarsModelVersion: () => UITarsModelVersion | false; | ||
| declare const vlLocateMode: () => "qwen-vl" | "doubao-vision" | "gemini" | "vl-model" | "vlm-ui-tars" | false; | ||
| declare const getAIConfig: (configKey: keyof ReturnType<typeof allConfigFromEnv>) => string | undefined; | ||
| declare const getAIConfigInBoolean: (configKey: keyof ReturnType<typeof allConfigFromEnv>) => boolean; | ||
| declare const getAIConfigInJson: (configKey: keyof ReturnType<typeof allConfigFromEnv>) => any; | ||
| declare const overrideAIConfig: (newConfig: Partial<ReturnType<typeof allConfigFromEnv>>, extendMode?: boolean) => void; | ||
| export { ANTHROPIC_API_KEY, AZURE_OPENAI_API_VERSION, AZURE_OPENAI_DEPLOYMENT, AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_KEY, MATCH_BY_POSITION, MIDSCENE_API_TYPE, MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_AZURE_OPENAI_SCOPE, MIDSCENE_CACHE, MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG, MIDSCENE_DEBUG_AI_PROFILE, MIDSCENE_DEBUG_AI_RESPONSE, MIDSCENE_DEBUG_MODE, MIDSCENE_FORCE_DEEP_THINK, MIDSCENE_LANGSMITH_DEBUG, MIDSCENE_MCP_USE_PUPPETEER_MODE, MIDSCENE_MODEL_NAME, MIDSCENE_OPENAI_HTTPS_PROXY, MIDSCENE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_OPENAI_SOCKS_PROXY, MIDSCENE_REPORT_TAG_NAME, MIDSCENE_RUN_DIR, MIDSCENE_USE_ANTHROPIC_SDK, MIDSCENE_USE_AZURE_OPENAI, MIDSCENE_USE_DOUBAO_VISION, MIDSCENE_USE_GEMINI, MIDSCENE_USE_QWEN_VL, MIDSCENE_USE_VLM_UI_TARS, MIDSCENE_USE_VL_MODEL, OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MAX_TOKENS, OPENAI_USE_AZURE, UITarsModelVersion, allConfigFromEnv, getAIConfig, getAIConfigInBoolean, getAIConfigInJson, overrideAIConfig, uiTarsModelVersion, vlLocateMode }; |
+283
| "use strict"; | ||
| var __defProp = Object.defineProperty; | ||
| var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | ||
| var __getOwnPropNames = Object.getOwnPropertyNames; | ||
| var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
| var __export = (target, all) => { | ||
| for (var name in all) | ||
| __defProp(target, name, { get: all[name], enumerable: true }); | ||
| }; | ||
| var __copyProps = (to, from, except, desc) => { | ||
| if (from && typeof from === "object" || typeof from === "function") { | ||
| for (let key of __getOwnPropNames(from)) | ||
| if (!__hasOwnProp.call(to, key) && key !== except) | ||
| __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | ||
| } | ||
| return to; | ||
| }; | ||
| var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); | ||
| // src/env.ts | ||
| var env_exports = {}; | ||
| __export(env_exports, { | ||
| ANTHROPIC_API_KEY: () => ANTHROPIC_API_KEY, | ||
| AZURE_OPENAI_API_VERSION: () => AZURE_OPENAI_API_VERSION, | ||
| AZURE_OPENAI_DEPLOYMENT: () => AZURE_OPENAI_DEPLOYMENT, | ||
| AZURE_OPENAI_ENDPOINT: () => AZURE_OPENAI_ENDPOINT, | ||
| AZURE_OPENAI_KEY: () => AZURE_OPENAI_KEY, | ||
| MATCH_BY_POSITION: () => MATCH_BY_POSITION, | ||
| MIDSCENE_API_TYPE: () => MIDSCENE_API_TYPE, | ||
| MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON: () => MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON, | ||
| MIDSCENE_AZURE_OPENAI_SCOPE: () => MIDSCENE_AZURE_OPENAI_SCOPE, | ||
| MIDSCENE_CACHE: () => MIDSCENE_CACHE, | ||
| MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG: () => MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG, | ||
| MIDSCENE_DEBUG_AI_PROFILE: () => MIDSCENE_DEBUG_AI_PROFILE, | ||
| MIDSCENE_DEBUG_AI_RESPONSE: () => MIDSCENE_DEBUG_AI_RESPONSE, | ||
| MIDSCENE_DEBUG_MODE: () => MIDSCENE_DEBUG_MODE, | ||
| MIDSCENE_FORCE_DEEP_THINK: () => MIDSCENE_FORCE_DEEP_THINK, | ||
| MIDSCENE_LANGSMITH_DEBUG: () => MIDSCENE_LANGSMITH_DEBUG, | ||
| MIDSCENE_MCP_USE_PUPPETEER_MODE: () => MIDSCENE_MCP_USE_PUPPETEER_MODE, | ||
| MIDSCENE_MODEL_NAME: () => MIDSCENE_MODEL_NAME, | ||
| MIDSCENE_OPENAI_HTTPS_PROXY: () => MIDSCENE_OPENAI_HTTPS_PROXY, | ||
| MIDSCENE_OPENAI_INIT_CONFIG_JSON: () => MIDSCENE_OPENAI_INIT_CONFIG_JSON, | ||
| MIDSCENE_OPENAI_SOCKS_PROXY: () => MIDSCENE_OPENAI_SOCKS_PROXY, | ||
| MIDSCENE_REPORT_TAG_NAME: () => MIDSCENE_REPORT_TAG_NAME, | ||
| MIDSCENE_RUN_DIR: () => MIDSCENE_RUN_DIR, | ||
| MIDSCENE_USE_ANTHROPIC_SDK: () => MIDSCENE_USE_ANTHROPIC_SDK, | ||
| MIDSCENE_USE_AZURE_OPENAI: () => MIDSCENE_USE_AZURE_OPENAI, | ||
| MIDSCENE_USE_DOUBAO_VISION: () => MIDSCENE_USE_DOUBAO_VISION, | ||
| MIDSCENE_USE_GEMINI: () => MIDSCENE_USE_GEMINI, | ||
| MIDSCENE_USE_QWEN_VL: () => MIDSCENE_USE_QWEN_VL, | ||
| MIDSCENE_USE_VLM_UI_TARS: () => MIDSCENE_USE_VLM_UI_TARS, | ||
| MIDSCENE_USE_VL_MODEL: () => MIDSCENE_USE_VL_MODEL, | ||
| OPENAI_API_KEY: () => OPENAI_API_KEY, | ||
| OPENAI_BASE_URL: () => OPENAI_BASE_URL, | ||
| OPENAI_MAX_TOKENS: () => OPENAI_MAX_TOKENS, | ||
| OPENAI_USE_AZURE: () => OPENAI_USE_AZURE, | ||
| UITarsModelVersion: () => UITarsModelVersion, | ||
| allConfigFromEnv: () => allConfigFromEnv, | ||
| getAIConfig: () => getAIConfig, | ||
| getAIConfigInBoolean: () => getAIConfigInBoolean, | ||
| getAIConfigInJson: () => getAIConfigInJson, | ||
| overrideAIConfig: () => overrideAIConfig, | ||
| uiTarsModelVersion: () => uiTarsModelVersion, | ||
| vlLocateMode: () => vlLocateMode | ||
| }); | ||
| module.exports = __toCommonJS(env_exports); | ||
| var MIDSCENE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_OPENAI_INIT_CONFIG_JSON"; | ||
| var MIDSCENE_MODEL_NAME = "MIDSCENE_MODEL_NAME"; | ||
| var MIDSCENE_LANGSMITH_DEBUG = "MIDSCENE_LANGSMITH_DEBUG"; | ||
| var MIDSCENE_DEBUG_AI_PROFILE = "MIDSCENE_DEBUG_AI_PROFILE"; | ||
| var MIDSCENE_DEBUG_AI_RESPONSE = "MIDSCENE_DEBUG_AI_RESPONSE"; | ||
| var MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG = "MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG"; | ||
| var MIDSCENE_DEBUG_MODE = "MIDSCENE_DEBUG_MODE"; | ||
| var MIDSCENE_MCP_USE_PUPPETEER_MODE = "MIDSCENE_MCP_USE_PUPPETEER_MODE"; | ||
| var MIDSCENE_FORCE_DEEP_THINK = "MIDSCENE_FORCE_DEEP_THINK"; | ||
| var MIDSCENE_OPENAI_SOCKS_PROXY = "MIDSCENE_OPENAI_SOCKS_PROXY"; | ||
| var MIDSCENE_OPENAI_HTTPS_PROXY = "MIDSCENE_OPENAI_HTTPS_PROXY"; | ||
| var OPENAI_API_KEY = "OPENAI_API_KEY"; | ||
| var OPENAI_BASE_URL = "OPENAI_BASE_URL"; | ||
| var OPENAI_MAX_TOKENS = "OPENAI_MAX_TOKENS"; | ||
| var MIDSCENE_CACHE = "MIDSCENE_CACHE"; | ||
| var MIDSCENE_USE_VLM_UI_TARS = "MIDSCENE_USE_VLM_UI_TARS"; | ||
| var MIDSCENE_USE_QWEN_VL = "MIDSCENE_USE_QWEN_VL"; | ||
| var MIDSCENE_USE_DOUBAO_VISION = "MIDSCENE_USE_DOUBAO_VISION"; | ||
| var MIDSCENE_USE_GEMINI = "MIDSCENE_USE_GEMINI"; | ||
| var MIDSCENE_USE_VL_MODEL = "MIDSCENE_USE_VL_MODEL"; | ||
| var MATCH_BY_POSITION = "MATCH_BY_POSITION"; | ||
| var MIDSCENE_API_TYPE = "MIDSCENE-API-TYPE"; | ||
| var MIDSCENE_REPORT_TAG_NAME = "MIDSCENE_REPORT_TAG_NAME"; | ||
| var MIDSCENE_USE_AZURE_OPENAI = "MIDSCENE_USE_AZURE_OPENAI"; | ||
| var MIDSCENE_AZURE_OPENAI_SCOPE = "MIDSCENE_AZURE_OPENAI_SCOPE"; | ||
| var MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON"; | ||
| var AZURE_OPENAI_ENDPOINT = "AZURE_OPENAI_ENDPOINT"; | ||
| var AZURE_OPENAI_KEY = "AZURE_OPENAI_KEY"; | ||
| var AZURE_OPENAI_API_VERSION = "AZURE_OPENAI_API_VERSION"; | ||
| var AZURE_OPENAI_DEPLOYMENT = "AZURE_OPENAI_DEPLOYMENT"; | ||
| var MIDSCENE_USE_ANTHROPIC_SDK = "MIDSCENE_USE_ANTHROPIC_SDK"; | ||
| var ANTHROPIC_API_KEY = "ANTHROPIC_API_KEY"; | ||
| var MIDSCENE_RUN_DIR = "MIDSCENE_RUN_DIR"; | ||
| var OPENAI_USE_AZURE = "OPENAI_USE_AZURE"; | ||
| var allConfigFromEnv = () => { | ||
| return { | ||
| [MIDSCENE_OPENAI_INIT_CONFIG_JSON]: process.env[MIDSCENE_OPENAI_INIT_CONFIG_JSON] || void 0, | ||
| [MIDSCENE_MODEL_NAME]: process.env[MIDSCENE_MODEL_NAME] || void 0, | ||
| [MIDSCENE_DEBUG_MODE]: process.env[MIDSCENE_DEBUG_MODE] || void 0, | ||
| [MIDSCENE_FORCE_DEEP_THINK]: process.env[MIDSCENE_FORCE_DEEP_THINK] || void 0, | ||
| [MIDSCENE_LANGSMITH_DEBUG]: process.env[MIDSCENE_LANGSMITH_DEBUG] || void 0, | ||
| [MIDSCENE_DEBUG_AI_PROFILE]: process.env[MIDSCENE_DEBUG_AI_PROFILE] || void 0, | ||
| [MIDSCENE_DEBUG_AI_RESPONSE]: process.env[MIDSCENE_DEBUG_AI_RESPONSE] || void 0, | ||
| [MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG]: process.env[MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG] || void 0, | ||
| [OPENAI_API_KEY]: process.env[OPENAI_API_KEY] || void 0, | ||
| [OPENAI_BASE_URL]: process.env[OPENAI_BASE_URL] || void 0, | ||
| [OPENAI_MAX_TOKENS]: process.env[OPENAI_MAX_TOKENS] || void 0, | ||
| [OPENAI_USE_AZURE]: process.env[OPENAI_USE_AZURE] || void 0, | ||
| [MIDSCENE_CACHE]: process.env[MIDSCENE_CACHE] || void 0, | ||
| [MATCH_BY_POSITION]: process.env[MATCH_BY_POSITION] || void 0, | ||
| [MIDSCENE_REPORT_TAG_NAME]: process.env[MIDSCENE_REPORT_TAG_NAME] || void 0, | ||
| [MIDSCENE_OPENAI_SOCKS_PROXY]: process.env[MIDSCENE_OPENAI_SOCKS_PROXY] || void 0, | ||
| [MIDSCENE_OPENAI_HTTPS_PROXY]: process.env[MIDSCENE_OPENAI_HTTPS_PROXY] || void 0, | ||
| [MIDSCENE_USE_AZURE_OPENAI]: process.env[MIDSCENE_USE_AZURE_OPENAI] || void 0, | ||
| [MIDSCENE_AZURE_OPENAI_SCOPE]: process.env[MIDSCENE_AZURE_OPENAI_SCOPE] || void 0, | ||
| [MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON]: process.env[MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON] || void 0, | ||
| [MIDSCENE_USE_ANTHROPIC_SDK]: process.env[MIDSCENE_USE_ANTHROPIC_SDK] || void 0, | ||
| [MIDSCENE_USE_VLM_UI_TARS]: process.env[MIDSCENE_USE_VLM_UI_TARS] || void 0, | ||
| [MIDSCENE_USE_QWEN_VL]: process.env[MIDSCENE_USE_QWEN_VL] || void 0, | ||
| [MIDSCENE_USE_DOUBAO_VISION]: process.env[MIDSCENE_USE_DOUBAO_VISION] || void 0, | ||
| [MIDSCENE_USE_GEMINI]: process.env[MIDSCENE_USE_GEMINI] || void 0, | ||
| [MIDSCENE_USE_VL_MODEL]: process.env[MIDSCENE_USE_VL_MODEL] || void 0, | ||
| [ANTHROPIC_API_KEY]: process.env[ANTHROPIC_API_KEY] || void 0, | ||
| [AZURE_OPENAI_ENDPOINT]: process.env[AZURE_OPENAI_ENDPOINT] || void 0, | ||
| [AZURE_OPENAI_KEY]: process.env[AZURE_OPENAI_KEY] || void 0, | ||
| [AZURE_OPENAI_API_VERSION]: process.env[AZURE_OPENAI_API_VERSION] || void 0, | ||
| [AZURE_OPENAI_DEPLOYMENT]: process.env[AZURE_OPENAI_DEPLOYMENT] || void 0, | ||
| [MIDSCENE_MCP_USE_PUPPETEER_MODE]: process.env[MIDSCENE_MCP_USE_PUPPETEER_MODE] || void 0, | ||
| [MIDSCENE_RUN_DIR]: process.env[MIDSCENE_RUN_DIR] || void 0 | ||
| }; | ||
| }; | ||
| var globalConfig = null; | ||
| var getGlobalConfig = () => { | ||
| if (globalConfig === null) { | ||
| globalConfig = allConfigFromEnv(); | ||
| } | ||
| return globalConfig; | ||
| }; | ||
| var UITarsModelVersion = /* @__PURE__ */ ((UITarsModelVersion2) => { | ||
| UITarsModelVersion2["V1_0"] = "1.0"; | ||
| UITarsModelVersion2["V1_5"] = "1.5"; | ||
| UITarsModelVersion2["DOUBAO_1_5_15B"] = "doubao-1.5-15B"; | ||
| UITarsModelVersion2["DOUBAO_1_5_20B"] = "doubao-1.5-20B"; | ||
| return UITarsModelVersion2; | ||
| })(UITarsModelVersion || {}); | ||
| var uiTarsModelVersion = () => { | ||
| if (vlLocateMode() !== "vlm-ui-tars") { | ||
| return false; | ||
| } | ||
| const versionConfig = getAIConfigInJson(MIDSCENE_USE_VLM_UI_TARS); | ||
| if (versionConfig === "1" || versionConfig === 1) { | ||
| return "1.0" /* V1_0 */; | ||
| } | ||
| if (versionConfig === "DOUBAO-1.5") { | ||
| return "doubao-1.5-20B" /* DOUBAO_1_5_20B */; | ||
| } | ||
| return `${versionConfig}`; | ||
| }; | ||
| var vlLocateMode = () => { | ||
| const enabledModes = [ | ||
| getAIConfigInBoolean(MIDSCENE_USE_DOUBAO_VISION) && "MIDSCENE_USE_DOUBAO_VISION", | ||
| getAIConfigInBoolean(MIDSCENE_USE_QWEN_VL) && "MIDSCENE_USE_QWEN_VL", | ||
| getAIConfigInBoolean(MIDSCENE_USE_VLM_UI_TARS) && "MIDSCENE_USE_VLM_UI_TARS", | ||
| getAIConfigInBoolean(MIDSCENE_USE_GEMINI) && "MIDSCENE_USE_GEMINI" | ||
| ].filter(Boolean); | ||
| if (enabledModes.length > 1) { | ||
| throw new Error( | ||
| `Only one vision mode can be enabled at a time. Currently enabled modes: ${enabledModes.join(", ")}. Please disable all but one mode.` | ||
| ); | ||
| } | ||
| if (getAIConfigInBoolean(MIDSCENE_USE_QWEN_VL)) { | ||
| return "qwen-vl"; | ||
| } | ||
| if (getAIConfigInBoolean(MIDSCENE_USE_DOUBAO_VISION)) { | ||
| return "doubao-vision"; | ||
| } | ||
| if (getAIConfigInBoolean(MIDSCENE_USE_GEMINI)) { | ||
| return "gemini"; | ||
| } | ||
| if (getAIConfigInBoolean(MIDSCENE_USE_VL_MODEL)) { | ||
| return "vl-model"; | ||
| } | ||
| if (getAIConfigInBoolean(MIDSCENE_USE_VLM_UI_TARS)) { | ||
| return "vlm-ui-tars"; | ||
| } | ||
| return false; | ||
| }; | ||
| var getAIConfig = (configKey) => { | ||
| if (configKey === MATCH_BY_POSITION) { | ||
| throw new Error( | ||
| "MATCH_BY_POSITION is deprecated, use MIDSCENE_USE_VL_MODEL instead" | ||
| ); | ||
| } | ||
| return getGlobalConfig()[configKey]?.trim(); | ||
| }; | ||
| var getAIConfigInBoolean = (configKey) => { | ||
| const config = getAIConfig(configKey) || ""; | ||
| if (/^(true|1)$/i.test(config)) { | ||
| return true; | ||
| } | ||
| if (/^(false|0)$/i.test(config)) { | ||
| return false; | ||
| } | ||
| return !!config.trim(); | ||
| }; | ||
| var getAIConfigInJson = (configKey) => { | ||
| const config = getAIConfig(configKey); | ||
| try { | ||
| return config ? JSON.parse(config) : void 0; | ||
| } catch (error) { | ||
| throw new Error( | ||
| `Failed to parse json config: ${configKey}. ${error.message}`, | ||
| { | ||
| cause: error | ||
| } | ||
| ); | ||
| } | ||
| }; | ||
| var overrideAIConfig = (newConfig, extendMode = false) => { | ||
| for (const key in newConfig) { | ||
| if (typeof key !== "string") { | ||
| throw new Error(`Failed to override AI config, invalid key: ${key}`); | ||
| } | ||
| if (typeof newConfig[key] === "object") { | ||
| throw new Error( | ||
| `Failed to override AI config, invalid value for key: ${key}, value: ${newConfig[key]}` | ||
| ); | ||
| } | ||
| } | ||
| const currentConfig = getGlobalConfig(); | ||
| globalConfig = extendMode ? { ...currentConfig, ...newConfig } : { ...newConfig }; | ||
| }; | ||
| // Annotate the CommonJS export names for ESM import in node: | ||
| 0 && (module.exports = { | ||
| ANTHROPIC_API_KEY, | ||
| AZURE_OPENAI_API_VERSION, | ||
| AZURE_OPENAI_DEPLOYMENT, | ||
| AZURE_OPENAI_ENDPOINT, | ||
| AZURE_OPENAI_KEY, | ||
| MATCH_BY_POSITION, | ||
| MIDSCENE_API_TYPE, | ||
| MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON, | ||
| MIDSCENE_AZURE_OPENAI_SCOPE, | ||
| MIDSCENE_CACHE, | ||
| MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG, | ||
| MIDSCENE_DEBUG_AI_PROFILE, | ||
| MIDSCENE_DEBUG_AI_RESPONSE, | ||
| MIDSCENE_DEBUG_MODE, | ||
| MIDSCENE_FORCE_DEEP_THINK, | ||
| MIDSCENE_LANGSMITH_DEBUG, | ||
| MIDSCENE_MCP_USE_PUPPETEER_MODE, | ||
| MIDSCENE_MODEL_NAME, | ||
| MIDSCENE_OPENAI_HTTPS_PROXY, | ||
| MIDSCENE_OPENAI_INIT_CONFIG_JSON, | ||
| MIDSCENE_OPENAI_SOCKS_PROXY, | ||
| MIDSCENE_REPORT_TAG_NAME, | ||
| MIDSCENE_RUN_DIR, | ||
| MIDSCENE_USE_ANTHROPIC_SDK, | ||
| MIDSCENE_USE_AZURE_OPENAI, | ||
| MIDSCENE_USE_DOUBAO_VISION, | ||
| MIDSCENE_USE_GEMINI, | ||
| MIDSCENE_USE_QWEN_VL, | ||
| MIDSCENE_USE_VLM_UI_TARS, | ||
| MIDSCENE_USE_VL_MODEL, | ||
| OPENAI_API_KEY, | ||
| OPENAI_BASE_URL, | ||
| OPENAI_MAX_TOKENS, | ||
| OPENAI_USE_AZURE, | ||
| UITarsModelVersion, | ||
| allConfigFromEnv, | ||
| getAIConfig, | ||
| getAIConfigInBoolean, | ||
| getAIConfigInJson, | ||
| overrideAIConfig, | ||
| uiTarsModelVersion, | ||
| vlLocateMode | ||
| }); |
| declare const defaultRunDirName = "midscene_run"; | ||
| declare const isNodeEnv: boolean; | ||
| declare const getMidsceneRunDir: () => string; | ||
| declare const getMidsceneRunBaseDir: () => string; | ||
| /** | ||
| * Get the path to the midscene_run directory or a subdirectory within it. | ||
| * Creates the directory if it doesn't exist. | ||
| * | ||
| * @param subdir - Optional subdirectory name (e.g., 'log', 'report') | ||
| * @returns The absolute path to the requested directory | ||
| */ | ||
| declare const getMidsceneRunSubDir: (subdir: "dump" | "cache" | "report" | "tmp" | "log" | "output") => string; | ||
| declare const logDir: string; | ||
| export { defaultRunDirName, getMidsceneRunBaseDir, getMidsceneRunDir, getMidsceneRunSubDir, isNodeEnv, logDir }; |
| declare const MIDSCENE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_OPENAI_INIT_CONFIG_JSON"; | ||
| declare const MIDSCENE_MODEL_NAME = "MIDSCENE_MODEL_NAME"; | ||
| declare const MIDSCENE_LANGSMITH_DEBUG = "MIDSCENE_LANGSMITH_DEBUG"; | ||
| declare const MIDSCENE_DEBUG_AI_PROFILE = "MIDSCENE_DEBUG_AI_PROFILE"; | ||
| declare const MIDSCENE_DEBUG_AI_RESPONSE = "MIDSCENE_DEBUG_AI_RESPONSE"; | ||
| declare const MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG = "MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG"; | ||
| declare const MIDSCENE_DEBUG_MODE = "MIDSCENE_DEBUG_MODE"; | ||
| declare const MIDSCENE_MCP_USE_PUPPETEER_MODE = "MIDSCENE_MCP_USE_PUPPETEER_MODE"; | ||
| declare const MIDSCENE_FORCE_DEEP_THINK = "MIDSCENE_FORCE_DEEP_THINK"; | ||
| declare const MIDSCENE_OPENAI_SOCKS_PROXY = "MIDSCENE_OPENAI_SOCKS_PROXY"; | ||
| declare const MIDSCENE_OPENAI_HTTPS_PROXY = "MIDSCENE_OPENAI_HTTPS_PROXY"; | ||
| declare const OPENAI_API_KEY = "OPENAI_API_KEY"; | ||
| declare const OPENAI_BASE_URL = "OPENAI_BASE_URL"; | ||
| declare const OPENAI_MAX_TOKENS = "OPENAI_MAX_TOKENS"; | ||
| declare const MIDSCENE_CACHE = "MIDSCENE_CACHE"; | ||
| declare const MIDSCENE_USE_VLM_UI_TARS = "MIDSCENE_USE_VLM_UI_TARS"; | ||
| declare const MIDSCENE_USE_QWEN_VL = "MIDSCENE_USE_QWEN_VL"; | ||
| declare const MIDSCENE_USE_DOUBAO_VISION = "MIDSCENE_USE_DOUBAO_VISION"; | ||
| declare const MIDSCENE_USE_GEMINI = "MIDSCENE_USE_GEMINI"; | ||
| declare const MIDSCENE_USE_VL_MODEL = "MIDSCENE_USE_VL_MODEL"; | ||
| declare const MATCH_BY_POSITION = "MATCH_BY_POSITION"; | ||
| declare const MIDSCENE_API_TYPE = "MIDSCENE-API-TYPE"; | ||
| declare const MIDSCENE_REPORT_TAG_NAME = "MIDSCENE_REPORT_TAG_NAME"; | ||
| declare const MIDSCENE_USE_AZURE_OPENAI = "MIDSCENE_USE_AZURE_OPENAI"; | ||
| declare const MIDSCENE_AZURE_OPENAI_SCOPE = "MIDSCENE_AZURE_OPENAI_SCOPE"; | ||
| declare const MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON"; | ||
| declare const AZURE_OPENAI_ENDPOINT = "AZURE_OPENAI_ENDPOINT"; | ||
| declare const AZURE_OPENAI_KEY = "AZURE_OPENAI_KEY"; | ||
| declare const AZURE_OPENAI_API_VERSION = "AZURE_OPENAI_API_VERSION"; | ||
| declare const AZURE_OPENAI_DEPLOYMENT = "AZURE_OPENAI_DEPLOYMENT"; | ||
| declare const MIDSCENE_USE_ANTHROPIC_SDK = "MIDSCENE_USE_ANTHROPIC_SDK"; | ||
| declare const ANTHROPIC_API_KEY = "ANTHROPIC_API_KEY"; | ||
| declare const MIDSCENE_RUN_DIR = "MIDSCENE_RUN_DIR"; | ||
| declare const OPENAI_USE_AZURE = "OPENAI_USE_AZURE"; | ||
| declare const allConfigFromEnv: () => { | ||
| MIDSCENE_OPENAI_INIT_CONFIG_JSON: string | undefined; | ||
| MIDSCENE_MODEL_NAME: string | undefined; | ||
| MIDSCENE_DEBUG_MODE: string | undefined; | ||
| MIDSCENE_FORCE_DEEP_THINK: string | undefined; | ||
| MIDSCENE_LANGSMITH_DEBUG: string | undefined; | ||
| MIDSCENE_DEBUG_AI_PROFILE: string | undefined; | ||
| MIDSCENE_DEBUG_AI_RESPONSE: string | undefined; | ||
| MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG: string | undefined; | ||
| OPENAI_API_KEY: string | undefined; | ||
| OPENAI_BASE_URL: string | undefined; | ||
| OPENAI_MAX_TOKENS: string | undefined; | ||
| OPENAI_USE_AZURE: string | undefined; | ||
| MIDSCENE_CACHE: string | undefined; | ||
| MATCH_BY_POSITION: string | undefined; | ||
| MIDSCENE_REPORT_TAG_NAME: string | undefined; | ||
| MIDSCENE_OPENAI_SOCKS_PROXY: string | undefined; | ||
| MIDSCENE_OPENAI_HTTPS_PROXY: string | undefined; | ||
| MIDSCENE_USE_AZURE_OPENAI: string | undefined; | ||
| MIDSCENE_AZURE_OPENAI_SCOPE: string | undefined; | ||
| MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON: string | undefined; | ||
| MIDSCENE_USE_ANTHROPIC_SDK: string | undefined; | ||
| MIDSCENE_USE_VLM_UI_TARS: string | undefined; | ||
| MIDSCENE_USE_QWEN_VL: string | undefined; | ||
| MIDSCENE_USE_DOUBAO_VISION: string | undefined; | ||
| MIDSCENE_USE_GEMINI: string | undefined; | ||
| MIDSCENE_USE_VL_MODEL: string | undefined; | ||
| ANTHROPIC_API_KEY: string | undefined; | ||
| AZURE_OPENAI_ENDPOINT: string | undefined; | ||
| AZURE_OPENAI_KEY: string | undefined; | ||
| AZURE_OPENAI_API_VERSION: string | undefined; | ||
| AZURE_OPENAI_DEPLOYMENT: string | undefined; | ||
| MIDSCENE_MCP_USE_PUPPETEER_MODE: string | undefined; | ||
| MIDSCENE_RUN_DIR: string | undefined; | ||
| }; | ||
| declare enum UITarsModelVersion { | ||
| V1_0 = "1.0", | ||
| V1_5 = "1.5", | ||
| DOUBAO_1_5_15B = "doubao-1.5-15B", | ||
| DOUBAO_1_5_20B = "doubao-1.5-20B" | ||
| } | ||
| declare const uiTarsModelVersion: () => UITarsModelVersion | false; | ||
| declare const vlLocateMode: () => "qwen-vl" | "doubao-vision" | "gemini" | "vl-model" | "vlm-ui-tars" | false; | ||
| declare const getAIConfig: (configKey: keyof ReturnType<typeof allConfigFromEnv>) => string | undefined; | ||
| declare const getAIConfigInBoolean: (configKey: keyof ReturnType<typeof allConfigFromEnv>) => boolean; | ||
| declare const getAIConfigInJson: (configKey: keyof ReturnType<typeof allConfigFromEnv>) => any; | ||
| declare const overrideAIConfig: (newConfig: Partial<ReturnType<typeof allConfigFromEnv>>, extendMode?: boolean) => void; | ||
| export { ANTHROPIC_API_KEY, AZURE_OPENAI_API_VERSION, AZURE_OPENAI_DEPLOYMENT, AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_KEY, MATCH_BY_POSITION, MIDSCENE_API_TYPE, MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_AZURE_OPENAI_SCOPE, MIDSCENE_CACHE, MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG, MIDSCENE_DEBUG_AI_PROFILE, MIDSCENE_DEBUG_AI_RESPONSE, MIDSCENE_DEBUG_MODE, MIDSCENE_FORCE_DEEP_THINK, MIDSCENE_LANGSMITH_DEBUG, MIDSCENE_MCP_USE_PUPPETEER_MODE, MIDSCENE_MODEL_NAME, MIDSCENE_OPENAI_HTTPS_PROXY, MIDSCENE_OPENAI_INIT_CONFIG_JSON, MIDSCENE_OPENAI_SOCKS_PROXY, MIDSCENE_REPORT_TAG_NAME, MIDSCENE_RUN_DIR, MIDSCENE_USE_ANTHROPIC_SDK, MIDSCENE_USE_AZURE_OPENAI, MIDSCENE_USE_DOUBAO_VISION, MIDSCENE_USE_GEMINI, MIDSCENE_USE_QWEN_VL, MIDSCENE_USE_VLM_UI_TARS, MIDSCENE_USE_VL_MODEL, OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MAX_TOKENS, OPENAI_USE_AZURE, UITarsModelVersion, allConfigFromEnv, getAIConfig, getAIConfigInBoolean, getAIConfigInJson, overrideAIConfig, uiTarsModelVersion, vlLocateMode }; |
+243
| // config keys | ||
| export const MIDSCENE_OPENAI_INIT_CONFIG_JSON = | ||
| 'MIDSCENE_OPENAI_INIT_CONFIG_JSON'; | ||
| export const MIDSCENE_MODEL_NAME = 'MIDSCENE_MODEL_NAME'; | ||
| export const MIDSCENE_LANGSMITH_DEBUG = 'MIDSCENE_LANGSMITH_DEBUG'; | ||
| export const MIDSCENE_DEBUG_AI_PROFILE = 'MIDSCENE_DEBUG_AI_PROFILE'; | ||
| export const MIDSCENE_DEBUG_AI_RESPONSE = 'MIDSCENE_DEBUG_AI_RESPONSE'; | ||
| export const MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG = | ||
| 'MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG'; | ||
| export const MIDSCENE_DEBUG_MODE = 'MIDSCENE_DEBUG_MODE'; | ||
| export const MIDSCENE_MCP_USE_PUPPETEER_MODE = | ||
| 'MIDSCENE_MCP_USE_PUPPETEER_MODE'; | ||
| export const MIDSCENE_FORCE_DEEP_THINK = 'MIDSCENE_FORCE_DEEP_THINK'; | ||
| export const MIDSCENE_OPENAI_SOCKS_PROXY = 'MIDSCENE_OPENAI_SOCKS_PROXY'; | ||
| export const MIDSCENE_OPENAI_HTTPS_PROXY = 'MIDSCENE_OPENAI_HTTPS_PROXY'; | ||
| export const OPENAI_API_KEY = 'OPENAI_API_KEY'; | ||
| export const OPENAI_BASE_URL = 'OPENAI_BASE_URL'; | ||
| export const OPENAI_MAX_TOKENS = 'OPENAI_MAX_TOKENS'; | ||
| export const MIDSCENE_CACHE = 'MIDSCENE_CACHE'; | ||
| export const MIDSCENE_USE_VLM_UI_TARS = 'MIDSCENE_USE_VLM_UI_TARS'; | ||
| export const MIDSCENE_USE_QWEN_VL = 'MIDSCENE_USE_QWEN_VL'; | ||
| export const MIDSCENE_USE_DOUBAO_VISION = 'MIDSCENE_USE_DOUBAO_VISION'; | ||
| export const MIDSCENE_USE_GEMINI = 'MIDSCENE_USE_GEMINI'; | ||
| export const MIDSCENE_USE_VL_MODEL = 'MIDSCENE_USE_VL_MODEL'; | ||
| export const MATCH_BY_POSITION = 'MATCH_BY_POSITION'; | ||
| export const MIDSCENE_API_TYPE = 'MIDSCENE-API-TYPE'; | ||
| export const MIDSCENE_REPORT_TAG_NAME = 'MIDSCENE_REPORT_TAG_NAME'; | ||
| export const MIDSCENE_USE_AZURE_OPENAI = 'MIDSCENE_USE_AZURE_OPENAI'; | ||
| export const MIDSCENE_AZURE_OPENAI_SCOPE = 'MIDSCENE_AZURE_OPENAI_SCOPE'; | ||
| export const MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON = | ||
| 'MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON'; | ||
| export const AZURE_OPENAI_ENDPOINT = 'AZURE_OPENAI_ENDPOINT'; | ||
| export const AZURE_OPENAI_KEY = 'AZURE_OPENAI_KEY'; | ||
| export const AZURE_OPENAI_API_VERSION = 'AZURE_OPENAI_API_VERSION'; | ||
| export const AZURE_OPENAI_DEPLOYMENT = 'AZURE_OPENAI_DEPLOYMENT'; | ||
| export const MIDSCENE_USE_ANTHROPIC_SDK = 'MIDSCENE_USE_ANTHROPIC_SDK'; | ||
| export const ANTHROPIC_API_KEY = 'ANTHROPIC_API_KEY'; | ||
| export const MIDSCENE_RUN_DIR = 'MIDSCENE_RUN_DIR'; | ||
| // @deprecated | ||
| export const OPENAI_USE_AZURE = 'OPENAI_USE_AZURE'; | ||
| export const allConfigFromEnv = () => { | ||
| return { | ||
| [MIDSCENE_OPENAI_INIT_CONFIG_JSON]: | ||
| process.env[MIDSCENE_OPENAI_INIT_CONFIG_JSON] || undefined, | ||
| [MIDSCENE_MODEL_NAME]: process.env[MIDSCENE_MODEL_NAME] || undefined, | ||
| [MIDSCENE_DEBUG_MODE]: process.env[MIDSCENE_DEBUG_MODE] || undefined, | ||
| [MIDSCENE_FORCE_DEEP_THINK]: | ||
| process.env[MIDSCENE_FORCE_DEEP_THINK] || undefined, | ||
| [MIDSCENE_LANGSMITH_DEBUG]: | ||
| process.env[MIDSCENE_LANGSMITH_DEBUG] || undefined, | ||
| [MIDSCENE_DEBUG_AI_PROFILE]: | ||
| process.env[MIDSCENE_DEBUG_AI_PROFILE] || undefined, | ||
| [MIDSCENE_DEBUG_AI_RESPONSE]: | ||
| process.env[MIDSCENE_DEBUG_AI_RESPONSE] || undefined, | ||
| [MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG]: | ||
| process.env[MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG] || undefined, | ||
| [OPENAI_API_KEY]: process.env[OPENAI_API_KEY] || undefined, | ||
| [OPENAI_BASE_URL]: process.env[OPENAI_BASE_URL] || undefined, | ||
| [OPENAI_MAX_TOKENS]: process.env[OPENAI_MAX_TOKENS] || undefined, | ||
| [OPENAI_USE_AZURE]: process.env[OPENAI_USE_AZURE] || undefined, | ||
| [MIDSCENE_CACHE]: process.env[MIDSCENE_CACHE] || undefined, | ||
| [MATCH_BY_POSITION]: process.env[MATCH_BY_POSITION] || undefined, | ||
| [MIDSCENE_REPORT_TAG_NAME]: | ||
| process.env[MIDSCENE_REPORT_TAG_NAME] || undefined, | ||
| [MIDSCENE_OPENAI_SOCKS_PROXY]: | ||
| process.env[MIDSCENE_OPENAI_SOCKS_PROXY] || undefined, | ||
| [MIDSCENE_OPENAI_HTTPS_PROXY]: | ||
| process.env[MIDSCENE_OPENAI_HTTPS_PROXY] || undefined, | ||
| [MIDSCENE_USE_AZURE_OPENAI]: | ||
| process.env[MIDSCENE_USE_AZURE_OPENAI] || undefined, | ||
| [MIDSCENE_AZURE_OPENAI_SCOPE]: | ||
| process.env[MIDSCENE_AZURE_OPENAI_SCOPE] || undefined, | ||
| [MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON]: | ||
| process.env[MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON] || undefined, | ||
| [MIDSCENE_USE_ANTHROPIC_SDK]: | ||
| process.env[MIDSCENE_USE_ANTHROPIC_SDK] || undefined, | ||
| [MIDSCENE_USE_VLM_UI_TARS]: | ||
| process.env[MIDSCENE_USE_VLM_UI_TARS] || undefined, | ||
| [MIDSCENE_USE_QWEN_VL]: process.env[MIDSCENE_USE_QWEN_VL] || undefined, | ||
| [MIDSCENE_USE_DOUBAO_VISION]: | ||
| process.env[MIDSCENE_USE_DOUBAO_VISION] || undefined, | ||
| [MIDSCENE_USE_GEMINI]: process.env[MIDSCENE_USE_GEMINI] || undefined, | ||
| [MIDSCENE_USE_VL_MODEL]: process.env[MIDSCENE_USE_VL_MODEL] || undefined, | ||
| [ANTHROPIC_API_KEY]: process.env[ANTHROPIC_API_KEY] || undefined, | ||
| [AZURE_OPENAI_ENDPOINT]: process.env[AZURE_OPENAI_ENDPOINT] || undefined, | ||
| [AZURE_OPENAI_KEY]: process.env[AZURE_OPENAI_KEY] || undefined, | ||
| [AZURE_OPENAI_API_VERSION]: | ||
| process.env[AZURE_OPENAI_API_VERSION] || undefined, | ||
| [AZURE_OPENAI_DEPLOYMENT]: | ||
| process.env[AZURE_OPENAI_DEPLOYMENT] || undefined, | ||
| [MIDSCENE_MCP_USE_PUPPETEER_MODE]: | ||
| process.env[MIDSCENE_MCP_USE_PUPPETEER_MODE] || undefined, | ||
| [MIDSCENE_RUN_DIR]: process.env[MIDSCENE_RUN_DIR] || undefined, | ||
| }; | ||
| }; | ||
| let globalConfig: Partial<ReturnType<typeof allConfigFromEnv>> | null = null; | ||
| const getGlobalConfig = () => { | ||
| if (globalConfig === null) { | ||
| globalConfig = allConfigFromEnv(); | ||
| } | ||
| return globalConfig; | ||
| }; | ||
| // import { UITarsModelVersion } from '@ui-tars/shared/constants'; | ||
| export enum UITarsModelVersion { | ||
| V1_0 = '1.0', | ||
| V1_5 = '1.5', | ||
| DOUBAO_1_5_15B = 'doubao-1.5-15B', | ||
| DOUBAO_1_5_20B = 'doubao-1.5-20B', | ||
| } | ||
| export const uiTarsModelVersion = (): UITarsModelVersion | false => { | ||
| if (vlLocateMode() !== 'vlm-ui-tars') { | ||
| return false; | ||
| } | ||
| const versionConfig = getAIConfigInJson(MIDSCENE_USE_VLM_UI_TARS); | ||
| if (versionConfig === '1' || versionConfig === 1) { | ||
| return UITarsModelVersion.V1_0; | ||
| } | ||
| if (versionConfig === 'DOUBAO-1.5') { | ||
| return UITarsModelVersion.DOUBAO_1_5_20B; | ||
| } | ||
| return `${versionConfig}` as UITarsModelVersion; | ||
| }; | ||
| export const vlLocateMode = (): | ||
| | 'qwen-vl' | ||
| | 'doubao-vision' | ||
| | 'gemini' | ||
| | 'vl-model' // not actually in use | ||
| | 'vlm-ui-tars' | ||
| | false => { | ||
| const enabledModes = [ | ||
| getAIConfigInBoolean(MIDSCENE_USE_DOUBAO_VISION) && | ||
| 'MIDSCENE_USE_DOUBAO_VISION', | ||
| getAIConfigInBoolean(MIDSCENE_USE_QWEN_VL) && 'MIDSCENE_USE_QWEN_VL', | ||
| getAIConfigInBoolean(MIDSCENE_USE_VLM_UI_TARS) && | ||
| 'MIDSCENE_USE_VLM_UI_TARS', | ||
| getAIConfigInBoolean(MIDSCENE_USE_GEMINI) && 'MIDSCENE_USE_GEMINI', | ||
| ].filter(Boolean); | ||
| if (enabledModes.length > 1) { | ||
| throw new Error( | ||
| `Only one vision mode can be enabled at a time. Currently enabled modes: ${enabledModes.join(', ')}. Please disable all but one mode.`, | ||
| ); | ||
| } | ||
| if (getAIConfigInBoolean(MIDSCENE_USE_QWEN_VL)) { | ||
| return 'qwen-vl'; | ||
| } | ||
| if (getAIConfigInBoolean(MIDSCENE_USE_DOUBAO_VISION)) { | ||
| return 'doubao-vision'; | ||
| } | ||
| if (getAIConfigInBoolean(MIDSCENE_USE_GEMINI)) { | ||
| return 'gemini'; | ||
| } | ||
| if (getAIConfigInBoolean(MIDSCENE_USE_VL_MODEL)) { | ||
| return 'vl-model'; | ||
| } | ||
| if (getAIConfigInBoolean(MIDSCENE_USE_VLM_UI_TARS)) { | ||
| return 'vlm-ui-tars'; | ||
| } | ||
| return false; | ||
| }; | ||
| export const getAIConfig = ( | ||
| configKey: keyof ReturnType<typeof allConfigFromEnv>, | ||
| ): string | undefined => { | ||
| if (configKey === MATCH_BY_POSITION) { | ||
| throw new Error( | ||
| 'MATCH_BY_POSITION is deprecated, use MIDSCENE_USE_VL_MODEL instead', | ||
| ); | ||
| } | ||
| return getGlobalConfig()[configKey]?.trim(); | ||
| }; | ||
| export const getAIConfigInBoolean = ( | ||
| configKey: keyof ReturnType<typeof allConfigFromEnv>, | ||
| ) => { | ||
| const config = getAIConfig(configKey) || ''; | ||
| if (/^(true|1)$/i.test(config)) { | ||
| return true; | ||
| } | ||
| if (/^(false|0)$/i.test(config)) { | ||
| return false; | ||
| } | ||
| return !!config.trim(); | ||
| }; | ||
| export const getAIConfigInJson = ( | ||
| configKey: keyof ReturnType<typeof allConfigFromEnv>, | ||
| ) => { | ||
| const config = getAIConfig(configKey); | ||
| try { | ||
| return config ? JSON.parse(config) : undefined; | ||
| } catch (error: any) { | ||
| throw new Error( | ||
| `Failed to parse json config: ${configKey}. ${error.message}`, | ||
| { | ||
| cause: error, | ||
| }, | ||
| ); | ||
| } | ||
| }; | ||
| export const overrideAIConfig = ( | ||
| newConfig: Partial<ReturnType<typeof allConfigFromEnv>>, | ||
| extendMode = false, // true: merge with global config, false: override global config | ||
| ) => { | ||
| for (const key in newConfig) { | ||
| if (typeof key !== 'string') { | ||
| throw new Error(`Failed to override AI config, invalid key: ${key}`); | ||
| } | ||
| if (typeof newConfig[key as keyof typeof newConfig] === 'object') { | ||
| throw new Error( | ||
| `Failed to override AI config, invalid value for key: ${key}, value: ${newConfig[key as keyof typeof newConfig]}`, | ||
| ); | ||
| } | ||
| } | ||
| const currentConfig = getGlobalConfig(); | ||
| globalConfig = extendMode | ||
| ? { ...currentConfig, ...newConfig } | ||
| : { ...newConfig }; | ||
| }; |
@@ -13,3 +13,9 @@ declare const TEXT_SIZE_THRESHOLD = 9; | ||
| } | ||
| declare const PLAYGROUND_SERVER_PORT = 5800; | ||
| declare const SCRCPY_SERVER_PORT = 5700; | ||
| declare const DEFAULT_WAIT_FOR_NAVIGATION_TIMEOUT = 5000; | ||
| declare const DEFAULT_WAIT_FOR_NETWORK_IDLE_TIMEOUT = 2000; | ||
| declare const DEFAULT_WAIT_FOR_NETWORK_IDLE_TIME = 300; | ||
| declare const DEFAULT_WAIT_FOR_NETWORK_IDLE_CONCURRENCY = 2; | ||
| export { CONTAINER_MINI_HEIGHT, CONTAINER_MINI_WIDTH, NodeType, TEXT_MAX_SIZE, TEXT_SIZE_THRESHOLD }; | ||
| 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, NodeType, PLAYGROUND_SERVER_PORT, SCRCPY_SERVER_PORT, TEXT_MAX_SIZE, TEXT_SIZE_THRESHOLD }; |
+12
-0
@@ -15,8 +15,20 @@ // src/constants/index.ts | ||
| })(NodeType || {}); | ||
| var PLAYGROUND_SERVER_PORT = 5800; | ||
| var SCRCPY_SERVER_PORT = 5700; | ||
| var DEFAULT_WAIT_FOR_NAVIGATION_TIMEOUT = 5e3; | ||
| var DEFAULT_WAIT_FOR_NETWORK_IDLE_TIMEOUT = 2e3; | ||
| var DEFAULT_WAIT_FOR_NETWORK_IDLE_TIME = 300; | ||
| var DEFAULT_WAIT_FOR_NETWORK_IDLE_CONCURRENCY = 2; | ||
| 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, | ||
| NodeType, | ||
| PLAYGROUND_SERVER_PORT, | ||
| SCRCPY_SERVER_PORT, | ||
| TEXT_MAX_SIZE, | ||
| TEXT_SIZE_THRESHOLD | ||
| }; |
+12
-17
| import { Buffer } from 'node:buffer'; | ||
| import Jimp from 'jimp'; | ||
| import { R as Rect } from './index-305e7a7e.js'; | ||
| import { NodeType } from './constants.js'; | ||
| import { R as Rect, B as BaseElement } from './index-305e7a7e.js'; | ||
| import './constants.js'; | ||
@@ -42,2 +42,8 @@ interface Size { | ||
| declare function base64Encoded(image: string, withHeader?: boolean): string; | ||
| /** | ||
| * Check if the Buffer is a valid PNG image | ||
| * @param buffer The Buffer to check | ||
| * @returns true if the Buffer is a valid PNG image, otherwise false | ||
| */ | ||
| declare function isValidPNGImageBuffer(buffer: Buffer): boolean; | ||
@@ -112,16 +118,5 @@ /** | ||
| type ElementType = { | ||
| locator?: string; | ||
| rect: Rect; | ||
| center?: [number, number]; | ||
| id?: string; | ||
| indexId: number; | ||
| attributes?: { | ||
| nodeType: NodeType; | ||
| [key: string]: string; | ||
| }; | ||
| }; | ||
| declare const compositeElementInfoImg: (options: { | ||
| inputImgBase64: string; | ||
| elementsPositionInfo: Array<ElementType>; | ||
| elementsPositionInfo: Array<BaseElement>; | ||
| size?: { | ||
@@ -135,4 +130,4 @@ width: number; | ||
| inputImgBase64: string; | ||
| elementsPositionInfo: Array<ElementType>; | ||
| elementsPositionInfoWithoutText: Array<ElementType>; | ||
| elementsPositionInfo: Array<BaseElement>; | ||
| elementsPositionInfoWithoutText: Array<BaseElement>; | ||
| }) => Promise<{ | ||
@@ -159,2 +154,2 @@ compositeElementInfoImgBase64: string; | ||
| export { base64Encoded, bufferFromBase64, compositeElementInfoImg, cropByRect, drawBoxOnImage, imageInfo, imageInfoOfBase64, jimpFromBase64, jimpToBase64, paddingToMatchBlock, paddingToMatchBlockByBase64, processImageElementInfo, resizeImg, resizeImgBase64, saveBase64Image, savePositionImg, transformImgPathToBase64, trimImage, zoomForGPT4o }; | ||
| export { base64Encoded, bufferFromBase64, compositeElementInfoImg, cropByRect, drawBoxOnImage, imageInfo, imageInfoOfBase64, isValidPNGImageBuffer, jimpFromBase64, jimpToBase64, paddingToMatchBlock, paddingToMatchBlockByBase64, processImageElementInfo, resizeImg, resizeImgBase64, saveBase64Image, savePositionImg, transformImgPathToBase64, trimImage, zoomForGPT4o }; |
+27
-3
@@ -57,2 +57,9 @@ // src/img/info.ts | ||
| } | ||
| function isValidPNGImageBuffer(buffer) { | ||
| if (!buffer || buffer.length < 8) { | ||
| return false; | ||
| } | ||
| const isPNG = buffer[0] === 137 && buffer[1] === 80 && buffer[2] === 78 && buffer[3] === 71; | ||
| return isPNG; | ||
| } | ||
@@ -214,2 +221,14 @@ // src/img/transform.ts | ||
| var cachedFont = null; | ||
| var loadFonts = async () => { | ||
| const Jimp = await getJimp(); | ||
| try { | ||
| const fonts = await Jimp.loadFont(Jimp.FONT_SANS_16_WHITE); | ||
| return fonts; | ||
| } catch (error) { | ||
| console.warn("Error loading font, will try to load online fonts", error); | ||
| const onlineFonts = "https://cdn.jsdelivr.net/npm/jimp-compact@0.16.1-2/fonts/open-sans/open-sans-16-white/open-sans-16-white.fnt"; | ||
| const fonts = await Jimp.loadFont(onlineFonts); | ||
| return fonts; | ||
| } | ||
| }; | ||
| var createSvgOverlay = async (elements, imageWidth, imageHeight, boxPadding = 5) => { | ||
@@ -259,3 +278,7 @@ const Jimp = await getJimp(); | ||
| ); | ||
| const textWidth = element.indexId.toString().length * 8; | ||
| const indexId = element.indexId; | ||
| if (typeof indexId !== "number") { | ||
| continue; | ||
| } | ||
| const textWidth = indexId.toString().length * 8; | ||
| const textHeight = 12; | ||
@@ -305,3 +328,3 @@ const rectWidth = textWidth + 5; | ||
| try { | ||
| cachedFont = cachedFont || await Jimp.loadFont(Jimp.FONT_SANS_16_WHITE); | ||
| cachedFont = cachedFont || await loadFonts(); | ||
| } catch (error) { | ||
@@ -315,3 +338,3 @@ console.error("Error loading font", error); | ||
| { | ||
| text: element.indexId.toString(), | ||
| text: indexId.toString(), | ||
| alignmentX: Jimp.HORIZONTAL_ALIGN_CENTER, | ||
@@ -443,2 +466,3 @@ alignmentY: Jimp.VERTICAL_ALIGN_MIDDLE | ||
| imageInfoOfBase64, | ||
| isValidPNGImageBuffer, | ||
| jimpFromBase64, | ||
@@ -445,0 +469,0 @@ jimpToBase64, |
+127
-12
| // src/logger.ts | ||
| import fs2 from "fs"; | ||
| import fs from "fs"; | ||
| import path2 from "path"; | ||
@@ -7,17 +7,129 @@ import debug from "debug"; | ||
| // src/common.ts | ||
| import fs from "fs"; | ||
| import { existsSync, mkdirSync } from "fs"; | ||
| import { tmpdir } from "os"; | ||
| import path from "path"; | ||
| // src/env.ts | ||
| var MIDSCENE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_OPENAI_INIT_CONFIG_JSON"; | ||
| var MIDSCENE_MODEL_NAME = "MIDSCENE_MODEL_NAME"; | ||
| var MIDSCENE_LANGSMITH_DEBUG = "MIDSCENE_LANGSMITH_DEBUG"; | ||
| var MIDSCENE_DEBUG_AI_PROFILE = "MIDSCENE_DEBUG_AI_PROFILE"; | ||
| var MIDSCENE_DEBUG_AI_RESPONSE = "MIDSCENE_DEBUG_AI_RESPONSE"; | ||
| var MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG = "MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG"; | ||
| var MIDSCENE_DEBUG_MODE = "MIDSCENE_DEBUG_MODE"; | ||
| var MIDSCENE_MCP_USE_PUPPETEER_MODE = "MIDSCENE_MCP_USE_PUPPETEER_MODE"; | ||
| var MIDSCENE_FORCE_DEEP_THINK = "MIDSCENE_FORCE_DEEP_THINK"; | ||
| var MIDSCENE_OPENAI_SOCKS_PROXY = "MIDSCENE_OPENAI_SOCKS_PROXY"; | ||
| var MIDSCENE_OPENAI_HTTPS_PROXY = "MIDSCENE_OPENAI_HTTPS_PROXY"; | ||
| var OPENAI_API_KEY = "OPENAI_API_KEY"; | ||
| var OPENAI_BASE_URL = "OPENAI_BASE_URL"; | ||
| var OPENAI_MAX_TOKENS = "OPENAI_MAX_TOKENS"; | ||
| var MIDSCENE_CACHE = "MIDSCENE_CACHE"; | ||
| var MIDSCENE_USE_VLM_UI_TARS = "MIDSCENE_USE_VLM_UI_TARS"; | ||
| var MIDSCENE_USE_QWEN_VL = "MIDSCENE_USE_QWEN_VL"; | ||
| var MIDSCENE_USE_DOUBAO_VISION = "MIDSCENE_USE_DOUBAO_VISION"; | ||
| var MIDSCENE_USE_GEMINI = "MIDSCENE_USE_GEMINI"; | ||
| var MIDSCENE_USE_VL_MODEL = "MIDSCENE_USE_VL_MODEL"; | ||
| var MATCH_BY_POSITION = "MATCH_BY_POSITION"; | ||
| var MIDSCENE_REPORT_TAG_NAME = "MIDSCENE_REPORT_TAG_NAME"; | ||
| var MIDSCENE_USE_AZURE_OPENAI = "MIDSCENE_USE_AZURE_OPENAI"; | ||
| var MIDSCENE_AZURE_OPENAI_SCOPE = "MIDSCENE_AZURE_OPENAI_SCOPE"; | ||
| var MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON"; | ||
| var AZURE_OPENAI_ENDPOINT = "AZURE_OPENAI_ENDPOINT"; | ||
| var AZURE_OPENAI_KEY = "AZURE_OPENAI_KEY"; | ||
| var AZURE_OPENAI_API_VERSION = "AZURE_OPENAI_API_VERSION"; | ||
| var AZURE_OPENAI_DEPLOYMENT = "AZURE_OPENAI_DEPLOYMENT"; | ||
| var MIDSCENE_USE_ANTHROPIC_SDK = "MIDSCENE_USE_ANTHROPIC_SDK"; | ||
| var ANTHROPIC_API_KEY = "ANTHROPIC_API_KEY"; | ||
| var MIDSCENE_RUN_DIR = "MIDSCENE_RUN_DIR"; | ||
| var OPENAI_USE_AZURE = "OPENAI_USE_AZURE"; | ||
| var allConfigFromEnv = () => { | ||
| return { | ||
| [MIDSCENE_OPENAI_INIT_CONFIG_JSON]: process.env[MIDSCENE_OPENAI_INIT_CONFIG_JSON] || void 0, | ||
| [MIDSCENE_MODEL_NAME]: process.env[MIDSCENE_MODEL_NAME] || void 0, | ||
| [MIDSCENE_DEBUG_MODE]: process.env[MIDSCENE_DEBUG_MODE] || void 0, | ||
| [MIDSCENE_FORCE_DEEP_THINK]: process.env[MIDSCENE_FORCE_DEEP_THINK] || void 0, | ||
| [MIDSCENE_LANGSMITH_DEBUG]: process.env[MIDSCENE_LANGSMITH_DEBUG] || void 0, | ||
| [MIDSCENE_DEBUG_AI_PROFILE]: process.env[MIDSCENE_DEBUG_AI_PROFILE] || void 0, | ||
| [MIDSCENE_DEBUG_AI_RESPONSE]: process.env[MIDSCENE_DEBUG_AI_RESPONSE] || void 0, | ||
| [MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG]: process.env[MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG] || void 0, | ||
| [OPENAI_API_KEY]: process.env[OPENAI_API_KEY] || void 0, | ||
| [OPENAI_BASE_URL]: process.env[OPENAI_BASE_URL] || void 0, | ||
| [OPENAI_MAX_TOKENS]: process.env[OPENAI_MAX_TOKENS] || void 0, | ||
| [OPENAI_USE_AZURE]: process.env[OPENAI_USE_AZURE] || void 0, | ||
| [MIDSCENE_CACHE]: process.env[MIDSCENE_CACHE] || void 0, | ||
| [MATCH_BY_POSITION]: process.env[MATCH_BY_POSITION] || void 0, | ||
| [MIDSCENE_REPORT_TAG_NAME]: process.env[MIDSCENE_REPORT_TAG_NAME] || void 0, | ||
| [MIDSCENE_OPENAI_SOCKS_PROXY]: process.env[MIDSCENE_OPENAI_SOCKS_PROXY] || void 0, | ||
| [MIDSCENE_OPENAI_HTTPS_PROXY]: process.env[MIDSCENE_OPENAI_HTTPS_PROXY] || void 0, | ||
| [MIDSCENE_USE_AZURE_OPENAI]: process.env[MIDSCENE_USE_AZURE_OPENAI] || void 0, | ||
| [MIDSCENE_AZURE_OPENAI_SCOPE]: process.env[MIDSCENE_AZURE_OPENAI_SCOPE] || void 0, | ||
| [MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON]: process.env[MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON] || void 0, | ||
| [MIDSCENE_USE_ANTHROPIC_SDK]: process.env[MIDSCENE_USE_ANTHROPIC_SDK] || void 0, | ||
| [MIDSCENE_USE_VLM_UI_TARS]: process.env[MIDSCENE_USE_VLM_UI_TARS] || void 0, | ||
| [MIDSCENE_USE_QWEN_VL]: process.env[MIDSCENE_USE_QWEN_VL] || void 0, | ||
| [MIDSCENE_USE_DOUBAO_VISION]: process.env[MIDSCENE_USE_DOUBAO_VISION] || void 0, | ||
| [MIDSCENE_USE_GEMINI]: process.env[MIDSCENE_USE_GEMINI] || void 0, | ||
| [MIDSCENE_USE_VL_MODEL]: process.env[MIDSCENE_USE_VL_MODEL] || void 0, | ||
| [ANTHROPIC_API_KEY]: process.env[ANTHROPIC_API_KEY] || void 0, | ||
| [AZURE_OPENAI_ENDPOINT]: process.env[AZURE_OPENAI_ENDPOINT] || void 0, | ||
| [AZURE_OPENAI_KEY]: process.env[AZURE_OPENAI_KEY] || void 0, | ||
| [AZURE_OPENAI_API_VERSION]: process.env[AZURE_OPENAI_API_VERSION] || void 0, | ||
| [AZURE_OPENAI_DEPLOYMENT]: process.env[AZURE_OPENAI_DEPLOYMENT] || void 0, | ||
| [MIDSCENE_MCP_USE_PUPPETEER_MODE]: process.env[MIDSCENE_MCP_USE_PUPPETEER_MODE] || void 0, | ||
| [MIDSCENE_RUN_DIR]: process.env[MIDSCENE_RUN_DIR] || void 0 | ||
| }; | ||
| }; | ||
| var globalConfig = null; | ||
| var getGlobalConfig = () => { | ||
| if (globalConfig === null) { | ||
| globalConfig = allConfigFromEnv(); | ||
| } | ||
| return globalConfig; | ||
| }; | ||
| var getAIConfig = (configKey) => { | ||
| if (configKey === MATCH_BY_POSITION) { | ||
| throw new Error( | ||
| "MATCH_BY_POSITION is deprecated, use MIDSCENE_USE_VL_MODEL instead" | ||
| ); | ||
| } | ||
| return getGlobalConfig()[configKey]?.trim(); | ||
| }; | ||
| // src/common.ts | ||
| var defaultRunDirName = "midscene_run"; | ||
| var isNodeEnv = typeof process !== "undefined" && process.versions != null && process.versions.node != null; | ||
| var getMidsceneRunLogPath = () => { | ||
| const basePath = path.join(process.cwd(), "midscene_run"); | ||
| if (!fs.existsSync(basePath)) { | ||
| fs.mkdirSync(basePath, { recursive: true }); | ||
| var getMidsceneRunDir = () => { | ||
| if (!isNodeEnv) { | ||
| return ""; | ||
| } | ||
| const logPath = path.join(basePath, "log"); | ||
| if (!fs.existsSync(logPath)) { | ||
| fs.mkdirSync(logPath, { recursive: true }); | ||
| return getAIConfig(MIDSCENE_RUN_DIR) || defaultRunDirName; | ||
| }; | ||
| var getMidsceneRunBaseDir = () => { | ||
| if (!isNodeEnv) { | ||
| return ""; | ||
| } | ||
| let basePath = path.resolve(process.cwd(), getMidsceneRunDir()); | ||
| if (!existsSync(basePath)) { | ||
| try { | ||
| mkdirSync(basePath, { recursive: true }); | ||
| } catch (error) { | ||
| basePath = path.join(tmpdir(), defaultRunDirName); | ||
| mkdirSync(basePath, { recursive: true }); | ||
| } | ||
| } | ||
| return basePath; | ||
| }; | ||
| var getMidsceneRunSubDir = (subdir) => { | ||
| if (!isNodeEnv) { | ||
| return ""; | ||
| } | ||
| const basePath = getMidsceneRunBaseDir(); | ||
| const logPath = path.join(basePath, subdir); | ||
| if (!existsSync(logPath)) { | ||
| mkdirSync(logPath, { recursive: true }); | ||
| } | ||
| return logPath; | ||
| }; | ||
| var logDir = isNodeEnv ? getMidsceneRunLogPath() : ""; | ||
| var logDir = isNodeEnv ? getMidsceneRunSubDir("log") : ""; | ||
@@ -31,3 +143,3 @@ // src/logger.ts | ||
| const logFile = path2.join(logDir, `${topicFileName}.log`); | ||
| const stream = fs2.createWriteStream(logFile, { flags: "a" }); | ||
| const stream = fs.createWriteStream(logFile, { flags: "a" }); | ||
| logStreams.set(topicFileName, stream); | ||
@@ -48,3 +160,6 @@ } | ||
| const message = args.map( | ||
| (arg) => typeof arg === "object" ? JSON.stringify(arg) : String(arg) | ||
| (arg) => typeof arg === "object" ? JSON.stringify( | ||
| arg, | ||
| (key, value) => typeof value === "bigint" ? `${value.toString()}n` : value | ||
| ) : String(arg) | ||
| ).join(" "); | ||
@@ -51,0 +166,0 @@ if (isNodeEnv) { |
@@ -14,3 +14,5 @@ declare const ifInBrowser: boolean; | ||
| declare function getGlobalScope(): GlobalScope; | ||
| declare function setIsMcp(value: boolean): void; | ||
| declare function logMsg(...message: Parameters<typeof console.log>): void; | ||
| export { assert, generateHashId, getGlobalScope, ifInBrowser, uuid }; | ||
| export { assert, generateHashId, getGlobalScope, ifInBrowser, logMsg, setIsMcp, uuid }; |
+11
-0
@@ -51,2 +51,11 @@ // src/utils.ts | ||
| } | ||
| var isMcp = false; | ||
| function setIsMcp(value) { | ||
| isMcp = value; | ||
| } | ||
| function logMsg(...message) { | ||
| if (!isMcp) { | ||
| console.log(...message); | ||
| } | ||
| } | ||
| export { | ||
@@ -57,3 +66,5 @@ assert, | ||
| ifInBrowser, | ||
| logMsg, | ||
| setIsMcp, | ||
| uuid | ||
| }; |
@@ -13,3 +13,9 @@ declare const TEXT_SIZE_THRESHOLD = 9; | ||
| } | ||
| declare const PLAYGROUND_SERVER_PORT = 5800; | ||
| declare const SCRCPY_SERVER_PORT = 5700; | ||
| declare const DEFAULT_WAIT_FOR_NAVIGATION_TIMEOUT = 5000; | ||
| declare const DEFAULT_WAIT_FOR_NETWORK_IDLE_TIMEOUT = 2000; | ||
| declare const DEFAULT_WAIT_FOR_NETWORK_IDLE_TIME = 300; | ||
| declare const DEFAULT_WAIT_FOR_NETWORK_IDLE_CONCURRENCY = 2; | ||
| export { CONTAINER_MINI_HEIGHT, CONTAINER_MINI_WIDTH, NodeType, TEXT_MAX_SIZE, TEXT_SIZE_THRESHOLD }; | ||
| 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, NodeType, PLAYGROUND_SERVER_PORT, SCRCPY_SERVER_PORT, TEXT_MAX_SIZE, TEXT_SIZE_THRESHOLD }; |
@@ -25,3 +25,9 @@ "use strict"; | ||
| CONTAINER_MINI_WIDTH: () => CONTAINER_MINI_WIDTH, | ||
| DEFAULT_WAIT_FOR_NAVIGATION_TIMEOUT: () => DEFAULT_WAIT_FOR_NAVIGATION_TIMEOUT, | ||
| DEFAULT_WAIT_FOR_NETWORK_IDLE_CONCURRENCY: () => DEFAULT_WAIT_FOR_NETWORK_IDLE_CONCURRENCY, | ||
| DEFAULT_WAIT_FOR_NETWORK_IDLE_TIME: () => DEFAULT_WAIT_FOR_NETWORK_IDLE_TIME, | ||
| DEFAULT_WAIT_FOR_NETWORK_IDLE_TIMEOUT: () => DEFAULT_WAIT_FOR_NETWORK_IDLE_TIMEOUT, | ||
| NodeType: () => NodeType, | ||
| PLAYGROUND_SERVER_PORT: () => PLAYGROUND_SERVER_PORT, | ||
| SCRCPY_SERVER_PORT: () => SCRCPY_SERVER_PORT, | ||
| TEXT_MAX_SIZE: () => TEXT_MAX_SIZE, | ||
@@ -44,2 +50,8 @@ TEXT_SIZE_THRESHOLD: () => TEXT_SIZE_THRESHOLD | ||
| })(NodeType || {}); | ||
| var PLAYGROUND_SERVER_PORT = 5800; | ||
| var SCRCPY_SERVER_PORT = 5700; | ||
| var DEFAULT_WAIT_FOR_NAVIGATION_TIMEOUT = 5e3; | ||
| var DEFAULT_WAIT_FOR_NETWORK_IDLE_TIMEOUT = 2e3; | ||
| var DEFAULT_WAIT_FOR_NETWORK_IDLE_TIME = 300; | ||
| var DEFAULT_WAIT_FOR_NETWORK_IDLE_CONCURRENCY = 2; | ||
| // Annotate the CommonJS export names for ESM import in node: | ||
@@ -49,5 +61,11 @@ 0 && (module.exports = { | ||
| 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, | ||
| NodeType, | ||
| PLAYGROUND_SERVER_PORT, | ||
| SCRCPY_SERVER_PORT, | ||
| TEXT_MAX_SIZE, | ||
| TEXT_SIZE_THRESHOLD | ||
| }); |
+12
-17
| import { Buffer } from 'node:buffer'; | ||
| import Jimp from 'jimp'; | ||
| import { R as Rect } from './index-305e7a7e.js'; | ||
| import { NodeType } from './constants.js'; | ||
| import { R as Rect, B as BaseElement } from './index-305e7a7e.js'; | ||
| import './constants.js'; | ||
@@ -42,2 +42,8 @@ interface Size { | ||
| declare function base64Encoded(image: string, withHeader?: boolean): string; | ||
| /** | ||
| * Check if the Buffer is a valid PNG image | ||
| * @param buffer The Buffer to check | ||
| * @returns true if the Buffer is a valid PNG image, otherwise false | ||
| */ | ||
| declare function isValidPNGImageBuffer(buffer: Buffer): boolean; | ||
@@ -112,16 +118,5 @@ /** | ||
| type ElementType = { | ||
| locator?: string; | ||
| rect: Rect; | ||
| center?: [number, number]; | ||
| id?: string; | ||
| indexId: number; | ||
| attributes?: { | ||
| nodeType: NodeType; | ||
| [key: string]: string; | ||
| }; | ||
| }; | ||
| declare const compositeElementInfoImg: (options: { | ||
| inputImgBase64: string; | ||
| elementsPositionInfo: Array<ElementType>; | ||
| elementsPositionInfo: Array<BaseElement>; | ||
| size?: { | ||
@@ -135,4 +130,4 @@ width: number; | ||
| inputImgBase64: string; | ||
| elementsPositionInfo: Array<ElementType>; | ||
| elementsPositionInfoWithoutText: Array<ElementType>; | ||
| elementsPositionInfo: Array<BaseElement>; | ||
| elementsPositionInfoWithoutText: Array<BaseElement>; | ||
| }) => Promise<{ | ||
@@ -159,2 +154,2 @@ compositeElementInfoImgBase64: string; | ||
| export { base64Encoded, bufferFromBase64, compositeElementInfoImg, cropByRect, drawBoxOnImage, imageInfo, imageInfoOfBase64, jimpFromBase64, jimpToBase64, paddingToMatchBlock, paddingToMatchBlockByBase64, processImageElementInfo, resizeImg, resizeImgBase64, saveBase64Image, savePositionImg, transformImgPathToBase64, trimImage, zoomForGPT4o }; | ||
| export { base64Encoded, bufferFromBase64, compositeElementInfoImg, cropByRect, drawBoxOnImage, imageInfo, imageInfoOfBase64, isValidPNGImageBuffer, jimpFromBase64, jimpToBase64, paddingToMatchBlock, paddingToMatchBlockByBase64, processImageElementInfo, resizeImg, resizeImgBase64, saveBase64Image, savePositionImg, transformImgPathToBase64, trimImage, zoomForGPT4o }; |
+28
-3
@@ -40,2 +40,3 @@ "use strict"; | ||
| imageInfoOfBase64: () => imageInfoOfBase64, | ||
| isValidPNGImageBuffer: () => isValidPNGImageBuffer, | ||
| jimpFromBase64: () => jimpFromBase64, | ||
@@ -112,2 +113,9 @@ jimpToBase64: () => jimpToBase64, | ||
| } | ||
| function isValidPNGImageBuffer(buffer) { | ||
| if (!buffer || buffer.length < 8) { | ||
| return false; | ||
| } | ||
| const isPNG = buffer[0] === 137 && buffer[1] === 80 && buffer[2] === 78 && buffer[3] === 71; | ||
| return isPNG; | ||
| } | ||
@@ -269,2 +277,14 @@ // src/img/transform.ts | ||
| var cachedFont = null; | ||
| var loadFonts = async () => { | ||
| const Jimp = await getJimp(); | ||
| try { | ||
| const fonts = await Jimp.loadFont(Jimp.FONT_SANS_16_WHITE); | ||
| return fonts; | ||
| } catch (error) { | ||
| console.warn("Error loading font, will try to load online fonts", error); | ||
| const onlineFonts = "https://cdn.jsdelivr.net/npm/jimp-compact@0.16.1-2/fonts/open-sans/open-sans-16-white/open-sans-16-white.fnt"; | ||
| const fonts = await Jimp.loadFont(onlineFonts); | ||
| return fonts; | ||
| } | ||
| }; | ||
| var createSvgOverlay = async (elements, imageWidth, imageHeight, boxPadding = 5) => { | ||
@@ -314,3 +334,7 @@ const Jimp = await getJimp(); | ||
| ); | ||
| const textWidth = element.indexId.toString().length * 8; | ||
| const indexId = element.indexId; | ||
| if (typeof indexId !== "number") { | ||
| continue; | ||
| } | ||
| const textWidth = indexId.toString().length * 8; | ||
| const textHeight = 12; | ||
@@ -360,3 +384,3 @@ const rectWidth = textWidth + 5; | ||
| try { | ||
| cachedFont = cachedFont || await Jimp.loadFont(Jimp.FONT_SANS_16_WHITE); | ||
| cachedFont = cachedFont || await loadFonts(); | ||
| } catch (error) { | ||
@@ -370,3 +394,3 @@ console.error("Error loading font", error); | ||
| { | ||
| text: element.indexId.toString(), | ||
| text: indexId.toString(), | ||
| alignmentX: Jimp.HORIZONTAL_ALIGN_CENTER, | ||
@@ -499,2 +523,3 @@ alignmentY: Jimp.VERTICAL_ALIGN_MIDDLE | ||
| imageInfoOfBase64, | ||
| isValidPNGImageBuffer, | ||
| jimpFromBase64, | ||
@@ -501,0 +526,0 @@ jimpToBase64, |
+125
-10
@@ -43,17 +43,129 @@ "use strict"; | ||
| // src/common.ts | ||
| var import_node_fs = __toESM(require("fs")); | ||
| var import_node_fs = require("fs"); | ||
| var import_node_os = require("os"); | ||
| var import_node_path = __toESM(require("path")); | ||
| // src/env.ts | ||
| var MIDSCENE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_OPENAI_INIT_CONFIG_JSON"; | ||
| var MIDSCENE_MODEL_NAME = "MIDSCENE_MODEL_NAME"; | ||
| var MIDSCENE_LANGSMITH_DEBUG = "MIDSCENE_LANGSMITH_DEBUG"; | ||
| var MIDSCENE_DEBUG_AI_PROFILE = "MIDSCENE_DEBUG_AI_PROFILE"; | ||
| var MIDSCENE_DEBUG_AI_RESPONSE = "MIDSCENE_DEBUG_AI_RESPONSE"; | ||
| var MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG = "MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG"; | ||
| var MIDSCENE_DEBUG_MODE = "MIDSCENE_DEBUG_MODE"; | ||
| var MIDSCENE_MCP_USE_PUPPETEER_MODE = "MIDSCENE_MCP_USE_PUPPETEER_MODE"; | ||
| var MIDSCENE_FORCE_DEEP_THINK = "MIDSCENE_FORCE_DEEP_THINK"; | ||
| var MIDSCENE_OPENAI_SOCKS_PROXY = "MIDSCENE_OPENAI_SOCKS_PROXY"; | ||
| var MIDSCENE_OPENAI_HTTPS_PROXY = "MIDSCENE_OPENAI_HTTPS_PROXY"; | ||
| var OPENAI_API_KEY = "OPENAI_API_KEY"; | ||
| var OPENAI_BASE_URL = "OPENAI_BASE_URL"; | ||
| var OPENAI_MAX_TOKENS = "OPENAI_MAX_TOKENS"; | ||
| var MIDSCENE_CACHE = "MIDSCENE_CACHE"; | ||
| var MIDSCENE_USE_VLM_UI_TARS = "MIDSCENE_USE_VLM_UI_TARS"; | ||
| var MIDSCENE_USE_QWEN_VL = "MIDSCENE_USE_QWEN_VL"; | ||
| var MIDSCENE_USE_DOUBAO_VISION = "MIDSCENE_USE_DOUBAO_VISION"; | ||
| var MIDSCENE_USE_GEMINI = "MIDSCENE_USE_GEMINI"; | ||
| var MIDSCENE_USE_VL_MODEL = "MIDSCENE_USE_VL_MODEL"; | ||
| var MATCH_BY_POSITION = "MATCH_BY_POSITION"; | ||
| var MIDSCENE_REPORT_TAG_NAME = "MIDSCENE_REPORT_TAG_NAME"; | ||
| var MIDSCENE_USE_AZURE_OPENAI = "MIDSCENE_USE_AZURE_OPENAI"; | ||
| var MIDSCENE_AZURE_OPENAI_SCOPE = "MIDSCENE_AZURE_OPENAI_SCOPE"; | ||
| var MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON = "MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON"; | ||
| var AZURE_OPENAI_ENDPOINT = "AZURE_OPENAI_ENDPOINT"; | ||
| var AZURE_OPENAI_KEY = "AZURE_OPENAI_KEY"; | ||
| var AZURE_OPENAI_API_VERSION = "AZURE_OPENAI_API_VERSION"; | ||
| var AZURE_OPENAI_DEPLOYMENT = "AZURE_OPENAI_DEPLOYMENT"; | ||
| var MIDSCENE_USE_ANTHROPIC_SDK = "MIDSCENE_USE_ANTHROPIC_SDK"; | ||
| var ANTHROPIC_API_KEY = "ANTHROPIC_API_KEY"; | ||
| var MIDSCENE_RUN_DIR = "MIDSCENE_RUN_DIR"; | ||
| var OPENAI_USE_AZURE = "OPENAI_USE_AZURE"; | ||
| var allConfigFromEnv = () => { | ||
| return { | ||
| [MIDSCENE_OPENAI_INIT_CONFIG_JSON]: process.env[MIDSCENE_OPENAI_INIT_CONFIG_JSON] || void 0, | ||
| [MIDSCENE_MODEL_NAME]: process.env[MIDSCENE_MODEL_NAME] || void 0, | ||
| [MIDSCENE_DEBUG_MODE]: process.env[MIDSCENE_DEBUG_MODE] || void 0, | ||
| [MIDSCENE_FORCE_DEEP_THINK]: process.env[MIDSCENE_FORCE_DEEP_THINK] || void 0, | ||
| [MIDSCENE_LANGSMITH_DEBUG]: process.env[MIDSCENE_LANGSMITH_DEBUG] || void 0, | ||
| [MIDSCENE_DEBUG_AI_PROFILE]: process.env[MIDSCENE_DEBUG_AI_PROFILE] || void 0, | ||
| [MIDSCENE_DEBUG_AI_RESPONSE]: process.env[MIDSCENE_DEBUG_AI_RESPONSE] || void 0, | ||
| [MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG]: process.env[MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG] || void 0, | ||
| [OPENAI_API_KEY]: process.env[OPENAI_API_KEY] || void 0, | ||
| [OPENAI_BASE_URL]: process.env[OPENAI_BASE_URL] || void 0, | ||
| [OPENAI_MAX_TOKENS]: process.env[OPENAI_MAX_TOKENS] || void 0, | ||
| [OPENAI_USE_AZURE]: process.env[OPENAI_USE_AZURE] || void 0, | ||
| [MIDSCENE_CACHE]: process.env[MIDSCENE_CACHE] || void 0, | ||
| [MATCH_BY_POSITION]: process.env[MATCH_BY_POSITION] || void 0, | ||
| [MIDSCENE_REPORT_TAG_NAME]: process.env[MIDSCENE_REPORT_TAG_NAME] || void 0, | ||
| [MIDSCENE_OPENAI_SOCKS_PROXY]: process.env[MIDSCENE_OPENAI_SOCKS_PROXY] || void 0, | ||
| [MIDSCENE_OPENAI_HTTPS_PROXY]: process.env[MIDSCENE_OPENAI_HTTPS_PROXY] || void 0, | ||
| [MIDSCENE_USE_AZURE_OPENAI]: process.env[MIDSCENE_USE_AZURE_OPENAI] || void 0, | ||
| [MIDSCENE_AZURE_OPENAI_SCOPE]: process.env[MIDSCENE_AZURE_OPENAI_SCOPE] || void 0, | ||
| [MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON]: process.env[MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON] || void 0, | ||
| [MIDSCENE_USE_ANTHROPIC_SDK]: process.env[MIDSCENE_USE_ANTHROPIC_SDK] || void 0, | ||
| [MIDSCENE_USE_VLM_UI_TARS]: process.env[MIDSCENE_USE_VLM_UI_TARS] || void 0, | ||
| [MIDSCENE_USE_QWEN_VL]: process.env[MIDSCENE_USE_QWEN_VL] || void 0, | ||
| [MIDSCENE_USE_DOUBAO_VISION]: process.env[MIDSCENE_USE_DOUBAO_VISION] || void 0, | ||
| [MIDSCENE_USE_GEMINI]: process.env[MIDSCENE_USE_GEMINI] || void 0, | ||
| [MIDSCENE_USE_VL_MODEL]: process.env[MIDSCENE_USE_VL_MODEL] || void 0, | ||
| [ANTHROPIC_API_KEY]: process.env[ANTHROPIC_API_KEY] || void 0, | ||
| [AZURE_OPENAI_ENDPOINT]: process.env[AZURE_OPENAI_ENDPOINT] || void 0, | ||
| [AZURE_OPENAI_KEY]: process.env[AZURE_OPENAI_KEY] || void 0, | ||
| [AZURE_OPENAI_API_VERSION]: process.env[AZURE_OPENAI_API_VERSION] || void 0, | ||
| [AZURE_OPENAI_DEPLOYMENT]: process.env[AZURE_OPENAI_DEPLOYMENT] || void 0, | ||
| [MIDSCENE_MCP_USE_PUPPETEER_MODE]: process.env[MIDSCENE_MCP_USE_PUPPETEER_MODE] || void 0, | ||
| [MIDSCENE_RUN_DIR]: process.env[MIDSCENE_RUN_DIR] || void 0 | ||
| }; | ||
| }; | ||
| var globalConfig = null; | ||
| var getGlobalConfig = () => { | ||
| if (globalConfig === null) { | ||
| globalConfig = allConfigFromEnv(); | ||
| } | ||
| return globalConfig; | ||
| }; | ||
| var getAIConfig = (configKey) => { | ||
| if (configKey === MATCH_BY_POSITION) { | ||
| throw new Error( | ||
| "MATCH_BY_POSITION is deprecated, use MIDSCENE_USE_VL_MODEL instead" | ||
| ); | ||
| } | ||
| return getGlobalConfig()[configKey]?.trim(); | ||
| }; | ||
| // src/common.ts | ||
| var defaultRunDirName = "midscene_run"; | ||
| var isNodeEnv = typeof process !== "undefined" && process.versions != null && process.versions.node != null; | ||
| var getMidsceneRunLogPath = () => { | ||
| const basePath = import_node_path.default.join(process.cwd(), "midscene_run"); | ||
| if (!import_node_fs.default.existsSync(basePath)) { | ||
| import_node_fs.default.mkdirSync(basePath, { recursive: true }); | ||
| var getMidsceneRunDir = () => { | ||
| if (!isNodeEnv) { | ||
| return ""; | ||
| } | ||
| const logPath = import_node_path.default.join(basePath, "log"); | ||
| if (!import_node_fs.default.existsSync(logPath)) { | ||
| import_node_fs.default.mkdirSync(logPath, { recursive: true }); | ||
| return getAIConfig(MIDSCENE_RUN_DIR) || defaultRunDirName; | ||
| }; | ||
| var getMidsceneRunBaseDir = () => { | ||
| if (!isNodeEnv) { | ||
| return ""; | ||
| } | ||
| let basePath = import_node_path.default.resolve(process.cwd(), getMidsceneRunDir()); | ||
| if (!(0, import_node_fs.existsSync)(basePath)) { | ||
| try { | ||
| (0, import_node_fs.mkdirSync)(basePath, { recursive: true }); | ||
| } catch (error) { | ||
| basePath = import_node_path.default.join((0, import_node_os.tmpdir)(), defaultRunDirName); | ||
| (0, import_node_fs.mkdirSync)(basePath, { recursive: true }); | ||
| } | ||
| } | ||
| return basePath; | ||
| }; | ||
| var getMidsceneRunSubDir = (subdir) => { | ||
| if (!isNodeEnv) { | ||
| return ""; | ||
| } | ||
| const basePath = getMidsceneRunBaseDir(); | ||
| const logPath = import_node_path.default.join(basePath, subdir); | ||
| if (!(0, import_node_fs.existsSync)(logPath)) { | ||
| (0, import_node_fs.mkdirSync)(logPath, { recursive: true }); | ||
| } | ||
| return logPath; | ||
| }; | ||
| var logDir = isNodeEnv ? getMidsceneRunLogPath() : ""; | ||
| var logDir = isNodeEnv ? getMidsceneRunSubDir("log") : ""; | ||
@@ -83,3 +195,6 @@ // src/logger.ts | ||
| const message = args.map( | ||
| (arg) => typeof arg === "object" ? JSON.stringify(arg) : String(arg) | ||
| (arg) => typeof arg === "object" ? JSON.stringify( | ||
| arg, | ||
| (key, value) => typeof value === "bigint" ? `${value.toString()}n` : value | ||
| ) : String(arg) | ||
| ).join(" "); | ||
@@ -86,0 +201,0 @@ if (isNodeEnv) { |
@@ -14,3 +14,5 @@ declare const ifInBrowser: boolean; | ||
| declare function getGlobalScope(): GlobalScope; | ||
| declare function setIsMcp(value: boolean): void; | ||
| declare function logMsg(...message: Parameters<typeof console.log>): void; | ||
| export { assert, generateHashId, getGlobalScope, ifInBrowser, uuid }; | ||
| export { assert, generateHashId, getGlobalScope, ifInBrowser, logMsg, setIsMcp, uuid }; |
+13
-0
@@ -27,2 +27,4 @@ "use strict"; | ||
| ifInBrowser: () => ifInBrowser, | ||
| logMsg: () => logMsg, | ||
| setIsMcp: () => setIsMcp, | ||
| uuid: () => uuid | ||
@@ -80,2 +82,11 @@ }); | ||
| } | ||
| var isMcp = false; | ||
| function setIsMcp(value) { | ||
| isMcp = value; | ||
| } | ||
| function logMsg(...message) { | ||
| if (!isMcp) { | ||
| console.log(...message); | ||
| } | ||
| } | ||
| // Annotate the CommonJS export names for ESM import in node: | ||
@@ -87,3 +98,5 @@ 0 && (module.exports = { | ||
| ifInBrowser, | ||
| logMsg, | ||
| setIsMcp, | ||
| uuid | ||
| }); |
@@ -13,3 +13,9 @@ declare const TEXT_SIZE_THRESHOLD = 9; | ||
| } | ||
| declare const PLAYGROUND_SERVER_PORT = 5800; | ||
| declare const SCRCPY_SERVER_PORT = 5700; | ||
| declare const DEFAULT_WAIT_FOR_NAVIGATION_TIMEOUT = 5000; | ||
| declare const DEFAULT_WAIT_FOR_NETWORK_IDLE_TIMEOUT = 2000; | ||
| declare const DEFAULT_WAIT_FOR_NETWORK_IDLE_TIME = 300; | ||
| declare const DEFAULT_WAIT_FOR_NETWORK_IDLE_CONCURRENCY = 2; | ||
| export { CONTAINER_MINI_HEIGHT, CONTAINER_MINI_WIDTH, NodeType, TEXT_MAX_SIZE, TEXT_SIZE_THRESHOLD }; | ||
| 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, NodeType, PLAYGROUND_SERVER_PORT, SCRCPY_SERVER_PORT, TEXT_MAX_SIZE, TEXT_SIZE_THRESHOLD }; |
+12
-17
| import { Buffer } from 'node:buffer'; | ||
| import Jimp from 'jimp'; | ||
| import { R as Rect } from './index-305e7a7e.js'; | ||
| import { NodeType } from './constants.js'; | ||
| import { R as Rect, B as BaseElement } from './index-305e7a7e.js'; | ||
| import './constants.js'; | ||
@@ -42,2 +42,8 @@ interface Size { | ||
| declare function base64Encoded(image: string, withHeader?: boolean): string; | ||
| /** | ||
| * Check if the Buffer is a valid PNG image | ||
| * @param buffer The Buffer to check | ||
| * @returns true if the Buffer is a valid PNG image, otherwise false | ||
| */ | ||
| declare function isValidPNGImageBuffer(buffer: Buffer): boolean; | ||
@@ -112,16 +118,5 @@ /** | ||
| type ElementType = { | ||
| locator?: string; | ||
| rect: Rect; | ||
| center?: [number, number]; | ||
| id?: string; | ||
| indexId: number; | ||
| attributes?: { | ||
| nodeType: NodeType; | ||
| [key: string]: string; | ||
| }; | ||
| }; | ||
| declare const compositeElementInfoImg: (options: { | ||
| inputImgBase64: string; | ||
| elementsPositionInfo: Array<ElementType>; | ||
| elementsPositionInfo: Array<BaseElement>; | ||
| size?: { | ||
@@ -135,4 +130,4 @@ width: number; | ||
| inputImgBase64: string; | ||
| elementsPositionInfo: Array<ElementType>; | ||
| elementsPositionInfoWithoutText: Array<ElementType>; | ||
| elementsPositionInfo: Array<BaseElement>; | ||
| elementsPositionInfoWithoutText: Array<BaseElement>; | ||
| }) => Promise<{ | ||
@@ -159,2 +154,2 @@ compositeElementInfoImgBase64: string; | ||
| export { base64Encoded, bufferFromBase64, compositeElementInfoImg, cropByRect, drawBoxOnImage, imageInfo, imageInfoOfBase64, jimpFromBase64, jimpToBase64, paddingToMatchBlock, paddingToMatchBlockByBase64, processImageElementInfo, resizeImg, resizeImgBase64, saveBase64Image, savePositionImg, transformImgPathToBase64, trimImage, zoomForGPT4o }; | ||
| export { base64Encoded, bufferFromBase64, compositeElementInfoImg, cropByRect, drawBoxOnImage, imageInfo, imageInfoOfBase64, isValidPNGImageBuffer, jimpFromBase64, jimpToBase64, paddingToMatchBlock, paddingToMatchBlockByBase64, processImageElementInfo, resizeImg, resizeImgBase64, saveBase64Image, savePositionImg, transformImgPathToBase64, trimImage, zoomForGPT4o }; |
@@ -14,3 +14,5 @@ declare const ifInBrowser: boolean; | ||
| declare function getGlobalScope(): GlobalScope; | ||
| declare function setIsMcp(value: boolean): void; | ||
| declare function logMsg(...message: Parameters<typeof console.log>): void; | ||
| export { assert, generateHashId, getGlobalScope, ifInBrowser, uuid }; | ||
| export { assert, generateHashId, getGlobalScope, ifInBrowser, logMsg, setIsMcp, uuid }; |
+13
-2
| { | ||
| "name": "@aico-test/shared", | ||
| "version": "8.0.0", | ||
| "version": "10.0.0", | ||
| "repository": "https://github.com/web-infra-dev/midscene", | ||
| "homepage": "https://midscenejs.com/", | ||
| "types": "./dist/types/index.d.ts", | ||
@@ -16,3 +18,5 @@ "main": "./dist/lib/index.js", | ||
| "./keyboard-layout": "./dist/lib/us-keyboard-layout.js", | ||
| "./logger": "./dist/lib/logger.js" | ||
| "./logger": "./dist/lib/logger.js", | ||
| "./common": "./dist/lib/common.js", | ||
| "./env": "./dist/lib/env.js" | ||
| }, | ||
@@ -47,2 +51,8 @@ "typesVersions": { | ||
| "./dist/types/logger.d.ts" | ||
| ], | ||
| "common": [ | ||
| "./dist/types/common.d.ts" | ||
| ], | ||
| "env": [ | ||
| "./dist/types/env.d.ts" | ||
| ] | ||
@@ -84,2 +94,3 @@ } | ||
| "@types/node": "^18.0.0", | ||
| "@ui-tars/shared": "1.2.0", | ||
| "dotenv": "16.4.5", | ||
@@ -86,0 +97,0 @@ "rimraf": "~3.0.2", |
+43
-11
@@ -1,4 +0,7 @@ | ||
| import fs from 'node:fs'; | ||
| import { existsSync, mkdirSync } from 'node:fs'; | ||
| import { tmpdir } from 'node:os'; | ||
| import path from 'node:path'; | ||
| import { MIDSCENE_RUN_DIR, getAIConfig } from './env'; | ||
| export const defaultRunDirName = 'midscene_run'; | ||
| // Define locally for now to avoid import issues | ||
@@ -10,2 +13,31 @@ export const isNodeEnv = | ||
| export const getMidsceneRunDir = () => { | ||
| if (!isNodeEnv) { | ||
| return ''; | ||
| } | ||
| return getAIConfig(MIDSCENE_RUN_DIR) || defaultRunDirName; | ||
| }; | ||
| export const getMidsceneRunBaseDir = () => { | ||
| if (!isNodeEnv) { | ||
| return ''; | ||
| } | ||
| let basePath = path.resolve(process.cwd(), getMidsceneRunDir()); | ||
| // Create a base directory | ||
| if (!existsSync(basePath)) { | ||
| try { | ||
| mkdirSync(basePath, { recursive: true }); | ||
| } catch (error) { | ||
| // console.error(`Failed to create ${runDirName} directory: ${error}`); | ||
| basePath = path.join(tmpdir(), defaultRunDirName); | ||
| mkdirSync(basePath, { recursive: true }); | ||
| } | ||
| } | ||
| return basePath; | ||
| }; | ||
| /** | ||
@@ -18,14 +50,14 @@ * Get the path to the midscene_run directory or a subdirectory within it. | ||
| */ | ||
| export const getMidsceneRunLogPath = (): string => { | ||
| const basePath = path.join(process.cwd(), 'midscene_run'); | ||
| // Create a base directory | ||
| if (!fs.existsSync(basePath)) { | ||
| fs.mkdirSync(basePath, { recursive: true }); | ||
| export const getMidsceneRunSubDir = ( | ||
| subdir: 'dump' | 'cache' | 'report' | 'tmp' | 'log' | 'output', | ||
| ): string => { | ||
| if (!isNodeEnv) { | ||
| return ''; | ||
| } | ||
| // Create a log directory | ||
| const logPath = path.join(basePath, 'log'); | ||
| if (!fs.existsSync(logPath)) { | ||
| fs.mkdirSync(logPath, { recursive: true }); | ||
| const basePath = getMidsceneRunBaseDir(); | ||
| const logPath = path.join(basePath, subdir); | ||
| if (!existsSync(logPath)) { | ||
| mkdirSync(logPath, { recursive: true }); | ||
| } | ||
@@ -36,2 +68,2 @@ | ||
| export const logDir = isNodeEnv ? getMidsceneRunLogPath() : ''; | ||
| export const logDir = isNodeEnv ? getMidsceneRunSubDir('log') : ''; |
@@ -16,1 +16,9 @@ export const TEXT_SIZE_THRESHOLD = 9; | ||
| } | ||
| export const PLAYGROUND_SERVER_PORT = 5800; | ||
| export const SCRCPY_SERVER_PORT = 5700; | ||
| export const DEFAULT_WAIT_FOR_NAVIGATION_TIMEOUT = 5000; | ||
| export const DEFAULT_WAIT_FOR_NETWORK_IDLE_TIMEOUT = 2000; | ||
| export const DEFAULT_WAIT_FOR_NETWORK_IDLE_TIME = 300; | ||
| export const DEFAULT_WAIT_FOR_NETWORK_IDLE_CONCURRENCY = 2; |
+27
-22
| import assert from 'node:assert'; | ||
| import type Jimp from 'jimp'; | ||
| import type { NodeType } from '../constants'; | ||
| import type { Rect } from '../types'; | ||
| import type { BaseElement } from '../types'; | ||
| import getJimp from './get-jimp'; | ||
| import { bufferFromBase64, imageInfoOfBase64 } from './index'; | ||
| // Define picture path | ||
| type ElementType = { | ||
| locator?: string; | ||
| rect: Rect; | ||
| center?: [number, number]; | ||
| id?: string; | ||
| indexId: number; | ||
| attributes?: { | ||
| nodeType: NodeType; | ||
| [key: string]: string; | ||
| }; | ||
| let cachedFont: any = null; | ||
| const loadFonts = async () => { | ||
| const Jimp = await getJimp(); | ||
| try { | ||
| const fonts = await Jimp.loadFont(Jimp.FONT_SANS_16_WHITE); | ||
| return fonts; | ||
| } catch (error) { | ||
| console.warn('Error loading font, will try to load online fonts', error); | ||
| const onlineFonts = | ||
| 'https://cdn.jsdelivr.net/npm/jimp-compact@0.16.1-2/fonts/open-sans/open-sans-16-white/open-sans-16-white.fnt'; | ||
| const fonts = await Jimp.loadFont(onlineFonts); | ||
| return fonts; | ||
| } | ||
| }; | ||
| let cachedFont: any = null; | ||
| const createSvgOverlay = async ( | ||
| elements: Array<ElementType>, | ||
| elements: Array<BaseElement>, | ||
| imageWidth: number, | ||
@@ -81,3 +82,7 @@ imageHeight: number, | ||
| // Calculate text position | ||
| const textWidth = element.indexId.toString().length * 8; | ||
| const indexId = element.indexId; | ||
| if (typeof indexId !== 'number') { | ||
| continue; | ||
| } | ||
| const textWidth = indexId.toString().length * 8; | ||
| const textHeight = 12; | ||
@@ -168,3 +173,3 @@ const rectWidth = textWidth + 5; | ||
| try { | ||
| cachedFont = cachedFont || (await Jimp.loadFont(Jimp.FONT_SANS_16_WHITE)); | ||
| cachedFont = cachedFont || (await loadFonts()); | ||
| } catch (error) { | ||
@@ -178,3 +183,3 @@ console.error('Error loading font', error); | ||
| { | ||
| text: element.indexId.toString(), | ||
| text: indexId.toString(), | ||
| alignmentX: Jimp.HORIZONTAL_ALIGN_CENTER, | ||
@@ -193,3 +198,3 @@ alignmentY: Jimp.VERTICAL_ALIGN_MIDDLE, | ||
| inputImgBase64: string; | ||
| elementsPositionInfo: Array<ElementType>; | ||
| elementsPositionInfo: Array<BaseElement>; | ||
| size?: { width: number; height: number }; | ||
@@ -262,4 +267,4 @@ annotationPadding?: number; | ||
| inputImgBase64: string; | ||
| elementsPositionInfo: Array<ElementType>; | ||
| elementsPositionInfoWithoutText: Array<ElementType>; | ||
| elementsPositionInfo: Array<BaseElement>; | ||
| elementsPositionInfoWithoutText: Array<BaseElement>; | ||
| }) => { | ||
@@ -266,0 +271,0 @@ // Get the size of the original image |
+1
-0
@@ -6,2 +6,3 @@ export { | ||
| base64Encoded, | ||
| isValidPNGImageBuffer, | ||
| } from './info'; | ||
@@ -8,0 +9,0 @@ export { |
+20
-0
@@ -91,1 +91,21 @@ import assert from 'node:assert'; | ||
| } | ||
| /** | ||
| * Check if the Buffer is a valid PNG image | ||
| * @param buffer The Buffer to check | ||
| * @returns true if the Buffer is a valid PNG image, otherwise false | ||
| */ | ||
| export function isValidPNGImageBuffer(buffer: Buffer): boolean { | ||
| if (!buffer || buffer.length < 8) { | ||
| return false; | ||
| } | ||
| // Check if the Buffer is a valid PNG image (signature: 89 50 4E 47...) | ||
| const isPNG = | ||
| buffer[0] === 0x89 && | ||
| buffer[1] === 0x50 && | ||
| buffer[2] === 0x4e && | ||
| buffer[3] === 0x47; | ||
| return isPNG; | ||
| } |
+5
-1
@@ -37,3 +37,7 @@ import fs from 'node:fs'; | ||
| .map((arg) => | ||
| typeof arg === 'object' ? JSON.stringify(arg) : String(arg), | ||
| typeof arg === 'object' | ||
| ? JSON.stringify(arg, (key, value) => | ||
| typeof value === 'bigint' ? `${value.toString()}n` : value, | ||
| ) | ||
| : String(arg), | ||
| ) | ||
@@ -40,0 +44,0 @@ .join(' '); |
+13
-0
@@ -77,1 +77,14 @@ import { sha256 } from 'js-sha256'; | ||
| } | ||
| let isMcp = false; | ||
| export function setIsMcp(value: boolean) { | ||
| isMcp = value; | ||
| } | ||
| //mcp need use obj format to console msg: https://github.com/modelcontextprotocol/typescript-sdk/issues/244 | ||
| export function logMsg(...message: Parameters<typeof console.log>) { | ||
| if (!isMcp) { | ||
| console.log(...message); | ||
| } | ||
| } |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
509207
19.32%87
14.47%14024
14.05%0
-100%8
14.29%243
2600%