@microi.net/cli 5.7.3 → 5.7.4

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 (28) 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/.workbuddy-plugin/marketplace.json +2 -2
  5. package/.workbuddy-plugin/plugin.json +1 -1
  6. package/assets/build-meta.json +5 -5
  7. package/cordis.patch.yml +1 -1
  8. package/package.json +1 -1
  9. package/scripts/mcp-server.js +63 -63
  10. package/scripts/microi-codex-broker.js +450 -447
  11. package/scripts/microi-skills.meta.json +212 -206
  12. package/skills/.microi-skills-version.json +2 -2
  13. package/skills/.progressive-disclosure-manifest.json +19 -19
  14. package/skills/ai-engine/SKILL.md +25 -5
  15. package/skills/ai-engine/references/ai-employees.md +42 -0
  16. package/skills/ai-engine/references/self-hosted-digital-human.md +45 -0
  17. package/skills/app-store/SKILL.md +40 -3
  18. package/skills/microi-datasource-mapping/SKILL.md +9 -1
  19. package/skills/microi-docs-coverage/references/capability-map.md +4 -0
  20. package/skills/microi-form-engine/SKILL.md +7 -1
  21. package/skills/microi-frontend-sdk/SKILL.md +4 -2
  22. 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 +1 -1
  23. package/skills/microi-microservice/SKILL.md +10 -0
  24. package/skills/module-engine/SKILL.md +4 -1
  25. package/skills/print-engine/SKILL.md +50 -48
  26. 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 +13 -3
  27. package/skills/v8-saas-multi-tenant/SKILL.md +7 -1
  28. package/skills/v8-table-event/SKILL.md +4 -2
@@ -2,8 +2,18 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=v8-file-upload-008 sha256=7cda0fe7bb978e7219cb3c1ba30813e1a5e777f1272410f85d4c7ecc1882cc3d -->
6
- ## Office 文件在线编辑版本号规则
5
+ <!-- microi-progressive:chunk id=v8-file-upload-008 sha256=b7b809862a9d82f0270ae99486acb5fe23185b9d5efad073ae39b282724e2e32 -->
6
+ ## Office 文件在线编辑版本号规则
7
+
8
+ ### 文件柜 Office 版本
9
+
10
+ 文件柜对象没有表单字段 JSON。`Microi.Client/src/views/file-manage/` 打开 Office 文件时传当前文件柜菜单、原始对象键和桶类型到 `/online-office`;后端 `GetFileCabinetOfficeMeta`、`SaveFileCabinetOfficeDocument` 每次重新校验管理员 DiyToken、权威文件柜菜单及原对象存在,绝不相信前端传来的版本路径或 `canEdit`。公有桶和私有桶都可编辑,历史快照及索引始终放在当前租户私有桶的 `.microi-office-history/<按桶及原键生成的摘要>/` 下,文件柜列表隐藏该内部目录。
11
+
12
+ 文件柜初始版本为 `v1.0.0`;每次手动保存前先把当前字节归档为上一版本,再覆盖原对象键并持久化版本索引,版本依次递增。原对象键始终是最新版本,历史版本只读。用共享 Redis 租约串行保存并比较 `ExpectedVersion`;索引写入失败须恢复原对象,不能把未持久化索引的响应视为成功。历史版本预览用 `ResourceKind=FileManagerObject`、`ResourceId=历史快照键`、权威 `SysMenuId` 重新签发私有审计代理地址。修改文件柜对象移动/重命名/删除语义时,必须同时处理其版本索引与历史快照,防止索引失联或残留。
13
+
14
+ MCP 只读发现使用 `microi_list_file_cabinet_objects(path, limit)` 与 `microi_get_file_cabinet_office_meta(filePathName, sysMenuId, limit)`;后者必须使用权威文件柜菜单 Id,普通用户和访问密钥无权调用。它们不下载文件字节,也不代表已发布新版本。整文件夹移动/重命名和跨平台文件同步不能视为 Office 历史迁移;迁移存储时需连同私有桶历史前缀一起处理,并回读原对象和历史版本。
15
+
16
+ OnlyOffice 前端组件 npm 包不能替代 Docs 文档服务。`DocsAPI.DocEditor` 的同一存储版本必须使用稳定文档 key,避免每位用户生成不同 key 后失去协同;版本更新后 key 才应变化。Univer 开源包并不包含与现有链路等价的 Office 文件转换、协同服务和历史版本,不能直接加一个系统设置选项就声称切换完成。
7
17
 
8
18
  当文件上传控件开启【Office 在线预览】、【允许在线编辑】和【开启 Office 文件版本号】时,前后端必须遵循统一版本规则:
9
19
 
