@microi.net/cli 5.5.8 → 5.6.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.
Files changed (166) hide show
  1. package/.codebuddy-plugin/marketplace.json +2 -2
  2. package/.codebuddy-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/.mcp.json +1 -1
  5. package/.workbuddy-plugin/marketplace.json +2 -2
  6. package/.workbuddy-plugin/plugin.json +1 -1
  7. package/README.md +71 -71
  8. package/assets/build-meta.json +5 -5
  9. package/assets/feature-matrix.json +129 -129
  10. package/cordis.patch.yml +1 -1
  11. package/package.json +1 -1
  12. package/scripts/codex-marketplace.json +20 -20
  13. package/scripts/mcp-codex-stdio-adapter.js +189 -189
  14. package/scripts/mcp-trae-windows-launcher.cmd +21 -21
  15. package/scripts/microi-cli-mcp.js +7 -7
  16. package/scripts/microi-codex-broker.js +447 -447
  17. package/scripts/microi-codex-router.js +582 -582
  18. package/scripts/microi-skills.meta.json +336 -336
  19. package/skills/.microi-skills-version.json +2 -2
  20. package/skills/.progressive-disclosure-manifest.json +3566 -3566
  21. package/skills/README.md +3 -3
  22. package/skills/ai-engine/SKILL.md +45 -43
  23. package/skills/ai-platform-governance/SKILL.md +177 -177
  24. package/skills/ai-platform-governance/references/progressive-01-/345/212/237/350/203/275/345/274/200/345/205/263.md +190 -190
  25. package/skills/app-store/SKILL.md +177 -177
  26. package/skills/business-blueprint/SKILL.md +85 -85
  27. package/skills/datasource-engine/SKILL.md +91 -91
  28. package/skills/dos-orm/SKILL.md +81 -81
  29. package/skills/dos-orm/references/api-reference.md +229 -229
  30. package/skills/email-engine/SKILL.md +80 -80
  31. package/skills/email-engine/references/v8-email.md +34 -34
  32. package/skills/job-engine/SKILL.md +154 -143
  33. package/skills/message-notification/SKILL.md +126 -126
  34. package/skills/message-notification/agents/openai.yaml +5 -5
  35. package/skills/message-notification/references/contracts.md +102 -102
  36. package/skills/microi-ai-app-auth.js +652 -652
  37. package/skills/microi-ai-application/SKILL.md +102 -94
  38. package/skills/microi-ai-application/agents/openai.yaml +4 -4
  39. package/skills/microi-ai-application/references/frontend-baseline.md +164 -164
  40. package/skills/microi-client-frontend/SKILL.md +43 -43
  41. package/skills/microi-client-frontend/references/progressive-01-3-/345/212/250/346/200/201/346/214/211/351/222/256/347/263/273/347/273/237.md +2 -2
  42. package/skills/microi-client-frontend/references/progressive-02-8-/350/277/220/350/241/214/346/227/266/351/253/230/351/242/221/345/235/221/345/244/215/347/233/230.md +28 -28
  43. package/skills/microi-client-frontend/references/progressive-03-vue3-/345/211/215/347/253/257/345/276/256/346/234/215/345/212/241/345/256/277/344/270/273/350/247/204/345/210/231.md +56 -56
  44. package/skills/microi-codex/SKILL.md +46 -46
  45. package/skills/microi-codex-installer/SKILL.md +216 -216
  46. package/skills/microi-codex-installer/agents/openai.yaml +7 -7
  47. package/skills/microi-datasource-mapping/SKILL.md +67 -67
  48. package/skills/microi-db-schema/SKILL.md +6 -6
  49. package/skills/microi-db-schema/references/core-tables.md +18 -18
  50. package/skills/microi-db-schema/references/form-component-options.md +256 -256
  51. package/skills/microi-db-schema/references/schema-overview.md +11 -11
  52. package/skills/microi-db-schema/references/schema.md +46 -46
  53. package/skills/microi-db-schema/references/table-catalog.md +57 -57
  54. package/skills/microi-deployment/SKILL.md +18 -1
  55. package/skills/microi-deployment/references/deployment-matrix.md +101 -101
  56. package/skills/microi-docs-coverage/SKILL.md +123 -123
  57. package/skills/microi-docs-coverage/references/capability-map.md +1 -0
  58. package/skills/microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs +894 -894
  59. package/skills/microi-form-engine/SKILL.md +50 -50
  60. package/skills/microi-form-engine/references/component-catalog.md +218 -218
  61. package/skills/microi-form-engine/references/data-source-events.md +124 -124
  62. package/skills/microi-form-layout/SKILL.md +13 -13
  63. package/skills/microi-form-layout/references/progressive-01-3-/344/270/211/347/247/215/345/210/206/347/273/204/347/232/204/345/255/230/345/202/250/344/270/216/351/205/215/347/275/256.md +235 -235
  64. package/skills/microi-frontend-sdk/SKILL.md +4 -4
  65. package/skills/microi-frontend-sdk/references/progressive-01-token-/345/275/223/345/211/215/347/231/273/345/275/225/347/224/250/346/210/267/344/270/216/345/275/223/345/211/215/347/273/210/347/253/257/347/231/273/345/275/225/345/215/217/350/256/256.md +175 -175
  66. package/skills/microi-left-right-layout/SKILL.md +141 -141
  67. package/skills/microi-microservice/SKILL.md +12 -10
  68. package/skills/microi-microservice/references/runtime-delivery.md +278 -278
  69. package/skills/microi-mobile-app-quality/references/progressive-01-4-/351/207/215/350/246/201/346/214/211/351/222/256/345/277/205/351/241/273/345/270/246/345/233/276/346/240/207.md +213 -213
  70. package/skills/microi-solution-quotation/SKILL.md +78 -78
  71. package/skills/microi-solution-quotation/agents/openai.yaml +4 -4
  72. package/skills/microi-solution-quotation/scripts/build_solution_quote.py +296 -296
  73. package/skills/microi-sso/SKILL.md +85 -85
  74. package/skills/microi-sso/references/acceptance.md +49 -49
  75. package/skills/microi-sso/references/configuration-and-security.md +53 -53
  76. package/skills/microi-sso/references/inbound.md +53 -53
  77. package/skills/microi-sso/references/outbound.md +39 -39
  78. package/skills/microi-system-delivery/references/progressive-02-/350/207/252/345/212/250/345/214/226/346/265/213/350/257/225/345/277/205/351/241/273/350/246/206/347/233/226/347/232/204/345/235/221.md +20 -20
  79. package/skills/microi-ui/SKILL.md +7 -2
  80. package/skills/microi-uniapp-frontend/SKILL.md +134 -134
  81. package/skills/microi-uniapp-frontend/references/progressive-01-/347/247/273/345/212/250/347/253/257/345/210/206/347/261/273-/345/217/214/346/240/217/345/210/227/350/241/250/347/213/254/347/253/213/346/273/232/345/212/250.md +136 -136
  82. package/skills/microi-uniapp-frontend/references/progressive-02-/345/205/263/351/224/256/344/270/232/345/212/241/350/265/204/344/272/247/344/270/215/345/276/227/351/273/230/350/256/244/351/200/211/344/270/255.md +124 -124
  83. package/skills/module-engine/SKILL.md +16 -16
  84. package/skills/ocr-engine/SKILL.md +2 -2
  85. package/skills/ocr-engine/agents/openai.yaml +1 -1
  86. package/skills/page-engine/SKILL.md +28 -28
  87. package/skills/page-engine/references/progressive-01-/346/211/200/346/234/211/347/273/204/344/273/266/347/261/273/345/236/213.md +126 -126
  88. package/skills/page-engine/references/progressive-02-/347/211/210/346/234/254/345/216/206/345/217/262-/345/271/266/345/217/221/344/277/235/345/255/230/344/270/216/345/233/236/346/273/232.md +42 -42
  89. package/skills/performance-testing/SKILL.md +120 -120
  90. package/skills/playwright-e2e/SKILL.md +84 -84
  91. package/skills/playwright-e2e/references/progressive-01-/345/205/250/350/207/252/345/212/250/347/231/273/345/275/225-/345/205/215/351/252/214/350/257/201/347/240/201-/344/275/206/344/270/215/345/205/215/345/257/206/347/240/201-/345/277/205/350/257/273.md +68 -68
  92. package/skills/playwright-e2e/references/progressive-02-/346/226/207/345/255/227/345/257/271/346/257/224/345/272/246/344/270/216/345/217/257/350/257/273/346/200/247/350/207/252/345/212/250/345/214/226/346/243/200/346/237/245-/345/277/205/345/201/232.md +64 -64
  93. package/skills/playwright-e2e/references/progressive-03-microi-helper-/346/250/241/346/235/277.md +20 -20
  94. package/skills/playwright-e2e/references/progressive-04-ci-/345/273/272/350/256/256.md +69 -69
  95. package/skills/print-engine/SKILL.md +36 -36
  96. package/skills/production-readonly-audit/SKILL.md +41 -41
  97. package/skills/report-engine/SKILL.md +71 -71
  98. package/skills/scripts/optimize-progressive-disclosure.mjs +204 -204
  99. package/skills/scripts/refresh-progressive-disclosure.mjs +64 -64
  100. package/skills/scripts/validate-progressive-disclosure.mjs +52 -52
  101. package/skills/search-engine/SKILL.md +75 -75
  102. package/skills/spider-engine/SKILL.md +190 -190
  103. package/skills/system-observability/SKILL.md +162 -162
  104. package/skills/system-observability/references/memory-incident-triage.md +73 -73
  105. package/skills/translate-engine/SKILL.md +1 -1
  106. package/skills/ui-design/SKILL.md +3 -1
  107. package/skills/uniapp-mall-assets/SKILL.md +170 -170
  108. package/skills/unity-integration/SKILL.md +155 -155
  109. package/skills/unity-integration/agents/openai.yaml +4 -4
  110. package/skills/unity-integration/references/ai-app-delivery.md +103 -103
  111. package/skills/unity-integration/references/sdk-api.md +82 -82
  112. package/skills/unity-integration/references/toolbox-migration.md +66 -66
  113. package/skills/unity-integration/references/webgl-hosting.md +57 -57
  114. package/skills/v8-api-config/SKILL.md +378 -378
  115. package/skills/v8-cache-pattern/SKILL.md +306 -306
  116. package/skills/v8-crud-api/SKILL.md +29 -29
  117. package/skills/v8-crud-api/references/progressive-01-/346/237/245/350/257/242/345/210/227/350/241/250-/345/210/206/351/241/265.md +56 -56
  118. package/skills/v8-debugging/SKILL.md +143 -143
  119. package/skills/v8-explorer-tree/SKILL.md +64 -64
  120. package/skills/v8-export-import/references/progressive-01-excellayout-/351/253/230/347/272/247/350/207/252/347/224/261/345/270/203/345/261/200.md +201 -201
  121. package/skills/v8-export-import/references/progressive-02-powerpoint-/345/257/274/345/207/272.md +118 -118
  122. package/skills/v8-export-import/references/progressive-03-/345/256/211/345/205/250-/346/200/247/350/203/275/346/263/250/346/204/217.md +32 -32
  123. package/skills/v8-file-upload/SKILL.md +154 -154
  124. package/skills/v8-file-upload/references/progressive-01-/345/205/254/346/234/211/346/241/266-vs-/347/247/201/346/234/211/346/241/266.md +133 -133
  125. package/skills/v8-file-upload/references/progressive-02-office-/346/226/207/344/273/266/345/234/250/347/272/277/347/274/226/350/276/221/347/211/210/346/234/254/345/217/267/350/247/204/345/210/231.md +138 -138
  126. package/skills/v8-formengine-http/SKILL.md +107 -107
  127. package/skills/v8-frontend-events/SKILL.md +22 -22
  128. package/skills/v8-frontend-events/references/bluetooth-print-api.md +135 -135
  129. package/skills/v8-frontend-events/references/bluetooth-print.md +247 -247
  130. package/skills/v8-frontend-events/references/progressive-01-/345/210/227/350/241/250/344/272/213/344/273/266.md +50 -50
  131. package/skills/v8-http-integration/SKILL.md +106 -106
  132. package/skills/v8-http-integration/references/progressive-01-get-/350/257/267/346/261/202.md +31 -31
  133. package/skills/v8-http-integration/references/progressive-02-/351/224/231/350/257/257/345/244/204/347/220/206/346/250/241/345/274/217.md +5 -5
  134. package/skills/v8-image-processing/SKILL.md +190 -190
  135. package/skills/v8-image-processing/agents/openai.yaml +4 -4
  136. package/skills/v8-image-processing/references/api-reference.md +623 -623
  137. package/skills/v8-menu-buttons/SKILL.md +103 -103
  138. package/skills/v8-menu-buttons/references/progressive-01-2-/346/214/211/351/222/256/345/257/271/350/261/241-schema.md +145 -145
  139. package/skills/v8-menu-buttons/references/progressive-02-8-/346/250/241/345/274/217-f-/345/220/216/345/217/260/344/273/273/345/212/241/346/214/211/351/222/256-/351/225/277/344/273/273/345/212/241.md +228 -228
  140. package/skills/v8-menu-buttons/references/progressive-03-10-/345/217/215/346/250/241/345/274/217-/351/201/277/345/205/215.md +43 -43
  141. package/skills/v8-mongodb/SKILL.md +65 -65
  142. package/skills/v8-mq-mqtt/SKILL.md +175 -175
  143. package/skills/v8-mq-mqtt/references/mqtt-production.md +342 -342
  144. package/skills/v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-/347/211/251/350/201/224/347/275/221.md +137 -137
  145. package/skills/v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs +203 -203
  146. package/skills/v8-saas-multi-tenant/SKILL.md +223 -223
  147. package/skills/v8-security/SKILL.md +25 -25
  148. package/skills/v8-security/references/progressive-01-2-/346/235/203/351/231/220/346/240/241/351/252/214.md +122 -122
  149. package/skills/v8-sql-query/SKILL.md +127 -127
  150. package/skills/v8-table-event/SKILL.md +20 -20
  151. package/skills/v8-table-event/references/progressive-01-informv8-js-/350/241/250/345/215/225/346/211/223/345/274/200/344/272/213/344/273/266.md +18 -18
  152. package/skills/v8-table-event/references/progressive-02-/345/211/215/347/253/257/344/272/213/344/273/266/345/220/215-v8-eventname-/345/217/257/350/203/275/347/232/204/345/200/274.md +15 -15
  153. package/skills/v8-tcp-integration/SKILL.md +1 -1
  154. package/skills/v8-tcp-integration/agents/openai.yaml +4 -4
  155. package/skills/v8-template-engine/SKILL.md +59 -59
  156. package/skills/v8-utilities/SKILL.md +92 -92
  157. package/skills/v8-utilities/references/client-api-index.md +143 -143
  158. package/skills/v8-utilities/references/platform-http-routes.md +83 -83
  159. package/skills/v8-utilities/references/server-api-index.md +74 -74
  160. package/skills/v8-workflow/SKILL.md +44 -44
  161. package/skills/vision-engine/SKILL.md +19 -19
  162. package/skills/vision-engine/references/architecture-and-acceptance.md +34 -34
  163. package/skills/workspace-conventions/SKILL.md +236 -236
  164. package/skills/workspace-conventions/references/progressive-01-/347/211/210/346/234/254/346/233/264/346/226/260/346/227/245/345/277/227/344/277/235/346/212/244/350/247/204/345/210/231-/345/274/272/345/210/266.md +208 -208
  165. package/skills/workspace-conventions/references/progressive-02-microi-net-api-/346/234/254/345/234/260/345/220/257/345/212/250/347/272/246/345/256/232.md +179 -179
  166. package/skills/workspace-conventions/references/progressive-03-cli-/344/270/216-ide-/346/217/222/344/273/266/351/224/231/347/211/210/345/205/261/345/255/230/347/272/246/345/256/232.md +21 -21
