@microi.net/cli 5.3.9 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,13 @@
1
1
  {
2
- "builtAt": "2026-08-27T13:01:10.548Z",
2
+ "builtAt": "2026-08-28T15:12:45.034Z",
3
3
  "source": "../microi.skills",
4
4
  "extension": {
5
5
  "name": "v8-engine",
6
- "version": "5.3.9",
6
+ "version": "5.4.0",
7
7
  "publisher": "Microi"
8
8
  },
9
9
  "skills": {
10
- "version": "5.3.9",
10
+ "version": "5.4.0",
11
11
  "versionRule": "Microi version uses three numeric parts. Each publish increments the last part; when a part exceeds 9 it carries to the previous part: 1.0.9 -> 1.1.0, 1.9.9 -> 2.0.0.",
12
12
  "managedBy": "Microi.VSCode/bump-version.js"
13
13
  },
@@ -15,10 +15,10 @@
15
15
  "dir": "dist/microi.skills",
16
16
  "files": 178,
17
17
  "skills": 65,
18
- "bytes": 2280221
18
+ "bytes": 2284047
19
19
  },
20
20
  "fileHashes": {
21
- ".microi-skills-version.json": "7bf5ae573892d236ad14c12051ba428e2bcb20641dc1fec498f4afda08b3f30c",
21
+ ".microi-skills-version.json": "bf3175ce6f155a1105983c411bce0bfd98f600e080cb40fbe666faa3ee39e57b",
22
22
  ".progressive-disclosure-manifest.json": "c039b5bc6761bd0a17b551e3a865cfb4660253254185c96650e83ad13d2f01cb",
23
23
  "README.md": "332aade05015acac5f1387829a42529f37fc203ff0fcfb2f16cc3afdbb23b1ed",
24
24
  "ai-engine/SKILL.md": "df63cf56bd06027f30bd0597003c65b479049141fc0b4a31d33cbc9a5fa044cf",
@@ -90,7 +90,7 @@
90
90
  "microi-uniapp-frontend/SKILL.md": "58614f69730f0a9021e2df64d8de586907fc6f80285606698a8fa5811a6ead06",
91
91
  "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "44df3c20120298f6565cf4388eadca70d98d097880c61168ce6d3ac03e80968b",
92
92
  "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "31a0a12e39ec785df038fb5c73d4978d6dec42d86c52b79e91082c9ac13f29cf",
93
- "microi.v8.js": "0cc13cab1720738e52f6177ae6887100f94aec38257c862c72f23ecead9e3130",
93
+ "microi.v8.js": "e1503fec0a0bc0077efc6429b4f16a9e2ba3e7e1188a7b5587a7aa1b1788fda0",
94
94
  "module-engine/SKILL.md": "64c899b916aca60189b5cb02abe6577d686bcd3820188970d32f751699196266",
95
95
  "module-engine/references/module-config.md": "9e8ac8a7f65d6b563f938193d4b7c6b230d878a3513fc2a90c8b780e70ddd353",
96
96
  "ocr-engine/SKILL.md": "ca6157cb0c9184047f38e0b427927a0300dc1457129b918821c4186db8e37311",
@@ -134,7 +134,7 @@
134
134
  "ui-design/references/progressive-06-主题切换实现.md": "3ff0b51f32d15afd89e1e3de821ecede9dc7ad25c1fe6bc524e019e9a557d5ee",
135
135
  "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "11d4183f910c672740c723d204f7827405be644c93ce7056e4257159e7a53a4a",
136
136
  "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "f97eb92c7e97e62aba5c7d2c002d90a15b5db28229e06a1b000013d24e42d571",
137
- "uniapp-mall-assets/SKILL.md": "30a85548bb600de35e5608c3c95df2e4ac4dd17954da2a9d48bc1744fad6db6b",
137
+ "uniapp-mall-assets/SKILL.md": "7dd295e03a034a1694e55c365acd3bfb52d2ff1fa887c979479343e101f867f5",
138
138
  "unity-integration/SKILL.md": "7241b76c5d738d104a34a0d23d31bbda0295a406c598af63d2830dc57138e7bc",
139
139
  "unity-integration/agents/openai.yaml": "f07748ace7e6303e49eac32d77f3e7163c8de1cef1f2f87e20de76207c8e5a50",
140
140
  "unity-integration/references/ai-app-delivery.md": "cf0338a14b647bea42c31257cc73326c7a5a065a21153e21763235064f1d6373",
@@ -198,184 +198,184 @@
198
198
  "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "86db1f03700fd54dd824d28c553c678202e8f74b796fd0f9d91f63bf53a530b1"
199
199
  },
