@xiuchang-midscene/shared 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/dist/es/baseDB.mjs +109 -0
- package/dist/es/baseDB.mjs.bak +109 -0
- package/dist/es/build/copy-static.mjs +31 -0
- package/dist/es/build/copy-static.mjs.bak +31 -0
- package/dist/es/build/rspack-config.mjs +4 -0
- package/dist/es/build/rspack-config.mjs.bak +4 -0
- package/dist/es/cli/cli-runner.mjs +140 -0
- package/dist/es/cli/cli-runner.mjs.bak +140 -0
- package/dist/es/cli/index.mjs +2 -0
- package/dist/es/cli/index.mjs.bak +2 -0
- package/dist/es/common.mjs +37 -0
- package/dist/es/common.mjs.bak +37 -0
- package/dist/es/constants/example-code.mjs +223 -0
- package/dist/es/constants/example-code.mjs.bak +223 -0
- package/dist/es/constants/index.mjs +23 -0
- package/dist/es/constants/index.mjs.bak +23 -0
- package/dist/es/env/basic.mjs +6 -0
- package/dist/es/env/basic.mjs.bak +6 -0
- package/dist/es/env/constants.mjs +70 -0
- package/dist/es/env/constants.mjs.bak +70 -0
- package/dist/es/env/global-config-manager.mjs +94 -0
- package/dist/es/env/global-config-manager.mjs.bak +94 -0
- package/dist/es/env/helper.mjs +43 -0
- package/dist/es/env/helper.mjs.bak +43 -0
- package/dist/es/env/index.mjs +5 -0
- package/dist/es/env/index.mjs.bak +5 -0
- package/dist/es/env/init-debug.mjs +18 -0
- package/dist/es/env/init-debug.mjs.bak +18 -0
- package/dist/es/env/model-config-manager.mjs +79 -0
- package/dist/es/env/model-config-manager.mjs.bak +79 -0
- package/dist/es/env/parse-model-config.mjs +132 -0
- package/dist/es/env/parse-model-config.mjs.bak +132 -0
- package/dist/es/env/types.mjs +220 -0
- package/dist/es/env/types.mjs.bak +220 -0
- package/dist/es/env/utils.mjs +26 -0
- package/dist/es/env/utils.mjs.bak +26 -0
- package/dist/es/extractor/constants.mjs +2 -0
- package/dist/es/extractor/constants.mjs.bak +2 -0
- package/dist/es/extractor/debug.mjs +6 -0
- package/dist/es/extractor/debug.mjs.bak +6 -0
- package/dist/es/extractor/dom-util.mjs +92 -0
- package/dist/es/extractor/dom-util.mjs.bak +92 -0
- package/dist/es/extractor/index.mjs +5 -0
- package/dist/es/extractor/index.mjs.bak +5 -0
- package/dist/es/extractor/locator.mjs +250 -0
- package/dist/es/extractor/locator.mjs.bak +250 -0
- package/dist/es/extractor/tree.mjs +78 -0
- package/dist/es/extractor/tree.mjs.bak +78 -0
- package/dist/es/extractor/util.mjs +245 -0
- package/dist/es/extractor/util.mjs.bak +245 -0
- package/dist/es/extractor/web-extractor.mjs +303 -0
- package/dist/es/extractor/web-extractor.mjs.bak +303 -0
- package/dist/es/img/box-select.mjs +824 -0
- package/dist/es/img/box-select.mjs.bak +824 -0
- package/dist/es/img/canvas-fallback.mjs +238 -0
- package/dist/es/img/canvas-fallback.mjs.bak +238 -0
- package/dist/es/img/get-photon.mjs +45 -0
- package/dist/es/img/get-photon.mjs.bak +45 -0
- package/dist/es/img/get-sharp.mjs +11 -0
- package/dist/es/img/get-sharp.mjs.bak +11 -0
- package/dist/es/img/index.mjs +4 -0
- package/dist/es/img/index.mjs.bak +4 -0
- package/dist/es/img/info.mjs +29 -0
- package/dist/es/img/info.mjs.bak +29 -0
- package/dist/es/img/transform.mjs +295 -0
- package/dist/es/img/transform.mjs.bak +295 -0
- package/dist/es/index.mjs +4 -0
- package/dist/es/index.mjs.bak +4 -0
- package/dist/es/logger.mjs +64 -0
- package/dist/es/logger.mjs.bak +64 -0
- package/dist/es/mcp/base-server.mjs +281 -0
- package/dist/es/mcp/base-server.mjs.bak +281 -0
- package/dist/es/mcp/base-tools.mjs +91 -0
- package/dist/es/mcp/base-tools.mjs.bak +91 -0
- package/dist/es/mcp/chrome-path.mjs +35 -0
- package/dist/es/mcp/chrome-path.mjs.bak +35 -0
- package/dist/es/mcp/index.mjs +7 -0
- package/dist/es/mcp/index.mjs.bak +7 -0
- package/dist/es/mcp/inject-report-html-plugin.mjs +53 -0
- package/dist/es/mcp/inject-report-html-plugin.mjs.bak +53 -0
- package/dist/es/mcp/launcher-helper.mjs +52 -0
- package/dist/es/mcp/launcher-helper.mjs.bak +52 -0
- package/dist/es/mcp/tool-generator.mjs +297 -0
- package/dist/es/mcp/tool-generator.mjs.bak +297 -0
- package/dist/es/mcp/types.mjs +3 -0
- package/dist/es/mcp/types.mjs.bak +3 -0
- package/dist/es/node/fs.mjs +44 -0
- package/dist/es/node/fs.mjs.bak +44 -0
- package/dist/es/node/index.mjs +2 -0
- package/dist/es/node/index.mjs.bak +2 -0
- package/dist/es/node/port.mjs +24 -0
- package/dist/es/node/port.mjs.bak +24 -0
- package/dist/es/oss/demo.mjs +30 -0
- package/dist/es/oss/demo.mjs.bak +30 -0
- package/dist/es/oss/index.mjs +90 -0
- package/dist/es/oss/index.mjs.bak +90 -0
- package/dist/es/polyfills/async-hooks.mjs +2 -0
- package/dist/es/polyfills/async-hooks.mjs.bak +2 -0
- package/dist/es/polyfills/index.mjs +1 -0
- package/dist/es/polyfills/index.mjs.bak +1 -0
- package/dist/es/types/index.mjs +3 -0
- package/dist/es/types/index.mjs.bak +3 -0
- package/dist/es/us-keyboard-layout.mjs +1414 -0
- package/dist/es/us-keyboard-layout.mjs.LICENSE.txt +5 -0
- package/dist/es/us-keyboard-layout.mjs.bak +1414 -0
- package/dist/es/utils.mjs +72 -0
- package/dist/es/utils.mjs.bak +72 -0
- package/dist/es/zod-schema-utils.mjs +54 -0
- package/dist/es/zod-schema-utils.mjs.bak +54 -0
- package/dist/lib/baseDB.js +149 -0
- package/dist/lib/baseDB.js.bak +149 -0
- package/dist/lib/build/copy-static.js +79 -0
- package/dist/lib/build/copy-static.js.bak +79 -0
- package/dist/lib/build/rspack-config.js +38 -0
- package/dist/lib/build/rspack-config.js.bak +38 -0
- package/dist/lib/cli/cli-runner.js +196 -0
- package/dist/lib/cli/cli-runner.js.bak +196 -0
- package/dist/lib/cli/index.js +48 -0
- package/dist/lib/cli/index.js.bak +48 -0
- package/dist/lib/common.js +93 -0
- package/dist/lib/common.js.bak +93 -0
- package/dist/lib/constants/example-code.js +260 -0
- package/dist/lib/constants/example-code.js.bak +260 -0
- package/dist/lib/constants/index.js +96 -0
- package/dist/lib/constants/index.js.bak +96 -0
- package/dist/lib/env/basic.js +40 -0
- package/dist/lib/env/basic.js.bak +40 -0
- package/dist/lib/env/constants.js +113 -0
- package/dist/lib/env/constants.js.bak +113 -0
- package/dist/lib/env/global-config-manager.js +128 -0
- package/dist/lib/env/global-config-manager.js.bak +128 -0
- package/dist/lib/env/helper.js +80 -0
- package/dist/lib/env/helper.js.bak +80 -0
- package/dist/lib/env/index.js +90 -0
- package/dist/lib/env/index.js.bak +90 -0
- package/dist/lib/env/init-debug.js +52 -0
- package/dist/lib/env/init-debug.js.bak +52 -0
- package/dist/lib/env/model-config-manager.js +113 -0
- package/dist/lib/env/model-config-manager.js.bak +113 -0
- package/dist/lib/env/parse-model-config.js +178 -0
- package/dist/lib/env/parse-model-config.js.bak +178 -0
- package/dist/lib/env/types.js +554 -0
- package/dist/lib/env/types.js.bak +554 -0
- package/dist/lib/env/utils.js +72 -0
- package/dist/lib/env/utils.js.bak +72 -0
- package/dist/lib/extractor/constants.js +42 -0
- package/dist/lib/extractor/constants.js.bak +42 -0
- package/dist/lib/extractor/debug.js +12 -0
- package/dist/lib/extractor/debug.js.bak +12 -0
- package/dist/lib/extractor/dom-util.js +153 -0
- package/dist/lib/extractor/dom-util.js.bak +153 -0
- package/dist/lib/extractor/index.js +81 -0
- package/dist/lib/extractor/index.js.bak +81 -0
- package/dist/lib/extractor/locator.js +296 -0
- package/dist/lib/extractor/locator.js.bak +296 -0
- package/dist/lib/extractor/tree.js +124 -0
- package/dist/lib/extractor/tree.js.bak +124 -0
- package/dist/lib/extractor/util.js +336 -0
- package/dist/lib/extractor/util.js.bak +336 -0
- package/dist/lib/extractor/web-extractor.js +349 -0
- package/dist/lib/extractor/web-extractor.js.bak +349 -0
- package/dist/lib/img/box-select.js +875 -0
- package/dist/lib/img/box-select.js.bak +875 -0
- package/dist/lib/img/canvas-fallback.js +305 -0
- package/dist/lib/img/canvas-fallback.js.bak +305 -0
- package/dist/lib/img/get-photon.js +82 -0
- package/dist/lib/img/get-photon.js.bak +82 -0
- package/dist/lib/img/get-sharp.js +45 -0
- package/dist/lib/img/get-sharp.js.bak +45 -0
- package/dist/lib/img/index.js +95 -0
- package/dist/lib/img/index.js.bak +95 -0
- package/dist/lib/img/info.js +83 -0
- package/dist/lib/img/info.js.bak +83 -0
- package/dist/lib/img/transform.js +387 -0
- package/dist/lib/img/transform.js.bak +387 -0
- package/dist/lib/index.js +47 -0
- package/dist/lib/index.js.bak +47 -0
- package/dist/lib/logger.js +114 -0
- package/dist/lib/logger.js.bak +114 -0
- package/dist/lib/mcp/base-server.js +331 -0
- package/dist/lib/mcp/base-server.js.bak +331 -0
- package/dist/lib/mcp/base-tools.js +125 -0
- package/dist/lib/mcp/base-tools.js.bak +125 -0
- package/dist/lib/mcp/chrome-path.js +72 -0
- package/dist/lib/mcp/chrome-path.js.bak +72 -0
- package/dist/lib/mcp/index.js +100 -0
- package/dist/lib/mcp/index.js.bak +100 -0
- package/dist/lib/mcp/inject-report-html-plugin.js +98 -0
- package/dist/lib/mcp/inject-report-html-plugin.js.bak +98 -0
- package/dist/lib/mcp/launcher-helper.js +86 -0
- package/dist/lib/mcp/launcher-helper.js.bak +86 -0
- package/dist/lib/mcp/tool-generator.js +334 -0
- package/dist/lib/mcp/tool-generator.js.bak +334 -0
- package/dist/lib/mcp/types.js +40 -0
- package/dist/lib/mcp/types.js.bak +40 -0
- package/dist/lib/node/fs.js +97 -0
- package/dist/lib/node/fs.js.bak +97 -0
- package/dist/lib/node/index.js +65 -0
- package/dist/lib/node/index.js.bak +65 -0
- package/dist/lib/node/port.js +61 -0
- package/dist/lib/node/port.js.bak +61 -0
- package/dist/lib/oss/demo.js +36 -0
- package/dist/lib/oss/demo.js.bak +36 -0
- package/dist/lib/oss/index.js +138 -0
- package/dist/lib/oss/index.js.bak +138 -0
- package/dist/lib/polyfills/async-hooks.js +36 -0
- package/dist/lib/polyfills/async-hooks.js.bak +36 -0
- package/dist/lib/polyfills/index.js +58 -0
- package/dist/lib/polyfills/index.js.bak +58 -0
- package/dist/lib/types/index.js +37 -0
- package/dist/lib/types/index.js.bak +37 -0
- package/dist/lib/us-keyboard-layout.js +1457 -0
- package/dist/lib/us-keyboard-layout.js.LICENSE.txt +5 -0
- package/dist/lib/us-keyboard-layout.js.bak +1457 -0
- package/dist/lib/utils.js +148 -0
- package/dist/lib/utils.js.bak +148 -0
- package/dist/lib/zod-schema-utils.js +97 -0
- package/dist/lib/zod-schema-utils.js.bak +97 -0
- package/dist/types/baseDB.d.ts +25 -0
- package/dist/types/baseDB.d.ts.bak +25 -0
- package/dist/types/build/copy-static.d.ts +31 -0
- package/dist/types/build/copy-static.d.ts.bak +31 -0
- package/dist/types/build/rspack-config.d.ts +8 -0
- package/dist/types/build/rspack-config.d.ts.bak +8 -0
- package/dist/types/cli/cli-runner.d.ts +14 -0
- package/dist/types/cli/cli-runner.d.ts.bak +14 -0
- package/dist/types/cli/index.d.ts +2 -0
- package/dist/types/cli/index.d.ts.bak +2 -0
- package/dist/types/common.d.ts +12 -0
- package/dist/types/common.d.ts.bak +12 -0
- package/dist/types/constants/example-code.d.ts +2 -0
- package/dist/types/constants/example-code.d.ts.bak +2 -0
- package/dist/types/constants/index.d.ts +21 -0
- package/dist/types/constants/index.d.ts.bak +21 -0
- package/dist/types/env/basic.d.ts +6 -0
- package/dist/types/env/basic.d.ts.bak +6 -0
- package/dist/types/env/constants.d.ts +40 -0
- package/dist/types/env/constants.d.ts.bak +40 -0
- package/dist/types/env/global-config-manager.d.ts +32 -0
- package/dist/types/env/global-config-manager.d.ts.bak +32 -0
- package/dist/types/env/helper.d.ts +4 -0
- package/dist/types/env/helper.d.ts.bak +4 -0
- package/dist/types/env/index.d.ts +4 -0
- package/dist/types/env/index.d.ts.bak +4 -0
- package/dist/types/env/init-debug.d.ts +1 -0
- package/dist/types/env/init-debug.d.ts.bak +1 -0
- package/dist/types/env/model-config-manager.d.ts +25 -0
- package/dist/types/env/model-config-manager.d.ts.bak +25 -0
- package/dist/types/env/parse-model-config.d.ts +31 -0
- package/dist/types/env/parse-model-config.d.ts.bak +31 -0
- package/dist/types/env/types.d.ts +318 -0
- package/dist/types/env/types.d.ts.bak +318 -0
- package/dist/types/env/utils.d.ts +38 -0
- package/dist/types/env/utils.d.ts.bak +38 -0
- package/dist/types/extractor/constants.d.ts +1 -0
- package/dist/types/extractor/constants.d.ts.bak +1 -0
- package/dist/types/extractor/debug.d.ts +1 -0
- package/dist/types/extractor/debug.d.ts.bak +1 -0
- package/dist/types/extractor/dom-util.d.ts +56 -0
- package/dist/types/extractor/dom-util.d.ts.bak +56 -0
- package/dist/types/extractor/index.d.ts +32 -0
- package/dist/types/extractor/index.d.ts.bak +32 -0
- package/dist/types/extractor/locator.d.ts +9 -0
- package/dist/types/extractor/locator.d.ts.bak +9 -0
- package/dist/types/extractor/tree.d.ts +6 -0
- package/dist/types/extractor/tree.d.ts.bak +6 -0
- package/dist/types/extractor/util.d.ts +47 -0
- package/dist/types/extractor/util.d.ts.bak +47 -0
- package/dist/types/extractor/web-extractor.d.ts +19 -0
- package/dist/types/extractor/web-extractor.d.ts.bak +19 -0
- package/dist/types/img/box-select.d.ts +26 -0
- package/dist/types/img/box-select.d.ts.bak +26 -0
- package/dist/types/img/canvas-fallback.d.ts +105 -0
- package/dist/types/img/canvas-fallback.d.ts.bak +105 -0
- package/dist/types/img/get-photon.d.ts +19 -0
- package/dist/types/img/get-photon.d.ts.bak +19 -0
- package/dist/types/img/get-sharp.d.ts +3 -0
- package/dist/types/img/get-sharp.d.ts.bak +3 -0
- package/dist/types/img/index.d.ts +3 -0
- package/dist/types/img/index.d.ts.bak +3 -0
- package/dist/types/img/info.d.ts +29 -0
- package/dist/types/img/info.d.ts.bak +29 -0
- package/dist/types/img/transform.d.ts +107 -0
- package/dist/types/img/transform.d.ts.bak +107 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.bak +4 -0
- package/dist/types/logger.d.ts +5 -0
- package/dist/types/logger.d.ts.bak +5 -0
- package/dist/types/mcp/base-server.d.ts +93 -0
- package/dist/types/mcp/base-server.d.ts.bak +93 -0
- package/dist/types/mcp/base-tools.d.ts +79 -0
- package/dist/types/mcp/base-tools.d.ts.bak +79 -0
- package/dist/types/mcp/chrome-path.d.ts +2 -0
- package/dist/types/mcp/chrome-path.d.ts.bak +2 -0
- package/dist/types/mcp/index.d.ts +7 -0
- package/dist/types/mcp/index.d.ts.bak +7 -0
- package/dist/types/mcp/inject-report-html-plugin.d.ts +18 -0
- package/dist/types/mcp/inject-report-html-plugin.d.ts.bak +18 -0
- package/dist/types/mcp/launcher-helper.d.ts +94 -0
- package/dist/types/mcp/launcher-helper.d.ts.bak +94 -0
- package/dist/types/mcp/tool-generator.d.ts +10 -0
- package/dist/types/mcp/tool-generator.d.ts.bak +10 -0
- package/dist/types/mcp/types.d.ts +103 -0
- package/dist/types/mcp/types.d.ts.bak +103 -0
- package/dist/types/node/fs.d.ts +15 -0
- package/dist/types/node/fs.d.ts.bak +15 -0
- package/dist/types/node/index.d.ts +2 -0
- package/dist/types/node/index.d.ts.bak +2 -0
- package/dist/types/node/port.d.ts +8 -0
- package/dist/types/node/port.d.ts.bak +8 -0
- package/dist/types/oss/demo.d.ts +1 -0
- package/dist/types/oss/demo.d.ts.bak +1 -0
- package/dist/types/oss/index.d.ts +34 -0
- package/dist/types/oss/index.d.ts.bak +34 -0
- package/dist/types/polyfills/async-hooks.d.ts +6 -0
- package/dist/types/polyfills/async-hooks.d.ts.bak +6 -0
- package/dist/types/polyfills/index.d.ts +4 -0
- package/dist/types/polyfills/index.d.ts.bak +4 -0
- package/dist/types/types/index.d.ts +34 -0
- package/dist/types/types/index.d.ts.bak +34 -0
- package/dist/types/us-keyboard-layout.d.ts +32 -0
- package/dist/types/us-keyboard-layout.d.ts.bak +32 -0
- package/dist/types/utils.d.ts +34 -0
- package/dist/types/utils.d.ts.bak +34 -0
- package/dist/types/zod-schema-utils.d.ts +23 -0
- package/dist/types/zod-schema-utils.d.ts.bak +23 -0
- package/package.json +132 -0
- package/src/baseDB.ts +158 -0
- package/src/build/copy-static.ts +68 -0
- package/src/build/rspack-config.ts +12 -0
- package/src/cli/cli-runner.ts +224 -0
- package/src/cli/index.ts +8 -0
- package/src/common.ts +67 -0
- package/src/constants/example-code.ts +223 -0
- package/src/constants/index.ts +29 -0
- package/src/env/basic.ts +12 -0
- package/src/env/constants.ts +234 -0
- package/src/env/global-config-manager.ts +191 -0
- package/src/env/helper.ts +58 -0
- package/src/env/index.ts +4 -0
- package/src/env/init-debug.ts +34 -0
- package/src/env/model-config-manager.ts +149 -0
- package/src/env/parse-model-config.ts +294 -0
- package/src/env/types.ts +547 -0
- package/src/env/utils.ts +89 -0
- package/src/extractor/constants.ts +5 -0
- package/src/extractor/debug.ts +10 -0
- package/src/extractor/dom-util.ts +226 -0
- package/src/extractor/index.ts +48 -0
- package/src/extractor/locator.ts +469 -0
- package/src/extractor/tree.ts +179 -0
- package/src/extractor/util.ts +482 -0
- package/src/extractor/web-extractor.ts +481 -0
- package/src/img/box-select.ts +588 -0
- package/src/img/canvas-fallback.ts +393 -0
- package/src/img/get-photon.ts +108 -0
- package/src/img/get-sharp.ts +18 -0
- package/src/img/index.ts +26 -0
- package/src/img/info.ts +75 -0
- package/src/img/transform.ts +594 -0
- package/src/index.ts +8 -0
- package/src/logger.ts +96 -0
- package/src/mcp/base-server.ts +502 -0
- package/src/mcp/base-tools.ts +185 -0
- package/src/mcp/chrome-path.ts +48 -0
- package/src/mcp/index.ts +7 -0
- package/src/mcp/inject-report-html-plugin.ts +119 -0
- package/src/mcp/launcher-helper.ts +200 -0
- package/src/mcp/tool-generator.ts +429 -0
- package/src/mcp/types.ts +112 -0
- package/src/node/fs.ts +84 -0
- package/src/node/index.ts +2 -0
- package/src/node/port.ts +37 -0
- package/src/oss/demo.ts +61 -0
- package/src/oss/index.ts +187 -0
- package/src/polyfills/async-hooks.ts +6 -0
- package/src/polyfills/index.ts +4 -0
- package/src/types/index.ts +52 -0
- package/src/us-keyboard-layout.ts +723 -0
- package/src/utils.ts +149 -0
- package/src/zod-schema-utils.ts +133 -0
package/src/env/types.ts
ADDED
|
@@ -0,0 +1,547 @@
|
|
|
1
|
+
// config keys
|
|
2
|
+
export const MIDSCENE_MODEL_INIT_CONFIG_JSON =
|
|
3
|
+
'MIDSCENE_MODEL_INIT_CONFIG_JSON';
|
|
4
|
+
export const MIDSCENE_MODEL_EXTRA_BODY_JSON = 'MIDSCENE_MODEL_EXTRA_BODY_JSON';
|
|
5
|
+
export const MIDSCENE_MODEL_NAME = 'MIDSCENE_MODEL_NAME';
|
|
6
|
+
export const MIDSCENE_DEBUG_MODEL_PROFILE = 'MIDSCENE_DEBUG_MODEL_PROFILE';
|
|
7
|
+
export const MIDSCENE_DEBUG_MODEL_RESPONSE = 'MIDSCENE_DEBUG_MODEL_RESPONSE';
|
|
8
|
+
export const MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG =
|
|
9
|
+
'MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG';
|
|
10
|
+
export const MIDSCENE_DEBUG_MODE = 'MIDSCENE_DEBUG_MODE';
|
|
11
|
+
export const MIDSCENE_MCP_USE_PUPPETEER_MODE =
|
|
12
|
+
'MIDSCENE_MCP_USE_PUPPETEER_MODE';
|
|
13
|
+
export const MIDSCENE_MCP_CHROME_PATH = 'MIDSCENE_MCP_CHROME_PATH';
|
|
14
|
+
export const MIDSCENE_MCP_ANDROID_MODE = 'MIDSCENE_MCP_ANDROID_MODE';
|
|
15
|
+
export const DOCKER_CONTAINER = 'DOCKER_CONTAINER';
|
|
16
|
+
|
|
17
|
+
// Observability
|
|
18
|
+
export const MIDSCENE_LANGSMITH_DEBUG = 'MIDSCENE_LANGSMITH_DEBUG';
|
|
19
|
+
export const MIDSCENE_LANGFUSE_DEBUG = 'MIDSCENE_LANGFUSE_DEBUG';
|
|
20
|
+
|
|
21
|
+
export const MIDSCENE_MODEL_SOCKS_PROXY = 'MIDSCENE_MODEL_SOCKS_PROXY';
|
|
22
|
+
export const MIDSCENE_MODEL_HTTP_PROXY = 'MIDSCENE_MODEL_HTTP_PROXY';
|
|
23
|
+
|
|
24
|
+
// New primary names for public API
|
|
25
|
+
export const MIDSCENE_MODEL_API_KEY = 'MIDSCENE_MODEL_API_KEY';
|
|
26
|
+
export const MIDSCENE_MODEL_BASE_URL = 'MIDSCENE_MODEL_BASE_URL';
|
|
27
|
+
export const MIDSCENE_MODEL_MAX_TOKENS = 'MIDSCENE_MODEL_MAX_TOKENS';
|
|
28
|
+
export const MIDSCENE_MODEL_TIMEOUT = 'MIDSCENE_MODEL_TIMEOUT';
|
|
29
|
+
export const MIDSCENE_MODEL_TEMPERATURE = 'MIDSCENE_MODEL_TEMPERATURE';
|
|
30
|
+
export const MIDSCENE_MODEL_RETRY_COUNT = 'MIDSCENE_MODEL_RETRY_COUNT';
|
|
31
|
+
export const MIDSCENE_MODEL_RETRY_INTERVAL = 'MIDSCENE_MODEL_RETRY_INTERVAL';
|
|
32
|
+
export const MIDSCENE_MODEL_REASONING_EFFORT =
|
|
33
|
+
'MIDSCENE_MODEL_REASONING_EFFORT';
|
|
34
|
+
export const MIDSCENE_MODEL_REASONING_ENABLED =
|
|
35
|
+
'MIDSCENE_MODEL_REASONING_ENABLED';
|
|
36
|
+
export const MIDSCENE_MODEL_REASONING_BUDGET =
|
|
37
|
+
'MIDSCENE_MODEL_REASONING_BUDGET';
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @deprecated Use MIDSCENE_MODEL_API_KEY instead. This is kept for backward compatibility.
|
|
41
|
+
*/
|
|
42
|
+
export const OPENAI_API_KEY = 'OPENAI_API_KEY';
|
|
43
|
+
/**
|
|
44
|
+
* @deprecated Use MIDSCENE_MODEL_BASE_URL instead. This is kept for backward compatibility.
|
|
45
|
+
*/
|
|
46
|
+
export const OPENAI_BASE_URL = 'OPENAI_BASE_URL';
|
|
47
|
+
/**
|
|
48
|
+
* @deprecated Use MIDSCENE_MODEL_INIT_CONFIG_JSON instead. This is kept for backward compatibility.
|
|
49
|
+
*/
|
|
50
|
+
export const MIDSCENE_OPENAI_INIT_CONFIG_JSON =
|
|
51
|
+
'MIDSCENE_OPENAI_INIT_CONFIG_JSON';
|
|
52
|
+
/**
|
|
53
|
+
* @deprecated Use MIDSCENE_MODEL_HTTP_PROXY instead. This is kept for backward compatibility.
|
|
54
|
+
*/
|
|
55
|
+
export const MIDSCENE_OPENAI_HTTP_PROXY = 'MIDSCENE_OPENAI_HTTP_PROXY';
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated Use MIDSCENE_MODEL_SOCKS_PROXY instead. This is kept for backward compatibility.
|
|
58
|
+
*/
|
|
59
|
+
export const MIDSCENE_OPENAI_SOCKS_PROXY = 'MIDSCENE_OPENAI_SOCKS_PROXY';
|
|
60
|
+
/**
|
|
61
|
+
* @deprecated Use MIDSCENE_MODEL_MAX_TOKENS instead. This is kept for backward compatibility.
|
|
62
|
+
*/
|
|
63
|
+
export const OPENAI_MAX_TOKENS = 'OPENAI_MAX_TOKENS';
|
|
64
|
+
|
|
65
|
+
export const MIDSCENE_ADB_PATH = 'MIDSCENE_ADB_PATH';
|
|
66
|
+
export const MIDSCENE_ADB_REMOTE_HOST = 'MIDSCENE_ADB_REMOTE_HOST';
|
|
67
|
+
export const MIDSCENE_ADB_REMOTE_PORT = 'MIDSCENE_ADB_REMOTE_PORT';
|
|
68
|
+
export const MIDSCENE_ANDROID_IME_STRATEGY = 'MIDSCENE_ANDROID_IME_STRATEGY';
|
|
69
|
+
|
|
70
|
+
export const MIDSCENE_IOS_DEVICE_UDID = 'MIDSCENE_IOS_DEVICE_UDID';
|
|
71
|
+
export const MIDSCENE_IOS_SIMULATOR_UDID = 'MIDSCENE_IOS_SIMULATOR_UDID';
|
|
72
|
+
|
|
73
|
+
export const MIDSCENE_CACHE = 'MIDSCENE_CACHE';
|
|
74
|
+
export const MIDSCENE_USE_VLM_UI_TARS = 'MIDSCENE_USE_VLM_UI_TARS';
|
|
75
|
+
export const MIDSCENE_USE_QWEN_VL = 'MIDSCENE_USE_QWEN_VL';
|
|
76
|
+
export const MIDSCENE_USE_QWEN3_VL = 'MIDSCENE_USE_QWEN3_VL';
|
|
77
|
+
export const MIDSCENE_USE_DOUBAO_VISION = 'MIDSCENE_USE_DOUBAO_VISION';
|
|
78
|
+
export const MIDSCENE_USE_GEMINI = 'MIDSCENE_USE_GEMINI';
|
|
79
|
+
export const MIDSCENE_USE_VL_MODEL = 'MIDSCENE_USE_VL_MODEL';
|
|
80
|
+
export const MATCH_BY_POSITION = 'MATCH_BY_POSITION';
|
|
81
|
+
export const MIDSCENE_REPORT_TAG_NAME = 'MIDSCENE_REPORT_TAG_NAME';
|
|
82
|
+
export const MIDSCENE_REPORT_QUIET = 'MIDSCENE_REPORT_QUIET';
|
|
83
|
+
|
|
84
|
+
export const MIDSCENE_PREFERRED_LANGUAGE = 'MIDSCENE_PREFERRED_LANGUAGE';
|
|
85
|
+
|
|
86
|
+
export const MIDSCENE_CACHE_MAX_FILENAME_LENGTH =
|
|
87
|
+
'MIDSCENE_CACHE_MAX_FILENAME_LENGTH';
|
|
88
|
+
|
|
89
|
+
export const MIDSCENE_REPLANNING_CYCLE_LIMIT =
|
|
90
|
+
'MIDSCENE_REPLANNING_CYCLE_LIMIT';
|
|
91
|
+
|
|
92
|
+
export const MIDSCENE_RUN_DIR = 'MIDSCENE_RUN_DIR';
|
|
93
|
+
|
|
94
|
+
// OSS Report Upload
|
|
95
|
+
export const MIDSCENE_OSS_ENABLE = 'MIDSCENE_OSS_ENABLE';
|
|
96
|
+
export const MIDSCENE_OSS_TOKEN_URL = 'MIDSCENE_OSS_TOKEN_URL';
|
|
97
|
+
export const MIDSCENE_OSS_TOKEN_RESPONSE_PATH =
|
|
98
|
+
'MIDSCENE_OSS_TOKEN_RESPONSE_PATH';
|
|
99
|
+
export const MIDSCENE_OSS_REGION = 'MIDSCENE_OSS_REGION';
|
|
100
|
+
export const MIDSCENE_OSS_BUCKET = 'MIDSCENE_OSS_BUCKET';
|
|
101
|
+
export const MIDSCENE_OSS_ENDPOINT = 'MIDSCENE_OSS_ENDPOINT';
|
|
102
|
+
export const MIDSCENE_OSS_PREFIX = 'MIDSCENE_OSS_PREFIX';
|
|
103
|
+
export const MIDSCENE_OSS_DOMAIN = 'MIDSCENE_OSS_DOMAIN';
|
|
104
|
+
|
|
105
|
+
// Report optimization
|
|
106
|
+
export const MIDSCENE_REPORT_JPEG_QUALITY = 'MIDSCENE_REPORT_JPEG_QUALITY';
|
|
107
|
+
|
|
108
|
+
// INSIGHT (unified VQA and Grounding)
|
|
109
|
+
export const MIDSCENE_INSIGHT_MODEL_NAME = 'MIDSCENE_INSIGHT_MODEL_NAME';
|
|
110
|
+
export const MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY =
|
|
111
|
+
'MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY';
|
|
112
|
+
export const MIDSCENE_INSIGHT_MODEL_HTTP_PROXY =
|
|
113
|
+
'MIDSCENE_INSIGHT_MODEL_HTTP_PROXY';
|
|
114
|
+
export const MIDSCENE_INSIGHT_MODEL_BASE_URL =
|
|
115
|
+
'MIDSCENE_INSIGHT_MODEL_BASE_URL';
|
|
116
|
+
export const MIDSCENE_INSIGHT_MODEL_API_KEY = 'MIDSCENE_INSIGHT_MODEL_API_KEY';
|
|
117
|
+
export const MIDSCENE_INSIGHT_MODEL_INIT_CONFIG_JSON =
|
|
118
|
+
'MIDSCENE_INSIGHT_MODEL_INIT_CONFIG_JSON';
|
|
119
|
+
export const MIDSCENE_INSIGHT_MODEL_EXTRA_BODY_JSON =
|
|
120
|
+
'MIDSCENE_INSIGHT_MODEL_EXTRA_BODY_JSON';
|
|
121
|
+
export const MIDSCENE_INSIGHT_MODEL_TIMEOUT = 'MIDSCENE_INSIGHT_MODEL_TIMEOUT';
|
|
122
|
+
export const MIDSCENE_INSIGHT_MODEL_TEMPERATURE =
|
|
123
|
+
'MIDSCENE_INSIGHT_MODEL_TEMPERATURE';
|
|
124
|
+
export const MIDSCENE_INSIGHT_MODEL_RETRY_COUNT =
|
|
125
|
+
'MIDSCENE_INSIGHT_MODEL_RETRY_COUNT';
|
|
126
|
+
export const MIDSCENE_INSIGHT_MODEL_RETRY_INTERVAL =
|
|
127
|
+
'MIDSCENE_INSIGHT_MODEL_RETRY_INTERVAL';
|
|
128
|
+
export const MIDSCENE_INSIGHT_MODEL_FAMILY = 'MIDSCENE_INSIGHT_MODEL_FAMILY';
|
|
129
|
+
export const MIDSCENE_INSIGHT_MODEL_REASONING_EFFORT =
|
|
130
|
+
'MIDSCENE_INSIGHT_MODEL_REASONING_EFFORT';
|
|
131
|
+
export const MIDSCENE_INSIGHT_MODEL_REASONING_ENABLED =
|
|
132
|
+
'MIDSCENE_INSIGHT_MODEL_REASONING_ENABLED';
|
|
133
|
+
export const MIDSCENE_INSIGHT_MODEL_REASONING_BUDGET =
|
|
134
|
+
'MIDSCENE_INSIGHT_MODEL_REASONING_BUDGET';
|
|
135
|
+
|
|
136
|
+
// PLANNING
|
|
137
|
+
export const MIDSCENE_PLANNING_MODEL_NAME = 'MIDSCENE_PLANNING_MODEL_NAME';
|
|
138
|
+
export const MIDSCENE_PLANNING_MODEL_SOCKS_PROXY =
|
|
139
|
+
'MIDSCENE_PLANNING_MODEL_SOCKS_PROXY';
|
|
140
|
+
export const MIDSCENE_PLANNING_MODEL_HTTP_PROXY =
|
|
141
|
+
'MIDSCENE_PLANNING_MODEL_HTTP_PROXY';
|
|
142
|
+
export const MIDSCENE_PLANNING_MODEL_BASE_URL =
|
|
143
|
+
'MIDSCENE_PLANNING_MODEL_BASE_URL';
|
|
144
|
+
export const MIDSCENE_PLANNING_MODEL_API_KEY =
|
|
145
|
+
'MIDSCENE_PLANNING_MODEL_API_KEY';
|
|
146
|
+
export const MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON =
|
|
147
|
+
'MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON';
|
|
148
|
+
export const MIDSCENE_PLANNING_MODEL_EXTRA_BODY_JSON =
|
|
149
|
+
'MIDSCENE_PLANNING_MODEL_EXTRA_BODY_JSON';
|
|
150
|
+
export const MIDSCENE_PLANNING_MODEL_TIMEOUT =
|
|
151
|
+
'MIDSCENE_PLANNING_MODEL_TIMEOUT';
|
|
152
|
+
export const MIDSCENE_PLANNING_MODEL_TEMPERATURE =
|
|
153
|
+
'MIDSCENE_PLANNING_MODEL_TEMPERATURE';
|
|
154
|
+
export const MIDSCENE_PLANNING_MODEL_RETRY_COUNT =
|
|
155
|
+
'MIDSCENE_PLANNING_MODEL_RETRY_COUNT';
|
|
156
|
+
export const MIDSCENE_PLANNING_MODEL_RETRY_INTERVAL =
|
|
157
|
+
'MIDSCENE_PLANNING_MODEL_RETRY_INTERVAL';
|
|
158
|
+
export const MIDSCENE_PLANNING_MODEL_FAMILY = 'MIDSCENE_PLANNING_MODEL_FAMILY';
|
|
159
|
+
export const MIDSCENE_PLANNING_MODEL_REASONING_EFFORT =
|
|
160
|
+
'MIDSCENE_PLANNING_MODEL_REASONING_EFFORT';
|
|
161
|
+
export const MIDSCENE_PLANNING_MODEL_REASONING_ENABLED =
|
|
162
|
+
'MIDSCENE_PLANNING_MODEL_REASONING_ENABLED';
|
|
163
|
+
export const MIDSCENE_PLANNING_MODEL_REASONING_BUDGET =
|
|
164
|
+
'MIDSCENE_PLANNING_MODEL_REASONING_BUDGET';
|
|
165
|
+
export const MIDSCENE_MODEL_FAMILY = 'MIDSCENE_MODEL_FAMILY';
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* env keys declared but unused
|
|
169
|
+
*/
|
|
170
|
+
export const UNUSED_ENV_KEYS = [MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG];
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* env keys for debug or basic run
|
|
174
|
+
* can not be override by overrideAIConfig
|
|
175
|
+
*/
|
|
176
|
+
export const BASIC_ENV_KEYS = [
|
|
177
|
+
MIDSCENE_DEBUG_MODE,
|
|
178
|
+
MIDSCENE_DEBUG_MODEL_PROFILE,
|
|
179
|
+
MIDSCENE_DEBUG_MODEL_RESPONSE,
|
|
180
|
+
MIDSCENE_RUN_DIR,
|
|
181
|
+
] as const;
|
|
182
|
+
|
|
183
|
+
export const BOOLEAN_ENV_KEYS = [
|
|
184
|
+
MIDSCENE_CACHE,
|
|
185
|
+
MIDSCENE_MCP_USE_PUPPETEER_MODE,
|
|
186
|
+
MIDSCENE_MCP_ANDROID_MODE,
|
|
187
|
+
MIDSCENE_LANGSMITH_DEBUG,
|
|
188
|
+
MIDSCENE_LANGFUSE_DEBUG,
|
|
189
|
+
MIDSCENE_REPORT_QUIET,
|
|
190
|
+
] as const;
|
|
191
|
+
|
|
192
|
+
export const NUMBER_ENV_KEYS = [
|
|
193
|
+
MIDSCENE_MODEL_MAX_TOKENS,
|
|
194
|
+
MIDSCENE_CACHE_MAX_FILENAME_LENGTH,
|
|
195
|
+
MIDSCENE_REPLANNING_CYCLE_LIMIT,
|
|
196
|
+
] as const;
|
|
197
|
+
|
|
198
|
+
export const STRING_ENV_KEYS = [
|
|
199
|
+
MIDSCENE_MODEL_MAX_TOKENS,
|
|
200
|
+
OPENAI_MAX_TOKENS,
|
|
201
|
+
MIDSCENE_ADB_PATH,
|
|
202
|
+
MIDSCENE_ADB_REMOTE_HOST,
|
|
203
|
+
MIDSCENE_ADB_REMOTE_PORT,
|
|
204
|
+
MIDSCENE_ANDROID_IME_STRATEGY,
|
|
205
|
+
MIDSCENE_IOS_DEVICE_UDID,
|
|
206
|
+
MIDSCENE_IOS_SIMULATOR_UDID,
|
|
207
|
+
MIDSCENE_REPORT_TAG_NAME,
|
|
208
|
+
MIDSCENE_PREFERRED_LANGUAGE,
|
|
209
|
+
MATCH_BY_POSITION,
|
|
210
|
+
MIDSCENE_MCP_CHROME_PATH,
|
|
211
|
+
DOCKER_CONTAINER,
|
|
212
|
+
] as const;
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Non model related env keys, used for globally controlling the behavior of midscene
|
|
216
|
+
* Can not be override by agent.modelConfig but can be override by overrideAIConfig
|
|
217
|
+
* Can be access at any time
|
|
218
|
+
*/
|
|
219
|
+
export const GLOBAL_ENV_KEYS = [
|
|
220
|
+
...BOOLEAN_ENV_KEYS,
|
|
221
|
+
...NUMBER_ENV_KEYS,
|
|
222
|
+
...STRING_ENV_KEYS,
|
|
223
|
+
] as const;
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Model related eve keys, used for declare which model to use.
|
|
227
|
+
* Can be override by both agent.modelConfig and overrideAIConfig
|
|
228
|
+
* Can only be access after agent.constructor
|
|
229
|
+
*/
|
|
230
|
+
export const MODEL_ENV_KEYS = [
|
|
231
|
+
// model default
|
|
232
|
+
MIDSCENE_MODEL_NAME,
|
|
233
|
+
MIDSCENE_MODEL_INIT_CONFIG_JSON,
|
|
234
|
+
MIDSCENE_MODEL_EXTRA_BODY_JSON,
|
|
235
|
+
MIDSCENE_MODEL_API_KEY,
|
|
236
|
+
MIDSCENE_MODEL_BASE_URL,
|
|
237
|
+
MIDSCENE_MODEL_SOCKS_PROXY,
|
|
238
|
+
MIDSCENE_MODEL_HTTP_PROXY,
|
|
239
|
+
MIDSCENE_MODEL_TIMEOUT,
|
|
240
|
+
MIDSCENE_MODEL_TEMPERATURE,
|
|
241
|
+
MIDSCENE_MODEL_RETRY_COUNT,
|
|
242
|
+
MIDSCENE_MODEL_RETRY_INTERVAL,
|
|
243
|
+
MIDSCENE_MODEL_REASONING_EFFORT,
|
|
244
|
+
MIDSCENE_MODEL_REASONING_ENABLED,
|
|
245
|
+
MIDSCENE_MODEL_REASONING_BUDGET,
|
|
246
|
+
MIDSCENE_USE_VLM_UI_TARS,
|
|
247
|
+
MIDSCENE_USE_QWEN_VL,
|
|
248
|
+
MIDSCENE_USE_QWEN3_VL,
|
|
249
|
+
MIDSCENE_USE_DOUBAO_VISION,
|
|
250
|
+
MIDSCENE_USE_GEMINI,
|
|
251
|
+
MIDSCENE_USE_VL_MODEL,
|
|
252
|
+
// model default legacy
|
|
253
|
+
OPENAI_API_KEY,
|
|
254
|
+
OPENAI_BASE_URL,
|
|
255
|
+
MIDSCENE_OPENAI_INIT_CONFIG_JSON,
|
|
256
|
+
MIDSCENE_OPENAI_HTTP_PROXY,
|
|
257
|
+
MIDSCENE_OPENAI_SOCKS_PROXY,
|
|
258
|
+
// INSIGHT (unified VQA and Grounding)
|
|
259
|
+
MIDSCENE_INSIGHT_MODEL_NAME,
|
|
260
|
+
MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY,
|
|
261
|
+
MIDSCENE_INSIGHT_MODEL_HTTP_PROXY,
|
|
262
|
+
MIDSCENE_INSIGHT_MODEL_BASE_URL,
|
|
263
|
+
MIDSCENE_INSIGHT_MODEL_API_KEY,
|
|
264
|
+
MIDSCENE_INSIGHT_MODEL_INIT_CONFIG_JSON,
|
|
265
|
+
MIDSCENE_INSIGHT_MODEL_EXTRA_BODY_JSON,
|
|
266
|
+
MIDSCENE_INSIGHT_MODEL_TIMEOUT,
|
|
267
|
+
MIDSCENE_INSIGHT_MODEL_TEMPERATURE,
|
|
268
|
+
MIDSCENE_INSIGHT_MODEL_RETRY_COUNT,
|
|
269
|
+
MIDSCENE_INSIGHT_MODEL_RETRY_INTERVAL,
|
|
270
|
+
MIDSCENE_INSIGHT_MODEL_FAMILY,
|
|
271
|
+
MIDSCENE_INSIGHT_MODEL_REASONING_EFFORT,
|
|
272
|
+
MIDSCENE_INSIGHT_MODEL_REASONING_ENABLED,
|
|
273
|
+
MIDSCENE_INSIGHT_MODEL_REASONING_BUDGET,
|
|
274
|
+
// PLANNING
|
|
275
|
+
MIDSCENE_PLANNING_MODEL_NAME,
|
|
276
|
+
MIDSCENE_PLANNING_MODEL_SOCKS_PROXY,
|
|
277
|
+
MIDSCENE_PLANNING_MODEL_HTTP_PROXY,
|
|
278
|
+
MIDSCENE_PLANNING_MODEL_BASE_URL,
|
|
279
|
+
MIDSCENE_PLANNING_MODEL_API_KEY,
|
|
280
|
+
MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON,
|
|
281
|
+
MIDSCENE_PLANNING_MODEL_EXTRA_BODY_JSON,
|
|
282
|
+
MIDSCENE_PLANNING_MODEL_TIMEOUT,
|
|
283
|
+
MIDSCENE_PLANNING_MODEL_TEMPERATURE,
|
|
284
|
+
MIDSCENE_PLANNING_MODEL_RETRY_COUNT,
|
|
285
|
+
MIDSCENE_PLANNING_MODEL_RETRY_INTERVAL,
|
|
286
|
+
MIDSCENE_PLANNING_MODEL_FAMILY,
|
|
287
|
+
MIDSCENE_PLANNING_MODEL_REASONING_EFFORT,
|
|
288
|
+
MIDSCENE_PLANNING_MODEL_REASONING_ENABLED,
|
|
289
|
+
MIDSCENE_PLANNING_MODEL_REASONING_BUDGET,
|
|
290
|
+
MIDSCENE_MODEL_FAMILY,
|
|
291
|
+
] as const;
|
|
292
|
+
|
|
293
|
+
export const ALL_ENV_KEYS = [
|
|
294
|
+
...UNUSED_ENV_KEYS,
|
|
295
|
+
...BASIC_ENV_KEYS,
|
|
296
|
+
...GLOBAL_ENV_KEYS,
|
|
297
|
+
...MODEL_ENV_KEYS,
|
|
298
|
+
] as const;
|
|
299
|
+
|
|
300
|
+
export type TEnvKeys = (typeof ALL_ENV_KEYS)[number];
|
|
301
|
+
export type TGlobalConfig = Record<TEnvKeys, string | undefined>;
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* valid Model family types
|
|
305
|
+
*/
|
|
306
|
+
export type TModelFamily =
|
|
307
|
+
| 'qwen2.5-vl'
|
|
308
|
+
| 'qwen3-vl'
|
|
309
|
+
| 'qwen3.5'
|
|
310
|
+
| 'doubao-vision'
|
|
311
|
+
| 'doubao-seed'
|
|
312
|
+
| 'gemini'
|
|
313
|
+
| 'vlm-ui-tars'
|
|
314
|
+
| 'vlm-ui-tars-doubao'
|
|
315
|
+
| 'vlm-ui-tars-doubao-1.5'
|
|
316
|
+
| 'glm-v'
|
|
317
|
+
| 'auto-glm'
|
|
318
|
+
| 'auto-glm-multilingual'
|
|
319
|
+
| 'gpt-5';
|
|
320
|
+
|
|
321
|
+
export const MODEL_FAMILY_VALUES: TModelFamily[] = [
|
|
322
|
+
'doubao-vision',
|
|
323
|
+
'doubao-seed',
|
|
324
|
+
'gemini',
|
|
325
|
+
'qwen2.5-vl',
|
|
326
|
+
'qwen3-vl',
|
|
327
|
+
'qwen3.5',
|
|
328
|
+
'vlm-ui-tars',
|
|
329
|
+
'vlm-ui-tars-doubao',
|
|
330
|
+
'vlm-ui-tars-doubao-1.5',
|
|
331
|
+
'glm-v',
|
|
332
|
+
'auto-glm',
|
|
333
|
+
'auto-glm-multilingual',
|
|
334
|
+
'gpt-5',
|
|
335
|
+
];
|
|
336
|
+
|
|
337
|
+
export interface IModelConfigForInsight {
|
|
338
|
+
// model name
|
|
339
|
+
[MIDSCENE_INSIGHT_MODEL_NAME]: string;
|
|
340
|
+
// proxy
|
|
341
|
+
[MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY]?: string;
|
|
342
|
+
[MIDSCENE_INSIGHT_MODEL_HTTP_PROXY]?: string;
|
|
343
|
+
// OpenAI
|
|
344
|
+
[MIDSCENE_INSIGHT_MODEL_BASE_URL]?: string;
|
|
345
|
+
[MIDSCENE_INSIGHT_MODEL_API_KEY]?: string;
|
|
346
|
+
[MIDSCENE_INSIGHT_MODEL_INIT_CONFIG_JSON]?: string;
|
|
347
|
+
[MIDSCENE_INSIGHT_MODEL_EXTRA_BODY_JSON]?: string;
|
|
348
|
+
// timeout
|
|
349
|
+
[MIDSCENE_INSIGHT_MODEL_TIMEOUT]?: string;
|
|
350
|
+
// temperature
|
|
351
|
+
[MIDSCENE_INSIGHT_MODEL_TEMPERATURE]?: string;
|
|
352
|
+
// model family
|
|
353
|
+
[MIDSCENE_INSIGHT_MODEL_FAMILY]?: TModelFamily;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
export interface IModelConfigForPlanning {
|
|
357
|
+
// model name
|
|
358
|
+
[MIDSCENE_PLANNING_MODEL_NAME]: string;
|
|
359
|
+
// proxy
|
|
360
|
+
[MIDSCENE_PLANNING_MODEL_SOCKS_PROXY]?: string;
|
|
361
|
+
[MIDSCENE_PLANNING_MODEL_HTTP_PROXY]?: string;
|
|
362
|
+
// OpenAI
|
|
363
|
+
[MIDSCENE_PLANNING_MODEL_BASE_URL]?: string;
|
|
364
|
+
[MIDSCENE_PLANNING_MODEL_API_KEY]?: string;
|
|
365
|
+
[MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON]?: string;
|
|
366
|
+
[MIDSCENE_PLANNING_MODEL_EXTRA_BODY_JSON]?: string;
|
|
367
|
+
// timeout
|
|
368
|
+
[MIDSCENE_PLANNING_MODEL_TIMEOUT]?: string;
|
|
369
|
+
// temperature
|
|
370
|
+
[MIDSCENE_PLANNING_MODEL_TEMPERATURE]?: string;
|
|
371
|
+
// model family
|
|
372
|
+
[MIDSCENE_PLANNING_MODEL_FAMILY]?: TModelFamily;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* Model configuration for Planning intent.
|
|
377
|
+
*
|
|
378
|
+
* IMPORTANT: Planning MUST use a vision language model (VL mode).
|
|
379
|
+
* DOM-based planning is not supported.
|
|
380
|
+
*
|
|
381
|
+
* Required: MIDSCENE_MODEL_FAMILY must be set to one of 「TModelFamily」
|
|
382
|
+
*/
|
|
383
|
+
export interface IModelConfigForDefault {
|
|
384
|
+
// model name
|
|
385
|
+
[MIDSCENE_MODEL_NAME]: string;
|
|
386
|
+
// proxy
|
|
387
|
+
[MIDSCENE_MODEL_SOCKS_PROXY]?: string;
|
|
388
|
+
[MIDSCENE_MODEL_HTTP_PROXY]?: string;
|
|
389
|
+
// OpenAI
|
|
390
|
+
[MIDSCENE_MODEL_BASE_URL]?: string;
|
|
391
|
+
[MIDSCENE_MODEL_API_KEY]?: string;
|
|
392
|
+
[MIDSCENE_MODEL_INIT_CONFIG_JSON]?: string;
|
|
393
|
+
[MIDSCENE_MODEL_EXTRA_BODY_JSON]?: string;
|
|
394
|
+
// extra
|
|
395
|
+
[MIDSCENE_MODEL_FAMILY]?: TModelFamily;
|
|
396
|
+
// temperature
|
|
397
|
+
[MIDSCENE_MODEL_TEMPERATURE]?: string;
|
|
398
|
+
// reasoning effort
|
|
399
|
+
[MIDSCENE_MODEL_REASONING_EFFORT]?: string;
|
|
400
|
+
// enable reasoning (boolean as string)
|
|
401
|
+
[MIDSCENE_MODEL_REASONING_ENABLED]?: string;
|
|
402
|
+
// reasoning budget (number as string)
|
|
403
|
+
[MIDSCENE_MODEL_REASONING_BUDGET]?: string;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
export interface IModelConfigForDefaultLegacy {
|
|
407
|
+
// model name
|
|
408
|
+
[MIDSCENE_MODEL_NAME]: string;
|
|
409
|
+
// proxy
|
|
410
|
+
[MIDSCENE_OPENAI_SOCKS_PROXY]?: string;
|
|
411
|
+
[MIDSCENE_OPENAI_HTTP_PROXY]?: string;
|
|
412
|
+
// OpenAI
|
|
413
|
+
[OPENAI_BASE_URL]?: string;
|
|
414
|
+
[OPENAI_API_KEY]?: string;
|
|
415
|
+
[MIDSCENE_OPENAI_INIT_CONFIG_JSON]?: string;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* - insight: Visual Question Answering and Visual Grounding (unified)
|
|
420
|
+
* - planning: planning
|
|
421
|
+
* - default: all except insight、planning
|
|
422
|
+
*/
|
|
423
|
+
export type TIntent = 'insight' | 'planning' | 'default';
|
|
424
|
+
|
|
425
|
+
/**
|
|
426
|
+
* Env-style model configuration map supplied directly to the agent.
|
|
427
|
+
* Numbers are allowed so callers can pass numeric env values (e.g. limits) without casting.
|
|
428
|
+
*/
|
|
429
|
+
export type TModelConfig = Record<string, string | number>;
|
|
430
|
+
|
|
431
|
+
export enum UITarsModelVersion {
|
|
432
|
+
V1_0 = '1.0',
|
|
433
|
+
V1_5 = '1.5',
|
|
434
|
+
DOUBAO_1_5_15B = 'doubao-1.5-15B',
|
|
435
|
+
DOUBAO_1_5_20B = 'doubao-1.5-20B',
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
/**
|
|
439
|
+
* Callback to create custom OpenAI client instance
|
|
440
|
+
* @param config - Resolved model configuration including apiKey, baseURL, modelName, intent, etc.
|
|
441
|
+
* @returns OpenAI client instance (can be wrapped with langsmith, langfuse, etc.)
|
|
442
|
+
*
|
|
443
|
+
* Note: Wrapper functions like langsmith's wrapOpenAI() return the same OpenAI instance
|
|
444
|
+
* with enhanced behavior, so the return type remains compatible with OpenAI.
|
|
445
|
+
*
|
|
446
|
+
* Note: The return type is `any` in the shared package to avoid requiring openai as a dependency.
|
|
447
|
+
* The actual implementation should return an OpenAI instance.
|
|
448
|
+
*
|
|
449
|
+
* @example
|
|
450
|
+
* ```typescript
|
|
451
|
+
* import OpenAI from 'openai';
|
|
452
|
+
* import { wrapOpenAI } from 'langsmith/wrappers';
|
|
453
|
+
*
|
|
454
|
+
* createOpenAIClient: async (openai, opts) => {
|
|
455
|
+
* // Wrap with langsmith for planning tasks
|
|
456
|
+
* if (opts.baseURL?.includes('planning')) {
|
|
457
|
+
* return wrapOpenAI(openai, { metadata: { task: 'planning' } });
|
|
458
|
+
* }
|
|
459
|
+
*
|
|
460
|
+
* return openai;
|
|
461
|
+
* }
|
|
462
|
+
* ```
|
|
463
|
+
*/
|
|
464
|
+
export type CreateOpenAIClientFn = (
|
|
465
|
+
openAIInstance: any,
|
|
466
|
+
options: Record<string, unknown>,
|
|
467
|
+
) => Promise<any>; // OpenAI instance, but typed as `any` to avoid dependency
|
|
468
|
+
|
|
469
|
+
export interface IModelConfig {
|
|
470
|
+
/**
|
|
471
|
+
* proxy
|
|
472
|
+
*/
|
|
473
|
+
socksProxy?: string;
|
|
474
|
+
httpProxy?: string;
|
|
475
|
+
/**
|
|
476
|
+
* model
|
|
477
|
+
*/
|
|
478
|
+
modelName: string;
|
|
479
|
+
/**
|
|
480
|
+
* OpenAI
|
|
481
|
+
*/
|
|
482
|
+
openaiBaseURL?: string;
|
|
483
|
+
openaiApiKey?: string;
|
|
484
|
+
openaiExtraConfig?: Record<string, unknown>;
|
|
485
|
+
/**
|
|
486
|
+
* Extra body parameters merged into each chat completion request body.
|
|
487
|
+
* Unlike openaiExtraConfig (which configures the OpenAI client instance),
|
|
488
|
+
* this is spread directly into the completion.create() call body.
|
|
489
|
+
* Example: { "chat_template_kwargs": { "enable_thinking": true } }
|
|
490
|
+
*/
|
|
491
|
+
extraBody?: Record<string, unknown>;
|
|
492
|
+
/**
|
|
493
|
+
* Timeout for API calls in milliseconds.
|
|
494
|
+
* If not set, uses OpenAI SDK default (10 minutes).
|
|
495
|
+
*/
|
|
496
|
+
timeout?: number;
|
|
497
|
+
/**
|
|
498
|
+
* Temperature for model sampling.
|
|
499
|
+
*/
|
|
500
|
+
temperature?: number;
|
|
501
|
+
/**
|
|
502
|
+
* Number of retries when AI call fails.
|
|
503
|
+
* Default is 1 (retry once after failure).
|
|
504
|
+
*/
|
|
505
|
+
retryCount?: number;
|
|
506
|
+
/**
|
|
507
|
+
* Interval between retries in milliseconds.
|
|
508
|
+
* Default is 2000.
|
|
509
|
+
*/
|
|
510
|
+
retryInterval?: number;
|
|
511
|
+
/**
|
|
512
|
+
* Reasoning effort level for the model.
|
|
513
|
+
* Passed through to model-family-specific parameters (e.g., reasoning_effort for doubao, reasoning.effort for gpt-5).
|
|
514
|
+
*/
|
|
515
|
+
reasoningEffort?: string;
|
|
516
|
+
/**
|
|
517
|
+
* Enable/disable reasoning for the model.
|
|
518
|
+
* Passed through to model-family-specific parameters (e.g., enable_thinking for qwen, thinking.type for doubao/glm-v).
|
|
519
|
+
*/
|
|
520
|
+
reasoningEnabled?: boolean;
|
|
521
|
+
/**
|
|
522
|
+
* Reasoning token budget for the model.
|
|
523
|
+
* Passed through to model-family-specific parameters (e.g., thinking_budget for qwen).
|
|
524
|
+
*/
|
|
525
|
+
reasoningBudget?: number;
|
|
526
|
+
/**
|
|
527
|
+
* Model family - unified model configuration
|
|
528
|
+
* Maps directly to model families like 'qwen2.5-vl', 'qwen3-vl', 'doubao-vision', 'doubao-seed', etc.
|
|
529
|
+
*/
|
|
530
|
+
modelFamily?: TModelFamily;
|
|
531
|
+
uiTarsModelVersion?: UITarsModelVersion;
|
|
532
|
+
modelDescription: string;
|
|
533
|
+
/**
|
|
534
|
+
* original intent from the config
|
|
535
|
+
*/
|
|
536
|
+
intent: TIntent;
|
|
537
|
+
/**
|
|
538
|
+
* Custom OpenAI client factory function
|
|
539
|
+
*
|
|
540
|
+
* If provided, this function will be called to create OpenAI client instances
|
|
541
|
+
* for each AI call, allowing you to:
|
|
542
|
+
* - Wrap clients with observability tools (langsmith, langfuse)
|
|
543
|
+
* - Use custom OpenAI-compatible clients
|
|
544
|
+
* - Apply different configurations based on intent
|
|
545
|
+
*/
|
|
546
|
+
createOpenAIClient?: CreateOpenAIClientFn;
|
|
547
|
+
}
|
package/src/env/utils.ts
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { GlobalConfigManager } from './global-config-manager';
|
|
2
|
+
import { ModelConfigManager } from './model-config-manager';
|
|
3
|
+
import {
|
|
4
|
+
type GLOBAL_ENV_KEYS,
|
|
5
|
+
MIDSCENE_PREFERRED_LANGUAGE,
|
|
6
|
+
type MODEL_ENV_KEYS,
|
|
7
|
+
} from './types';
|
|
8
|
+
|
|
9
|
+
export const globalModelConfigManager = new ModelConfigManager();
|
|
10
|
+
|
|
11
|
+
export const globalConfigManager = new GlobalConfigManager();
|
|
12
|
+
|
|
13
|
+
globalConfigManager.registerModelConfigManager(globalModelConfigManager);
|
|
14
|
+
globalModelConfigManager.registerGlobalConfigManager(globalConfigManager);
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Interface for devices that support getTimestamp method.
|
|
18
|
+
* This is a minimal interface to avoid circular dependencies with @midscene/core.
|
|
19
|
+
*/
|
|
20
|
+
export interface DeviceWithTimestamp {
|
|
21
|
+
getTimestamp?: () => Promise<number>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Get the current timestamp, optionally from the target device.
|
|
26
|
+
*
|
|
27
|
+
* When useDeviceTimestamp is enabled and a device with getTimestamp is provided,
|
|
28
|
+
* this function will return the device's time. Otherwise, it returns the system time.
|
|
29
|
+
*
|
|
30
|
+
* This is useful when:
|
|
31
|
+
* - Testing on devices with different time zones
|
|
32
|
+
* - Debugging time-sensitive features
|
|
33
|
+
* - The system clock and device clock are not synchronized
|
|
34
|
+
*
|
|
35
|
+
* @param device Optional device interface that supports getTimestamp
|
|
36
|
+
* @param useDeviceTimestamp Whether to use device timestamp (from agent config)
|
|
37
|
+
* @returns Timestamp in milliseconds
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* // Without device - always returns system time
|
|
41
|
+
* const systemTime = await getCurrentTime();
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* // With device and config enabled - returns device time
|
|
45
|
+
* const deviceTime = await getCurrentTime(androidDevice, true);
|
|
46
|
+
*/
|
|
47
|
+
export async function getCurrentTime(
|
|
48
|
+
device?: DeviceWithTimestamp,
|
|
49
|
+
useDeviceTimestamp?: boolean,
|
|
50
|
+
): Promise<number> {
|
|
51
|
+
if (useDeviceTimestamp && device?.getTimestamp) {
|
|
52
|
+
try {
|
|
53
|
+
return await device.getTimestamp();
|
|
54
|
+
} catch (error) {
|
|
55
|
+
// Fall back to system time if device time retrieval fails
|
|
56
|
+
console.warn(
|
|
57
|
+
`Failed to get device time, falling back to system time: ${error}`,
|
|
58
|
+
);
|
|
59
|
+
return Date.now();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return Date.now();
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export const getPreferredLanguage = () => {
|
|
67
|
+
const prefer = globalConfigManager.getEnvConfigValue(
|
|
68
|
+
MIDSCENE_PREFERRED_LANGUAGE,
|
|
69
|
+
);
|
|
70
|
+
if (prefer) {
|
|
71
|
+
return prefer;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
75
|
+
const isChina = timeZone === 'Asia/Shanghai';
|
|
76
|
+
return isChina ? 'Chinese' : 'English';
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export const overrideAIConfig = (
|
|
80
|
+
newConfig: Partial<
|
|
81
|
+
Record<
|
|
82
|
+
(typeof GLOBAL_ENV_KEYS)[number] | (typeof MODEL_ENV_KEYS)[number],
|
|
83
|
+
string
|
|
84
|
+
>
|
|
85
|
+
>,
|
|
86
|
+
extendMode = false, // true: merge with global config, false: override global config
|
|
87
|
+
) => {
|
|
88
|
+
globalConfigManager.overrideAIConfig(newConfig, extendMode);
|
|
89
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { webExtractTextWithPosition } from '.';
|
|
2
|
+
import {
|
|
3
|
+
setExtractTextWithPositionOnWindow,
|
|
4
|
+
setMidsceneVisibleRectOnWindow,
|
|
5
|
+
} from './util';
|
|
6
|
+
|
|
7
|
+
console.log(webExtractTextWithPosition(document.body, true));
|
|
8
|
+
console.log(JSON.stringify(webExtractTextWithPosition(document.body, true)));
|
|
9
|
+
setExtractTextWithPositionOnWindow();
|
|
10
|
+
setMidsceneVisibleRectOnWindow();
|