package/skills/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  ## 包含的 Skills
10
10
 
11
- 当前仓库包含 67 个 `SKILL.md`。以下清单按任务类型组织;AI 必须先完整读取与当前任务匹配的 Skill,再执行源码、MCP、文档或交付操作。
11
+ 当前仓库包含 67 个 `SKILL.md`。以下清单按任务类型组织;AI 必须先完整读取与当前任务匹配的 Skill,再执行源码、MCP、文档或交付操作。
12
12
 
13
13
  ### V8 引擎核心(后端)
14
14
 
@@ -59,8 +59,8 @@
59
59
  | **dos-orm** | Dos.ORM 实体、查询、事务、Provider、批量写入与 CodeFirst | `dos-orm/SKILL.md` |
60
60
  | **microi-left-right-layout** | 模块引擎“树形+表格/表单”左右布局与主外键过滤 | `microi-left-right-layout/SKILL.md` |
61
61
  | **datasource-engine** | SQL/V8/JSON 数据源设计、租户与权限、字段供数和验收 | `datasource-engine/SKILL.md` |
62
- | **job-engine** | 定时/后台任务、多节点租约、幂等、恢复和进度 | `job-engine/SKILL.md` |
63
- | **email-engine** | 多账号邮箱、IMAP/SMTP、自动同步、草稿、附件、发送防重和邮箱 MCP | `email-engine/SKILL.md` |
62
+ | **job-engine** | 定时/后台任务、多节点租约、幂等、恢复和进度 | `job-engine/SKILL.md` |
63
+ | **email-engine** | 多账号邮箱、IMAP/SMTP、自动同步、草稿、附件、发送防重和邮箱 MCP | `email-engine/SKILL.md` |
64
64
  | **message-notification** | 公众号/服务号、短信、邮件、平台内部通知、SignalR、幂等与商城交付 | `message-notification/SKILL.md` |
65
65
  | **search-engine** | Elasticsearch 索引、同步、查询、租户/数据范围和重建 | `search-engine/SKILL.md` |
66
66
  | **report-engine** | Rpt_Report 虚拟报表、数据源、聚合、写接口和导出 | `report-engine/SKILL.md` |
@@ -9,21 +9,21 @@ description: Microi AI 引擎、MiniMax 图片/音乐/视频生成与预览、
9
9
 
10
10
  平台媒体生成的受控 HTTP 入口包括 `/api/Ai/GenerateMiniMaxImage`、`/api/Ai/GenerateMiniMaxMusic`、`/api/Ai/CreateMiniMaxVideo`、`/api/Ai/GetMiniMaxVideoTask`、`/api/Ai/GetMiniMaxVideoFile`、`/api/Ai/PersistMiniMaxVideoFile`;AI 工作流统一调用 Managed 接口引擎 `/apiengine/platform-ai-workflow`,通过 `Action` 选择概览、节点详情、生成、列表、读取、保存或删除。调用方只提交业务参数和模型选择,供应商密钥、租户配额、任务归属和文件读取权限由服务端判定。生成结果必须先进入当前租户 HDFS 或受控临时句柄,浏览器不接触供应商密钥、图片 Base64、音频十六进制或原始视频任务 Id。`PersistMiniMaxVideoFile` 只能转存当前登录用户所属且已完成的任务,禁止作为任意 URL 搬运器。
11
11
 