200
200
  "fileVersions": {
201
- ".microi-skills-version.json": "5.3.9",
202
- ".progressive-disclosure-manifest.json": "5.3.9",
203
- "README.md": "5.3.9",
204
- "ai-engine/SKILL.md": "5.3.9",
205
- "ai-engine/agents/openai.yaml": "5.3.9",
206
- "ai-platform-governance/SKILL.md": "5.3.9",
207
- "ai-platform-governance/references/progressive-01-功能开关.md": "5.3.9",
208
- "app-store/SKILL.md": "5.3.9",
209
- "app-store/agents/openai.yaml": "5.3.9",
210
- "business-blueprint/SKILL.md": "5.3.9",
211
- "datasource-engine/SKILL.md": "5.3.9",
212
- "datasource-engine/agents/openai.yaml": "5.3.9",
213
- "dos-orm/SKILL.md": "5.3.9",
214
- "dos-orm/references/api-reference.md": "5.3.9",
215
- "job-engine/SKILL.md": "5.3.9",
216
- "job-engine/agents/openai.yaml": "5.3.9",
217
- "message-notification/SKILL.md": "5.3.9",
218
- "message-notification/agents/openai.yaml": "5.3.9",
219
- "message-notification/references/contracts.md": "5.3.9",
220
- "microi-ai-app-auth.js": "5.3.9",
221
- "microi-ai-application/SKILL.md": "5.3.9",
222
- "microi-ai-application/agents/openai.yaml": "5.3.9",
223
- "microi-ai-application/references/frontend-baseline.md": "5.3.9",
224
- "microi-client-frontend/SKILL.md": "5.3.9",
225
- "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.3.9",
226
- "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.3.9",
227
- "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.3.9",
228
- "microi-codex-installer/SKILL.md": "5.3.9",
229
- "microi-codex-installer/agents/openai.yaml": "5.3.9",
230
- "microi-codex/SKILL.md": "5.3.9",
231
- "microi-datasource-mapping/SKILL.md": "5.3.9",
232
- "microi-db-schema/SKILL.md": "5.3.9",
233
- "microi-db-schema/agents/openai.yaml": "5.3.9",
234
- "microi-db-schema/references/core-tables.md": "5.3.9",
235
- "microi-db-schema/references/form-component-options.md": "5.3.9",
236
- "microi-db-schema/references/schema-overview.md": "5.3.9",
237
- "microi-db-schema/references/schema.md": "5.3.9",
238
- "microi-db-schema/references/table-catalog.md": "5.3.9",
239
- "microi-deployment/SKILL.md": "5.3.9",
240
- "microi-deployment/references/deployment-matrix.md": "5.3.9",
241
- "microi-docs-coverage/SKILL.md": "5.3.9",
242
- "microi-docs-coverage/references/capability-map.md": "5.3.9",
243
- "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.3.9",
244
- "microi-form-engine/SKILL.md": "5.3.9",
245
- "microi-form-engine/references/component-catalog.md": "5.3.9",
246
- "microi-form-engine/references/data-source-events.md": "5.3.9",
247
- "microi-form-layout/SKILL.md": "5.3.9",
248
- "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.3.9",
249
- "microi-frontend-sdk/SKILL.md": "5.3.9",
250
- "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.3.9",
251
- "microi-left-right-layout/SKILL.md": "5.3.9",
252
- "microi-microservice/SKILL.md": "5.3.9",
253
- "microi-microservice/references/runtime-delivery.md": "5.3.9",
254
- "microi-mobile-app-quality/SKILL.md": "5.3.9",
255
- "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.3.9",
256
- "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.3.9",
257
- "microi-solution-quotation/SKILL.md": "5.3.9",
258
- "microi-solution-quotation/agents/openai.yaml": "5.3.9",
259
- "microi-solution-quotation/scripts/build_solution_quote.py": "5.3.9",
260
- "microi-sso/SKILL.md": "5.3.9",
261
- "microi-sso/references/acceptance.md": "5.3.9",
262
- "microi-sso/references/configuration-and-security.md": "5.3.9",
263
- "microi-sso/references/inbound.md": "5.3.9",
264
- "microi-sso/references/outbound.md": "5.3.9",
265
- "microi-system-delivery/SKILL.md": "5.3.9",
266
- "microi-system-delivery/references/progressive-01-标准工作流.md": "5.3.9",
267
- "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.3.9",
268
- "microi-ui/SKILL.md": "5.3.9",
269
- "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.3.9",
270
- "microi-uniapp-frontend/SKILL.md": "5.3.9",
271
- "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.3.9",
272
- "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.3.9",
273
- "microi.v8.js": "5.3.9",
274
- "module-engine/SKILL.md": "5.3.9",
275
- "module-engine/references/module-config.md": "5.3.9",
276
- "ocr-engine/SKILL.md": "5.3.9",
277
- "ocr-engine/agents/openai.yaml": "5.3.9",
278
- "page-engine/SKILL.md": "5.3.9",
279
- "page-engine/references/progressive-01-所有组件类型.md": "5.3.9",
280
- "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.3.9",
281
- "performance-testing/SKILL.md": "5.3.9",
282
- "playwright-e2e/SKILL.md": "5.3.9",
283
- "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.3.9",
284
- "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.3.9",
285
- "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.3.9",
286
- "playwright-e2e/references/progressive-04-ci-建议.md": "5.3.9",
287
- "print-engine/SKILL.md": "5.3.9",
288
- "production-readonly-audit/SKILL.md": "5.3.9",
289
- "report-engine/SKILL.md": "5.3.9",
290
- "report-engine/agents/openai.yaml": "5.3.9",
291
- "scripts/optimize-progressive-disclosure.mjs": "5.3.9",
292
- "scripts/refresh-progressive-disclosure.mjs": "5.3.9",
293
- "scripts/validate-progressive-disclosure.mjs": "5.3.9",
294
- "search-engine/SKILL.md": "5.3.9",
295
- "search-engine/agents/openai.yaml": "5.3.9",
296
- "spider-engine/SKILL.md": "5.3.9",
297
- "system-observability/SKILL.md": "5.3.9",
298
- "translate-engine/SKILL.md": "5.3.9",
299
- "translate-engine/agents/openai.yaml": "5.3.9",
300
- "ui-design/SKILL.md": "5.3.9",
301
- "ui-design/assets/pattern-showcase/app.js": "5.3.9",
302
- "ui-design/assets/pattern-showcase/index.html": "5.3.9",
303
- "ui-design/assets/pattern-showcase/styles.css": "5.3.9",
304
- "ui-design/assets/templates/MCI-DESIGN.md": "5.3.9",
305
- "ui-design/references/design-pattern-library.md": "5.3.9",
306
- "ui-design/references/mci-design-contract.md": "5.3.9",
307
- "ui-design/references/motion-and-media.md": "5.3.9",
308
- "ui-design/references/product-flow-recipes.md": "5.3.9",
309
- "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.3.9",
310
- "ui-design/references/progressive-02-字体.md": "5.3.9",
311
- "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.3.9",
312
- "ui-design/references/progressive-04-组件风格速查.md": "5.3.9",
313
- "ui-design/references/progressive-05-移动端专用规范.md": "5.3.9",
314
- "ui-design/references/progressive-06-主题切换实现.md": "5.3.9",
315
- "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.3.9",
316
- "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.3.9",
317
- "uniapp-mall-assets/SKILL.md": "5.3.9",
318
- "unity-integration/SKILL.md": "5.3.9",
319
- "unity-integration/agents/openai.yaml": "5.3.9",
320
- "unity-integration/references/ai-app-delivery.md": "5.3.9",
321
- "unity-integration/references/sdk-api.md": "5.3.9",
322
- "unity-integration/references/toolbox-migration.md": "5.3.9",
323
- "unity-integration/references/webgl-hosting.md": "5.3.9",
324
- "v8-api-config/SKILL.md": "5.3.9",
325
- "v8-cache-pattern/SKILL.md": "5.3.9",
326
- "v8-crud-api/SKILL.md": "5.3.9",
327
- "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.3.9",
328
- "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.3.9",
329
- "v8-debugging/SKILL.md": "5.3.9",
330
- "v8-explorer-tree/SKILL.md": "5.3.9",
331
- "v8-export-import/SKILL.md": "5.3.9",
332
- "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.3.9",
333
- "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.3.9",
334
- "v8-export-import/references/progressive-03-安全-性能注意.md": "5.3.9",
335
- "v8-file-upload/SKILL.md": "5.3.9",
336
- "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.3.9",
337
- "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.3.9",
338
- "v8-formengine-http/SKILL.md": "5.3.9",
339
- "v8-frontend-events/SKILL.md": "5.3.9",
340
- "v8-frontend-events/references/bluetooth-print-api.md": "5.3.9",
341
- "v8-frontend-events/references/bluetooth-print.md": "5.3.9",
342
- "v8-frontend-events/references/progressive-01-列表事件.md": "5.3.9",
343
- "v8-http-integration/SKILL.md": "5.3.9",
344
- "v8-http-integration/references/progressive-01-get-请求.md": "5.3.9",
345
- "v8-http-integration/references/progressive-02-错误处理模式.md": "5.3.9",
346
- "v8-image-processing/SKILL.md": "5.3.9",
347
- "v8-image-processing/agents/openai.yaml": "5.3.9",
348
- "v8-image-processing/references/api-reference.md": "5.3.9",
349
- "v8-menu-buttons/SKILL.md": "5.3.9",
350
- "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.3.9",
351
- "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.3.9",
352
- "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.3.9",
353
- "v8-mongodb/SKILL.md": "5.3.9",
354
- "v8-mq-mqtt/SKILL.md": "5.3.9",
355
- "v8-mq-mqtt/references/mqtt-production.md": "5.3.9",
356
- "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.3.9",
357
- "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.3.9",
358
- "v8-saas-multi-tenant/SKILL.md": "5.3.9",
359
- "v8-security/SKILL.md": "5.3.9",
360
- "v8-security/references/progressive-01-2-权限校验.md": "5.3.9",
361
- "v8-security/references/progressive-02-7-日志记录.md": "5.3.9",
362
- "v8-sql-query/SKILL.md": "5.3.9",
363
- "v8-table-event/SKILL.md": "5.3.9",
364
- "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.3.9",
365
- "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.3.9",
366
- "v8-tcp-integration/SKILL.md": "5.3.9",
367
- "v8-tcp-integration/agents/openai.yaml": "5.3.9",
368
- "v8-template-engine/SKILL.md": "5.3.9",
369
- "v8-utilities/SKILL.md": "5.3.9",
370
- "v8-utilities/references/client-api-index.md": "5.3.9",
371
- "v8-utilities/references/platform-http-routes.md": "5.3.9",
372
- "v8-utilities/references/server-api-index.md": "5.3.9",
373
- "v8-workflow/SKILL.md": "5.3.9",
374
- "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.3.9",
375
- "workspace-conventions/SKILL.md": "5.3.9",
376
- "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.3.9",
377
- "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.3.9",
378
- "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.3.9"
201
+ ".microi-skills-version.json": "5.4.0",
202
+ ".progressive-disclosure-manifest.json": "5.4.0",
203
+ "README.md": "5.4.0",
204
+ "ai-engine/SKILL.md": "5.4.0",
205
+ "ai-engine/agents/openai.yaml": "5.4.0",
206
+ "ai-platform-governance/SKILL.md": "5.4.0",
207
+ "ai-platform-governance/references/progressive-01-功能开关.md": "5.4.0",
208
+ "app-store/SKILL.md": "5.4.0",
209
+ "app-store/agents/openai.yaml": "5.4.0",
210
+ "business-blueprint/SKILL.md": "5.4.0",
211
+ "datasource-engine/SKILL.md": "5.4.0",
212
+ "datasource-engine/agents/openai.yaml": "5.4.0",
213
+ "dos-orm/SKILL.md": "5.4.0",
214
+ "dos-orm/references/api-reference.md": "5.4.0",
215
+ "job-engine/SKILL.md": "5.4.0",
216
+ "job-engine/agents/openai.yaml": "5.4.0",
217
+ "message-notification/SKILL.md": "5.4.0",
218
+ "message-notification/agents/openai.yaml": "5.4.0",
219
+ "message-notification/references/contracts.md": "5.4.0",
220
+ "microi-ai-app-auth.js": "5.4.0",
221
+ "microi-ai-application/SKILL.md": "5.4.0",
222
+ "microi-ai-application/agents/openai.yaml": "5.4.0",
223
+ "microi-ai-application/references/frontend-baseline.md": "5.4.0",
224
+ "microi-client-frontend/SKILL.md": "5.4.0",
225
+ "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.4.0",
226
+ "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.4.0",
227
+ "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.4.0",
228
+ "microi-codex-installer/SKILL.md": "5.4.0",
229
+ "microi-codex-installer/agents/openai.yaml": "5.4.0",
230
+ "microi-codex/SKILL.md": "5.4.0",
231
+ "microi-datasource-mapping/SKILL.md": "5.4.0",
232
+ "microi-db-schema/SKILL.md": "5.4.0",
233
+ "microi-db-schema/agents/openai.yaml": "5.4.0",
234
+ "microi-db-schema/references/core-tables.md": "5.4.0",
235
+ "microi-db-schema/references/form-component-options.md": "5.4.0",
236
+ "microi-db-schema/references/schema-overview.md": "5.4.0",
237
+ "microi-db-schema/references/schema.md": "5.4.0",
238
+ "microi-db-schema/references/table-catalog.md": "5.4.0",
239
+ "microi-deployment/SKILL.md": "5.4.0",
240
+ "microi-deployment/references/deployment-matrix.md": "5.4.0",
241
+ "microi-docs-coverage/SKILL.md": "5.4.0",
242
+ "microi-docs-coverage/references/capability-map.md": "5.4.0",
243
+ "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.4.0",
244
+ "microi-form-engine/SKILL.md": "5.4.0",
245
+ "microi-form-engine/references/component-catalog.md": "5.4.0",
246
+ "microi-form-engine/references/data-source-events.md": "5.4.0",
247
+ "microi-form-layout/SKILL.md": "5.4.0",
248
+ "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.4.0",
249
+ "microi-frontend-sdk/SKILL.md": "5.4.0",
250
+ "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.4.0",
251
+ "microi-left-right-layout/SKILL.md": "5.4.0",
252
+ "microi-microservice/SKILL.md": "5.4.0",
253
+ "microi-microservice/references/runtime-delivery.md": "5.4.0",
254
+ "microi-mobile-app-quality/SKILL.md": "5.4.0",
255
+ "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.4.0",
256
+ "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.4.0",
257
+ "microi-solution-quotation/SKILL.md": "5.4.0",
258
+ "microi-solution-quotation/agents/openai.yaml": "5.4.0",
259
+ "microi-solution-quotation/scripts/build_solution_quote.py": "5.4.0",
260
+ "microi-sso/SKILL.md": "5.4.0",
261
+ "microi-sso/references/acceptance.md": "5.4.0",
262
+ "microi-sso/references/configuration-and-security.md": "5.4.0",
263
+ "microi-sso/references/inbound.md": "5.4.0",
264
+ "microi-sso/references/outbound.md": "5.4.0",
265
+ "microi-system-delivery/SKILL.md": "5.4.0",
266
+ "microi-system-delivery/references/progressive-01-标准工作流.md": "5.4.0",
267
+ "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.4.0",
268
+ "microi-ui/SKILL.md": "5.4.0",
269
+ "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.4.0",
270
+ "microi-uniapp-frontend/SKILL.md": "5.4.0",
271
+ "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.4.0",
272
+ "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.4.0",
273
+ "microi.v8.js": "5.4.0",
274
+ "module-engine/SKILL.md": "5.4.0",
275
+ "module-engine/references/module-config.md": "5.4.0",
276
+ "ocr-engine/SKILL.md": "5.4.0",
277
+ "ocr-engine/agents/openai.yaml": "5.4.0",
278
+ "page-engine/SKILL.md": "5.4.0",
279
+ "page-engine/references/progressive-01-所有组件类型.md": "5.4.0",
280
+ "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.4.0",
281
+ "performance-testing/SKILL.md": "5.4.0",
282
+ "playwright-e2e/SKILL.md": "5.4.0",
283
+ "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.4.0",
284
+ "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.4.0",
285
+ "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.4.0",
286
+ "playwright-e2e/references/progressive-04-ci-建议.md": "5.4.0",
287
+ "print-engine/SKILL.md": "5.4.0",
288
+ "production-readonly-audit/SKILL.md": "5.4.0",
289
+ "report-engine/SKILL.md": "5.4.0",
290
+ "report-engine/agents/openai.yaml": "5.4.0",
291
+ "scripts/optimize-progressive-disclosure.mjs": "5.4.0",
292
+ "scripts/refresh-progressive-disclosure.mjs": "5.4.0",
293
+ "scripts/validate-progressive-disclosure.mjs": "5.4.0",
294
+ "search-engine/SKILL.md": "5.4.0",
295
+ "search-engine/agents/openai.yaml": "5.4.0",
296
+ "spider-engine/SKILL.md": "5.4.0",
297
+ "system-observability/SKILL.md": "5.4.0",
298
+ "translate-engine/SKILL.md": "5.4.0",
299
+ "translate-engine/agents/openai.yaml": "5.4.0",
300
+ "ui-design/SKILL.md": "5.4.0",
301
+ "ui-design/assets/pattern-showcase/app.js": "5.4.0",
302
+ "ui-design/assets/pattern-showcase/index.html": "5.4.0",
303
+ "ui-design/assets/pattern-showcase/styles.css": "5.4.0",
304
+ "ui-design/assets/templates/MCI-DESIGN.md": "5.4.0",
305
+ "ui-design/references/design-pattern-library.md": "5.4.0",
306
+ "ui-design/references/mci-design-contract.md": "5.4.0",
307
+ "ui-design/references/motion-and-media.md": "5.4.0",
308
+ "ui-design/references/product-flow-recipes.md": "5.4.0",
309
+ "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.4.0",
310
+ "ui-design/references/progressive-02-字体.md": "5.4.0",
311
+ "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.4.0",
312
+ "ui-design/references/progressive-04-组件风格速查.md": "5.4.0",
313
+ "ui-design/references/progressive-05-移动端专用规范.md": "5.4.0",
314
+ "ui-design/references/progressive-06-主题切换实现.md": "5.4.0",
315
+ "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.4.0",
316
+ "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.4.0",
317
+ "uniapp-mall-assets/SKILL.md": "5.4.0",
318
+ "unity-integration/SKILL.md": "5.4.0",
319
+ "unity-integration/agents/openai.yaml": "5.4.0",
320
+ "unity-integration/references/ai-app-delivery.md": "5.4.0",
321
+ "unity-integration/references/sdk-api.md": "5.4.0",
322
+ "unity-integration/references/toolbox-migration.md": "5.4.0",
323
+ "unity-integration/references/webgl-hosting.md": "5.4.0",
324
+ "v8-api-config/SKILL.md": "5.4.0",
325
+ "v8-cache-pattern/SKILL.md": "5.4.0",
326
+ "v8-crud-api/SKILL.md": "5.4.0",
327
+ "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.4.0",
328
+ "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.4.0",
329
+ "v8-debugging/SKILL.md": "5.4.0",
330
+ "v8-explorer-tree/SKILL.md": "5.4.0",
331
+ "v8-export-import/SKILL.md": "5.4.0",
332
+ "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.4.0",
333
+ "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.4.0",
334
+ "v8-export-import/references/progressive-03-安全-性能注意.md": "5.4.0",
335
+ "v8-file-upload/SKILL.md": "5.4.0",
336
+ "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.4.0",
337
+ "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.4.0",
338
+ "v8-formengine-http/SKILL.md": "5.4.0",
339
+ "v8-frontend-events/SKILL.md": "5.4.0",
340
+ "v8-frontend-events/references/bluetooth-print-api.md": "5.4.0",
341
+ "v8-frontend-events/references/bluetooth-print.md": "5.4.0",
342
+ "v8-frontend-events/references/progressive-01-列表事件.md": "5.4.0",
343
+ "v8-http-integration/SKILL.md": "5.4.0",
344
+ "v8-http-integration/references/progressive-01-get-请求.md": "5.4.0",
345
+ "v8-http-integration/references/progressive-02-错误处理模式.md": "5.4.0",
346
+ "v8-image-processing/SKILL.md": "5.4.0",
347
+ "v8-image-processing/agents/openai.yaml": "5.4.0",
348
+ "v8-image-processing/references/api-reference.md": "5.4.0",
349
+ "v8-menu-buttons/SKILL.md": "5.4.0",
350
+ "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.4.0",
351
+ "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.4.0",
352
+ "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.4.0",
353
+ "v8-mongodb/SKILL.md": "5.4.0",
354
+ "v8-mq-mqtt/SKILL.md": "5.4.0",
355
+ "v8-mq-mqtt/references/mqtt-production.md": "5.4.0",
356
+ "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.4.0",
357
+ "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.4.0",
358
+ "v8-saas-multi-tenant/SKILL.md": "5.4.0",
359
+ "v8-security/SKILL.md": "5.4.0",
360
+ "v8-security/references/progressive-01-2-权限校验.md": "5.4.0",
361
+ "v8-security/references/progressive-02-7-日志记录.md": "5.4.0",
362
+ "v8-sql-query/SKILL.md": "5.4.0",
363
+ "v8-table-event/SKILL.md": "5.4.0",
364
+ "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.4.0",
365
+ "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.4.0",
366
+ "v8-tcp-integration/SKILL.md": "5.4.0",
367
+ "v8-tcp-integration/agents/openai.yaml": "5.4.0",
368
+ "v8-template-engine/SKILL.md": "5.4.0",
369
+ "v8-utilities/SKILL.md": "5.4.0",
370
+ "v8-utilities/references/client-api-index.md": "5.4.0",
371
+ "v8-utilities/references/platform-http-routes.md": "5.4.0",
372
+ "v8-utilities/references/server-api-index.md": "5.4.0",
373
+ "v8-workflow/SKILL.md": "5.4.0",
374
+ "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.4.0",
375
+ "workspace-conventions/SKILL.md": "5.4.0",
376
+ "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.4.0",
377
+ "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.4.0",
378
+ "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.4.0"
379
379
  },
