@microi.net/cli 4.9.9 → 5.0.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.
@@ -139,6 +139,18 @@ function profileIdentity(profile) {
139
139
  ].join('|');
140
140
  }
141
141
 
142
+ function workspaceSecretKey(baseKey, profileWorkspace) {
143
+ const normalized = path.resolve(profileWorkspace).toLowerCase();
144
+ const hash = crypto.createHash('sha256').update(normalized).digest('hex').slice(0, 16);
145
+ return `${baseKey}.workspace.${hash}`;
146
+ }
147
+
148
+ function credentialSecretKey(baseKey, profile, profileWorkspace) {
149
+ const apiBaseUrl = safeText(profile.apiBaseUrl).trim().replace(/\/+$/, '');
150
+ const osClient = safeText(profile.osClient).trim();
151
+ return workspaceSecretKey(`${baseKey}.${apiBaseUrl}|${osClient}`, profileWorkspace);
152
+ }
153
+
142
154
  function validateProfile(raw) {
143
155
  const profile = raw && typeof raw === 'object' ? raw : {};
144
156
  const profileWorkspace = path.resolve(safeText(profile.workspaceRoot || workspaceRoot));
@@ -148,6 +160,7 @@ function validateProfile(raw) {
148
160
  throw new Error('Broker workspace mismatch');
149
161
  }
150
162
  if (!/^https?:\/\//i.test(safeText(profile.apiBaseUrl))) throw new Error('Invalid Microi API URL');
163
+ const syncRoot = path.resolve(safeText(profile.syncRoot || path.join(profileWorkspace, 'Microi-V8-Engine')));
151
164
  return {
152
165
  identity: profileIdentity(profile),
153
166
  name: safeText(profile.name || profile.osClient || 'microi'),
@@ -157,9 +170,12 @@ function validateProfile(raw) {
157
170
  osClientType: safeText(profile.osClientType).trim(),
158
171
  osClientNetwork: safeText(profile.osClientNetwork).trim(),
159
172
  workspaceRoot: profileWorkspace,
160
- syncRoot: path.resolve(safeText(profile.syncRoot || path.join(profileWorkspace, 'Microi-V8-Engine'))),
173
+ syncRoot,
161
174
  tokenPath: path.resolve(safeText(profile.tokenPath || path.join(profileWorkspace, 'Microi-V8-Engine', '.microi-mcp-tokens.json'))),
162
175
  applicationsDir: path.resolve(safeText(profile.applicationsDir || path.join(profileWorkspace, 'Microi-V8-Engine'))),
176
+ workspaceCredentialFilePath: path.join(syncRoot, '.microi-workspace-secrets.dpapi.json'),
177
+ workspaceCredentialUsernameKey: credentialSecretKey('microi.username', profile, profileWorkspace),
178
+ workspaceCredentialPasswordKey: credentialSecretKey('microi.password', profile, profileWorkspace),
163
179
  };
164
180
  }
165
181
 
@@ -189,6 +205,9 @@ class ChildMcp {
189
205
  MICROI_API_URL: this.profile.apiBaseUrl,
190
206
  MICROI_TOKEN_FILE: this.profile.tokenPath,
191
207
  MICROI_AUTH_RECOVERY_DIR: `${this.profile.tokenPath}.recovery`,
208
+ MICROI_WORKSPACE_CREDENTIAL_FILE: this.profile.workspaceCredentialFilePath,
209
+ MICROI_WORKSPACE_USERNAME_KEY: this.profile.workspaceCredentialUsernameKey,
210
+ MICROI_WORKSPACE_PASSWORD_KEY: this.profile.workspaceCredentialPasswordKey,
192
211
  MICROI_OS_CLIENT: this.profile.osClient,
193
212
  MICROI_OS_CLIENT_TYPE: this.profile.osClientType,
194
213
  MICROI_OS_CLIENT_NETWORK: this.profile.osClientNetwork,
@@ -1,13 +1,13 @@
1
1
  {
2
- "builtAt": "2026-08-13T06:30:33.690Z",
2
+ "builtAt": "2026-08-13T11:59:59.992Z",
3
3
  "source": "../microi.skills",
4
4
  "extension": {
5
5
  "name": "v8-engine",
6
- "version": "4.9.9",
6
+ "version": "5.0.0",
7
7
  "publisher": "Microi"
8
8
  },
9
9
  "skills": {
10
- "version": "4.9.9",
10
+ "version": "5.0.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,13 +15,13 @@
15
15
  "dir": "dist/microi.skills",
16
16
  "files": 170,
17
17
  "skills": 62,
18
- "bytes": 2048429
18
+ "bytes": 2049800
19
19
  },
20
20
  "fileHashes": {
21
- ".microi-skills-version.json": "d9fa09a156a672f30ad54de0231b9aa2f3d0d920db2edd4866281d0ac33d5bd8",
21
+ ".microi-skills-version.json": "d5eb75c7244d68ee245645c5c28762906f947ca83518ea21c00d69ef17d5de08",
22
22
  ".progressive-disclosure-manifest.json": "c0b3640cb5837e3123dc46caae6dd8e73dc2155defbb0dd71f3a332672088f4a",
23
23
  "README.md": "168697be6864bbb12befa9a6723d93ea9d1c8b5a615006038c31b09e1171860c",
24
- "ai-engine/SKILL.md": "8a652a1db5eb7c4e65668a36d9d91356d94f58331c683180c83019133830c2fe",
24
+ "ai-engine/SKILL.md": "8cfb43bcc18335ba5dcc0ef5f0604ac32a74ae6ea13dbc07bce9fe8bd2df551c",
25
25
  "ai-engine/agents/openai.yaml": "40deb07801006a46b9a7f0020d13251955eeadd04c8e591160210479936f8b5b",
26
26
  "ai-platform-governance/SKILL.md": "e45979b1b135958834ce2eb40be612a1a84aee05933af862f157026d8fc00be9",
27
27
  "ai-platform-governance/references/progressive-01-功能开关.md": "ea46fb02267e9e3ace3d9d72e67b02183c61e5c198f4b2f27e8196d6ee6d0bec",
@@ -34,7 +34,7 @@
34
34
  "dos-orm/references/api-reference.md": "facc5e62cd6439a06263580dab9656271118d4bb5a91b5d9230a79136e6daa72",
35
35
  "job-engine/SKILL.md": "684b6884e924cfc334a3368937c6802ebaf84e60d60d90bbf42ad61fa999023b",
36
36
  "job-engine/agents/openai.yaml": "65889ee39bc34caca9085539d8954a381aab93590c5635eea3bb6f4c001934af",
37
- "message-notification/SKILL.md": "8efb5f0d96ffa54bdf0655947bd799d0e327822ca953ed118e46073d85fef560",
37
+ "message-notification/SKILL.md": "54c92a1bfd4ae7fa42ef87775f209ea3e935d0fcec4fa352511553084b23bd75",
38
38
  "message-notification/agents/openai.yaml": "d0e259921410e94caaf8b376d690a529842446e3f32c9523b7dfd1bda599f58c",
39
39
  "message-notification/references/contracts.md": "a33e3dd4093430ed1dc5b79a978d8981479e975a7dd30fde6f68559360369f06",
40
40
  "microi-ai-app-auth.js": "8023db6ae655bc33027f389a64ef7937ac09da35eb1b8a497aaefb986834242a",
@@ -190,176 +190,176 @@
190
190
  "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "86db1f03700fd54dd824d28c553c678202e8f74b796fd0f9d91f63bf53a530b1"
191
191
  },
192
192
  "fileVersions": {
193
- ".microi-skills-version.json": "4.9.9",
194
- ".progressive-disclosure-manifest.json": "4.9.9",
195
- "README.md": "4.9.9",
196
- "ai-engine/SKILL.md": "4.9.9",
197
- "ai-engine/agents/openai.yaml": "4.9.9",
198
- "ai-platform-governance/SKILL.md": "4.9.9",
199
- "ai-platform-governance/references/progressive-01-功能开关.md": "4.9.9",
200
- "app-store/SKILL.md": "4.9.9",
201
- "app-store/agents/openai.yaml": "4.9.9",
202
- "business-blueprint/SKILL.md": "4.9.9",
203
- "datasource-engine/SKILL.md": "4.9.9",
204
- "datasource-engine/agents/openai.yaml": "4.9.9",
205
- "dos-orm/SKILL.md": "4.9.9",
206
- "dos-orm/references/api-reference.md": "4.9.9",
207
- "job-engine/SKILL.md": "4.9.9",
208
- "job-engine/agents/openai.yaml": "4.9.9",
209
- "message-notification/SKILL.md": "4.9.9",
210
- "message-notification/agents/openai.yaml": "4.9.9",
211
- "message-notification/references/contracts.md": "4.9.9",
212
- "microi-ai-app-auth.js": "4.9.9",
213
- "microi-ai-application/SKILL.md": "4.9.9",
214
- "microi-ai-application/agents/openai.yaml": "4.9.9",
215
- "microi-ai-application/references/frontend-baseline.md": "4.9.9",
216
- "microi-client-frontend/SKILL.md": "4.9.9",
217
- "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "4.9.9",
218
- "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "4.9.9",
219
- "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "4.9.9",
220
- "microi-codex-installer/SKILL.md": "4.9.9",
221
- "microi-codex-installer/agents/openai.yaml": "4.9.9",
222
- "microi-codex/SKILL.md": "4.9.9",
223
- "microi-datasource-mapping/SKILL.md": "4.9.9",
224
- "microi-db-schema/SKILL.md": "4.9.9",
225
- "microi-db-schema/agents/openai.yaml": "4.9.9",
226
- "microi-db-schema/references/core-tables.md": "4.9.9",
227
- "microi-db-schema/references/form-component-options.md": "4.9.9",
228
- "microi-db-schema/references/schema-overview.md": "4.9.9",
229
- "microi-db-schema/references/schema.md": "4.9.9",
230
- "microi-db-schema/references/table-catalog.md": "4.9.9",
231
- "microi-deployment/SKILL.md": "4.9.9",
232
- "microi-deployment/references/deployment-matrix.md": "4.9.9",
233
- "microi-docs-coverage/SKILL.md": "4.9.9",
234
- "microi-docs-coverage/references/capability-map.md": "4.9.9",
235
- "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "4.9.9",
236
- "microi-form-engine/SKILL.md": "4.9.9",
237
- "microi-form-engine/references/component-catalog.md": "4.9.9",
238
- "microi-form-engine/references/data-source-events.md": "4.9.9",
239
- "microi-form-layout/SKILL.md": "4.9.9",
240
- "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "4.9.9",
241
- "microi-frontend-sdk/SKILL.md": "4.9.9",
242
- "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "4.9.9",
243
- "microi-left-right-layout/SKILL.md": "4.9.9",
244
- "microi-microservice/SKILL.md": "4.9.9",
245
- "microi-microservice/references/runtime-delivery.md": "4.9.9",
246
- "microi-mobile-app-quality/SKILL.md": "4.9.9",
247
- "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "4.9.9",
248
- "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "4.9.9",
249
- "microi-solution-quotation/SKILL.md": "4.9.9",
250
- "microi-solution-quotation/agents/openai.yaml": "4.9.9",
251
- "microi-solution-quotation/scripts/build_solution_quote.py": "4.9.9",
252
- "microi-system-delivery/SKILL.md": "4.9.9",
253
- "microi-system-delivery/references/progressive-01-标准工作流.md": "4.9.9",
254
- "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "4.9.9",
255
- "microi-ui/SKILL.md": "4.9.9",
256
- "microi-ui/references/progressive-01-移动端场景蓝图.md": "4.9.9",
257
- "microi-uniapp-frontend/SKILL.md": "4.9.9",
258
- "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "4.9.9",
259
- "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "4.9.9",
260
- "microi.v8.js": "4.9.9",
261
- "module-engine/SKILL.md": "4.9.9",
262
- "module-engine/references/module-config.md": "4.9.9",
263
- "ocr-engine/SKILL.md": "4.9.9",
264
- "ocr-engine/agents/openai.yaml": "4.9.9",
265
- "page-engine/SKILL.md": "4.9.9",
266
- "page-engine/references/progressive-01-所有组件类型.md": "4.9.9",
267
- "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "4.9.9",
268
- "performance-testing/SKILL.md": "4.9.9",
269
- "playwright-e2e/SKILL.md": "4.9.9",
270
- "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "4.9.9",
271
- "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "4.9.9",
272
- "playwright-e2e/references/progressive-03-microi-helper-模板.md": "4.9.9",
273
- "playwright-e2e/references/progressive-04-ci-建议.md": "4.9.9",
274
- "print-engine/SKILL.md": "4.9.9",
275
- "production-readonly-audit/SKILL.md": "4.9.9",
276
- "report-engine/SKILL.md": "4.9.9",
277
- "report-engine/agents/openai.yaml": "4.9.9",
278
- "scripts/optimize-progressive-disclosure.mjs": "4.9.9",
279
- "scripts/refresh-progressive-disclosure.mjs": "4.9.9",
280
- "scripts/validate-progressive-disclosure.mjs": "4.9.9",
281
- "search-engine/SKILL.md": "4.9.9",
282
- "search-engine/agents/openai.yaml": "4.9.9",
283
- "spider-engine/SKILL.md": "4.9.9",
284
- "translate-engine/SKILL.md": "4.9.9",
285
- "translate-engine/agents/openai.yaml": "4.9.9",
286
- "ui-design/SKILL.md": "4.9.9",
287
- "ui-design/assets/pattern-showcase/app.js": "4.9.9",
288
- "ui-design/assets/pattern-showcase/index.html": "4.9.9",
289
- "ui-design/assets/pattern-showcase/styles.css": "4.9.9",
290
- "ui-design/assets/templates/MCI-DESIGN.md": "4.9.9",
291
- "ui-design/references/design-pattern-library.md": "4.9.9",
292
- "ui-design/references/mci-design-contract.md": "4.9.9",
293
- "ui-design/references/motion-and-media.md": "4.9.9",
294
- "ui-design/references/product-flow-recipes.md": "4.9.9",
295
- "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "4.9.9",
296
- "ui-design/references/progressive-02-字体.md": "4.9.9",
297
- "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "4.9.9",
298
- "ui-design/references/progressive-04-组件风格速查.md": "4.9.9",
299
- "ui-design/references/progressive-05-移动端专用规范.md": "4.9.9",
300
- "ui-design/references/progressive-06-主题切换实现.md": "4.9.9",
301
- "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "4.9.9",
302
- "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "4.9.9",
303
- "uniapp-mall-assets/SKILL.md": "4.9.9",
304
- "unity-integration/SKILL.md": "4.9.9",
305
- "unity-integration/agents/openai.yaml": "4.9.9",
306
- "unity-integration/references/ai-app-delivery.md": "4.9.9",
307
- "unity-integration/references/sdk-api.md": "4.9.9",
308
- "unity-integration/references/toolbox-migration.md": "4.9.9",
309
- "unity-integration/references/webgl-hosting.md": "4.9.9",
310
- "v8-api-config/SKILL.md": "4.9.9",
311
- "v8-cache-pattern/SKILL.md": "4.9.9",
312
- "v8-crud-api/SKILL.md": "4.9.9",
313
- "v8-crud-api/references/progressive-01-查询列表-分页.md": "4.9.9",
314
- "v8-crud-api/references/progressive-02-where-条件语法速查.md": "4.9.9",
315
- "v8-debugging/SKILL.md": "4.9.9",
316
- "v8-explorer-tree/SKILL.md": "4.9.9",
317
- "v8-export-import/SKILL.md": "4.9.9",
318
- "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "4.9.9",
319
- "v8-export-import/references/progressive-02-powerpoint-导出.md": "4.9.9",
320
- "v8-export-import/references/progressive-03-安全-性能注意.md": "4.9.9",
321
- "v8-file-upload/SKILL.md": "4.9.9",
322
- "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "4.9.9",
323
- "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "4.9.9",
324
- "v8-formengine-http/SKILL.md": "4.9.9",
325
- "v8-frontend-events/SKILL.md": "4.9.9",
326
- "v8-frontend-events/references/bluetooth-print-api.md": "4.9.9",
327
- "v8-frontend-events/references/bluetooth-print.md": "4.9.9",
328
- "v8-frontend-events/references/progressive-01-列表事件.md": "4.9.9",
329
- "v8-http-integration/SKILL.md": "4.9.9",
330
- "v8-http-integration/references/progressive-01-get-请求.md": "4.9.9",
331
- "v8-http-integration/references/progressive-02-错误处理模式.md": "4.9.9",
332
- "v8-image-processing/SKILL.md": "4.9.9",
333
- "v8-image-processing/agents/openai.yaml": "4.9.9",
334
- "v8-image-processing/references/api-reference.md": "4.9.9",
335
- "v8-menu-buttons/SKILL.md": "4.9.9",
336
- "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "4.9.9",
337
- "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "4.9.9",
338
- "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "4.9.9",
339
- "v8-mongodb/SKILL.md": "4.9.9",
340
- "v8-mq-mqtt/SKILL.md": "4.9.9",
341
- "v8-mq-mqtt/references/mqtt-production.md": "4.9.9",
342
- "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "4.9.9",
343
- "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "4.9.9",
344
- "v8-saas-multi-tenant/SKILL.md": "4.9.9",
345
- "v8-security/SKILL.md": "4.9.9",
346
- "v8-security/references/progressive-01-2-权限校验.md": "4.9.9",
347
- "v8-security/references/progressive-02-7-日志记录.md": "4.9.9",
348
- "v8-sql-query/SKILL.md": "4.9.9",
349
- "v8-table-event/SKILL.md": "4.9.9",
350
- "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "4.9.9",
351
- "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "4.9.9",
352
- "v8-template-engine/SKILL.md": "4.9.9",
353
- "v8-utilities/SKILL.md": "4.9.9",
354
- "v8-utilities/references/client-api-index.md": "4.9.9",
355
- "v8-utilities/references/platform-http-routes.md": "4.9.9",
356
- "v8-utilities/references/server-api-index.md": "4.9.9",
357
- "v8-workflow/SKILL.md": "4.9.9",
358
- "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "4.9.9",
359
- "workspace-conventions/SKILL.md": "4.9.9",
360
- "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "4.9.9",
361
- "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "4.9.9",
362
- "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "4.9.9"
193
+ ".microi-skills-version.json": "5.0.0",
194
+ ".progressive-disclosure-manifest.json": "5.0.0",
195
+ "README.md": "5.0.0",
196
+ "ai-engine/SKILL.md": "5.0.0",
197
+ "ai-engine/agents/openai.yaml": "5.0.0",
198
+ "ai-platform-governance/SKILL.md": "5.0.0",
199
+ "ai-platform-governance/references/progressive-01-功能开关.md": "5.0.0",
200
+ "app-store/SKILL.md": "5.0.0",
201
+ "app-store/agents/openai.yaml": "5.0.0",
202
+ "business-blueprint/SKILL.md": "5.0.0",
203
+ "datasource-engine/SKILL.md": "5.0.0",
204
+ "datasource-engine/agents/openai.yaml": "5.0.0",
205
+ "dos-orm/SKILL.md": "5.0.0",
206
+ "dos-orm/references/api-reference.md": "5.0.0",
207
+ "job-engine/SKILL.md": "5.0.0",
208
+ "job-engine/agents/openai.yaml": "5.0.0",
209
+ "message-notification/SKILL.md": "5.0.0",
210
+ "message-notification/agents/openai.yaml": "5.0.0",
211
+ "message-notification/references/contracts.md": "5.0.0",
212
+ "microi-ai-app-auth.js": "5.0.0",
213
+ "microi-ai-application/SKILL.md": "5.0.0",
214
+ "microi-ai-application/agents/openai.yaml": "5.0.0",
215
+ "microi-ai-application/references/frontend-baseline.md": "5.0.0",
216
+ "microi-client-frontend/SKILL.md": "5.0.0",
217
+ "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.0.0",
218
+ "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.0.0",
219
+ "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.0.0",
220
+ "microi-codex-installer/SKILL.md": "5.0.0",
221
+ "microi-codex-installer/agents/openai.yaml": "5.0.0",
222
+ "microi-codex/SKILL.md": "5.0.0",
223
+ "microi-datasource-mapping/SKILL.md": "5.0.0",
224
+ "microi-db-schema/SKILL.md": "5.0.0",
225
+ "microi-db-schema/agents/openai.yaml": "5.0.0",
226
+ "microi-db-schema/references/core-tables.md": "5.0.0",
227
+ "microi-db-schema/references/form-component-options.md": "5.0.0",
228
+ "microi-db-schema/references/schema-overview.md": "5.0.0",
229
+ "microi-db-schema/references/schema.md": "5.0.0",
230
+ "microi-db-schema/references/table-catalog.md": "5.0.0",
231
+ "microi-deployment/SKILL.md": "5.0.0",
232
+ "microi-deployment/references/deployment-matrix.md": "5.0.0",
233
+ "microi-docs-coverage/SKILL.md": "5.0.0",
234
+ "microi-docs-coverage/references/capability-map.md": "5.0.0",
235
+ "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.0.0",
236
+ "microi-form-engine/SKILL.md": "5.0.0",
237
+ "microi-form-engine/references/component-catalog.md": "5.0.0",
238
+ "microi-form-engine/references/data-source-events.md": "5.0.0",
239
+ "microi-form-layout/SKILL.md": "5.0.0",
240
+ "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.0.0",
241
+ "microi-frontend-sdk/SKILL.md": "5.0.0",
242
+ "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.0.0",
243
+ "microi-left-right-layout/SKILL.md": "5.0.0",
244
+ "microi-microservice/SKILL.md": "5.0.0",
245
+ "microi-microservice/references/runtime-delivery.md": "5.0.0",
246
+ "microi-mobile-app-quality/SKILL.md": "5.0.0",
247
+ "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.0.0",
248
+ "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.0.0",
249
+ "microi-solution-quotation/SKILL.md": "5.0.0",
250
+ "microi-solution-quotation/agents/openai.yaml": "5.0.0",
251
+ "microi-solution-quotation/scripts/build_solution_quote.py": "5.0.0",
252
+ "microi-system-delivery/SKILL.md": "5.0.0",
253
+ "microi-system-delivery/references/progressive-01-标准工作流.md": "5.0.0",
254
+ "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.0.0",
255
+ "microi-ui/SKILL.md": "5.0.0",
256
+ "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.0.0",
257
+ "microi-uniapp-frontend/SKILL.md": "5.0.0",
258
+ "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.0.0",
259
+ "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.0.0",
260
+ "microi.v8.js": "5.0.0",
261
+ "module-engine/SKILL.md": "5.0.0",
262
+ "module-engine/references/module-config.md": "5.0.0",
263
+ "ocr-engine/SKILL.md": "5.0.0",
264
+ "ocr-engine/agents/openai.yaml": "5.0.0",
265
+ "page-engine/SKILL.md": "5.0.0",
266
+ "page-engine/references/progressive-01-所有组件类型.md": "5.0.0",
267
+ "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.0.0",
268
+ "performance-testing/SKILL.md": "5.0.0",
269
+ "playwright-e2e/SKILL.md": "5.0.0",
270
+ "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.0.0",
271
+ "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.0.0",
272
+ "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.0.0",
273
+ "playwright-e2e/references/progressive-04-ci-建议.md": "5.0.0",
274
+ "print-engine/SKILL.md": "5.0.0",
275
+ "production-readonly-audit/SKILL.md": "5.0.0",
276
+ "report-engine/SKILL.md": "5.0.0",
277
+ "report-engine/agents/openai.yaml": "5.0.0",
278
+ "scripts/optimize-progressive-disclosure.mjs": "5.0.0",
279
+ "scripts/refresh-progressive-disclosure.mjs": "5.0.0",
280
+ "scripts/validate-progressive-disclosure.mjs": "5.0.0",
281
+ "search-engine/SKILL.md": "5.0.0",
282
+ "search-engine/agents/openai.yaml": "5.0.0",
283
+ "spider-engine/SKILL.md": "5.0.0",
284
+ "translate-engine/SKILL.md": "5.0.0",
285
+ "translate-engine/agents/openai.yaml": "5.0.0",
286
+ "ui-design/SKILL.md": "5.0.0",
287
+ "ui-design/assets/pattern-showcase/app.js": "5.0.0",
288
+ "ui-design/assets/pattern-showcase/index.html": "5.0.0",
289
+ "ui-design/assets/pattern-showcase/styles.css": "5.0.0",
290
+ "ui-design/assets/templates/MCI-DESIGN.md": "5.0.0",
291
+ "ui-design/references/design-pattern-library.md": "5.0.0",
292
+ "ui-design/references/mci-design-contract.md": "5.0.0",
293
+ "ui-design/references/motion-and-media.md": "5.0.0",
294
+ "ui-design/references/product-flow-recipes.md": "5.0.0",
295
+ "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.0.0",
296
+ "ui-design/references/progressive-02-字体.md": "5.0.0",
297
+ "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.0.0",
298
+ "ui-design/references/progressive-04-组件风格速查.md": "5.0.0",
299
+ "ui-design/references/progressive-05-移动端专用规范.md": "5.0.0",
300
+ "ui-design/references/progressive-06-主题切换实现.md": "5.0.0",
301
+ "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.0.0",
302
+ "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.0.0",
303
+ "uniapp-mall-assets/SKILL.md": "5.0.0",
304
+ "unity-integration/SKILL.md": "5.0.0",
305
+ "unity-integration/agents/openai.yaml": "5.0.0",
306
+ "unity-integration/references/ai-app-delivery.md": "5.0.0",
307
+ "unity-integration/references/sdk-api.md": "5.0.0",
308
+ "unity-integration/references/toolbox-migration.md": "5.0.0",
309
+ "unity-integration/references/webgl-hosting.md": "5.0.0",
310
+ "v8-api-config/SKILL.md": "5.0.0",
311
+ "v8-cache-pattern/SKILL.md": "5.0.0",
312
+ "v8-crud-api/SKILL.md": "5.0.0",
313
+ "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.0.0",
314
+ "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.0.0",
315
+ "v8-debugging/SKILL.md": "5.0.0",
316
+ "v8-explorer-tree/SKILL.md": "5.0.0",
317
+ "v8-export-import/SKILL.md": "5.0.0",
318
+ "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.0.0",
319
+ "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.0.0",
320
+ "v8-export-import/references/progressive-03-安全-性能注意.md": "5.0.0",
321
+ "v8-file-upload/SKILL.md": "5.0.0",
322
+ "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.0.0",
323
+ "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.0.0",
324
+ "v8-formengine-http/SKILL.md": "5.0.0",
325
+ "v8-frontend-events/SKILL.md": "5.0.0",
326
+ "v8-frontend-events/references/bluetooth-print-api.md": "5.0.0",
327
+ "v8-frontend-events/references/bluetooth-print.md": "5.0.0",
328
+ "v8-frontend-events/references/progressive-01-列表事件.md": "5.0.0",
329
+ "v8-http-integration/SKILL.md": "5.0.0",
330
+ "v8-http-integration/references/progressive-01-get-请求.md": "5.0.0",
331
+ "v8-http-integration/references/progressive-02-错误处理模式.md": "5.0.0",
332
+ "v8-image-processing/SKILL.md": "5.0.0",
333
+ "v8-image-processing/agents/openai.yaml": "5.0.0",
334
+ "v8-image-processing/references/api-reference.md": "5.0.0",
335
+ "v8-menu-buttons/SKILL.md": "5.0.0",
336
+ "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.0.0",
337
+ "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.0.0",
338
+ "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.0.0",
339
+ "v8-mongodb/SKILL.md": "5.0.0",
340
+ "v8-mq-mqtt/SKILL.md": "5.0.0",
341
+ "v8-mq-mqtt/references/mqtt-production.md": "5.0.0",
342
+ "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.0.0",
343
+ "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.0.0",
344
+ "v8-saas-multi-tenant/SKILL.md": "5.0.0",
345
+ "v8-security/SKILL.md": "5.0.0",
346
+ "v8-security/references/progressive-01-2-权限校验.md": "5.0.0",
347
+ "v8-security/references/progressive-02-7-日志记录.md": "5.0.0",
348
+ "v8-sql-query/SKILL.md": "5.0.0",
349
+ "v8-table-event/SKILL.md": "5.0.0",
350
+ "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.0.0",
351
+ "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.0.0",
352
+ "v8-template-engine/SKILL.md": "5.0.0",
353
+ "v8-utilities/SKILL.md": "5.0.0",
354
+ "v8-utilities/references/client-api-index.md": "5.0.0",
355
+ "v8-utilities/references/platform-http-routes.md": "5.0.0",
356
+ "v8-utilities/references/server-api-index.md": "5.0.0",
357
+ "v8-workflow/SKILL.md": "5.0.0",
358
+ "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.0.0",
359
+ "workspace-conventions/SKILL.md": "5.0.0",
360
+ "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.0.0",
361
+ "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.0.0",
362
+ "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.0.0"
363
363
  },
364
364
  "files": [
365
365
  ".microi-skills-version.json",
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "4.9.9",
2
+ "version": "5.0.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-13T06:28:57.554Z"
5
+ "updatedAt": "2026-08-13T11:56:59.726Z"
6
6
  }
@@ -57,7 +57,8 @@ AI 业务统一实现在 `Microi.Server/Microi.AI`。`Microi.Server/Microi.net.A
57
57
  - MiniMax Token Plan Key 与按量 API Key 是相互独立的凭据,必须复用现有服务器端 Provider/ApiKey 受保护配置,不新增 API `AppSettings`、`MICROI_*` 环境变量或浏览器可见 Key。视频创建、查询和下载仅允许官方 HTTPS Host `api.minimaxi.com`。
58
58
  - 视频创建必须要求调用方稳定 `RequestId`,先在当前租户共享 Redis 以 `OsClient + 用户 + RequestId` 原子 `NX` 占位;Redis 不可用时失败关闭。相同 RequestId/参数回放返回原任务,不同参数冲突拒绝;上游 POST 超时或结果不确定时禁止自动换 RequestId 重试。查询不再次扣生成额度。
59
59
  - 原始 MiniMax `task_id`/`file_id` 不下发。服务端返回由供应商 Key 签名、绑定当前用户和用途的短句柄;查询/下载验签后才还原。Key 轮换会使旧句柄失效,应先完成或重新登记在途任务。
60
- - 当前官方模型边界必须实时校准:`MiniMax-Hailuo-2.3` 支持文生/图生,`MiniMax-Hailuo-2.3-Fast` 仅图生且必须有首帧,首尾帧使用 `MiniMax-Hailuo-02`。Hailuo 2.3 的清晰优先上限是 6 秒 / 1080P,时长优先上限是 10 秒 / 768P,两者不能同时最大;安全默认值仍可使用 6 / 768P。当前 Token Plan 使用统一用量条、5 小时滚动窗口和周窗口,控制台是剩余额度事实源,不再把固定“每天 N 条”写成官方配额。工作区可按用户明确要求保留 3 条/日等更保守的业务门禁,但领域服务不得硬编码价格或把客户端计数当成供应商权威额度。
60
+ - 当前官方模型边界必须实时校准:`MiniMax-Hailuo-2.3` 支持文生/图生,`MiniMax-Hailuo-2.3-Fast` 仅图生且必须有首帧,首尾帧使用 `MiniMax-Hailuo-02`。Hailuo 2.3 的画质优先上限与平台默认值是 6 秒 / 1080P,时长优先上限是 10 秒 / 768P,两者不能同时最大;API 不提供 fps 参数,必须用媒体探针记录真实帧率,禁止把插帧/画布规格冒充模型原生能力。当前 Token Plan 使用统一用量条、5 小时固定窗口和周窗口,控制台是剩余额度事实源,不再把固定“每天 N 条”写成官方配额。需要自动生成时,在 `Microi.AI` 增加只读、脱敏、管理员限定的 `https://www.minimaxi.com/v1/token_plan/remains` 安全原子能力;不得由浏览器或可编辑 V8 读取 Provider Key,也不得把客户端今日计数当成供应商权威额度。
61
+ - MiniMax 视频任务返回静音画面。需要人物对白时,男/女语音必须通过 `Microi.AI` 的 `GenerateMiniMaxSpeech` 受保护原子能力生成:固定 `speech-2.8-hd`、固定男女系统音色、稳定 RequestId、共享 Redis 幂等,并直接转存租户 HDFS;再由可靠 Worker 按时间轴混音、加准确字幕。无法证明口型同步时使用画外音或反打镜头。背景音乐使用 `GenerateMiniMaxMusic` 并在人声下压低。运行节点尚未部署 Speech 能力、额度未核实或母版混音/探针证据缺失时失败关闭,禁止静音、仅配乐、浏览器直连供应商或伪称模型原生带声。
61
62
  - 使用 Microi.AI 中转站时,租户侧 AI Bootstrap 通过官方 `official_ai_relay_models` 发现可用运行模型。该接口是跨租户只读公共契约,必须保持启用、允许匿名 HTTP 调用,并且只返回模型标识、展示名等公开白名单字段,绝不能返回中转密钥或上游 Endpoint。消费者不得把 `NoAuth` 静默伪装为“没有配置模型”;应返回可诊断错误,同时前端显示明确空态。
62
63
  - PC、UniApp 和其它客户端通过 `POST /apiengine/{key}` 发送的 JSON Body 必须完整进入 `V8.Param`;兼容入口 `/api/ApiEngine/Run` 的 JSON Body 还必须包含 `ApiEngineKey`。API 层只负责请求绑定和清除客户端伪造的可信字段,模型选择、权限策略与对话逻辑仍全部位于 `Microi.AI` 或受控 AI 接口引擎中。
63
64
  - 当前计量记录除问题摘要外还可能持久化完整 `Question`、`Answer`,部分诊断日志也会输出问题或摘要。处理现有版本时必须把这些字段视为敏感业务数据,限制查询权限和留存;不要声称已经全面脱敏。
@@ -103,7 +103,7 @@ await V8.Notification.MarkRead({ All: true });
103
103
 
104
104
  ## 应用商城交付
105
105
 
106
- “消息通知”应用包至少包含三张业务表、相关菜单、`msg_event`、`msg_internal_list`、`msg_internal_mark_read` 和必要索引。包内不得包含真实公众号 Token/AppSecret、用户接收人、OpenId、历史发送记录或租户专属 URL。先 `ValidateOnly`,再在获准的目标租户安装并回读;结构校验不能替代真实安装验收。
106
+ “消息通知”应用包必须包含 `mic_msgset`、`mic_msg_event_log`、`wx_tpl_msg`、`wx_mp`、`wx_mini_program` 五张结构资源,以及相关菜单、`msg_event`、`msg_internal_list`、`msg_internal_mark_read` 和必要索引。`wx_mp`、`wx_mini_program` 只交付物理表结构与表单字段元数据,不得携带数据集;否则既可能泄露真实公众号/小程序密钥,也会覆盖目标租户配置。`sys_user.WxMpId` 和 `wx_tpl_msg` 会读取 `wx_mp`,漏包会使 `/system/diy-user` 等无关页面在加载 Select 数据源时触发 `GetDiyFieldSqlData` 缺表错误。包内不得包含真实公众号 Token/AppSecret、用户接收人、OpenId、历史发送记录或租户专属 URL。先 `ValidateOnly`,再在全新或缺表目标租户真实安装,回读五张表、应用版本和依赖页面;结构校验不能替代真实安装验收。
107
107
 
108
108
  ## 最低验收
109
109