12
- ## 能力
13
-
14
- ### 媒体模型目录与中转(2026-09)
15
-
16
- - 媒体选择以当前租户 `mic_ai.Id` 和实际媒体 `Model` 为准,图片、音乐、视频及配音请求携带 `AiModelId`。显式记录不可用时不得静默切换其它账号、主租户密钥或聊天模型。
17
- - `MediaProtocol` 与 `MediaModels` 由 AI助手应用包交付。目录项为 `{ Id, Name, Capability, Protocol }`,能力支持 `image/music/video/speech`;协议与模型名称分离,未知协议明确不可选。新增供应商协议仍须真实后端适配器和契约测试,不能只改模型名称。
18
- - `/api/Ai/GetMediaModels` 返回当前登录租户的可选目录,官方中转 `/v1/microi/media_models` 只返回安全投影,不含 Key、Endpoint 或供应商记录 Id。中转接收端按本机 `IsRelayModel=1` 的供应商目录选实际模型,不接受外部租户记录 Id。
19
- - 图片生成继续使用持久任务;等待中转结果与执行供应商请求的 Worker 必须分开调度并预留执行容量,避免同节点循环等待。中断后查询原 TaskId,不能把 HTTP 524、Uncertain 或 Token Plan 使用状态猜测为关键词违规或扣费。
20
- - 必须区分 MiniMax 开放平台 `image-01` 的 `subject_reference` 人物参考协议、MiniMax Code 的 `connector__matrix__generate_image` / `input_urls` 图像编辑工具,以及 OpenAI Images edits 协议。某个接口编辑失败,不能推断整个 MiniMax Code 不支持编辑;聊天界面选择 M3 也不证明实际图像工具的底层模型就是 M3。验收须看输出原图。
21
- - MiniMax Code 图像编辑使用独立 `mic_ai` 行:`MediaProtocol=minimax-connector-image`,逻辑模型 `minimax-code-image`,Endpoint 为官方 `https://agent.minimaxi.com` 或 `https://agent.minimax.io`。工具未开放底层 model 字段,不能伪造。只接受服务器发现的固定图像/上传/文件 URL 工具,不增加任意工具执行入口。
22
- - Connector 使用独立 OAuth 授权,不能复用 Token Plan API Key,也不能复制桌面 `electron` 登录态的 refresh_token。管理员通过连接账户或导入独立授权绑定引擎;凭据按租户和记录加密,续期使用共享锁与 CAS,目录、日志和响应不含 Token。应用包只扩展协议选项和凭据字段容量,不复制账号。
23
- - 原图先通过当前租户私有 HDFS 校验,再取得供应商临时上传凭证。Multipart 文件分段须先写 Content-Disposition 再写 Content-Type,避免供应商 OSS 返回 MalformedPOSTRequest。生成结果先保存 node_id 回执,再调用 get_asset_url 并转存 HDFS;已有节点时只恢复下载,不重新生成。临时 URL 不作为永久结果,也不携带 OAuth 头访问文件域名。失败状态提供 CanRecoverResult 时,可通过 RecoverMiniMaxImageTask 或中转任务 recover 入口显式恢复原 TaskId;恢复 Worker 必须再次检查节点,节点失效时禁止重新生图。4K 图片下载允许最大 64 MiB,并继续执行租户存储限额。每次工具调用前重新取得当前连接授权;明确 401 才可刷新后重试一次,超时不重发生成。
24
- - 升级要求包括 AI助手 v7.6.9、平台后端 v8.1.11 或更高版本、平台前端和中转节点程序;应用包只升级字段/受管资源,不复制租户密钥或替换运行二进制。媒体存储必须保留真实用户的上传开关、载荷和配额检查,仅可信后端能授权固定的私有参考图与公有生成结果目录,不能放宽普通用户上传策略。
25
- - MiniMax 参考图以已校验原始字节的 data URI 发送,仍须先执行租户私有 HDFS 上传与配额检查;参考图请求关闭 prompt_optimizer。人物主体参考重绘不能等同局部精确编辑,验收必须同时检查任务结果和图片实际内容。
26
- - 图片工具须按操作匹配模型能力:MiniMax 人物参考最多一张,不得用于消除、扩图、线稿还原、多图合成等结构编辑;前端过滤与后端校验必须一致。兼容媒体协议的型号由当前租户 mic_ai 目录验证,参数规范层不得再次把音乐、视频、配音固定为单一历史型号;未实现的供应商协议仍明确标为不可用。
12
+ ## 能力
13
+
14
+ ### 媒体模型目录与中转(2026-09)
15
+
16
+ - 媒体选择以当前租户 `mic_ai.Id` 和实际媒体 `Model` 为准,图片、音乐、视频及配音请求携带 `AiModelId`。显式记录不可用时不得静默切换其它账号、主租户密钥或聊天模型。
17
+ - `MediaProtocol` 与 `MediaModels` 由 AI助手应用包交付。目录项为 `{ Id, Name, Capability, Protocol }`,能力支持 `image/music/video/speech`;协议与模型名称分离,未知协议明确不可选。新增供应商协议仍须真实后端适配器和契约测试,不能只改模型名称。
18
+ - `/api/Ai/GetMediaModels` 返回当前登录租户的可选目录,官方中转 `/v1/microi/media_models` 只返回安全投影,不含 Key、Endpoint 或供应商记录 Id。中转接收端按本机 `IsRelayModel=1` 的供应商目录选实际模型,不接受外部租户记录 Id。
19
+ - 图片生成继续使用持久任务;等待中转结果与执行供应商请求的 Worker 必须分开调度并预留执行容量,避免同节点循环等待。中断后查询原 TaskId,不能把 HTTP 524、Uncertain 或 Token Plan 使用状态猜测为关键词违规或扣费。
20
+ - 必须区分 MiniMax 开放平台 `image-01` 的 `subject_reference` 人物参考协议、MiniMax Code 的 `connector__matrix__generate_image` / `input_urls` 图像编辑工具,以及 OpenAI Images edits 协议。某个接口编辑失败,不能推断整个 MiniMax Code 不支持编辑;聊天界面选择 M3 也不证明实际图像工具的底层模型就是 M3。验收须看输出原图。
21
+ - MiniMax Code 图像编辑使用独立 `mic_ai` 行:`MediaProtocol=minimax-connector-image`,逻辑模型 `minimax-code-image`,Endpoint 为官方 `https://agent.minimaxi.com` 或 `https://agent.minimax.io`。工具未开放底层 model 字段,不能伪造。只接受服务器发现的固定图像/上传/文件 URL 工具,不增加任意工具执行入口。
22
+ - Connector 使用独立 OAuth 授权,不能复用 Token Plan API Key,也不能复制桌面 `electron` 登录态的 refresh_token。管理员通过连接账户或导入独立授权绑定引擎;凭据按租户和记录加密,续期使用共享锁与 CAS,目录、日志和响应不含 Token。应用包只扩展协议选项和凭据字段容量,不复制账号。
23
+ - 原图先通过当前租户私有 HDFS 校验,再取得供应商临时上传凭证。Multipart 文件分段须先写 Content-Disposition 再写 Content-Type,避免供应商 OSS 返回 MalformedPOSTRequest。生成结果先保存 node_id 回执,再调用 get_asset_url 并转存 HDFS;已有节点时只恢复下载,不重新生成。临时 URL 不作为永久结果,也不携带 OAuth 头访问文件域名。失败状态提供 CanRecoverResult 时,可通过 RecoverMiniMaxImageTask 或中转任务 recover 入口显式恢复原 TaskId;恢复 Worker 必须再次检查节点,节点失效时禁止重新生图。4K 图片下载允许最大 64 MiB,并继续执行租户存储限额。每次工具调用前重新取得当前连接授权;明确 401 才可刷新后重试一次,超时不重发生成。
24
+ - 升级要求包括 AI助手 v7.6.9、平台后端 v8.1.11 或更高版本、平台前端和中转节点程序;应用包只升级字段/受管资源,不复制租户密钥或替换运行二进制。媒体存储必须保留真实用户的上传开关、载荷和配额检查,仅可信后端能授权固定的私有参考图与公有生成结果目录,不能放宽普通用户上传策略。
25
+ - MiniMax 参考图以已校验原始字节的 data URI 发送,仍须先执行租户私有 HDFS 上传与配额检查;参考图请求关闭 prompt_optimizer。人物主体参考重绘不能等同局部精确编辑,验收必须同时检查任务结果和图片实际内容。
26
+ - 图片工具须按操作匹配模型能力:MiniMax 人物参考最多一张,不得用于消除、扩图、线稿还原、多图合成等结构编辑;前端过滤与后端校验必须一致。兼容媒体协议的型号由当前租户 mic_ai 目录验证,参数规范层不得再次把音乐、视频、配音固定为单一历史型号;未实现的供应商协议仍明确标为不可用。
27
27
 
28
28
  平台 AI 包含聊天/流式聊天、模型代理、模型路由、订阅配额、NL2SQL、NL2V8、数据库 Schema 关键词检索、可选向量融合和 V8 Skill 文档检索。AI 输出是建议,不是授权;执行 SQL、V8 或 MCP 写入前仍走平台权限与确认。
29
29
 