380
380
  "files": [
381
381
  ".microi-skills-version.json",
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "5.3.9",
2
+ "version": "5.4.0",
3
3
  "versionRule": "Microi version uses three numeric parts. Each publish increments the last part; when a part exceeds 9 it carries to the previous part: 1.0.9 -> 1.1.0, 1.9.9 -> 2.0.0.",
4
4
  "managedBy": "Microi.VSCode/bump-version.js",
5
- "updatedAt": "2026-08-27T13:00:40.619Z"
5
+ "updatedAt": "2026-08-28T15:12:19.046Z"
6
6
  }
@@ -151,42 +151,59 @@ function deserializeUser(value) {
151
151
  return parseMaybeJson(value, null);
152
152
  }
153
153
 
154
- // 吾码文件字段可能来自上传控件、HDFS 接口、字符串或 JSON 字符串,这里统一抽取可用路径。
155
- function extractUploadPath(value) {
156
- if (!value) return '';
157
- if (typeof value === 'object') {
158
- const raw = Array.isArray(value) ? (value[0] || {}) : value;
159
- if (typeof raw === 'string') return extractUploadPath(raw);
160
- return raw.Url || raw.FileUrl || raw.FileURL || raw.PreviewUrl || raw.PreviewURL ||
161
- raw.FullUrl || raw.Path || raw.FilePathName || raw.FilePath || raw.FullPath || '';
162
- }
163
-
164
- const text = String(value || '').trim();
165
- if (!text) return '';
166
- if ((text.startsWith('{') && text.endsWith('}')) || (text.startsWith('[') && text.endsWith(']'))) {
167
- return extractUploadPath(parseMaybeJson(text, text));
168
- }
169
- return text;
170
- }
171
-
172
- function normalizeUploadValue(value) {
173
- if (!value) return [];
174
- if (Array.isArray(value)) return value.map(extractUploadPath).filter(Boolean);
175
- if (typeof value === 'object') {
176
- const path = extractUploadPath(value);
177
- return path ? [path] : [];
178
- }
154
+ const uploadPathKeys = [
155
+ 'Url', 'FileUrl', 'FileURL', 'PreviewUrl', 'PreviewURL', 'FullUrl',
156
+ 'Path', 'FilePathName', 'FilePath', 'FullPath', 'Src', 'Href',
157
+ 'url', 'fileUrl', 'previewUrl', 'fullUrl',
158
+ 'path', 'filePathName', 'filePath', 'fullPath', 'src', 'href'
159
+ ];
160
+
161
+ // 吾码文件字段可能是旧版绝对/相对字符串、新版单图对象、多图数组,
162
+ // 也可能是上述结构序列化后的 JSON 字符串;这里统一抽取第一个有效路径。
163
+ function extractUploadPath(value, depth = 0) {
164
+ if (depth > 6 || value === null || value === undefined) return '';
165
+ if (Array.isArray(value)) {
166
+ for (const item of value) {
167
+ const path = extractUploadPath(item, depth + 1);
168
+ if (path) return path;
169
+ }
170
+ return '';
171
+ }
172
+ if (typeof value === 'object') {
173
+ for (const key of uploadPathKeys) {
174
+ const path = extractUploadPath(value[key], depth + 1);
175
+ if (path) return path;
176
+ }
177
+ return '';
178
+ }
179
+
180
+ const text = String(value || '').trim();
181
+ if (!text) return '';
182
+ if ((text.startsWith('{') && text.endsWith('}')) || (text.startsWith('[') && text.endsWith(']'))) {
183
+ return extractUploadPath(parseMaybeJson(text, text), depth + 1);
184
+ }
185
+ return text;
186
+ }
179
187
 
180
- const text = String(value || '').trim();
181
- if (!text) return [];
182
- if ((text.startsWith('[') && text.endsWith(']')) || (text.startsWith('{') && text.endsWith('}'))) {
183
- const parsed = parseMaybeJson(text, null);
184
- if (Array.isArray(parsed)) return parsed.map(extractUploadPath).filter(Boolean);
185
- const path = extractUploadPath(parsed);
186
- return path ? [path] : [];
187
- }
188
- return [text];
189
- }
188
+ function normalizeUploadEntries(value) {
189
+ if (!value) return [];
190
+ let parsed = value;
191
+ if (typeof parsed === 'string') {
192
+ const text = parsed.trim();
193
+ if (!text) return [];
194
+ if ((text.startsWith('[') && text.endsWith(']')) || (text.startsWith('{') && text.endsWith('}'))) {
195
+ parsed = parseMaybeJson(text, text);
196
+ }
197
+ }
198
+ const items = Array.isArray(parsed) ? parsed : [parsed];
199
+ return items.map((item) => ({ item, path: extractUploadPath(item) })).filter((entry) => entry.path);
200
+ }
201
+
202
+ // 旧调用方依赖路径数组,继续保持返回类型;需要 Name/Size/Id 等元数据时
203
+ // 使用 normalizeUploadEntries,禁止把上传对象 String(...) 后再解析。
204
+ function normalizeUploadValue(value) {
205
+ return normalizeUploadEntries(value).map((entry) => entry.path);
206
+ }
190
207
 