@@ -39,7 +49,7 @@
39
49
  ```
40
50
 
41
51
  <!-- /microi-progressive:chunk -->
42
- <!-- microi-progressive:chunk id=v8-file-upload-009 sha256=e01219d4f1a8f8c535e0b5aa5620120c37bd5e79af27dbbd63babda8d887cd13 -->
52
+ <!-- microi-progressive:chunk id=v8-file-upload-009 sha256=1cc3ff1b6a5c756d957819f198c13ea181143db484527d1931aefc8e0d52993c -->
43
53
  ## ImgUpload / FileUpload 字段值兼容规则
44
54
 
45
55
  `ImgUpload` 不能假设只是一种值结构。PC 表单、移动端、旧数据、单图/多图、公开/私有桶会混合出现以下格式:
@@ -49,7 +49,13 @@ V8.OsClientModel.AliOssPublicDomain // 可公开的文件域名
49
49
  // MQHost / MQUserName / MQPassword / MqttPwd / SearchEngineApiKey
50
50
  ```
51
51
 
52
- ## 平台级配置与主租户规则
52
+ ## 平台级配置与主租户规则
53
+
54
+ 制作空数据库时,角色、账号绑定和权限快照必须作为同一初始模板处理。只保留明确声明的初始角色,按权威角色重建保留账号的 `RoleIds` 与等级;删除业务角色及孤立菜单权限,清空包含源业务菜单的角色权限快照。初始角色缺失、删除或等级不符时停止制作,不得根据账号现有角色列表、角色名称或高等级推测哪些角色应保留。
55
+
56
+ 组织数据属于同一空库模板边界:只保留明确声明的初始组织和部门,将保留账号的部门绑定与名称同步归一,并清理旧版账号关系表。保护这些平台表的物理结构,初始组织缺失或已删除时停止制作;验收必须在新租户查看真实组织树,不能只检查角色数量。清理只能作用于制作过程的隔离副本。
57
+
58
+ 安装历史只有能对应保留平台应用的稳定身份才可继承:非空 `StoreId` 优先,旧记录没有该字段时再核对非空应用身份;不能凭名称或前缀保留孤立记录。SQL 预览、临时副本执行、公开空库文件更新与新租户登录验收是不同证据层;源主库和既有测试租户都不能作为清理执行目标。
53
59
 
54
60
  主库 `sys_osclients` 保存租户数据库/Redis/存储路由及影响整个 API 进程的平台级配置;目标租户建立上下文后,`sys_config` 和 `mci_system_setting` 从该租户自己的数据库读取。平台级配置必须遵守“主租户为准、子租户只能降额隔离”的规则:
55
61
 
@@ -61,7 +61,7 @@ AI 本地开发表单 V8 事件时,优先修改 `microi-v8-engine/<租户>/<
61
61
  - `diy_table.V8Limit` 是表后端提交前、提交后和数据处理 V8 的正向开关:缺失、`null`、`0/false` 均不设置 Jint 单次超时、语句、函数递归和累计分配预算,只有 `1/true` 才启用这些限制。旧 `V8Unlimited` 仅在新字段不存在时反向推断,新的 MCP、Manifest 和应用资源只写 `V8Limit`。进程常驻内存、取消、并发、接口嵌套深度、权限和数据库保护始终生效。
62
62
 
63
63
  <!-- /microi-progressive:chunk -->
64
- <!-- microi-progressive:chunk id=v8-table-event-003 sha256=5140cd224fd5ac044715f0b3ac79d18f8816d4ce36b6c05cc04e044dbf956214 -->
64
+ <!-- microi-progressive:chunk id=v8-table-event-003 sha256=a6313d9007c8c72e1b8fb56ca7764eb0856029c9937c35d5f2e294539b3c7134 -->
65
65
  ## ⚠️ 关键陷阱(必读)
66
66
 
67
67
  ### 1. 设计模式保护(前端事件必加)
@@ -87,7 +87,9 @@ if (V8.Form.Money > 100000 && V8.CurrentUser.RoleName.indexOf('总经理') === -
87
87
  }
88
88
  ```
89
89
 
90
- ### 4. 共享事务操作其它表
90
+ ### 4. 共享事务操作其它表
91
+
92
+ 提交前与提交后事件可能在同一 Jint 全局环境依次运行。两个事件复用生成库时,顶层初始化变量使用可重复声明的 `var`,或放入各事件独立函数作用域;不要在两段代码里重复声明同名顶层 `let/const`。验收须真实新增/更新走完 Before → After,并验证提交后回读及审计;分别做语法检查不能发现跨事件重复声明。
91
93
 
92
94
  ```javascript
93
95
  // 在 SubmitBeforeServerV8 / SubmitAfterServerV8 中