@@ -68,19 +68,21 @@ AI 业务统一实现在 `Microi.Server/Microi.AI`。`Microi.Server/Microi.net.A
68
68
  - 9 张 `mic_sub_*` 订阅表与 `mci_ai_token_account`、`mci_ai_token_log` 由官方 `app.microi.ai-engine` 应用升级提供,必须同时声明 DDL、PhysicalColumns、DiyTables、DiyFields;`PromptPreview` 属于日志表正式字段。`mci_ai_token_recharge` 当前不在该运行时实体闭包内,禁止根据线上残留自行扩包。运行时发现缺失时失败关闭,禁止在请求路径自动建表、加列或修改业务 Schema。
69
69
  - `Sys_User.AiApiKey` 归官方 `app.microi.sys_user`,由系统账号包同时维护建表 DDL、PhysicalColumns 和隐藏只读 DiyField;AI助手包不得重复声明 `Sys_User`。缺列错误必须提示升级系统账号应用,不能误导用户升级 AI助手。
70
70
 
71
- ## 模型与密钥
72
-
73
- 存量模型配置的兼容验收组合包括 `GenerateMiniMaxImage + image-01`、`GenerateMiniMaxMusic + music-2.6`。这些组合只适用于服务端已配置且供应商账号仍有权限的旧路由;新路由仍遵循下列实时能力选择规则。验收必须同时检查实际返回的模型标识、媒体类型与 HDFS 读取,不能仅凭兼容接口名称判断底层模型。
74
-
71
+ ## 模型与密钥
72
+
73
+ 存量模型配置的兼容验收组合包括 `GenerateMiniMaxImage + image-01`、`GenerateMiniMaxMusic + music-2.6`。这些组合只适用于服务端已配置且供应商账号仍有权限的旧路由;新路由仍遵循下列实时能力选择规则。验收必须同时检查实际返回的模型标识、媒体类型与 HDFS 读取,不能仅凭兼容接口名称判断底层模型。
74
+
75
75
  - 模型 Provider、Endpoint、ApiKey、AuthPrefix 和上游模型 Id 只保存在服务端受保护配置。
76
76
  - 普通用户使用平台签发的受限 API Key/订阅身份,不能枚举或读取上游密钥。
77
- - MiniMax 对话媒体必须区分意图模型与生成工具:`MiniMax-M3` 是对话与工具编排模型;图片入口兼容名仍为 `GenerateMiniMaxImage`,实际模型由 `mic_ai.MediaProtocol / MediaModels` 与当前媒体选择决定,不能固定为 `image-01`。MiniMax Code 的 `generate_image + input_urls` 使用 `minimax-connector-image` 协议和逻辑路由 `minimax-code-image`;供应商未公开底层图像模型名,不得把界面选择的 M3 当成图片生成底模。纯音乐优先使用所配置且可用的 `music-3.0`,兼容 `music-2.6`;托管音乐只有明确返回 410 退役终态时才允许切到官方开源 `MiniMax-Music3`,不得把超时、5xx、额度不足当作回退条件。目标账号能力必须实时校准,不得用文本说明冒充生成产物。
78
- - `GenerateMiniMaxImage` 使用稳定 `RequestId` 持久入队,返回 `Code=2 + Data.TaskId` 后只通过 `GET /api/Ai/GetMiniMaxImageTask?taskId=...` 查询。只有 `Code=1 + Images` 才表示原图已写入 HDFS;浏览器超时、刷新或停止等待不能取消后台生成,也不能换请求号自动重发。图片任务复用 `mci_background_task` 的租户/用户隔离、数据库唯一键、分布式租约和 fencing,原生 Worker Key 为 `__microi_native_ai_image__`,不可由租户 V8 覆盖。请求参数只保存在服务端私有任务列,状态接口不返回提示词或参考图。
79
- - `GenerateMiniMaxImage` 可接收最多 4 张 JPEG/PNG/WebP 参考图;先写当前租户私有 HDFS,由可信适配器上传原图或提供短时签名 URL,浏览器与响应均不得得到供应商上传票据和签名地址。`image-01` 的 `subject_reference` 是人物参考重绘,不能据此声称所有 MiniMax 工具都不支持消除。消除、换背景等操作须选择目录中声明对应编辑能力的协议:MiniMax Code 使用 `input_urls`,OpenAI Images 兼容模型使用 edits;实际效果必须逐张检查,生成式身份保持、发丝边缘与像素不变不能仅凭接口成功判为通过。黑白、纯色背景抠除、缩放、裁剪、旋转、翻转、格式转换和拼图使用 `platform-ai-runtime/ProcessImage + V8.Image` 精确处理。
80
- - MiniMax Code 媒体连接使用管理员独立 OAuth 授权,不读取或复用桌面客户端凭据。令牌在可信后端按租户及引擎记录绑定加密保存,刷新使用共享锁与旧值比较;明确 401 可刷新后重试一次,不确定生成请求不得重发。生成结果节点须先保存到共享存储;下载或 HDFS 失败且存在节点时,通过同一 TaskId 的 `RecoverMiniMaxImageTask` 或 `/v1/microi/image_tasks/{taskId}/recover` 恢复已有图片,不再次生成。目录只公开能力元数据。`MediaModels` 可扩展同协议模型;新的供应商协议仍需适配器、商城字段及真实中转验收,不能只填名称就宣称已接通。
81
- - 吾码节点之间的图片中转使用 `POST /v1/microi/image_tasks` 与 `GET /v1/microi/image_tasks/{taskId}`,服务端平台 API Key 鉴权,提交必须有稳定 `Idempotency-Key`。查询不占用生成额度;接收节点只能使用已启用且公布的供应商媒体模型,禁止自调用中转环路。MiniMax 官方适配器调用同步 `/v1/image_generation`,其它供应商由对应协议适配器处理。消费者、官方中转节点和前端必须更新到同一持久任务协议;应用包更新不能代替平台二进制与前端更新。
82
- - HTTP 524、连接取消或空响应仅说明传输状态不确定,不能断言提示词违规、Token Plan 不可用或已扣费。明确供应商拒绝保留 `UpstreamHttpStatus`、`UpstreamCode` 和错误消息;`Failed/Uncertain` 不能在回读时合并成“仍在生成”。MiniMax 同步接口没有本任务可用的结果查询号时,不得伪造回查成功或盲目重发;相同 RequestId 参数冲突必须拒绝。
83
- - 图片与音乐都使用稳定 `RequestId` 和共享幂等;相同参数回放、参数冲突拒绝,上游结果不确定时禁止换 Id 盲重试。音乐当前仅向平台管理员开放且固定无人声;托管结果为 MP3,开源回退为 32kHz 立体声 WAV、10~60 秒。成功内容由服务端校验后直接写入当前租户公有 HDFS。
77
+ - MiniMax 对话媒体必须区分意图模型与生成工具:`MiniMax-M3` 是对话与工具编排模型;图片入口兼容名仍为 `GenerateMiniMaxImage`,实际模型由 `mic_ai.MediaProtocol / MediaModels` 与当前媒体选择决定,不能固定为 `image-01`。MiniMax Code 的 `generate_image + input_urls` 使用 `minimax-connector-image` 协议和逻辑路由 `minimax-code-image`;供应商未公开底层图像模型名,不得把界面选择的 M3 当成图片生成底模。纯音乐优先使用所配置且可用的 `music-3.0`,兼容 `music-2.6`;托管音乐只有明确返回 410 退役终态时才允许切到官方开源 `MiniMax-Music3`,不得把超时、5xx、额度不足当作回退条件。目标账号能力必须实时校准,不得用文本说明冒充生成产物。
78
+ - `GenerateMiniMaxImage` 使用稳定 `RequestId` 持久入队,返回 `Code=2 + Data.TaskId` 后只通过 `GET /api/Ai/GetMiniMaxImageTask?taskId=...` 查询。只有 `Code=1 + Images` 才表示原图已写入 HDFS;浏览器超时、刷新或停止等待不能取消后台生成,也不能换请求号自动重发。图片任务复用 `mci_background_task` 的租户/用户隔离、数据库唯一键、分布式租约和 fencing,原生 Worker Key 为 `__microi_native_ai_image__`,不可由租户 V8 覆盖。请求参数只保存在服务端私有任务列,状态接口不返回提示词或参考图。
79
+ - `GenerateMiniMaxImage` 可接收最多 4 张 JPEG/PNG/WebP 参考图;先写当前租户私有 HDFS,由可信适配器上传原图或提供短时签名 URL,浏览器与响应均不得得到供应商上传票据和签名地址。`image-01` 的 `subject_reference` 是人物参考重绘,不能据此声称所有 MiniMax 工具都不支持消除。消除、换背景等操作须选择目录中声明对应编辑能力的协议:MiniMax Code 使用 `input_urls`,OpenAI Images 兼容模型使用 edits;实际效果必须逐张检查,生成式身份保持、发丝边缘与像素不变不能仅凭接口成功判为通过。黑白、纯色背景抠除、缩放、裁剪、旋转、翻转、格式转换和拼图使用 `platform-ai-runtime/ProcessImage + V8.Image` 精确处理。
80
+ - MiniMax Code 媒体连接使用管理员独立 OAuth 授权,不读取或复用桌面客户端凭据。令牌在可信后端按租户及引擎记录绑定加密保存,刷新使用共享锁与旧值比较;明确 401 可刷新后重试一次,不确定生成请求不得重发。生成结果节点须先保存到共享存储;下载或 HDFS 失败且存在节点时,通过同一 TaskId 的 `RecoverMiniMaxImageTask` 或 `/v1/microi/image_tasks/{taskId}/recover` 恢复已有图片,不再次生成。目录只公开能力元数据。`MediaModels` 可扩展同协议模型;新的供应商协议仍需适配器、商城字段及真实中转验收,不能只填名称就宣称已接通。
81
+ - 吾码节点之间的图片中转使用 `POST /v1/microi/image_tasks` 与 `GET /v1/microi/image_tasks/{taskId}`,服务端平台 API Key 鉴权,提交必须有稳定 `Idempotency-Key`。查询不占用生成额度;接收节点只能使用已启用且公布的供应商媒体模型,禁止自调用中转环路。MiniMax 官方适配器调用同步 `/v1/image_generation`,其它供应商由对应协议适配器处理。消费者、官方中转节点和前端必须更新到同一持久任务协议;应用包更新不能代替平台二进制与前端更新。
82
+ - HTTP 524、连接取消或空响应仅说明传输状态不确定,不能断言提示词违规、Token Plan 不可用或已扣费。明确供应商拒绝保留 `UpstreamHttpStatus`、`UpstreamCode` 和错误消息;`Failed/Uncertain` 不能在回读时合并成“仍在生成”。MiniMax 同步接口没有本任务可用的结果查询号时,不得伪造回查成功或盲目重发;相同 RequestId 参数冲突必须拒绝。
83
+ - 图片与音乐都使用稳定 `RequestId` 和共享幂等;相同参数回放、参数冲突拒绝,上游结果不确定时禁止换 Id 盲重试。音乐当前仅向平台管理员开放且固定无人声;托管结果为 MP3,开源回退为 WAV、10~60 秒;采样率、声道、码率和时长以实际文件头为准。成功内容由服务端校验后直接写入当前租户公有 HDFS。
84
+ - `GenerateMiniMaxMusic`(HTTP 与 V8)持久入队后返回 `Code=2 + TaskId`;使用 `GET /api/Ai/GetMiniMaxMusicTask?taskId=...` 或 `V8.AI.GetMiniMaxMusicTask(taskId)` 查询,只有 `Code=1 + Permanent=true + FileUrl` 是成功。任务复用共享数据库唯一键、租约和原生音乐 Worker;HTTP 断连不取消生成,前端按当前 API、租户、用户保存原任务并恢复查询。图片与音乐的中转等待任务合并计算容量,必须为供应商执行任务保留槽位。
85
+ - 音乐中转使用 `POST /v1/microi/music_tasks`、`GET /v1/microi/music_tasks/{taskId}` 和平台 API Key,提交携带稳定 `Idempotency-Key`;客户端节点和中转节点均需更新。官方 Music3 事件编号必须在读取 SSE 前写入共享 Redis,完成文件地址在下载前保存,整个事件流受总时限约束。存在有效原回执时才允许 `POST /api/Ai/RecoverMiniMaxMusicTask?taskId=...`(V8 同名方法)或中转 `/v1/microi/music_tasks/{taskId}/recover` 恢复;不得接受新提示词或再提交供应商生成。没有原回执的旧 `Uncertain` 不能自动修复为成功。应用包更新不替代前后端和中转二进制升级。
84
86
  - 聊天附件的公有媒体 URL 优先按当前运行租户 `FileServer + FilePath` 解析,禁止写死域名或沿用其它租户的前缀。图片使用 Element Plus `el-image` 的 `preview-src-list` 原页放大,不能套 `target="_blank"`;音乐使用 `<audio controls preload="metadata">` 在线播放。媒体是结构化附件,文本才走安全 Markdown 渲染,禁止拼接任意 HTML 绕过 URL/类型校验。
85
87
  - MiniMax 自 2026-08-20 起不再向新用户开放付费 Music/Lyrics API,并停止旧免费 Music 模型。既有 `music-3.0` 账号仍可优先直连;官方开源 `MiniMax-Music3` Space 可作为明确 410 后的回退,但公开 ZeroGPU 配额不是生产 SLA。需要专属额度时只在既有服务端 `mic_ai` 模型路由中保存官方 Space Endpoint 与受保护 Hugging Face Token,不新增 API `AppSettings`、环境变量或前端密钥。Provider/中转账号未开通、额度不足或上游停用时必须返回可诊断失败,不生成占位音频、不伪报成功。图片、音乐和视频的真实可用性都需用目标租户登录态调用及媒体 GET/播放回读证明,源码存在或接口 HTTP 200 不能替代生成成功。
86
88
  - MiniMax 视频生成属于可复用供应商原子能力,应实现在 `Microi.AI`,Controller 只读取可信用户/`OsClient`、绑定参数并传递取消信号。理由是上游密钥隔离、异步 `task_id → file_id → download_url` 协议、订阅额度和跨节点幂等都不是某个可编辑接口引擎应复制的业务逻辑;具体文章、提示词和分发编排仍可留在 Job/接口引擎/发布 Skill。
@@ -102,24 +104,24 @@ AI 业务统一实现在 `Microi.Server/Microi.AI`。`Microi.Server/Microi.net.A
102
104
  - 官方 AI助手应用归 `app.microi.ai-engine`。v6.3.6 的接口引擎必须严格只有 Managed `mci_ai_data_assistant`、Managed `platform-ai-account`、Managed `platform-ai-runtime` 和 CreateIfMissing `platform-ai-custom-hook` 四项,并声明 `V8.Method.ManageAiPlatform`、`V8.Method.RequireManagedProtocolContext` 与所需 `V8.AI` 能力;后端缺少任一能力时安装预检失败关闭。
