@aiscene/shared 8.0.3 → 8.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/agent-tools/agent-behavior-init-args.mjs +44 -0
- package/dist/es/agent-tools/base-tools.mjs +163 -0
- package/dist/es/agent-tools/chrome-path.mjs +50 -0
- package/dist/es/agent-tools/cli-report-session.mjs +78 -0
- package/dist/es/agent-tools/error-formatter.mjs +106 -0
- package/dist/es/agent-tools/index.mjs +9 -0
- package/dist/es/agent-tools/init-arg-utils.mjs +38 -0
- package/dist/es/agent-tools/observation-artifact.mjs +5 -0
- package/dist/es/agent-tools/observation-record.mjs +248 -0
- package/dist/es/agent-tools/tool-defaults.mjs +54 -0
- package/dist/es/agent-tools/tool-generator.mjs +529 -0
- package/dist/es/agent-tools/types.mjs +3 -0
- package/dist/es/agent-tools/user-prompt.mjs +66 -0
- package/dist/es/cli/interrupt.mjs +116 -0
- package/dist/es/cli/record-command.mjs +130 -0
- package/dist/es/cli/screenshot-file.mjs +24 -0
- package/dist/es/cli/verbose-ai-act.mjs +230 -0
- package/dist/es/cli/verbose-screenshot.mjs +134 -0
- package/dist/es/cli/verbose.mjs +404 -0
- package/dist/es/env/parse-model-config.mjs +1 -1
- package/dist/es/env/types.mjs +18 -3
- package/dist/es/img/index.mjs +3 -3
- package/dist/es/img/info.mjs +45 -1
- package/dist/es/img/photon-loader.mjs +4 -0
- package/dist/es/img/transform.mjs +113 -3
- package/dist/es/recorder.mjs +249 -0
- package/dist/lib/agent-tools/agent-behavior-init-args.js +87 -0
- package/dist/lib/agent-tools/base-tools.js +197 -0
- package/dist/lib/agent-tools/chrome-path.js +87 -0
- package/dist/lib/agent-tools/cli-report-session.js +121 -0
- package/dist/lib/agent-tools/error-formatter.js +149 -0
- package/dist/lib/agent-tools/index.js +114 -0
- package/dist/lib/agent-tools/init-arg-utils.js +78 -0
- package/dist/lib/agent-tools/observation-artifact.js +42 -0
- package/dist/lib/agent-tools/observation-record.js +297 -0
- package/dist/lib/agent-tools/tool-defaults.js +97 -0
- package/dist/lib/agent-tools/tool-generator.js +569 -0
- package/dist/lib/agent-tools/types.js +40 -0
- package/dist/lib/agent-tools/user-prompt.js +103 -0
- package/dist/lib/cli/interrupt.js +156 -0
- package/dist/lib/cli/record-command.js +164 -0
- package/dist/lib/cli/screenshot-file.js +58 -0
- package/dist/lib/cli/verbose-ai-act.js +273 -0
- package/dist/lib/cli/verbose-screenshot.js +177 -0
- package/dist/lib/cli/verbose.js +465 -0
- package/dist/lib/env/parse-model-config.js +1 -1
- package/dist/lib/env/types.js +32 -2
- package/dist/lib/img/index.js +29 -5
- package/dist/lib/img/info.js +48 -1
- package/dist/lib/img/photon-loader.js +38 -0
- package/dist/lib/img/transform.js +135 -4
- package/dist/lib/recorder.js +307 -0
- package/dist/types/agent-tools/agent-behavior-init-args.d.ts +17 -0
- package/dist/types/agent-tools/base-tools.d.ts +158 -0
- package/dist/types/agent-tools/chrome-path.d.ts +2 -0
- package/dist/types/agent-tools/cli-report-session.d.ts +12 -0
- package/dist/types/agent-tools/error-formatter.d.ts +30 -0
- package/dist/types/agent-tools/index.d.ts +9 -0
- package/dist/types/agent-tools/init-arg-utils.d.ts +13 -0
- package/dist/types/agent-tools/observation-artifact.d.ts +10 -0
- package/dist/types/agent-tools/observation-record.d.ts +38 -0
- package/dist/types/agent-tools/tool-defaults.d.ts +63 -0
- package/dist/types/agent-tools/tool-generator.d.ts +13 -0
- package/dist/types/agent-tools/types.d.ts +213 -0
- package/dist/types/agent-tools/user-prompt.d.ts +13 -0
- package/dist/types/cli/interrupt.d.ts +49 -0
- package/dist/types/cli/record-command.d.ts +3 -0
- package/dist/types/cli/screenshot-file.d.ts +10 -0
- package/dist/types/cli/verbose-ai-act.d.ts +44 -0
- package/dist/types/cli/verbose-screenshot.d.ts +10 -0
- package/dist/types/cli/verbose.d.ts +40 -0
- package/dist/types/env/types.d.ts +16 -7
- package/dist/types/img/index.d.ts +2 -2
- package/dist/types/img/info.d.ts +2 -0
- package/dist/types/img/photon-loader.d.ts +2 -0
- package/dist/types/img/transform.d.ts +22 -2
- package/dist/types/mcp/types.d.ts +1 -0
- package/dist/types/recorder.d.ts +113 -0
- package/package.json +1 -1
- package/src/agent-tools/agent-behavior-init-args.ts +109 -0
- package/src/agent-tools/base-tools.ts +399 -0
- package/src/agent-tools/chrome-path.ts +74 -0
- package/src/agent-tools/cli-report-session.ts +130 -0
- package/src/agent-tools/error-formatter.ts +177 -0
- package/src/agent-tools/index.ts +9 -0
- package/src/agent-tools/init-arg-utils.ts +105 -0
- package/src/agent-tools/observation-artifact.ts +29 -0
- package/src/agent-tools/observation-record.ts +331 -0
- package/src/agent-tools/tool-defaults.ts +119 -0
- package/src/agent-tools/tool-generator.ts +866 -0
- package/src/agent-tools/types.ts +250 -0
- package/src/agent-tools/user-prompt.ts +102 -0
- package/src/cli/interrupt.ts +207 -0
- package/src/cli/record-command.ts +177 -0
- package/src/cli/screenshot-file.ts +61 -0
- package/src/cli/verbose-ai-act.ts +387 -0
- package/src/cli/verbose-screenshot.ts +269 -0
- package/src/cli/verbose.ts +753 -0
- package/src/env/types.ts +30 -2
- package/src/img/index.ts +12 -0
- package/src/img/info.ts +61 -0
- package/src/img/photon-loader.ts +5 -0
- package/src/img/transform.ts +262 -3
- package/src/mcp/types.ts +2 -0
- package/src/recorder.ts +625 -0
package/dist/lib/env/types.js
CHANGED
|
@@ -36,6 +36,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
36
36
|
MIDSCENE_ANDROID_IME_STRATEGY: ()=>MIDSCENE_ANDROID_IME_STRATEGY,
|
|
37
37
|
MIDSCENE_CACHE: ()=>MIDSCENE_CACHE,
|
|
38
38
|
MIDSCENE_CACHE_MAX_FILENAME_LENGTH: ()=>MIDSCENE_CACHE_MAX_FILENAME_LENGTH,
|
|
39
|
+
MIDSCENE_CHROME_PATH: ()=>MIDSCENE_CHROME_PATH,
|
|
39
40
|
MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG: ()=>MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG,
|
|
40
41
|
MIDSCENE_DEBUG_MODE: ()=>MIDSCENE_DEBUG_MODE,
|
|
41
42
|
MIDSCENE_DEBUG_MODEL_PROFILE: ()=>MIDSCENE_DEBUG_MODEL_PROFILE,
|
|
@@ -50,6 +51,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
50
51
|
MIDSCENE_INSIGHT_MODEL_REASONING_BUDGET: ()=>MIDSCENE_INSIGHT_MODEL_REASONING_BUDGET,
|
|
51
52
|
MIDSCENE_INSIGHT_MODEL_REASONING_EFFORT: ()=>MIDSCENE_INSIGHT_MODEL_REASONING_EFFORT,
|
|
52
53
|
MIDSCENE_INSIGHT_MODEL_REASONING_ENABLED: ()=>MIDSCENE_INSIGHT_MODEL_REASONING_ENABLED,
|
|
54
|
+
MIDSCENE_INSIGHT_MODEL_RESPONSE_FORMAT: ()=>MIDSCENE_INSIGHT_MODEL_RESPONSE_FORMAT,
|
|
53
55
|
MIDSCENE_INSIGHT_MODEL_RETRY_COUNT: ()=>MIDSCENE_INSIGHT_MODEL_RETRY_COUNT,
|
|
54
56
|
MIDSCENE_INSIGHT_MODEL_RETRY_INTERVAL: ()=>MIDSCENE_INSIGHT_MODEL_RETRY_INTERVAL,
|
|
55
57
|
MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY: ()=>MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY,
|
|
@@ -74,6 +76,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
74
76
|
MIDSCENE_MODEL_REASONING_BUDGET: ()=>MIDSCENE_MODEL_REASONING_BUDGET,
|
|
75
77
|
MIDSCENE_MODEL_REASONING_EFFORT: ()=>MIDSCENE_MODEL_REASONING_EFFORT,
|
|
76
78
|
MIDSCENE_MODEL_REASONING_ENABLED: ()=>MIDSCENE_MODEL_REASONING_ENABLED,
|
|
79
|
+
MIDSCENE_MODEL_RESPONSE_FORMAT: ()=>MIDSCENE_MODEL_RESPONSE_FORMAT,
|
|
77
80
|
MIDSCENE_MODEL_RETRY_COUNT: ()=>MIDSCENE_MODEL_RETRY_COUNT,
|
|
78
81
|
MIDSCENE_MODEL_RETRY_INTERVAL: ()=>MIDSCENE_MODEL_RETRY_INTERVAL,
|
|
79
82
|
MIDSCENE_MODEL_SOCKS_PROXY: ()=>MIDSCENE_MODEL_SOCKS_PROXY,
|
|
@@ -92,12 +95,14 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
92
95
|
MIDSCENE_PLANNING_MODEL_REASONING_BUDGET: ()=>MIDSCENE_PLANNING_MODEL_REASONING_BUDGET,
|
|
93
96
|
MIDSCENE_PLANNING_MODEL_REASONING_EFFORT: ()=>MIDSCENE_PLANNING_MODEL_REASONING_EFFORT,
|
|
94
97
|
MIDSCENE_PLANNING_MODEL_REASONING_ENABLED: ()=>MIDSCENE_PLANNING_MODEL_REASONING_ENABLED,
|
|
98
|
+
MIDSCENE_PLANNING_MODEL_RESPONSE_FORMAT: ()=>MIDSCENE_PLANNING_MODEL_RESPONSE_FORMAT,
|
|
95
99
|
MIDSCENE_PLANNING_MODEL_RETRY_COUNT: ()=>MIDSCENE_PLANNING_MODEL_RETRY_COUNT,
|
|
96
100
|
MIDSCENE_PLANNING_MODEL_RETRY_INTERVAL: ()=>MIDSCENE_PLANNING_MODEL_RETRY_INTERVAL,
|
|
97
101
|
MIDSCENE_PLANNING_MODEL_SOCKS_PROXY: ()=>MIDSCENE_PLANNING_MODEL_SOCKS_PROXY,
|
|
98
102
|
MIDSCENE_PLANNING_MODEL_TEMPERATURE: ()=>MIDSCENE_PLANNING_MODEL_TEMPERATURE,
|
|
99
103
|
MIDSCENE_PLANNING_MODEL_TIMEOUT: ()=>MIDSCENE_PLANNING_MODEL_TIMEOUT,
|
|
100
104
|
MIDSCENE_PREFERRED_LANGUAGE: ()=>MIDSCENE_PREFERRED_LANGUAGE,
|
|
105
|
+
MIDSCENE_RECORD_MODEL_CALL: ()=>MIDSCENE_RECORD_MODEL_CALL,
|
|
101
106
|
MIDSCENE_REPLANNING_CYCLE_LIMIT: ()=>MIDSCENE_REPLANNING_CYCLE_LIMIT,
|
|
102
107
|
MIDSCENE_REPORT_QUIET: ()=>MIDSCENE_REPORT_QUIET,
|
|
103
108
|
MIDSCENE_REPORT_TAG_NAME: ()=>MIDSCENE_REPORT_TAG_NAME,
|
|
@@ -126,6 +131,7 @@ const MIDSCENE_DEBUG_MODEL_RESPONSE = 'MIDSCENE_DEBUG_MODEL_RESPONSE';
|
|
|
126
131
|
const MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG = 'MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG';
|
|
127
132
|
const MIDSCENE_DEBUG_MODE = 'MIDSCENE_DEBUG_MODE';
|
|
128
133
|
const MIDSCENE_MCP_USE_PUPPETEER_MODE = 'MIDSCENE_MCP_USE_PUPPETEER_MODE';
|
|
134
|
+
const MIDSCENE_CHROME_PATH = 'MIDSCENE_CHROME_PATH';
|
|
129
135
|
const MIDSCENE_MCP_CHROME_PATH = 'MIDSCENE_MCP_CHROME_PATH';
|
|
130
136
|
const MIDSCENE_MCP_ANDROID_MODE = 'MIDSCENE_MCP_ANDROID_MODE';
|
|
131
137
|
const DOCKER_CONTAINER = 'DOCKER_CONTAINER';
|
|
@@ -143,6 +149,7 @@ const MIDSCENE_MODEL_RETRY_INTERVAL = 'MIDSCENE_MODEL_RETRY_INTERVAL';
|
|
|
143
149
|
const MIDSCENE_MODEL_REASONING_EFFORT = 'MIDSCENE_MODEL_REASONING_EFFORT';
|
|
144
150
|
const MIDSCENE_MODEL_REASONING_ENABLED = 'MIDSCENE_MODEL_REASONING_ENABLED';
|
|
145
151
|
const MIDSCENE_MODEL_REASONING_BUDGET = 'MIDSCENE_MODEL_REASONING_BUDGET';
|
|
152
|
+
const MIDSCENE_MODEL_RESPONSE_FORMAT = 'MIDSCENE_MODEL_RESPONSE_FORMAT';
|
|
146
153
|
const OPENAI_API_KEY = 'OPENAI_API_KEY';
|
|
147
154
|
const OPENAI_BASE_URL = 'OPENAI_BASE_URL';
|
|
148
155
|
const MIDSCENE_OPENAI_INIT_CONFIG_JSON = 'MIDSCENE_OPENAI_INIT_CONFIG_JSON';
|
|
@@ -170,6 +177,7 @@ const MIDSCENE_PREFERRED_LANGUAGE = 'MIDSCENE_PREFERRED_LANGUAGE';
|
|
|
170
177
|
const MIDSCENE_CACHE_MAX_FILENAME_LENGTH = 'MIDSCENE_CACHE_MAX_FILENAME_LENGTH';
|
|
171
178
|
const MIDSCENE_REPLANNING_CYCLE_LIMIT = 'MIDSCENE_REPLANNING_CYCLE_LIMIT';
|
|
172
179
|
const MIDSCENE_RUN_DIR = 'MIDSCENE_RUN_DIR';
|
|
180
|
+
const MIDSCENE_RECORD_MODEL_CALL = 'MIDSCENE_RECORD_MODEL_CALL';
|
|
173
181
|
const MIDSCENE_INSIGHT_MODEL_NAME = 'MIDSCENE_INSIGHT_MODEL_NAME';
|
|
174
182
|
const MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY = 'MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY';
|
|
175
183
|
const MIDSCENE_INSIGHT_MODEL_HTTP_PROXY = 'MIDSCENE_INSIGHT_MODEL_HTTP_PROXY';
|
|
@@ -185,6 +193,7 @@ const MIDSCENE_INSIGHT_MODEL_FAMILY = 'MIDSCENE_INSIGHT_MODEL_FAMILY';
|
|
|
185
193
|
const MIDSCENE_INSIGHT_MODEL_REASONING_EFFORT = 'MIDSCENE_INSIGHT_MODEL_REASONING_EFFORT';
|
|
186
194
|
const MIDSCENE_INSIGHT_MODEL_REASONING_ENABLED = 'MIDSCENE_INSIGHT_MODEL_REASONING_ENABLED';
|
|
187
195
|
const MIDSCENE_INSIGHT_MODEL_REASONING_BUDGET = 'MIDSCENE_INSIGHT_MODEL_REASONING_BUDGET';
|
|
196
|
+
const MIDSCENE_INSIGHT_MODEL_RESPONSE_FORMAT = 'MIDSCENE_INSIGHT_MODEL_RESPONSE_FORMAT';
|
|
188
197
|
const MIDSCENE_PLANNING_MODEL_NAME = 'MIDSCENE_PLANNING_MODEL_NAME';
|
|
189
198
|
const MIDSCENE_PLANNING_MODEL_SOCKS_PROXY = 'MIDSCENE_PLANNING_MODEL_SOCKS_PROXY';
|
|
190
199
|
const MIDSCENE_PLANNING_MODEL_HTTP_PROXY = 'MIDSCENE_PLANNING_MODEL_HTTP_PROXY';
|
|
@@ -200,6 +209,7 @@ const MIDSCENE_PLANNING_MODEL_FAMILY = 'MIDSCENE_PLANNING_MODEL_FAMILY';
|
|
|
200
209
|
const MIDSCENE_PLANNING_MODEL_REASONING_EFFORT = 'MIDSCENE_PLANNING_MODEL_REASONING_EFFORT';
|
|
201
210
|
const MIDSCENE_PLANNING_MODEL_REASONING_ENABLED = 'MIDSCENE_PLANNING_MODEL_REASONING_ENABLED';
|
|
202
211
|
const MIDSCENE_PLANNING_MODEL_REASONING_BUDGET = 'MIDSCENE_PLANNING_MODEL_REASONING_BUDGET';
|
|
212
|
+
const MIDSCENE_PLANNING_MODEL_RESPONSE_FORMAT = 'MIDSCENE_PLANNING_MODEL_RESPONSE_FORMAT';
|
|
203
213
|
const MIDSCENE_MODEL_FAMILY = 'MIDSCENE_MODEL_FAMILY';
|
|
204
214
|
const UNUSED_ENV_KEYS = [
|
|
205
215
|
MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG
|
|
@@ -208,7 +218,8 @@ const BASIC_ENV_KEYS = [
|
|
|
208
218
|
MIDSCENE_DEBUG_MODE,
|
|
209
219
|
MIDSCENE_DEBUG_MODEL_PROFILE,
|
|
210
220
|
MIDSCENE_DEBUG_MODEL_RESPONSE,
|
|
211
|
-
MIDSCENE_RUN_DIR
|
|
221
|
+
MIDSCENE_RUN_DIR,
|
|
222
|
+
MIDSCENE_RECORD_MODEL_CALL
|
|
212
223
|
];
|
|
213
224
|
const BOOLEAN_ENV_KEYS = [
|
|
214
225
|
MIDSCENE_CACHE,
|
|
@@ -235,6 +246,7 @@ const STRING_ENV_KEYS = [
|
|
|
235
246
|
MIDSCENE_REPORT_TAG_NAME,
|
|
236
247
|
MIDSCENE_PREFERRED_LANGUAGE,
|
|
237
248
|
MATCH_BY_POSITION,
|
|
249
|
+
MIDSCENE_CHROME_PATH,
|
|
238
250
|
MIDSCENE_MCP_CHROME_PATH,
|
|
239
251
|
DOCKER_CONTAINER
|
|
240
252
|
];
|
|
@@ -258,6 +270,7 @@ const MODEL_ENV_KEYS = [
|
|
|
258
270
|
MIDSCENE_MODEL_REASONING_EFFORT,
|
|
259
271
|
MIDSCENE_MODEL_REASONING_ENABLED,
|
|
260
272
|
MIDSCENE_MODEL_REASONING_BUDGET,
|
|
273
|
+
MIDSCENE_MODEL_RESPONSE_FORMAT,
|
|
261
274
|
MIDSCENE_USE_VLM_UI_TARS,
|
|
262
275
|
MIDSCENE_USE_QWEN_VL,
|
|
263
276
|
MIDSCENE_USE_QWEN3_VL,
|
|
@@ -284,6 +297,7 @@ const MODEL_ENV_KEYS = [
|
|
|
284
297
|
MIDSCENE_INSIGHT_MODEL_REASONING_EFFORT,
|
|
285
298
|
MIDSCENE_INSIGHT_MODEL_REASONING_ENABLED,
|
|
286
299
|
MIDSCENE_INSIGHT_MODEL_REASONING_BUDGET,
|
|
300
|
+
MIDSCENE_INSIGHT_MODEL_RESPONSE_FORMAT,
|
|
287
301
|
MIDSCENE_PLANNING_MODEL_NAME,
|
|
288
302
|
MIDSCENE_PLANNING_MODEL_SOCKS_PROXY,
|
|
289
303
|
MIDSCENE_PLANNING_MODEL_HTTP_PROXY,
|
|
@@ -299,6 +313,7 @@ const MODEL_ENV_KEYS = [
|
|
|
299
313
|
MIDSCENE_PLANNING_MODEL_REASONING_EFFORT,
|
|
300
314
|
MIDSCENE_PLANNING_MODEL_REASONING_ENABLED,
|
|
301
315
|
MIDSCENE_PLANNING_MODEL_REASONING_BUDGET,
|
|
316
|
+
MIDSCENE_PLANNING_MODEL_RESPONSE_FORMAT,
|
|
302
317
|
MIDSCENE_MODEL_FAMILY
|
|
303
318
|
];
|
|
304
319
|
const ALL_ENV_KEYS = [
|
|
@@ -313,6 +328,7 @@ const MODEL_FAMILY_VALUES = [
|
|
|
313
328
|
'gemini',
|
|
314
329
|
'qwen2.5-vl',
|
|
315
330
|
'qwen3-vl',
|
|
331
|
+
'qwen3',
|
|
316
332
|
'qwen3.5',
|
|
317
333
|
'qwen3.6',
|
|
318
334
|
'vlm-ui-tars',
|
|
@@ -321,7 +337,11 @@ const MODEL_FAMILY_VALUES = [
|
|
|
321
337
|
'glm-v',
|
|
322
338
|
'auto-glm',
|
|
323
339
|
'auto-glm-multilingual',
|
|
324
|
-
'gpt-5'
|
|
340
|
+
'gpt-5',
|
|
341
|
+
'deepseek',
|
|
342
|
+
'kimi',
|
|
343
|
+
'kimi3',
|
|
344
|
+
'xiaomi-mimo'
|
|
325
345
|
];
|
|
326
346
|
var UITarsModelVersion = /*#__PURE__*/ function(UITarsModelVersion) {
|
|
327
347
|
UITarsModelVersion["V1_0"] = "1.0";
|
|
@@ -342,6 +362,7 @@ exports.MIDSCENE_ADB_REMOTE_PORT = __webpack_exports__.MIDSCENE_ADB_REMOTE_PORT;
|
|
|
342
362
|
exports.MIDSCENE_ANDROID_IME_STRATEGY = __webpack_exports__.MIDSCENE_ANDROID_IME_STRATEGY;
|
|
343
363
|
exports.MIDSCENE_CACHE = __webpack_exports__.MIDSCENE_CACHE;
|
|
344
364
|
exports.MIDSCENE_CACHE_MAX_FILENAME_LENGTH = __webpack_exports__.MIDSCENE_CACHE_MAX_FILENAME_LENGTH;
|
|
365
|
+
exports.MIDSCENE_CHROME_PATH = __webpack_exports__.MIDSCENE_CHROME_PATH;
|
|
345
366
|
exports.MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG = __webpack_exports__.MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG;
|
|
346
367
|
exports.MIDSCENE_DEBUG_MODE = __webpack_exports__.MIDSCENE_DEBUG_MODE;
|
|
347
368
|
exports.MIDSCENE_DEBUG_MODEL_PROFILE = __webpack_exports__.MIDSCENE_DEBUG_MODEL_PROFILE;
|
|
@@ -356,6 +377,7 @@ exports.MIDSCENE_INSIGHT_MODEL_NAME = __webpack_exports__.MIDSCENE_INSIGHT_MODEL
|
|
|
356
377
|
exports.MIDSCENE_INSIGHT_MODEL_REASONING_BUDGET = __webpack_exports__.MIDSCENE_INSIGHT_MODEL_REASONING_BUDGET;
|
|
357
378
|
exports.MIDSCENE_INSIGHT_MODEL_REASONING_EFFORT = __webpack_exports__.MIDSCENE_INSIGHT_MODEL_REASONING_EFFORT;
|
|
358
379
|
exports.MIDSCENE_INSIGHT_MODEL_REASONING_ENABLED = __webpack_exports__.MIDSCENE_INSIGHT_MODEL_REASONING_ENABLED;
|
|
380
|
+
exports.MIDSCENE_INSIGHT_MODEL_RESPONSE_FORMAT = __webpack_exports__.MIDSCENE_INSIGHT_MODEL_RESPONSE_FORMAT;
|
|
359
381
|
exports.MIDSCENE_INSIGHT_MODEL_RETRY_COUNT = __webpack_exports__.MIDSCENE_INSIGHT_MODEL_RETRY_COUNT;
|
|
360
382
|
exports.MIDSCENE_INSIGHT_MODEL_RETRY_INTERVAL = __webpack_exports__.MIDSCENE_INSIGHT_MODEL_RETRY_INTERVAL;
|
|
361
383
|
exports.MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY = __webpack_exports__.MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY;
|
|
@@ -380,6 +402,7 @@ exports.MIDSCENE_MODEL_NAME = __webpack_exports__.MIDSCENE_MODEL_NAME;
|
|
|
380
402
|
exports.MIDSCENE_MODEL_REASONING_BUDGET = __webpack_exports__.MIDSCENE_MODEL_REASONING_BUDGET;
|
|
381
403
|
exports.MIDSCENE_MODEL_REASONING_EFFORT = __webpack_exports__.MIDSCENE_MODEL_REASONING_EFFORT;
|
|
382
404
|
exports.MIDSCENE_MODEL_REASONING_ENABLED = __webpack_exports__.MIDSCENE_MODEL_REASONING_ENABLED;
|
|
405
|
+
exports.MIDSCENE_MODEL_RESPONSE_FORMAT = __webpack_exports__.MIDSCENE_MODEL_RESPONSE_FORMAT;
|
|
383
406
|
exports.MIDSCENE_MODEL_RETRY_COUNT = __webpack_exports__.MIDSCENE_MODEL_RETRY_COUNT;
|
|
384
407
|
exports.MIDSCENE_MODEL_RETRY_INTERVAL = __webpack_exports__.MIDSCENE_MODEL_RETRY_INTERVAL;
|
|
385
408
|
exports.MIDSCENE_MODEL_SOCKS_PROXY = __webpack_exports__.MIDSCENE_MODEL_SOCKS_PROXY;
|
|
@@ -398,12 +421,14 @@ exports.MIDSCENE_PLANNING_MODEL_NAME = __webpack_exports__.MIDSCENE_PLANNING_MOD
|
|
|
398
421
|
exports.MIDSCENE_PLANNING_MODEL_REASONING_BUDGET = __webpack_exports__.MIDSCENE_PLANNING_MODEL_REASONING_BUDGET;
|
|
399
422
|
exports.MIDSCENE_PLANNING_MODEL_REASONING_EFFORT = __webpack_exports__.MIDSCENE_PLANNING_MODEL_REASONING_EFFORT;
|
|
400
423
|
exports.MIDSCENE_PLANNING_MODEL_REASONING_ENABLED = __webpack_exports__.MIDSCENE_PLANNING_MODEL_REASONING_ENABLED;
|
|
424
|
+
exports.MIDSCENE_PLANNING_MODEL_RESPONSE_FORMAT = __webpack_exports__.MIDSCENE_PLANNING_MODEL_RESPONSE_FORMAT;
|
|
401
425
|
exports.MIDSCENE_PLANNING_MODEL_RETRY_COUNT = __webpack_exports__.MIDSCENE_PLANNING_MODEL_RETRY_COUNT;
|
|
402
426
|
exports.MIDSCENE_PLANNING_MODEL_RETRY_INTERVAL = __webpack_exports__.MIDSCENE_PLANNING_MODEL_RETRY_INTERVAL;
|
|
403
427
|
exports.MIDSCENE_PLANNING_MODEL_SOCKS_PROXY = __webpack_exports__.MIDSCENE_PLANNING_MODEL_SOCKS_PROXY;
|
|
404
428
|
exports.MIDSCENE_PLANNING_MODEL_TEMPERATURE = __webpack_exports__.MIDSCENE_PLANNING_MODEL_TEMPERATURE;
|
|
405
429
|
exports.MIDSCENE_PLANNING_MODEL_TIMEOUT = __webpack_exports__.MIDSCENE_PLANNING_MODEL_TIMEOUT;
|
|
406
430
|
exports.MIDSCENE_PREFERRED_LANGUAGE = __webpack_exports__.MIDSCENE_PREFERRED_LANGUAGE;
|
|
431
|
+
exports.MIDSCENE_RECORD_MODEL_CALL = __webpack_exports__.MIDSCENE_RECORD_MODEL_CALL;
|
|
407
432
|
exports.MIDSCENE_REPLANNING_CYCLE_LIMIT = __webpack_exports__.MIDSCENE_REPLANNING_CYCLE_LIMIT;
|
|
408
433
|
exports.MIDSCENE_REPORT_QUIET = __webpack_exports__.MIDSCENE_REPORT_QUIET;
|
|
409
434
|
exports.MIDSCENE_REPORT_TAG_NAME = __webpack_exports__.MIDSCENE_REPORT_TAG_NAME;
|
|
@@ -436,6 +461,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
436
461
|
"MIDSCENE_ANDROID_IME_STRATEGY",
|
|
437
462
|
"MIDSCENE_CACHE",
|
|
438
463
|
"MIDSCENE_CACHE_MAX_FILENAME_LENGTH",
|
|
464
|
+
"MIDSCENE_CHROME_PATH",
|
|
439
465
|
"MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG",
|
|
440
466
|
"MIDSCENE_DEBUG_MODE",
|
|
441
467
|
"MIDSCENE_DEBUG_MODEL_PROFILE",
|
|
@@ -450,6 +476,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
450
476
|
"MIDSCENE_INSIGHT_MODEL_REASONING_BUDGET",
|
|
451
477
|
"MIDSCENE_INSIGHT_MODEL_REASONING_EFFORT",
|
|
452
478
|
"MIDSCENE_INSIGHT_MODEL_REASONING_ENABLED",
|
|
479
|
+
"MIDSCENE_INSIGHT_MODEL_RESPONSE_FORMAT",
|
|
453
480
|
"MIDSCENE_INSIGHT_MODEL_RETRY_COUNT",
|
|
454
481
|
"MIDSCENE_INSIGHT_MODEL_RETRY_INTERVAL",
|
|
455
482
|
"MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY",
|
|
@@ -474,6 +501,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
474
501
|
"MIDSCENE_MODEL_REASONING_BUDGET",
|
|
475
502
|
"MIDSCENE_MODEL_REASONING_EFFORT",
|
|
476
503
|
"MIDSCENE_MODEL_REASONING_ENABLED",
|
|
504
|
+
"MIDSCENE_MODEL_RESPONSE_FORMAT",
|
|
477
505
|
"MIDSCENE_MODEL_RETRY_COUNT",
|
|
478
506
|
"MIDSCENE_MODEL_RETRY_INTERVAL",
|
|
479
507
|
"MIDSCENE_MODEL_SOCKS_PROXY",
|
|
@@ -492,12 +520,14 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
492
520
|
"MIDSCENE_PLANNING_MODEL_REASONING_BUDGET",
|
|
493
521
|
"MIDSCENE_PLANNING_MODEL_REASONING_EFFORT",
|
|
494
522
|
"MIDSCENE_PLANNING_MODEL_REASONING_ENABLED",
|
|
523
|
+
"MIDSCENE_PLANNING_MODEL_RESPONSE_FORMAT",
|
|
495
524
|
"MIDSCENE_PLANNING_MODEL_RETRY_COUNT",
|
|
496
525
|
"MIDSCENE_PLANNING_MODEL_RETRY_INTERVAL",
|
|
497
526
|
"MIDSCENE_PLANNING_MODEL_SOCKS_PROXY",
|
|
498
527
|
"MIDSCENE_PLANNING_MODEL_TEMPERATURE",
|
|
499
528
|
"MIDSCENE_PLANNING_MODEL_TIMEOUT",
|
|
500
529
|
"MIDSCENE_PREFERRED_LANGUAGE",
|
|
530
|
+
"MIDSCENE_RECORD_MODEL_CALL",
|
|
501
531
|
"MIDSCENE_REPLANNING_CYCLE_LIMIT",
|
|
502
532
|
"MIDSCENE_REPORT_QUIET",
|
|
503
533
|
"MIDSCENE_REPORT_TAG_NAME",
|
package/dist/lib/img/index.js
CHANGED
|
@@ -24,24 +24,32 @@ var __webpack_require__ = {};
|
|
|
24
24
|
var __webpack_exports__ = {};
|
|
25
25
|
__webpack_require__.r(__webpack_exports__);
|
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
|
|
27
|
+
convertImgBufferToJpeg: ()=>external_transform_js_namespaceObject.convertImgBufferToJpeg,
|
|
28
|
+
convertBase64ImageToJpeg: ()=>external_transform_js_namespaceObject.convertBase64ImageToJpeg,
|
|
29
|
+
inferBase64ImageFormat: ()=>external_transform_js_namespaceObject.inferBase64ImageFormat,
|
|
28
30
|
localImg2Base64: ()=>external_transform_js_namespaceObject.localImg2Base64,
|
|
31
|
+
constrainBase64ImageToMaxSize: ()=>external_transform_js_namespaceObject.constrainBase64ImageToMaxSize,
|
|
32
|
+
paddingToMatchBlockByBase64: ()=>external_transform_js_namespaceObject.paddingToMatchBlockByBase64,
|
|
29
33
|
parseBase64: ()=>external_transform_js_namespaceObject.parseBase64,
|
|
30
34
|
resizeAndConvertImgBuffer: ()=>external_transform_js_namespaceObject.resizeAndConvertImgBuffer,
|
|
31
35
|
resizeImgBase64: ()=>external_transform_js_namespaceObject.resizeImgBase64,
|
|
32
|
-
saveBase64Image: ()=>external_transform_js_namespaceObject.saveBase64Image,
|
|
33
36
|
isValidImageBuffer: ()=>external_info_js_namespaceObject.isValidImageBuffer,
|
|
37
|
+
saveBase64Image: ()=>external_transform_js_namespaceObject.saveBase64Image,
|
|
34
38
|
validateScreenshotBuffer: ()=>external_info_js_namespaceObject.validateScreenshotBuffer,
|
|
39
|
+
normalizeScreenshotBase64: ()=>external_transform_js_namespaceObject.normalizeScreenshotBase64,
|
|
35
40
|
preProcessImageUrl: ()=>external_transform_js_namespaceObject.preProcessImageUrl,
|
|
36
41
|
annotateRects: ()=>external_box_select_js_namespaceObject.annotateRects,
|
|
37
42
|
compositeElementInfoImg: ()=>external_box_select_js_namespaceObject.compositeElementInfoImg,
|
|
38
43
|
isValidPNGImageBuffer: ()=>external_info_js_namespaceObject.isValidPNGImageBuffer,
|
|
39
|
-
processImageElementInfo: ()=>external_box_select_js_namespaceObject.processImageElementInfo,
|
|
40
44
|
cropByRect: ()=>external_transform_js_namespaceObject.cropByRect,
|
|
41
|
-
|
|
45
|
+
normalizeBase64Image: ()=>external_transform_js_namespaceObject.normalizeBase64Image,
|
|
46
|
+
processImageElementInfo: ()=>external_box_select_js_namespaceObject.processImageElementInfo,
|
|
42
47
|
isValidJPEGImageBuffer: ()=>external_info_js_namespaceObject.isValidJPEGImageBuffer,
|
|
43
|
-
|
|
48
|
+
resizeBase64ImageToJpeg: ()=>external_transform_js_namespaceObject.resizeBase64ImageToJpeg,
|
|
49
|
+
scaleImage: ()=>external_transform_js_namespaceObject.scaleImage,
|
|
50
|
+
encodedImageInfoOfBuffer: ()=>external_info_js_namespaceObject.encodedImageInfoOfBuffer,
|
|
44
51
|
createImgBase64ByFormat: ()=>external_transform_js_namespaceObject.createImgBase64ByFormat,
|
|
52
|
+
zoomForGPT4o: ()=>external_transform_js_namespaceObject.zoomForGPT4o,
|
|
45
53
|
imageInfoOfBase64: ()=>external_info_js_namespaceObject.imageInfoOfBase64,
|
|
46
54
|
httpImg2Base64: ()=>external_transform_js_namespaceObject.httpImg2Base64
|
|
47
55
|
});
|
|
@@ -50,19 +58,27 @@ const external_transform_js_namespaceObject = require("./transform.js");
|
|
|
50
58
|
const external_box_select_js_namespaceObject = require("./box-select.js");
|
|
51
59
|
exports.annotateRects = __webpack_exports__.annotateRects;
|
|
52
60
|
exports.compositeElementInfoImg = __webpack_exports__.compositeElementInfoImg;
|
|
61
|
+
exports.constrainBase64ImageToMaxSize = __webpack_exports__.constrainBase64ImageToMaxSize;
|
|
62
|
+
exports.convertBase64ImageToJpeg = __webpack_exports__.convertBase64ImageToJpeg;
|
|
63
|
+
exports.convertImgBufferToJpeg = __webpack_exports__.convertImgBufferToJpeg;
|
|
53
64
|
exports.createImgBase64ByFormat = __webpack_exports__.createImgBase64ByFormat;
|
|
54
65
|
exports.cropByRect = __webpack_exports__.cropByRect;
|
|
66
|
+
exports.encodedImageInfoOfBuffer = __webpack_exports__.encodedImageInfoOfBuffer;
|
|
55
67
|
exports.httpImg2Base64 = __webpack_exports__.httpImg2Base64;
|
|
56
68
|
exports.imageInfoOfBase64 = __webpack_exports__.imageInfoOfBase64;
|
|
69
|
+
exports.inferBase64ImageFormat = __webpack_exports__.inferBase64ImageFormat;
|
|
57
70
|
exports.isValidImageBuffer = __webpack_exports__.isValidImageBuffer;
|
|
58
71
|
exports.isValidJPEGImageBuffer = __webpack_exports__.isValidJPEGImageBuffer;
|
|
59
72
|
exports.isValidPNGImageBuffer = __webpack_exports__.isValidPNGImageBuffer;
|
|
60
73
|
exports.localImg2Base64 = __webpack_exports__.localImg2Base64;
|
|
74
|
+
exports.normalizeBase64Image = __webpack_exports__.normalizeBase64Image;
|
|
75
|
+
exports.normalizeScreenshotBase64 = __webpack_exports__.normalizeScreenshotBase64;
|
|
61
76
|
exports.paddingToMatchBlockByBase64 = __webpack_exports__.paddingToMatchBlockByBase64;
|
|
62
77
|
exports.parseBase64 = __webpack_exports__.parseBase64;
|
|
63
78
|
exports.preProcessImageUrl = __webpack_exports__.preProcessImageUrl;
|
|
64
79
|
exports.processImageElementInfo = __webpack_exports__.processImageElementInfo;
|
|
65
80
|
exports.resizeAndConvertImgBuffer = __webpack_exports__.resizeAndConvertImgBuffer;
|
|
81
|
+
exports.resizeBase64ImageToJpeg = __webpack_exports__.resizeBase64ImageToJpeg;
|
|
66
82
|
exports.resizeImgBase64 = __webpack_exports__.resizeImgBase64;
|
|
67
83
|
exports.saveBase64Image = __webpack_exports__.saveBase64Image;
|
|
68
84
|
exports.scaleImage = __webpack_exports__.scaleImage;
|
|
@@ -71,19 +87,27 @@ exports.zoomForGPT4o = __webpack_exports__.zoomForGPT4o;
|
|
|
71
87
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
72
88
|
"annotateRects",
|
|
73
89
|
"compositeElementInfoImg",
|
|
90
|
+
"constrainBase64ImageToMaxSize",
|
|
91
|
+
"convertBase64ImageToJpeg",
|
|
92
|
+
"convertImgBufferToJpeg",
|
|
74
93
|
"createImgBase64ByFormat",
|
|
75
94
|
"cropByRect",
|
|
95
|
+
"encodedImageInfoOfBuffer",
|
|
76
96
|
"httpImg2Base64",
|
|
77
97
|
"imageInfoOfBase64",
|
|
98
|
+
"inferBase64ImageFormat",
|
|
78
99
|
"isValidImageBuffer",
|
|
79
100
|
"isValidJPEGImageBuffer",
|
|
80
101
|
"isValidPNGImageBuffer",
|
|
81
102
|
"localImg2Base64",
|
|
103
|
+
"normalizeBase64Image",
|
|
104
|
+
"normalizeScreenshotBase64",
|
|
82
105
|
"paddingToMatchBlockByBase64",
|
|
83
106
|
"parseBase64",
|
|
84
107
|
"preProcessImageUrl",
|
|
85
108
|
"processImageElementInfo",
|
|
86
109
|
"resizeAndConvertImgBuffer",
|
|
110
|
+
"resizeBase64ImageToJpeg",
|
|
87
111
|
"resizeImgBase64",
|
|
88
112
|
"saveBase64Image",
|
|
89
113
|
"scaleImage",
|
package/dist/lib/img/info.js
CHANGED
|
@@ -33,8 +33,9 @@ var __webpack_require__ = {};
|
|
|
33
33
|
var __webpack_exports__ = {};
|
|
34
34
|
__webpack_require__.r(__webpack_exports__);
|
|
35
35
|
__webpack_require__.d(__webpack_exports__, {
|
|
36
|
-
|
|
36
|
+
encodedImageInfoOfBuffer: ()=>encodedImageInfoOfBuffer,
|
|
37
37
|
isValidImageBuffer: ()=>isValidImageBuffer,
|
|
38
|
+
isValidPNGImageBuffer: ()=>isValidPNGImageBuffer,
|
|
38
39
|
validateScreenshotBuffer: ()=>validateScreenshotBuffer,
|
|
39
40
|
imageInfoOfBase64: ()=>imageInfoOfBase64,
|
|
40
41
|
isValidJPEGImageBuffer: ()=>isValidJPEGImageBuffer
|
|
@@ -43,6 +44,50 @@ const external_node_assert_namespaceObject = require("node:assert");
|
|
|
43
44
|
var external_node_assert_default = /*#__PURE__*/ __webpack_require__.n(external_node_assert_namespaceObject);
|
|
44
45
|
const external_get_photon_js_namespaceObject = require("./get-photon.js");
|
|
45
46
|
var external_get_photon_js_default = /*#__PURE__*/ __webpack_require__.n(external_get_photon_js_namespaceObject);
|
|
47
|
+
const isJpegStartOfFrameMarker = (marker)=>marker >= 0xc0 && marker <= 0xcf && 0xc4 !== marker && 0xc8 !== marker && 0xcc !== marker;
|
|
48
|
+
function jpegInfoFromBuffer(imageBuffer) {
|
|
49
|
+
let offset = 2;
|
|
50
|
+
while(offset < imageBuffer.length){
|
|
51
|
+
if (0xff !== imageBuffer[offset]) {
|
|
52
|
+
offset += 1;
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
while(offset < imageBuffer.length && 0xff === imageBuffer[offset])offset += 1;
|
|
56
|
+
if (offset >= imageBuffer.length) break;
|
|
57
|
+
const marker = imageBuffer[offset];
|
|
58
|
+
offset += 1;
|
|
59
|
+
if (0xd9 === marker || 0xda === marker) break;
|
|
60
|
+
if (0x01 === marker || 0xd8 === marker || marker >= 0xd0 && marker <= 0xd7) continue;
|
|
61
|
+
if (offset + 2 > imageBuffer.length) break;
|
|
62
|
+
const segmentLength = imageBuffer.readUInt16BE(offset);
|
|
63
|
+
if (segmentLength < 2 || offset + segmentLength > imageBuffer.length) break;
|
|
64
|
+
if (isJpegStartOfFrameMarker(marker)) {
|
|
65
|
+
if (segmentLength < 7) break;
|
|
66
|
+
const height = imageBuffer.readUInt16BE(offset + 3);
|
|
67
|
+
const width = imageBuffer.readUInt16BE(offset + 5);
|
|
68
|
+
external_node_assert_default()(width && height, 'Invalid image: cannot get width or height');
|
|
69
|
+
return {
|
|
70
|
+
width,
|
|
71
|
+
height
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
offset += segmentLength;
|
|
75
|
+
}
|
|
76
|
+
throw new Error('Invalid image: cannot get JPEG width or height');
|
|
77
|
+
}
|
|
78
|
+
function encodedImageInfoOfBuffer(imageBuffer) {
|
|
79
|
+
if (isValidPNGImageBuffer(imageBuffer)) {
|
|
80
|
+
const width = imageBuffer.readUInt32BE(16);
|
|
81
|
+
const height = imageBuffer.readUInt32BE(20);
|
|
82
|
+
external_node_assert_default()(width && height, 'Invalid image: cannot get width or height');
|
|
83
|
+
return {
|
|
84
|
+
width,
|
|
85
|
+
height
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
if (isValidJPEGImageBuffer(imageBuffer)) return jpegInfoFromBuffer(imageBuffer);
|
|
89
|
+
throw new Error('Invalid image: unsupported format');
|
|
90
|
+
}
|
|
46
91
|
async function imageInfoOfBase64(imageBase64) {
|
|
47
92
|
const { PhotonImage } = await external_get_photon_js_default()();
|
|
48
93
|
const base64Data = imageBase64.replace(/^data:image\/\w+;base64,/, '');
|
|
@@ -75,12 +120,14 @@ function validateScreenshotBuffer(screenshotBuffer, { label, minBufferSize = 0 }
|
|
|
75
120
|
if (!isValidImageBuffer(screenshotBuffer)) throw new Error(`${label} buffer has invalid image format`);
|
|
76
121
|
if (minBufferSize > 0 && bufferSize < minBufferSize) throw new Error(`${label} validation failed: buffer size ${bufferSize} bytes (minimum: ${minBufferSize})`);
|
|
77
122
|
}
|
|
123
|
+
exports.encodedImageInfoOfBuffer = __webpack_exports__.encodedImageInfoOfBuffer;
|
|
78
124
|
exports.imageInfoOfBase64 = __webpack_exports__.imageInfoOfBase64;
|
|
79
125
|
exports.isValidImageBuffer = __webpack_exports__.isValidImageBuffer;
|
|
80
126
|
exports.isValidJPEGImageBuffer = __webpack_exports__.isValidJPEGImageBuffer;
|
|
81
127
|
exports.isValidPNGImageBuffer = __webpack_exports__.isValidPNGImageBuffer;
|
|
82
128
|
exports.validateScreenshotBuffer = __webpack_exports__.validateScreenshotBuffer;
|
|
83
129
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
130
|
+
"encodedImageInfoOfBuffer",
|
|
84
131
|
"imageInfoOfBase64",
|
|
85
132
|
"isValidImageBuffer",
|
|
86
133
|
"isValidJPEGImageBuffer",
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
loadPhotonModule: ()=>loadPhotonModule
|
|
28
|
+
});
|
|
29
|
+
async function loadPhotonModule() {
|
|
30
|
+
return import("@silvia-odwyer/photon");
|
|
31
|
+
}
|
|
32
|
+
exports.loadPhotonModule = __webpack_exports__.loadPhotonModule;
|
|
33
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
34
|
+
"loadPhotonModule"
|
|
35
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
36
|
+
Object.defineProperty(exports, '__esModule', {
|
|
37
|
+
value: true
|
|
38
|
+
});
|
|
@@ -33,18 +33,25 @@ var __webpack_require__ = {};
|
|
|
33
33
|
var __webpack_exports__ = {};
|
|
34
34
|
__webpack_require__.r(__webpack_exports__);
|
|
35
35
|
__webpack_require__.d(__webpack_exports__, {
|
|
36
|
-
|
|
36
|
+
convertImgBufferToJpeg: ()=>convertImgBufferToJpeg,
|
|
37
|
+
convertBase64ImageToJpeg: ()=>convertBase64ImageToJpeg,
|
|
38
|
+
inferBase64ImageFormat: ()=>inferBase64ImageFormat,
|
|
37
39
|
localImg2Base64: ()=>localImg2Base64,
|
|
40
|
+
constrainBase64ImageToMaxSize: ()=>constrainBase64ImageToMaxSize,
|
|
41
|
+
paddingToMatchBlockByBase64: ()=>paddingToMatchBlockByBase64,
|
|
42
|
+
parseBase64: ()=>parseBase64,
|
|
38
43
|
photonFromBase64: ()=>photonFromBase64,
|
|
39
44
|
photonToBase64: ()=>photonToBase64,
|
|
40
|
-
parseBase64: ()=>parseBase64,
|
|
41
45
|
resizeAndConvertImgBuffer: ()=>resizeAndConvertImgBuffer,
|
|
42
46
|
resizeImgBase64: ()=>resizeImgBase64,
|
|
43
47
|
saveBase64Image: ()=>saveBase64Image,
|
|
48
|
+
normalizeScreenshotBase64: ()=>normalizeScreenshotBase64,
|
|
44
49
|
preProcessImageUrl: ()=>preProcessImageUrl,
|
|
45
50
|
cropByRect: ()=>cropByRect,
|
|
46
51
|
scaleImage: ()=>scaleImage,
|
|
52
|
+
normalizeBase64Image: ()=>normalizeBase64Image,
|
|
47
53
|
zoomForGPT4o: ()=>zoomForGPT4o,
|
|
54
|
+
resizeBase64ImageToJpeg: ()=>resizeBase64ImageToJpeg,
|
|
48
55
|
createImgBase64ByFormat: ()=>createImgBase64ByFormat,
|
|
49
56
|
paddingToMatchBlock: ()=>paddingToMatchBlock,
|
|
50
57
|
httpImg2Base64: ()=>httpImg2Base64
|
|
@@ -62,6 +69,7 @@ const external_get_photon_js_namespaceObject = require("./get-photon.js");
|
|
|
62
69
|
var external_get_photon_js_default = /*#__PURE__*/ __webpack_require__.n(external_get_photon_js_namespaceObject);
|
|
63
70
|
const external_get_sharp_js_namespaceObject = require("./get-sharp.js");
|
|
64
71
|
var external_get_sharp_js_default = /*#__PURE__*/ __webpack_require__.n(external_get_sharp_js_namespaceObject);
|
|
72
|
+
const external_info_js_namespaceObject = require("./info.js");
|
|
65
73
|
const imgDebug = (0, external_logger_js_namespaceObject.getDebug)('img');
|
|
66
74
|
async function saveBase64Image(options) {
|
|
67
75
|
const { base64Data, outputPath } = options;
|
|
@@ -124,7 +132,116 @@ async function resizeAndConvertImgBuffer(inputFormat, inputData, newSize) {
|
|
|
124
132
|
format: 'jpeg'
|
|
125
133
|
};
|
|
126
134
|
}
|
|
127
|
-
const
|
|
135
|
+
const rawBase64BodyPattern = /^[A-Za-z0-9+/]+={0,2}$/;
|
|
136
|
+
const base64ImageDataUrlPattern = /^data:image\/(?:png|jpe?g);base64,[A-Za-z0-9+/=\s]+$/i;
|
|
137
|
+
const supportedScreenshotDataUriPattern = /^data:image\/(png|jpe?g);base64,([A-Za-z0-9+/=\s]+)$/i;
|
|
138
|
+
function normalizeBase64Body(body) {
|
|
139
|
+
return body.replace(/\s/g, '');
|
|
140
|
+
}
|
|
141
|
+
function detectImageMimeTypeFromBuffer(buffer) {
|
|
142
|
+
if (buffer.length >= 8 && 0x89 === buffer[0] && 0x50 === buffer[1] && 0x4e === buffer[2] && 0x47 === buffer[3] && 0x0d === buffer[4] && 0x0a === buffer[5] && 0x1a === buffer[6] && 0x0a === buffer[7]) return 'image/png';
|
|
143
|
+
if (buffer.length >= 3 && 0xff === buffer[0] && 0xd8 === buffer[1] && 0xff === buffer[2]) return 'image/jpeg';
|
|
144
|
+
}
|
|
145
|
+
function inferBase64ImageFormat(base64Body) {
|
|
146
|
+
const buffer = external_node_buffer_namespaceObject.Buffer.from(normalizeBase64Body(base64Body), 'base64');
|
|
147
|
+
const mimeType = detectImageMimeTypeFromBuffer(buffer);
|
|
148
|
+
if ('image/jpeg' === mimeType) return 'jpeg';
|
|
149
|
+
return 'png';
|
|
150
|
+
}
|
|
151
|
+
const createImgBase64ByFormat = (format, body)=>`data:image/${format};base64,${normalizeBase64Body(body)}`;
|
|
152
|
+
const normalizeScreenshotBase64 = (base64, options)=>{
|
|
153
|
+
const label = options?.label ?? 'screenshot base64';
|
|
154
|
+
const trimmedBase64 = base64.trim();
|
|
155
|
+
if (!trimmedBase64) throw new Error(`${label} cannot be empty`);
|
|
156
|
+
const dataUriMatch = trimmedBase64.match(supportedScreenshotDataUriPattern);
|
|
157
|
+
if (dataUriMatch) {
|
|
158
|
+
const imageFormat = 'jpg' === dataUriMatch[1].toLowerCase() ? 'jpeg' : dataUriMatch[1].toLowerCase();
|
|
159
|
+
const body = normalizeBase64Body(dataUriMatch[2]);
|
|
160
|
+
if (!body) throw new Error(`${label} cannot be empty`);
|
|
161
|
+
return createImgBase64ByFormat(imageFormat, body);
|
|
162
|
+
}
|
|
163
|
+
if (trimmedBase64.startsWith('data:')) throw new Error(`${label} must be a PNG/JPEG data URI or raw PNG base64 string`);
|
|
164
|
+
if (!rawBase64BodyPattern.test(normalizeBase64Body(trimmedBase64))) throw new Error(`${label} must be a PNG/JPEG data URI or raw PNG base64 string`);
|
|
165
|
+
return createImgBase64ByFormat('png', trimmedBase64);
|
|
166
|
+
};
|
|
167
|
+
const normalizeBase64Image = (base64)=>{
|
|
168
|
+
const trimmedBase64 = base64.trim();
|
|
169
|
+
if (base64ImageDataUrlPattern.test(trimmedBase64)) return trimmedBase64.replace(/\s/g, '');
|
|
170
|
+
const base64Body = normalizeBase64Body(trimmedBase64);
|
|
171
|
+
external_node_assert_default()(base64Body, 'base64 image must include image data');
|
|
172
|
+
return createImgBase64ByFormat(inferBase64ImageFormat(base64Body), base64Body);
|
|
173
|
+
};
|
|
174
|
+
function assertValidJpegQuality(jpegQuality) {
|
|
175
|
+
if (!Number.isInteger(jpegQuality) || jpegQuality < 1 || jpegQuality > 100) throw new Error(`jpegQuality must be an integer between 1 and 100. Received: ${jpegQuality}`);
|
|
176
|
+
}
|
|
177
|
+
function assertValidImageSize(size, label) {
|
|
178
|
+
if (!Number.isInteger(size.width) || !Number.isInteger(size.height) || size.width <= 0 || size.height <= 0) throw new Error(`${label} width and height must be positive integers. Received width: ${size.width}, height: ${size.height}`);
|
|
179
|
+
}
|
|
180
|
+
async function convertImgBufferToJpeg(inputData, jpegQuality = 90) {
|
|
181
|
+
assertValidJpegQuality(jpegQuality);
|
|
182
|
+
if (external_utils_js_namespaceObject.ifInNode) try {
|
|
183
|
+
const Sharp = await external_get_sharp_js_default()();
|
|
184
|
+
return await Sharp(inputData).jpeg({
|
|
185
|
+
quality: jpegQuality
|
|
186
|
+
}).toBuffer();
|
|
187
|
+
} catch (error) {
|
|
188
|
+
imgDebug('Sharp failed, falling back to Photon:', error);
|
|
189
|
+
}
|
|
190
|
+
const { PhotonImage } = await external_get_photon_js_default()();
|
|
191
|
+
const inputBytes = new Uint8Array(inputData);
|
|
192
|
+
const bytesliceResult = PhotonImage.new_from_byteslice(inputBytes);
|
|
193
|
+
const image = bytesliceResult instanceof Promise ? await bytesliceResult : bytesliceResult;
|
|
194
|
+
try {
|
|
195
|
+
return external_node_buffer_namespaceObject.Buffer.from(image.get_bytes_jpeg(jpegQuality));
|
|
196
|
+
} finally{
|
|
197
|
+
image.free();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
async function convertBase64ImageToJpeg(inputBase64, jpegQuality = 90) {
|
|
201
|
+
assertValidJpegQuality(jpegQuality);
|
|
202
|
+
const normalized = normalizeBase64Image(inputBase64);
|
|
203
|
+
const { body } = parseBase64(normalized);
|
|
204
|
+
const imageBuffer = external_node_buffer_namespaceObject.Buffer.from(body, 'base64');
|
|
205
|
+
const detectedMimeType = detectImageMimeTypeFromBuffer(imageBuffer);
|
|
206
|
+
if ('image/jpeg' === detectedMimeType) return createImgBase64ByFormat('jpeg', body);
|
|
207
|
+
if ('image/png' !== detectedMimeType) throw new Error(`inputBase64 must contain a PNG or JPEG image. Detected: ${detectedMimeType ?? 'unsupported format'}`);
|
|
208
|
+
const jpegBuffer = await convertImgBufferToJpeg(imageBuffer, jpegQuality);
|
|
209
|
+
return createImgBase64ByFormat('jpeg', jpegBuffer.toString('base64'));
|
|
210
|
+
}
|
|
211
|
+
async function resizeBase64ImageToJpeg(inputBase64, options) {
|
|
212
|
+
const jpegQuality = options.jpegQuality ?? 90;
|
|
213
|
+
assertValidJpegQuality(jpegQuality);
|
|
214
|
+
assertValidImageSize(options.targetSize, 'targetSize');
|
|
215
|
+
const normalized = normalizeBase64Image(inputBase64);
|
|
216
|
+
const { body, mimeType } = parseBase64(normalized);
|
|
217
|
+
const imageBuffer = external_node_buffer_namespaceObject.Buffer.from(body, 'base64');
|
|
218
|
+
const sourceSize = (0, external_info_js_namespaceObject.encodedImageInfoOfBuffer)(imageBuffer);
|
|
219
|
+
if (options.sourceSize) {
|
|
220
|
+
assertValidImageSize(options.sourceSize, 'sourceSize');
|
|
221
|
+
if (options.sourceSize.width !== sourceSize.width || options.sourceSize.height !== sourceSize.height) throw new Error(`sourceSize ${options.sourceSize.width}x${options.sourceSize.height} does not match encoded image dimensions ${sourceSize.width}x${sourceSize.height}`);
|
|
222
|
+
}
|
|
223
|
+
const dimensionsUnchanged = sourceSize.width === options.targetSize.width && sourceSize.height === options.targetSize.height;
|
|
224
|
+
if (dimensionsUnchanged) return convertBase64ImageToJpeg(normalized, jpegQuality);
|
|
225
|
+
const { buffer } = await resizeAndConvertImgBuffer(mimeType.split('/')[1], imageBuffer, options.targetSize);
|
|
226
|
+
return createImgBase64ByFormat('jpeg', buffer.toString('base64'));
|
|
227
|
+
}
|
|
228
|
+
async function constrainBase64ImageToMaxSize(inputBase64, options) {
|
|
229
|
+
if (!Number.isInteger(options.maxSize) || options.maxSize <= 0) throw new Error(`maxSize must be a positive integer. Received: ${options.maxSize}`);
|
|
230
|
+
const normalized = normalizeBase64Image(inputBase64);
|
|
231
|
+
const { body } = parseBase64(normalized);
|
|
232
|
+
const sourceSize = (0, external_info_js_namespaceObject.encodedImageInfoOfBuffer)(external_node_buffer_namespaceObject.Buffer.from(body, 'base64'));
|
|
233
|
+
const largestDimension = Math.max(sourceSize.width, sourceSize.height);
|
|
234
|
+
if (largestDimension <= options.maxSize) return normalized;
|
|
235
|
+
const scale = options.maxSize / largestDimension;
|
|
236
|
+
return resizeBase64ImageToJpeg(normalized, {
|
|
237
|
+
targetSize: {
|
|
238
|
+
width: Math.max(1, Math.round(sourceSize.width * scale)),
|
|
239
|
+
height: Math.max(1, Math.round(sourceSize.height * scale))
|
|
240
|
+
},
|
|
241
|
+
sourceSize,
|
|
242
|
+
jpegQuality: options.jpegQuality
|
|
243
|
+
});
|
|
244
|
+
}
|
|
128
245
|
async function resizeImgBase64(inputBase64, newSize) {
|
|
129
246
|
const { body, mimeType } = parseBase64(inputBase64);
|
|
130
247
|
const imageBuffer = external_node_buffer_namespaceObject.Buffer.from(body, 'base64');
|
|
@@ -201,7 +318,7 @@ async function paddingToMatchBlockByBase64(imageBase64, blockSize = 28) {
|
|
|
201
318
|
photonImage.free();
|
|
202
319
|
}
|
|
203
320
|
}
|
|
204
|
-
async function cropByRect(imageBase64, rect, paddingImage) {
|
|
321
|
+
async function cropByRect(imageBase64, rect, paddingImage = false) {
|
|
205
322
|
const { crop } = await external_get_photon_js_default()();
|
|
206
323
|
const photonImage = await photonFromBase64(imageBase64);
|
|
207
324
|
const { left, top, width, height } = rect;
|
|
@@ -327,10 +444,16 @@ async function scaleImage(imageBase64, scale) {
|
|
|
327
444
|
imageBase64: base64
|
|
328
445
|
};
|
|
329
446
|
}
|
|
447
|
+
exports.constrainBase64ImageToMaxSize = __webpack_exports__.constrainBase64ImageToMaxSize;
|
|
448
|
+
exports.convertBase64ImageToJpeg = __webpack_exports__.convertBase64ImageToJpeg;
|
|
449
|
+
exports.convertImgBufferToJpeg = __webpack_exports__.convertImgBufferToJpeg;
|
|
330
450
|
exports.createImgBase64ByFormat = __webpack_exports__.createImgBase64ByFormat;
|
|
331
451
|
exports.cropByRect = __webpack_exports__.cropByRect;
|
|
332
452
|
exports.httpImg2Base64 = __webpack_exports__.httpImg2Base64;
|
|
453
|
+
exports.inferBase64ImageFormat = __webpack_exports__.inferBase64ImageFormat;
|
|
333
454
|
exports.localImg2Base64 = __webpack_exports__.localImg2Base64;
|
|
455
|
+
exports.normalizeBase64Image = __webpack_exports__.normalizeBase64Image;
|
|
456
|
+
exports.normalizeScreenshotBase64 = __webpack_exports__.normalizeScreenshotBase64;
|
|
334
457
|
exports.paddingToMatchBlock = __webpack_exports__.paddingToMatchBlock;
|
|
335
458
|
exports.paddingToMatchBlockByBase64 = __webpack_exports__.paddingToMatchBlockByBase64;
|
|
336
459
|
exports.parseBase64 = __webpack_exports__.parseBase64;
|
|
@@ -338,15 +461,22 @@ exports.photonFromBase64 = __webpack_exports__.photonFromBase64;
|
|
|
338
461
|
exports.photonToBase64 = __webpack_exports__.photonToBase64;
|
|
339
462
|
exports.preProcessImageUrl = __webpack_exports__.preProcessImageUrl;
|
|
340
463
|
exports.resizeAndConvertImgBuffer = __webpack_exports__.resizeAndConvertImgBuffer;
|
|
464
|
+
exports.resizeBase64ImageToJpeg = __webpack_exports__.resizeBase64ImageToJpeg;
|
|
341
465
|
exports.resizeImgBase64 = __webpack_exports__.resizeImgBase64;
|
|
342
466
|
exports.saveBase64Image = __webpack_exports__.saveBase64Image;
|
|
343
467
|
exports.scaleImage = __webpack_exports__.scaleImage;
|
|
344
468
|
exports.zoomForGPT4o = __webpack_exports__.zoomForGPT4o;
|
|
345
469
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
470
|
+
"constrainBase64ImageToMaxSize",
|
|
471
|
+
"convertBase64ImageToJpeg",
|
|
472
|
+
"convertImgBufferToJpeg",
|
|
346
473
|
"createImgBase64ByFormat",
|
|
347
474
|
"cropByRect",
|
|
348
475
|
"httpImg2Base64",
|
|
476
|
+
"inferBase64ImageFormat",
|
|
349
477
|
"localImg2Base64",
|
|
478
|
+
"normalizeBase64Image",
|
|
479
|
+
"normalizeScreenshotBase64",
|
|
350
480
|
"paddingToMatchBlock",
|
|
351
481
|
"paddingToMatchBlockByBase64",
|
|
352
482
|
"parseBase64",
|
|
@@ -354,6 +484,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
354
484
|
"photonToBase64",
|
|
355
485
|
"preProcessImageUrl",
|
|
356
486
|
"resizeAndConvertImgBuffer",
|
|
487
|
+
"resizeBase64ImageToJpeg",
|
|
357
488
|
"resizeImgBase64",
|
|
358
489
|
"saveBase64Image",
|
|
359
490
|
"scaleImage",
|