191
208
  function normalizeUploadData(body) {
192
209
  const raw = Array.isArray(body && body.Data) ? (body.Data[0] || {}) : ((body && body.Data) || {});
@@ -940,7 +957,9 @@ export function createMicroiV8(options = {}) {
940
957
  if (!picked || isBlockedAsset(picked)) return '';
941
958
  if (/^(https?:|data:|blob:|file:)/i.test(picked)) return picked;
942
959
  if (isLocalPackagedAsset(picked)) return picked;
943
- if (/^\/?file\//i.test(picked)) return joinUrl(config.apiBase, picked);
960
+ if (/^\/?file\//i.test(picked) || /^\/?micro-app\/v3(?:\/|$)/i.test(picked)) {
961
+ return joinUrl(config.apiBase, picked);
962
+ }
944
963
  if (/^\//.test(picked) || /^[a-z0-9_-]+\//i.test(picked)) return joinUrl(config.fileServer || config.apiBase, picked);
945
964
  return picked;
946
965
  }
@@ -1509,9 +1528,10 @@ export function createMicroiV8(options = {}) {
1509
1528
  resolveAvatarUrl: resolveFileUrl,
1510
1529
  resolveFileUrl,
1511
1530
  isBlockedAsset,
1512
- extractUploadPath,
1513
- normalizeUploadValue,
1514
- uploadFile,
1531
+ extractUploadPath,
1532
+ normalizeUploadValue,
1533
+ normalizeUploadEntries,
1534
+ uploadFile,
1515
1535
  getSafeArea,
1516
1536
  formatDate,
1517
1537
  toNumber,