103
105
  - `ai_app_list`、`ai_app_detail`、`ai_app_get_file`、`ai_app_save_file`、`ai_app_create`、`ai_app_build`、`ai_app_preview`、`ai_app_download_source_zip`、`ai_app_download_build_zip`、`ai_app_moveobject_probe`、`ai_app_moveobject_exec_probe`、`ai_app_publish_store` 这 12 个 `ai_app_*` 归 `app.microi.store` 维护。AI助手包移除它们的资源选择和所有权声明,但不会删除目标租户既有运行时接口记录;既有记录继续由应用商城包升级。
104
106
  - v6.3.6 还必须保持 AI助手包的 DDL、PhysicalColumns、DiyTables、DiyFields、DataSets 全层不再包含重复的 `mci_ai_app_version`、`mci_ai_app_file`、`sys_microistore`,这些表交回 Store/SaaS 既有平台包维护;当前仅 AI助手包拥有的 `app_mic_aiapp`、`mci_ai_app` 继续保留。
105
- - 普通角色读取业务数据必须匹配启用的 `mci_ai_role_policy`,这不是常规对话的前置条件。只有后端可信的 `V8.CurrentUser.Level >= 9999` 可以在新安装租户缺少角色策略时获得数据分析安全兜底:从目标租户动态读取已启用业务域和模型,范围为 `All`,仍保持 `AllowRawSql=false`、敏感字段默认关闭。不得相信客户端提交的 Level、角色名或账号名。
106
- - 所有已登录账号默认可使用 AI 常规对话,包括未分配任何角色、未申请业务身份、没有数据域、策略禁用或原模型已失效的账号。官方 AI助手 v7.7.1 在 `mic_ai` 的“基础配置”提供 `AllowAllRolesChat`(所有角色可常规对话),默认 `1`;存量缺失/null/空值兼容开启,显式 `0/false/'0'/'false'` 关闭该模型的公共对话使用权,启用值兼容 `1/true/'1'/'true'`。此开关不授予业务数据、SQL、菜单或管理权限,也不绕过登录、供应商额度和模型启用状态。
107
- - 历史“所有角色使用助手都必须逐个建策略”的经验只适用于授予这些角色业务分析权限,不再适用于打开助手或常规对话。需要分析数据的目标角色仍应有显式策略;受限角色使用 `Self`/`Department` 与最小业务域,管理角色才可使用经确认的 `All`。禁止把“人人可打开助手”实现成普通角色默认全库可读。
108
- - `Sys_Config.DisableAiAssistant` 是负向开关:缺失、空值或 `0/false` 都显示 AI 助手,只有显式 `1/true` 才关闭图标。历史包曾复用旧 `IsShowAiAssistant` 的字段元数据 Id 就地改名;因此清理旧开关必须按当前表名和字段名回读定位,不能只按历史 Id 删除,避免误删已复用该 Id 的新开关。官方母版必须通过标准 MCP 删除旧字段元数据,不能仅隐藏;新版包的 DiyFields、PhysicalColumns、DDL 及生成器均不得重新创建旧开关。平台删除字段可保留存量物理列兼容,但新前端只读取 DisableAiAssistant,不得重建正向开关或改写租户现有配置值。关闭该开关前后都要做权限分层验收:回读 `sys_role` 与 `mci_ai_role_policy`,需要业务分析的角色应有明确启用策略,`AllowedDomains`、`AllowedModels` 有效且模型仍处于启用状态;无策略账号仍可常规对话。至少用无角色、超级管理员、普通员工和客户身份分别调用 `Bootstrap`,确认 `Enabled=true`,并独立验证 `CanQueryData` 与数据范围符合角色。仅看到入口图标不算可用。
107
+ - 普通角色读取业务数据必须匹配启用的 `mci_ai_role_policy`,这不是常规对话的前置条件。只有后端可信的 `V8.CurrentUser.Level >= 9999` 可以在新安装租户缺少角色策略时获得数据分析安全兜底:从目标租户动态读取已启用业务域和模型,范围为 `All`,仍保持 `AllowRawSql=false`、敏感字段默认关闭。不得相信客户端提交的 Level、角色名或账号名。
108
+ - 所有已登录账号默认可使用 AI 常规对话,包括未分配任何角色、未申请业务身份、没有数据域、策略禁用或原模型已失效的账号。官方 AI助手 v7.7.1 在 `mic_ai` 的“基础配置”提供 `AllowAllRolesChat`(所有角色可常规对话),默认 `1`;存量缺失/null/空值兼容开启,显式 `0/false/'0'/'false'` 关闭该模型的公共对话使用权,启用值兼容 `1/true/'1'/'true'`。此开关不授予业务数据、SQL、菜单或管理权限,也不绕过登录、供应商额度和模型启用状态。
109
+ - 历史“所有角色使用助手都必须逐个建策略”的经验只适用于授予这些角色业务分析权限,不再适用于打开助手或常规对话。需要分析数据的目标角色仍应有显式策略;受限角色使用 `Self`/`Department` 与最小业务域,管理角色才可使用经确认的 `All`。禁止把“人人可打开助手”实现成普通角色默认全库可读。
110
+ - `Sys_Config.DisableAiAssistant` 是负向开关:缺失、空值或 `0/false` 都显示 AI 助手,只有显式 `1/true` 才关闭图标。历史包曾复用旧 `IsShowAiAssistant` 的字段元数据 Id 就地改名;因此清理旧开关必须按当前表名和字段名回读定位,不能只按历史 Id 删除,避免误删已复用该 Id 的新开关。官方母版必须通过标准 MCP 删除旧字段元数据,不能仅隐藏;新版包的 DiyFields、PhysicalColumns、DDL 及生成器均不得重新创建旧开关。平台删除字段可保留存量物理列兼容,但新前端只读取 DisableAiAssistant,不得重建正向开关或改写租户现有配置值。关闭该开关前后都要做权限分层验收:回读 `sys_role` 与 `mci_ai_role_policy`,需要业务分析的角色应有明确启用策略,`AllowedDomains`、`AllowedModels` 有效且模型仍处于启用状态;无策略账号仍可常规对话。至少用无角色、超级管理员、普通员工和客户身份分别调用 `Bootstrap`,确认 `Enabled=true`,并独立验证 `CanQueryData` 与数据范围符合角色。仅看到入口图标不算可用。
109
111
  - 提审要求关闭 AI 入口时,必须把“关闭AI助手图标”设为 `DisableAiAssistant=1`,从数据库、客户端实际配置接口和入口逐层验收,不能用旧正向字段为 `0` 代替。官方包发布与其他租户安装是两个独立动作;未执行目标租户安装或字段清理时,不得宣称全体存量租户已移除旧元数据。
110
- - 角色策略存在但 `AllowedModels` 为空或只引用已删除模型时,业务分析不可用,常规对话仍动态使用当前租户启用且开放的对话模型。要恢复原业务分析能力,应经管理员授权补齐当前租户模型白名单并回读,保留原 `DataScope/AllowedDomains`,不能静默把任何新模型当作已获准接收业务数据。禁止删除角色策略校验或在客户端强制 `Enabled=true`。
111
- - 商城包不能携带发布租户的角色 Id、模型 Id 或密钥;应携带业务域定义和接口引擎,由安装后的目标租户动态发现自己的启用模型。发布后回读 `sys_microistore.AppVersion/AppPakcet`,并真实执行 `Bootstrap` 验证超级管理员可用、模型非空、快捷问题存在。
112
-
113
- ### 常规对话与业务数据权限分离(强制)
114
-
115
- - `Bootstrap.Enabled` 表示登录账号可进入助手,`ChatEnabled` 表示存在可用对话模型,`CanQueryData` 独立表示可分析已授权业务数据。无数据权限时返回空 `AllowedDomains` 和“常规对话”;模型列表为空时返回 `MODEL_UNAVAILABLE`,客户端提示检查模型,不得再显示“当前角色未开通 AI助手”。入口的 `DisableAiAssistant`、模型的 `AllowAllRolesChat` 和业务数据策略是三种不同含义,不能互相替代。
116
- - 多角色权限必须按“数据域 + 当前模型”分别合并。A 域的 `All` 不能提升 B 域的 `Self`,其它模型的白名单不能授权本轮模型读取数据。没有适用授权、范围无法落到固定业务字段、敏感字段未开放时,业务读取失败关闭。
117
- - 普通问候、写作与知识问答不自动查询全部业务域。常规对话路径不查询业务表、不提供 Schema/SQL/工具,也不把历史数据模式消息重新送入无数据权限的模型上下文。客户端伪造 Mode、RoleIds、Level、AllowedDomains 或模型 Id 不能扩大范围。
118
- - 对话模型发现必须按当前模型和媒体目录判断能力,纯图片/音乐/视频/配音型号不能成为默认文本模型;中转目录只暴露安全投影,不返回供应商 ApiKey 或 Endpoint。远端 HTTP 可能返回 Promise,必须等待真实模型结果,不能把 Promise 当字符串或用统计兜底冒充常规对话成功。
119
- - 打开助手和身份变更时重新获取 Bootstrap;请求结果按用户与请求代次隔离,旧角色/旧账号请求不能覆盖新状态。模型缺失、网络失败、会话失效分别处理,并保留重试。
120
- - 欢迎语、输入提示与等待状态也必须区分常规对话和业务分析;无数据权限时不得声称已连接业务数据、正在汇总业务记录。前端定时动画不能冒充服务端实际执行进度。
121
- - 官方 AI助手 v7.7.2 的 `mci_ai_data_assistant.ApiRole` 显式使用平台支持的 `["$authenticated"]`,`AllowAnonymous=0`,让 `OnlyGet` 只读角色也能调用助手和保存自己的对话。不能通过清空角色 `BaseLimit`、给账号添加管理员角色或放开其它业务接口解决聊天入口受阻;必须用真实只读客户账号验证 Bootstrap、Chat、会话记录与原业务限制仍成立。
122
- - 最低验收:无角色、客户、员工、管理、多角色账号分别执行 Bootstrap 和真实 Chat;确认无数据账号 `UsedAi=true/Mode=chat/Domains=[]`,有数据账号按本人/部门范围查询。测试禁用策略、旧模型、显式关闭公共对话模型、纯媒体模型、跨账号历史、伪造权限和模型故障。管理员单账号成功、仅图标截图或本地 mock 成功都不能代替普通账号真实验收。
112
+ - 角色策略存在但 `AllowedModels` 为空或只引用已删除模型时,业务分析不可用,常规对话仍动态使用当前租户启用且开放的对话模型。要恢复原业务分析能力,应经管理员授权补齐当前租户模型白名单并回读,保留原 `DataScope/AllowedDomains`,不能静默把任何新模型当作已获准接收业务数据。禁止删除角色策略校验或在客户端强制 `Enabled=true`。
113
+ - 商城包不能携带发布租户的角色 Id、模型 Id 或密钥;应携带业务域定义和接口引擎,由安装后的目标租户动态发现自己的启用模型。发布后回读 `sys_microistore.AppVersion/AppPakcet`,并真实执行 `Bootstrap` 验证超级管理员可用、模型非空、快捷问题存在。
114
+
115
+ ### 常规对话与业务数据权限分离(强制)
116
+
117
+ - `Bootstrap.Enabled` 表示登录账号可进入助手,`ChatEnabled` 表示存在可用对话模型,`CanQueryData` 独立表示可分析已授权业务数据。无数据权限时返回空 `AllowedDomains` 和“常规对话”;模型列表为空时返回 `MODEL_UNAVAILABLE`,客户端提示检查模型,不得再显示“当前角色未开通 AI助手”。入口的 `DisableAiAssistant`、模型的 `AllowAllRolesChat` 和业务数据策略是三种不同含义,不能互相替代。
118
+ - 多角色权限必须按“数据域 + 当前模型”分别合并。A 域的 `All` 不能提升 B 域的 `Self`,其它模型的白名单不能授权本轮模型读取数据。没有适用授权、范围无法落到固定业务字段、敏感字段未开放时,业务读取失败关闭。
119
+ - 普通问候、写作与知识问答不自动查询全部业务域。常规对话路径不查询业务表、不提供 Schema/SQL/工具,也不把历史数据模式消息重新送入无数据权限的模型上下文。客户端伪造 Mode、RoleIds、Level、AllowedDomains 或模型 Id 不能扩大范围。
120
+ - 对话模型发现必须按当前模型和媒体目录判断能力,纯图片/音乐/视频/配音型号不能成为默认文本模型;中转目录只暴露安全投影,不返回供应商 ApiKey 或 Endpoint。远端 HTTP 可能返回 Promise,必须等待真实模型结果,不能把 Promise 当字符串或用统计兜底冒充常规对话成功。
121
+ - 打开助手和身份变更时重新获取 Bootstrap;请求结果按用户与请求代次隔离,旧角色/旧账号请求不能覆盖新状态。模型缺失、网络失败、会话失效分别处理,并保留重试。
122
+ - 欢迎语、输入提示与等待状态也必须区分常规对话和业务分析;无数据权限时不得声称已连接业务数据、正在汇总业务记录。前端定时动画不能冒充服务端实际执行进度。
123
+ - 官方 AI助手 v7.7.2 的 `mci_ai_data_assistant.ApiRole` 显式使用平台支持的 `["$authenticated"]`,`AllowAnonymous=0`,让 `OnlyGet` 只读角色也能调用助手和保存自己的对话。不能通过清空角色 `BaseLimit`、给账号添加管理员角色或放开其它业务接口解决聊天入口受阻;必须用真实只读客户账号验证 Bootstrap、Chat、会话记录与原业务限制仍成立。
124
+ - 最低验收:无角色、客户、员工、管理、多角色账号分别执行 Bootstrap 和真实 Chat;确认无数据账号 `UsedAi=true/Mode=chat/Domains=[]`,有数据账号按本人/部门范围查询。测试禁用策略、旧模型、显式关闭公共对话模型、纯媒体模型、跨账号历史、伪造权限和模型故障。管理员单账号成功、仅图标截图或本地 mock 成功都不能代替普通账号真实验收。
123
125
 
124
126
  ## Schema 检索双模式
125
127
 
@@ -1,177 +1,177 @@
1
- ---
2
- name: ai-platform-governance
3
- description: Microi吾码 AI 平台治理中心设计、调用、扩展、应用商城升级与验收规范。用于门户与资源版本、身份目录/用户组/权限解释、配置模板与漂移、功能开关、发布审批/门禁/断点回滚、服务注册路由与韧性、Trace/告警/日志生命周期、资产物料、协作租约和可恢复导入。
4
- ---
5
-
6
- > **Codex 非阻塞自动更新:** 当前宿主为 Codex 时,吾码 CLI、Codex 插件与工作区 AI/MCP 由后台自动更新;需要诊断时读取 `../microi-codex-installer/SKILL.md`。更新失败、等待空闲或尚未重载均不得阻断当前、正在进行或新建任务。非 Codex 宿主跳过此项。
7
-
8
- # Microi吾码 AI 平台治理中心
9
-
10
- <!-- microi-progressive:begin -->
11
- <!-- microi-progressive:chunk id=ai-platform-governance-000 sha256=48b82af9f11388d6872cf90aa2c74a1d35c1db948483f30615ce054989ef0d77 -->
12
- ## 何时使用
13
-
14
- 以下任一需求都应使用本 Skill:
15
-
16
- - 门户项目、插槽、资产、版本发布、Diff 或回滚;
17
- - 身份目录同步、动态用户组、标签、人群圈选、批量授权、访问申请、临时权限或权限解释;
18
- - 配置模板/继承/Secret 引用、配置漂移或功能开关;
19
- - 发布计划、多人审批、职责分离、自动门禁、断点续发或回滚;
20
- - 服务注册、实例心跳/排空、版本/区域/标签/权重路由、限流、熔断、重试、降级或服务拓扑;
21
- - W3C Trace、告警规则、值班升级、可靠通知或日志热温冷生命周期;
22
- - 可复用组件/区块资产、依赖解析、协作租约或跨资源变更集;
23
- - JSON/CSV/Excel 可恢复导入;
24
- - 发布或安装官方应用 `ai-platform-studio`。
25
-
26
- <!-- /microi-progressive:chunk -->
27
- <!-- microi-progressive:chunk id=ai-platform-governance-001 sha256=47197af80919be7e08ef051884e70900714bdf53f551fad16e119a86d6efb63c -->
28
- ## 不可破坏的边界
29
-
30
- - DiyToken 是唯一会话入口;继续复用现有用户、角色、部门、菜单、表权限和数据范围,禁止建立第二套 Token/RBAC。
31
- - 所有治理事实写入当前 `OsClient` 数据库或租户隔离 Redis;禁止把 `static`、单例字典、本机定时器或浏览器存储作为平台完成事实。
32
- - 普通业务编排优先接口引擎。C# 只提供目录协议/Secret 隔离、真实 FormEngine 权限解释、Trace/日志物理访问和 Redis 原子缓存等底层可信原子能力。
33
- - 核心资源由应用商城交付,不为表、字段、菜单、接口、任务或种子数据添加定制 `Microi.Upgrade` 迁移。
34
- - 所有危险动作必须是 Plan/DryRun → Hash/CAS → 幂等执行 → 回读 → 条件回滚。
35
- - 锁只解决并发,不代替稳定幂等键、唯一约束、状态机、outbox/inbox 或条件写入。
36
- - Secret 只保存引用;列表、Diff、错误、日志、截图、导出和运行台账不得出现密码、Token、私钥或连接串原文。
37
-
38
- <!-- /microi-progressive:chunk -->
39
- <!-- microi-progressive:chunk id=ai-platform-governance-002 sha256=527f1cda978f88d0d1507d90aac71089f7585699f0ad7d5266dc7e40ba026b7c -->
40
- ## 官方应用事实
41
-
42
- 应用 Key:`ai-platform-studio`,当前资源合同版本:`v2.0.9`。
43
-
44
- - 40 张 `mci_` 治理表和 5 张运行基础表,应用包共 45 张表、873 个字段;
45
- - 42 条后台菜单兼容记录:仅 `AI平台治理` 作为可见 MicroService 入口;历史工作台和 40 个数据菜单保留原 Id、权限与升级身份,但统一隐藏;
46
- - 64 个接口引擎:57 个 `Managed`,7 个 `CreateIfMissing`;
47
- - 1 个 `MciAiPlatformMinuteSweep` 维护任务;
48
- - 10 个微服务路由:`overview`、`portal`、`identity`、`access`、`configuration`、`release`、`services`、`observability`、`assets`、`import`。
49
- - v2.0.9 保持表、接口、任务和菜单 Id 合同不变;10 个业务域页面及 40 类治理资源全部由工作台内部路由、操作面板和台账入口承载。隐藏的历史工作台菜单必须使用独立兼容 URL,不能与新的唯一入口争用 `sys_menu.Url`。发行版本、Manifest 版本与 `.microi-micro-app.json` 运行时版本必须同时提升并保持一致。内部切换只更新异步内容区并显示局部骨架屏,主题/reset/装饰样式限定在 `[data-mci-ui-root="ai-platform-studio"]`,不得重挂宿主 Tab 或污染吾码 Logo 与主菜单。
50
-
51
- 租户 Hook:
52
-
53
- ```text
54
- mci-portal-publish-extension
55
- mci-identity-source-extension
56
- mci-release-gate-extension
57
- mci-alert-notify-extension
58
- mci-asset-validate-extension
59
- mci-log-archive-extension
60
- mci-release-execute-extension
61
- ```
62
-
63
- Hook 首次创建后归租户维护,升级永不覆盖,也不得把同 Key 改回 `Managed`。
64
-
65
- <!-- /microi-progressive:chunk -->
66
- <!-- microi-progressive:chunk id=ai-platform-governance-003 sha256=3d43295846e19e8b5cb526442ff8aff8f0317db88f5be803b5798e63118546e2 -->
67
- ## 菜单层级与语义
68
-
69
- 应用安装或升级后只保留一个可见入口,禁止把历史工作台或 40 个数据菜单继续暴露到导航:
70
-
71
- ```text
72
- 系统引擎 (cdc0844b-7249-4d64-a9c3-563a15c9cd20)
73
- └─ AI平台治理 (MicroService: /micro-app/ai-platform-studio/overview)
74
- ```
75
-
76
- `AI平台治理` 是 10 个治理页面的唯一可见操作入口,必须同时绑定 `MicroServiceId`、`MicroServicePageId`、`MicroServiceRoutePath=/overview` 和 `MicroServiceKey=ai-platform-studio`;不得只创建普通 URL 菜单。历史菜单记录必须保持稳定 Id 并设置 `Display=0`、`AppDisplay=0`,避免删除后破坏旧角色权限、收藏与升级定位。`system.manifest.json.menuCatalog` 是 40 类治理资源用途与工作台内部分组的事实源,它们按以下 9 个业务域组织:
77
-
78
- | 业务域 | 数据菜单 | 主要作用 |
79
- |---|---|---|
80
- | 门户装配 | 门户项目、门户插槽、门户资源、资源版本 | 组合门户并维护不可变发布版本 |
81
- | 身份目录 | 身份连接器、身份同步、身份冲突、组织快照 | 同步外部身份并处理冲突 |
82
- | 人群与授权 | 动态用户组、用户组成员、用户标签、标签分配、授权变更集、授权变更明细、访问申请、临时授权 | 按人群申请、授予、到期回收并保留证据 |
83
- | 配置与灰度 | 配置模板、配置漂移、功能开关 | 管理配置基线、环境偏差和灰度开关 |
84
- | 发布治理 | 发布计划、发布审批、发布运行、变更台账 | 计划、审批、门禁、执行、恢复和审计发布 |
85
- | 服务治理 | 服务目录、服务实例、流量策略、调用结果、服务拓扑 | 管理实例租约、路由韧性和调用事实 |
86
- | 可观测与日志 | 可观测策略、规则评估台账、告警事件、告警路由、告警送达、日志策略、日志生命周期 | 监控、告警、可靠通知和日志归档闭环 |
87
- | 资产与协作 | 资产包、资产版本、协作租约 | 交付可复用资产并避免并发覆盖 |
88
- | 数据迁移 | 导入批次、导入暂存行 | 预检、分片执行、恢复和回滚大批量导入 |
89
-
90
- 向用户解释时必须区分页面类型:`配置` 是日常维护入口,`审批/处置` 在有待办或异常时使用,`运行` 用于观察和恢复任务,`台账` 主要供审计与排错。不得把台账页描述成需要人工逐项维护的业务模块。
91
-
92
- <!-- /microi-progressive:chunk -->
93
- <!-- microi-progressive:chunk id=ai-platform-governance-004 sha256=f4fbda7d2522d95e4aaa6f010637b6dfe652a7871614177ce489df7830b9c911 -->
94
- ## 通用调用规则
95
-
96
- 1. 通过 MCP 回读当前表结构、菜单、接口、应用和微服务事实。
97
- 2. 调用 `*-plan`、`*-publish` 的 `DryRun=true` 或专用预检接口。
98
- 3. 保存返回的 `PlanHash/ContentHash/RowVersion`,展示影响和阻断项。
99
- 4. 只有用户授权后执行写操作;服务端从 DiyToken 重算身份与租户。
100
- 5. 写后回读主记录、不可变版本、运行台账和实际页面。
101
- 6. 分开报告源码/测试、远端写入、浏览器、应用商城和生产部署证据。
102
-
103
- 旧 Hash、旧 RowVersion、旧 fencing token、未知状态、未知步骤或未知字段一律失败关闭。
104
-
105
- <!-- /microi-progressive:chunk -->
106
- <!-- microi-progressive:chunk id=ai-platform-governance-005 sha256=6298a32cb0b0c2f226485697bba306936265dab62248bb48a1709e36f73241e9 -->
107
- ## 门户与资源版本
108
-
109
- 调用顺序:
110
-
111
- ```text
112
- mci-portal-publish-plan
113
- → mci-portal-publish(ExpectedSnapshotHash)
114
- → mci-portal-resolve
115
- ```
116
-
117
- - `ProjectKey/SlotKey/AssetKey` 稳定且项目内唯一。
118
- - 发布先写 `mci_resource_version`,再 CAS 切换活动版本指针。
119
- - 相同 Hash 幂等复用;旧 Hash 冲突后必须重新计划。
120
- - `mci-resource-compare` 做语义比较。
121
- - `mci-resource-rollback` 校验 `ExpectedCurrentHash` 并创建新回滚版本,不能删除历史。
122
-
123
- <!-- /microi-progressive:chunk -->
124
- <!-- microi-progressive:chunk id=ai-platform-governance-006 sha256=ec5c949ac0615c9917ce1910a397f5ab1e7878fb56a35cb761cd5ebbdf96c714 -->
125
- ## 身份与访问治理
126
-
127
- ### 身份同步
128
-
129
- ```text
130
- mci-identity-sync-plan → 人工处置冲突 → mci-identity-sync-apply
131
- ```
132
-
133
- - 可信 SCIM 适配器为 `V8.Method.ReadIdentityDirectoryPage`;只允许 HTTPS、受控 DNS、非私网目标、有界页数和 Secret 引用。
134
- - 新账号默认停用。邮箱、手机号或账号多重命中时进入 `mci_identity_sync_conflict`,禁止猜测合并。
135
- - 增量游标、计划 Hash 和 IdempotencyKey 必须一致。
136
- - 非 SCIM 目录通过 `mci-identity-source-extension` 接入;Hook 也不能返回 Secret 原文。
137
-
138
- ### 用户组、标签和授权
139
-
140
- - `mci-identity-group-preview`:静态成员或标签集合预览;空规则失败关闭。
141
- - `mci-identity-group-refresh`:写入带 SnapshotId 的共享成员快照。
142
- - `mci-identity-tag-assign`:分配/撤销标签,记录有效期和 `EvidenceHash`。
143
- - `mci-access-change-plan/apply/rollback`:批量授权计划、逐项执行和条件回滚。
144
- - `mci-access-request`:`Submit/Approve/Reject/Cancel/Revoke` 与临时授权。
145
- - `mci-access-entitlement-expire`:维护任务回收过期授权。
146
- - `mci-org-snapshot`:不可变组织树快照与结构差异。
147
-
148
- `mci-permission-explain` 必须调用 `V8.Method.ExplainAuthorizationDecision` 复用真实 FormEngine 授权逻辑;禁止从菜单/角色表重新拼近似结论。
149
-
150
- <!-- /microi-progressive:chunk -->
151
- <!-- microi-progressive:chunk id=ai-platform-governance-007 sha256=64f2699d58860ed29782136673b51bdb1488b87cd17b24b761e9d22479902ae5 -->
152
- ## 配置模板与漂移
153
-
154
- `mci-configuration-publish` 输入要点:
155
-
156
- ```js
157
- {
158
- ProfileKey, Name, Category, Environment, ParentProfileId, VersionNo,
159
- Schema, Values, SecretReferences, Owner, Enabled,
160
- ExpectedContentHash, ChangeSummary, DryRun
161
- }
162
- ```
163
-
164
- - `Values` 只能放非敏感值;敏感路径映射到 `SecretReferences`。
165
- - 继承最多 10 层,检测循环。
166
- - 稳定规范化、SHA-256、DryRun、CAS 和 `ConfigurationProfile` 不可变版本必须同时存在。
167
- - `mci-configuration-resolve` 返回 `EffectiveHash`,并保持 `SecretValuesResolved=false`。
168
- - `mci-configuration-drift-scan` 生成有界语义差异。
169
- - `mci-configuration-drift-transition` 使用 `ExpectedRowVersion` 完成 Ignore/Reopen/Resolve;摘要仍不一致时不能 Resolve。
170
-
171
- <!-- /microi-progressive:chunk -->
172
- ## 详细参考路由(渐进披露)
173
-
174
- 仅在当前任务涉及对应主题时读取;下列文件合计保留了原 SKILL.md 的全部详细知识。
175
-
176
- - [references/progressive-01-功能开关.md](references/progressive-01-功能开关.md):功能开关;发布状态机;服务治理;Trace、告警与日志;资产、协作和变更集;可恢复导入;页面与蓝图版本;应用商城发布;双节点与浏览器验收
177
- <!-- microi-progressive:end -->
1
+ ---
2
+ name: ai-platform-governance
3
+ description: Microi吾码 AI 平台治理中心设计、调用、扩展、应用商城升级与验收规范。用于门户与资源版本、身份目录/用户组/权限解释、配置模板与漂移、功能开关、发布审批/门禁/断点回滚、服务注册路由与韧性、Trace/告警/日志生命周期、资产物料、协作租约和可恢复导入。
4
+ ---
5
+
6
+ > **Codex 非阻塞自动更新:** 当前宿主为 Codex 时,吾码 CLI、Codex 插件与工作区 AI/MCP 由后台自动更新;需要诊断时读取 `../microi-codex-installer/SKILL.md`。更新失败、等待空闲或尚未重载均不得阻断当前、正在进行或新建任务。非 Codex 宿主跳过此项。
7
+
8
+ # Microi吾码 AI 平台治理中心
9
+
10
+ <!-- microi-progressive:begin -->
11
+ <!-- microi-progressive:chunk id=ai-platform-governance-000 sha256=48b82af9f11388d6872cf90aa2c74a1d35c1db948483f30615ce054989ef0d77 -->
12
+ ## 何时使用
13
+
14
+ 以下任一需求都应使用本 Skill:
15
+
16
+ - 门户项目、插槽、资产、版本发布、Diff 或回滚;
17
+ - 身份目录同步、动态用户组、标签、人群圈选、批量授权、访问申请、临时权限或权限解释;
18
+ - 配置模板/继承/Secret 引用、配置漂移或功能开关;
19
+ - 发布计划、多人审批、职责分离、自动门禁、断点续发或回滚;
20
+ - 服务注册、实例心跳/排空、版本/区域/标签/权重路由、限流、熔断、重试、降级或服务拓扑;
21
+ - W3C Trace、告警规则、值班升级、可靠通知或日志热温冷生命周期;
22
+ - 可复用组件/区块资产、依赖解析、协作租约或跨资源变更集;
23
+ - JSON/CSV/Excel 可恢复导入;
24
+ - 发布或安装官方应用 `ai-platform-studio`。
25
+
26
+ <!-- /microi-progressive:chunk -->
27
+ <!-- microi-progressive:chunk id=ai-platform-governance-001 sha256=47197af80919be7e08ef051884e70900714bdf53f551fad16e119a86d6efb63c -->
28
+ ## 不可破坏的边界
29
+
30
+ - DiyToken 是唯一会话入口;继续复用现有用户、角色、部门、菜单、表权限和数据范围,禁止建立第二套 Token/RBAC。
31
+ - 所有治理事实写入当前 `OsClient` 数据库或租户隔离 Redis;禁止把 `static`、单例字典、本机定时器或浏览器存储作为平台完成事实。
32
+ - 普通业务编排优先接口引擎。C# 只提供目录协议/Secret 隔离、真实 FormEngine 权限解释、Trace/日志物理访问和 Redis 原子缓存等底层可信原子能力。
33
+ - 核心资源由应用商城交付,不为表、字段、菜单、接口、任务或种子数据添加定制 `Microi.Upgrade` 迁移。
34
+ - 所有危险动作必须是 Plan/DryRun → Hash/CAS → 幂等执行 → 回读 → 条件回滚。
35
+ - 锁只解决并发,不代替稳定幂等键、唯一约束、状态机、outbox/inbox 或条件写入。
36
+ - Secret 只保存引用;列表、Diff、错误、日志、截图、导出和运行台账不得出现密码、Token、私钥或连接串原文。
37
+
38
+ <!-- /microi-progressive:chunk -->
39
+ <!-- microi-progressive:chunk id=ai-platform-governance-002 sha256=527f1cda978f88d0d1507d90aac71089f7585699f0ad7d5266dc7e40ba026b7c -->
40
+ ## 官方应用事实
41
+
42
+ 应用 Key:`ai-platform-studio`,当前资源合同版本:`v2.0.9`。
43
+
44
+ - 40 张 `mci_` 治理表和 5 张运行基础表,应用包共 45 张表、873 个字段;
45
+ - 42 条后台菜单兼容记录:仅 `AI平台治理` 作为可见 MicroService 入口;历史工作台和 40 个数据菜单保留原 Id、权限与升级身份,但统一隐藏;
46
+ - 64 个接口引擎:57 个 `Managed`,7 个 `CreateIfMissing`;
47
+ - 1 个 `MciAiPlatformMinuteSweep` 维护任务;
48
+ - 10 个微服务路由:`overview`、`portal`、`identity`、`access`、`configuration`、`release`、`services`、`observability`、`assets`、`import`。
49
+ - v2.0.9 保持表、接口、任务和菜单 Id 合同不变;10 个业务域页面及 40 类治理资源全部由工作台内部路由、操作面板和台账入口承载。隐藏的历史工作台菜单必须使用独立兼容 URL,不能与新的唯一入口争用 `sys_menu.Url`。发行版本、Manifest 版本与 `.microi-micro-app.json` 运行时版本必须同时提升并保持一致。内部切换只更新异步内容区并显示局部骨架屏,主题/reset/装饰样式限定在 `[data-mci-ui-root="ai-platform-studio"]`,不得重挂宿主 Tab 或污染吾码 Logo 与主菜单。
50
+
51
+ 租户 Hook:
52
+
53
+ ```text
54
+ mci-portal-publish-extension
55
+ mci-identity-source-extension
56
+ mci-release-gate-extension
57
+ mci-alert-notify-extension
58
+ mci-asset-validate-extension
59
+ mci-log-archive-extension
60
+ mci-release-execute-extension
61
+ ```
62
+
63
+ Hook 首次创建后归租户维护,升级永不覆盖,也不得把同 Key 改回 `Managed`。
64
+
65
+ <!-- /microi-progressive:chunk -->
66
+ <!-- microi-progressive:chunk id=ai-platform-governance-003 sha256=3d43295846e19e8b5cb526442ff8aff8f0317db88f5be803b5798e63118546e2 -->
67
+ ## 菜单层级与语义
68
+
69
+ 应用安装或升级后只保留一个可见入口,禁止把历史工作台或 40 个数据菜单继续暴露到导航:
70
+
71
+ ```text
72
+ 系统引擎 (cdc0844b-7249-4d64-a9c3-563a15c9cd20)
73
+ └─ AI平台治理 (MicroService: /micro-app/ai-platform-studio/overview)
74
+ ```
75
+
76
+ `AI平台治理` 是 10 个治理页面的唯一可见操作入口,必须同时绑定 `MicroServiceId`、`MicroServicePageId`、`MicroServiceRoutePath=/overview` 和 `MicroServiceKey=ai-platform-studio`;不得只创建普通 URL 菜单。历史菜单记录必须保持稳定 Id 并设置 `Display=0`、`AppDisplay=0`,避免删除后破坏旧角色权限、收藏与升级定位。`system.manifest.json.menuCatalog` 是 40 类治理资源用途与工作台内部分组的事实源,它们按以下 9 个业务域组织:
77
+
78
+ | 业务域 | 数据菜单 | 主要作用 |
79
+ |---|---|---|
80
+ | 门户装配 | 门户项目、门户插槽、门户资源、资源版本 | 组合门户并维护不可变发布版本 |
81
+ | 身份目录 | 身份连接器、身份同步、身份冲突、组织快照 | 同步外部身份并处理冲突 |
82
+ | 人群与授权 | 动态用户组、用户组成员、用户标签、标签分配、授权变更集、授权变更明细、访问申请、临时授权 | 按人群申请、授予、到期回收并保留证据 |
83
+ | 配置与灰度 | 配置模板、配置漂移、功能开关 | 管理配置基线、环境偏差和灰度开关 |
84
+ | 发布治理 | 发布计划、发布审批、发布运行、变更台账 | 计划、审批、门禁、执行、恢复和审计发布 |
85
+ | 服务治理 | 服务目录、服务实例、流量策略、调用结果、服务拓扑 | 管理实例租约、路由韧性和调用事实 |
86
+ | 可观测与日志 | 可观测策略、规则评估台账、告警事件、告警路由、告警送达、日志策略、日志生命周期 | 监控、告警、可靠通知和日志归档闭环 |
87
+ | 资产与协作 | 资产包、资产版本、协作租约 | 交付可复用资产并避免并发覆盖 |
88
+ | 数据迁移 | 导入批次、导入暂存行 | 预检、分片执行、恢复和回滚大批量导入 |
89
+
90
+ 向用户解释时必须区分页面类型:`配置` 是日常维护入口,`审批/处置` 在有待办或异常时使用,`运行` 用于观察和恢复任务,`台账` 主要供审计与排错。不得把台账页描述成需要人工逐项维护的业务模块。
91
+
92
+ <!-- /microi-progressive:chunk -->
93
+ <!-- microi-progressive:chunk id=ai-platform-governance-004 sha256=f4fbda7d2522d95e4aaa6f010637b6dfe652a7871614177ce489df7830b9c911 -->
94
+ ## 通用调用规则
95
+
96
+ 1. 通过 MCP 回读当前表结构、菜单、接口、应用和微服务事实。
97
+ 2. 调用 `*-plan`、`*-publish` 的 `DryRun=true` 或专用预检接口。
98
+ 3. 保存返回的 `PlanHash/ContentHash/RowVersion`,展示影响和阻断项。
99
+ 4. 只有用户授权后执行写操作;服务端从 DiyToken 重算身份与租户。
100
+ 5. 写后回读主记录、不可变版本、运行台账和实际页面。
101
+ 6. 分开报告源码/测试、远端写入、浏览器、应用商城和生产部署证据。
102
+
103
+ 旧 Hash、旧 RowVersion、旧 fencing token、未知状态、未知步骤或未知字段一律失败关闭。
104
+
105
+ <!-- /microi-progressive:chunk -->
106
+ <!-- microi-progressive:chunk id=ai-platform-governance-005 sha256=6298a32cb0b0c2f226485697bba306936265dab62248bb48a1709e36f73241e9 -->
107
+ ## 门户与资源版本
108
+
109
+ 调用顺序:
110
+
111
+ ```text
112
+ mci-portal-publish-plan
113
+ → mci-portal-publish(ExpectedSnapshotHash)
114
+ → mci-portal-resolve
115
+ ```
116
+
117
+ - `ProjectKey/SlotKey/AssetKey` 稳定且项目内唯一。
118
+ - 发布先写 `mci_resource_version`,再 CAS 切换活动版本指针。
119
+ - 相同 Hash 幂等复用;旧 Hash 冲突后必须重新计划。
120
+ - `mci-resource-compare` 做语义比较。
121
+ - `mci-resource-rollback` 校验 `ExpectedCurrentHash` 并创建新回滚版本,不能删除历史。
122
+
123
+ <!-- /microi-progressive:chunk -->
124
+ <!-- microi-progressive:chunk id=ai-platform-governance-006 sha256=ec5c949ac0615c9917ce1910a397f5ab1e7878fb56a35cb761cd5ebbdf96c714 -->
125
+ ## 身份与访问治理
126
+
127
+ ### 身份同步
128
+
129
+ ```text
130
+ mci-identity-sync-plan → 人工处置冲突 → mci-identity-sync-apply
131
+ ```
132
+
133
+ - 可信 SCIM 适配器为 `V8.Method.ReadIdentityDirectoryPage`;只允许 HTTPS、受控 DNS、非私网目标、有界页数和 Secret 引用。
134
+ - 新账号默认停用。邮箱、手机号或账号多重命中时进入 `mci_identity_sync_conflict`,禁止猜测合并。
135
+ - 增量游标、计划 Hash 和 IdempotencyKey 必须一致。
136
+ - 非 SCIM 目录通过 `mci-identity-source-extension` 接入;Hook 也不能返回 Secret 原文。
137
+
138
+ ### 用户组、标签和授权
139
+
140
+ - `mci-identity-group-preview`:静态成员或标签集合预览;空规则失败关闭。
141
+ - `mci-identity-group-refresh`:写入带 SnapshotId 的共享成员快照。
142
+ - `mci-identity-tag-assign`:分配/撤销标签,记录有效期和 `EvidenceHash`。
143
+ - `mci-access-change-plan/apply/rollback`:批量授权计划、逐项执行和条件回滚。
144
+ - `mci-access-request`:`Submit/Approve/Reject/Cancel/Revoke` 与临时授权。
145
+ - `mci-access-entitlement-expire`:维护任务回收过期授权。
146
+ - `mci-org-snapshot`:不可变组织树快照与结构差异。
147
+
148
+ `mci-permission-explain` 必须调用 `V8.Method.ExplainAuthorizationDecision` 复用真实 FormEngine 授权逻辑;禁止从菜单/角色表重新拼近似结论。
149
+
150
+ <!-- /microi-progressive:chunk -->
151
+ <!-- microi-progressive:chunk id=ai-platform-governance-007 sha256=64f2699d58860ed29782136673b51bdb1488b87cd17b24b761e9d22479902ae5 -->
152
+ ## 配置模板与漂移
153
+
154
+ `mci-configuration-publish` 输入要点:
155
+
156
+ ```js
157
+ {
158
+ ProfileKey, Name, Category, Environment, ParentProfileId, VersionNo,
159
+ Schema, Values, SecretReferences, Owner, Enabled,
160
+ ExpectedContentHash, ChangeSummary, DryRun
161
+ }
162
+ ```
163
+
164
+ - `Values` 只能放非敏感值;敏感路径映射到 `SecretReferences`。
165
+ - 继承最多 10 层,检测循环。
166
+ - 稳定规范化、SHA-256、DryRun、CAS 和 `ConfigurationProfile` 不可变版本必须同时存在。
167
+ - `mci-configuration-resolve` 返回 `EffectiveHash`,并保持 `SecretValuesResolved=false`。
168
+ - `mci-configuration-drift-scan` 生成有界语义差异。
169
+ - `mci-configuration-drift-transition` 使用 `ExpectedRowVersion` 完成 Ignore/Reopen/Resolve;摘要仍不一致时不能 Resolve。
170
+
171
+ <!-- /microi-progressive:chunk -->
172
+ ## 详细参考路由(渐进披露)
173
+
174
+ 仅在当前任务涉及对应主题时读取;下列文件合计保留了原 SKILL.md 的全部详细知识。
175
+
176
+ - [references/progressive-01-功能开关.md](references/progressive-01-功能开关.md):功能开关;发布状态机;服务治理;Trace、告警与日志;资产、协作和变更集;可恢复导入;页面与蓝图版本;应用商城发布;双节点与浏览器验收
177
+ <!-- microi-progressive:end -->