@microi.net/cli 6.1.7 → 6.1.9

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 (58) 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/assets/build-meta.json +4 -4
  8. package/cordis.patch.yml +1 -1
  9. package/package.json +1 -1
  10. package/scripts/codex-marketplace.json +20 -20
  11. package/scripts/mcp-codex-stdio-adapter.js +189 -189
  12. package/scripts/mcp-server.js +101 -96
  13. package/scripts/mcp-trae-windows-launcher.cmd +21 -21
  14. package/scripts/microi-cli-mcp.js +7 -7
  15. package/scripts/microi-skills.meta.json +257 -239
  16. package/skills/.microi-skills-version.json +2 -2
  17. package/skills/.progressive-disclosure-manifest.json +90 -68
  18. package/skills/ai-engine/SKILL.md +303 -293
  19. package/skills/ai-engine/references/ai-employees.md +4 -0
  20. package/skills/app-store/SKILL.md +3 -1
  21. package/skills/job-engine/SKILL.md +12 -0
  22. package/skills/message-notification/SKILL.md +2 -0
  23. package/skills/microi-client-frontend/SKILL.md +260 -252
  24. package/skills/microi-codex/SKILL.md +8 -0
  25. package/skills/microi-datasource-mapping/SKILL.md +4 -0
  26. package/skills/microi-deployment/SKILL.md +85 -5
  27. package/skills/microi-deployment/references/deployment-matrix.md +27 -0
  28. package/skills/microi-deployment/references/offline-installer.md +64 -0
  29. package/skills/microi-docs-coverage/references/capability-map.md +3 -3
  30. package/skills/microi-form-engine/SKILL.md +13 -0
  31. package/skills/microi-form-engine/references/component-catalog.md +1 -1
  32. package/skills/microi-frontend-sdk/SKILL.md +12 -0
  33. package/skills/microi-microservice/SKILL.md +18 -1
  34. package/skills/microi-system-delivery/SKILL.md +8 -6
  35. package/skills/microi-system-delivery/references/delivery-pitfalls.md +50 -0
  36. package/skills/microi-system-delivery/references/progressive-01-/346/240/207/345/207/206/345/267/245/344/275/234/346/265/201.md +11 -9
  37. package/skills/microi-uniapp-frontend/SKILL.md +18 -3
  38. package/skills/microi.v8.js +445 -0
  39. package/skills/module-engine/SKILL.md +4 -5
  40. package/skills/page-engine/SKILL.md +233 -215
  41. package/skills/print-engine/SKILL.md +5 -0
  42. package/skills/report-engine/SKILL.md +9 -0
  43. package/skills/report-engine/scripts/check-demo-coverage.mjs +88 -0
  44. package/skills/report-engine/scripts/check-demo-coverage.test.mjs +52 -0
  45. package/skills/scripts/sync-embedded-skills.mjs +4 -1
  46. package/skills/scripts/sync-public-resource-router.mjs +29 -0
  47. package/skills/system-observability/SKILL.md +18 -2
  48. package/skills/ui-design/SKILL.md +1 -1
  49. package/skills/uniapp-mall-assets/SKILL.md +5 -0
  50. package/skills/v8-file-upload/SKILL.md +32 -31
  51. package/skills/v8-file-upload/references/hotspot-offload-operations.md +118 -0
  52. package/skills/v8-saas-multi-tenant/SKILL.md +17 -4
  53. package/skills/v8-security/SKILL.md +20 -5
  54. package/skills/vision-engine/SKILL.md +114 -3
  55. package/skills/vision-engine/references/architecture-and-acceptance.md +8 -0
  56. package/skills/workspace-conventions/SKILL.md +9 -3
  57. 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 +4 -4
  58. package/skills/workspace-conventions/references/progressive-04-/345/267/245/344/275/234/345/214/272/344/270/216/345/271/263/345/217/260/344/270/223/351/241/271/344/277/235/351/232/234.md +22 -1
@@ -13,6 +13,10 @@
13
13
 
14
14
  ## 模型与持久执行
15
15
 
16
+ 项目群中同一员工的桌面模型按租户、负责人和员工标识持久绑定,不随新群创建而重置。保存时只提交本次选中的员工;已有群和新群读取同一绑定。旧群配置唯一一致时可只读继承,冲突时保留原值,由负责人明确选择;密钥和 Endpoint 继续留在本机。已经排队或执行中的运行保留原始模型快照,只有确认尚未调用模型的安全重试才重新读取当前绑定。
17
+
18
+ 项目列表置顶优先,其余按最后消息倒序;无消息的新群按创建时间排序。置顶、归档和恢复属于当前用户的群成员偏好,不删除群、消息或工作链,不改其它成员的列表。列表时间与绑定需要有界批量读取,不能按群查询完整历史;新 schema 与受管引擎通过新的应用商城版本交付,源码或浏览器夹具通过不等于线上升级完成。
19
+
16
20
  后端 `V8.AI.Chat` 的 `AiModel` 不能假定可留空。先从当前用户获授权的目录选择 `AiModel / AiModelId`;显式模型不可用时失败,不能静默切换账号。Key 与 Endpoint 保留在可信后端。
17
21
 
18
22
  长调用通过平台持久后台任务执行。领取先提交,再调用外部模型;组合稳定幂等键、数据库条件写入、租约和旧执行者拒绝。调用无法回滚时,独立保存开始标记;重启后结果未知就核对,不盲目重发。等待模型时不能持有业务行锁。
@@ -27,7 +27,8 @@ description: Microi 应用商城开发、打包、安装和升级规范。用于
27
27
  - 默认启动只恢复表单、模块、系统设置的核心结构与普通账号登录、权限、导航、商城安装所需资源;由一个 `app.microi.bootstrap` 投影包交付,不等于完整安装其来源应用。SSO、AI、通知、备份、OCR、翻译、工作流及 SaaS 管理界面等按需从商城安装。新增平台包、配置字段或微服务页面不能自动加入启动恢复范围。本文历史复盘中提到的九包/106 接口方案已经收缩,不再作为默认启动要求。
28
28
  - 分开记录三种验收:默认空库启动到登录/打开商城、用户手动安装一个可选应用、显式全部平台应用维护。全部安装的包数和耗时不能当成默认启动成绩;禁止用增大超时来接受几十分钟的默认初始化。测试复用已授权 MCP 对应依赖及任务独占命名空间,不新增本地依赖容器。
29
29
  - 冷启动必须在接受登录前验证核心元数据和商城菜单、微服务、页面及入口资产;缺失时复用同一最小恢复流程和共享租约,不能让用户先登录到空菜单或404页,再等待后台安装。商城来源读取/保存属于必需系统设置接口;可选能力的后台探测失败不得弹出全局错误,也不得被当作鉴权成功。
30
- - 新空库制作必须使用同样的核心边界:只保留启动投影、商城、表单、模块、系统设置、系统账号及平台微服务的既有安装身份,不得按 `ApplicationType=Platform` 或 `app.microi.*` 前缀保留全部应用。只生成隔离模板清理 SQL,生成阶段保持只读;不得对已运行客户租户执行可选应用卸载。
30
+ - 官方发行空库采用完整平台快照:保留 `ApplicationType=Platform` 且属于官方应用的全部资源,以及包声明的运行微服务依赖。最小启动恢复仍只使用 `app.microi.bootstrap`,不能用它裁剪完整发行空库。逐包校验版本、大小、SHA-256 和实际母版接口,再在隔离副本对齐或建立安装快照身份;不能只改商城显示状态。生成阶段保持只读,不对已运行客户租户执行清理。
31
+ - 空库保留 `/` 系统首页和已校验平台包声明的 `mic_page` 页面,业务页面及运行记录继续清理。仅保留管理员、只读演示两个基础角色。官方“一键制作主库空数据库”按钮只留在官方母版,客户空库及分发 SaaS 包均移除该按钮,防止更新后重新出现。发布前检查页面、接口闭包、安装基线、角色数量和按钮移除,再做真实 Docker 登录与菜单验收。
31
32
  - 启动投影只压缩已确认无关的控件配置,保留物理兼容列、值转换、安全属性、共享/未知配置和原有租户值。SaaS 物理配置由可信运行时直接读取,完整编辑字段由 SaaS 应用交付;缩小投影不得生成字段退役、DROP 或卸载操作。容量预算与生成一致性测试应阻止后续可选功能默默进入启动包。
32
33
 
33
34
  - 表、字段、Tab、菜单、权限、接口引擎、事件、数据源、页面、打印、工作流、任务和可幂等种子数据都应通过应用包升级;不得为这些资源在 `Microi.Server/Microi.Upgrade/` 新增租户定制 .NET 代码。
@@ -287,6 +288,7 @@ staged 行、请求参数、`StableFilePathName` 或外部 CDN URL 推断版本
287
288
  - 新版安装包正文不得长期内联在 `sys_microistore.AppPakcet`,也不得随 `mic_data_version.Data` 重复复制。公开应用写入 HDFS 公有桶并记录 `HdfsPublic`,私有应用写入私有桶并记录 `HdfsPrivate`;数据库只保存 `PackageId/PackageHdfsPath/PackageSha256/PackageSize/PackageContentType/PackageFormatVersion/PackageUploadedAt`。`IsPublic` 历史空值按公开兼容,但所有新建应用必须显式落为 `1/0`。
288
289
  - 发布顺序必须是“UTF-8 JSON 上传 → HDFS 回读 → 字节数和 SHA-256 一致 → 写入不可变包索引及商城指针 → 以原值 CAS 清空 `AppPakcet`”。普通发布不得仅凭 Redis 命中跳过 HDFS 回读;只有受控历史压缩可复用内容寻址缓存,安装端首次下载与后续缓存命中均必须独立核对正文大小与 SHA-256。公开包可通过 FileServer/CDN 公有地址读取;私有包只能由来源后端在当前授权身份下签发短期下载地址,Token、签名 URL 和包正文不得进入浏览器配置、日志或后台任务参数。
289
290
  - `MARKETPLACE_VERIFIED_PACKAGE_CACHE_V1` 用于详情摘要与安装分片的重复整包下载治理。每租户每用途一个固定槽,原文上限64 MiB、序列化上限96 MiB、TTL900秒且命中不续期;不能按应用/版本无限增键。缓存只写入已校验正文,绑定来源ApiBase/OsClient、当前租户、Id、StoreVersionId、PackageHdfsPath、存储范围、SHA与大小,不存签名URL或凭据;每片仍先重新读取来源权限与权威指针,命中重新校验实际字节与SHA。缓存损坏/故障/超限回退完整下载,不能为了减少下载取消后台分片或把包正文塞进checkpoint。详情`PackageContentRead`及导入诊断`marketplace_package_read`只报告包下载字节,测试覆盖撤权、来源/快照/路径变化、污染、不可用与固定槽有界;真实同包两次读取须有`VerifiedDownload → VerifiedCache / NetworkBytes=0`回执。官方发布源禁止运行安装器,客户安装与包发布分别验收。
291
+ - `MARKETPLACE_VERIFIED_PUBLIC_PACKAGE_ROUTE_V1` 只为当前来源公开 `HdfsPublic` 的精确 `packages/*.json` 选择传输地址。模型用 `GetPublicResourceBackupUrls`,安装器只向已固定来源 `ApiBase + OsClient` 的 `mci-file-resource-public-url` 做一次有界匿名查询;不能调用目标租户 resolver 代替来源。结果必须核对 `GenericPublicResourceRoutes/1`、来源租户、Binding 的 BackupOrigin/PublicBucket/TargetConfigHash、精确 ObjectKey、短效期限和不可变目标路径,且 `VerifiedSha256/VerifiedSize` 等于权威快照的 PackageSha256/PackageSize;SourceRevision 不是内容摘要。私有、跨租户、非包路径、旧合同及无效回执保持原地址,不能复制或公开私有包。实际下载继续原始字节 SHA/大小校验,凭据不转发 NAS;缓存命中不再次查询路由,不持久化路由 URL,不重写源包指针、版本或后台 checkpoint。长期阈值资格归调度器管理,与两分钟健康回执分开。回归必须执行旧直链故障/新 NAS 成功、未 Ready、错误 hash/size、历史快照、当前撤权、恶意 URL/路径、跨来源和缓存复用;正式包需同步独立脚本、商城内嵌与最小启动副本后发布回读,单元测试不算生产分流。
290
292
  - `mic_data_version` 历史快照保留不可变 `StoreVersionId` 和同一组包指针,因此旧版本仍可精确安装,不再要求 `Data` 内含完整 JSON。导入器先校验快照版本/应用身份,再按指针下载并在解析前核对大小与哈希;指针缺失时才回退旧版内联字段,禁止快照不匹配时退回当前版本。
291
293
  - 旧库容量治理使用 `compact-microi-store-packages` 超级管理员持久后台任务:先幂等补齐物理列,再用有界 `Id` 游标逐批处理;每个包都先上传回读,随后 CAS 清理当前行或历史快照。禁止对数 GB `mic_data_version.Data` 执行全表 `LIKE`/包正文计数。逻辑大字段清空后,MySQL 表空间文件是否立即缩小取决于存储引擎;`OPTIMIZE TABLE` 只能在备份完成的维护窗口由管理员另行执行,不能由应用安装或压缩任务自动触发。
292
294
  - 商城来源以 `ApiBase + OsClient` 唯一定位。添加来源先只读发现系统标题、验证码策略和公开应用数;需要私有应用时再登录。帐号、密码、Token 不能写浏览器配置或商城来源 JSON;密码只用于本次登录,长会话 Token 以 `MCP/Mobile` 非 PC 客户端签发,并由当前租户后端加密保存到 `mci_system_setting`,浏览器只持有不具备取密能力的凭据 Key。
@@ -64,6 +64,18 @@ Quartz 管理能力包含查询、添加、更新、暂停、恢复、删除任
64
64
 
65
65
  锁只能减少并发,不能替代幂等。
66
66
 
67
+ ## 公开热点分流的固定调度入口
68
+
69
+ 以下协议适用于包含通用公开对象 v3 的后端候选;任务元数据、应用包和客户端均须另有部署回执,不能用本文或离线测试推断已经在线分流。
70
+
71
+ - 任务表为 `diy_schedule_job`,固定 `JobName=microiPublicResourceOffloadScheduler`、`ApiEngineKey=mci-file-resource-scheduler`、`JobType=1`、`Status=正常`。只由 Quartz 原生分派进入受信调度原子;每次从当前主库回读,重复、已删除、停用、改名或改 Key 均拒绝。可编辑 V8/普通 HTTP 不能伪造宿主上下文或通过 CLR 直调运行时;目录和任务资源通过应用包交付,管理员管理沿标准 MCP;固定任务保存额外要求当前主租户管理员主库复核,拒绝访问密钥会话和仅具通用任务写权的角色。Quartz 副作用之前按当前主库、参数化 Id/名称、5 秒命令读取旧身份;新旧任一名称大小写等价命中保留任务均复核,禁止用旧 Id 改名或大小写变体绕过。
72
+ - Quartz 与旧 `PublicResourceOffloadHostedService` 共用 `PublicResourceOffload:tick` 租约;主租户范围、当前持有者、续租、fencing 和签名状态共同约束执行。管理员标准保存确认元数据持久化后,对固定主租户任务在同一租约内写入签名 `scheduler-handoff`;已暂停的合法任务也可接管,但不执行采集。表单事务 `RuntimeOnly` 路径不提前跨写,仍由首次合法原生 tick 接管。保存成功而接管未确认时返回部分保存提示,先回读,不盲目重建。接管后暂停、删除、改名、禁用任务不自动恢复旧 HostedService;handoff 按 Revision CAS 写入主库签名状态,进程重启和 Redis 丢失仍保持接管,主库不可读失败关闭。恢复必须修复原受控任务,不能删除标记绕过停用意图。
73
+ - 采集使用独立共享租约 `PublicResourceOffload:cloud-collection` 与 30 分钟 `NextAtUtc` 门禁;手动 Collect 同样受限,没有调用方 force 绕过。最新完整北京时间自然日、1 GiB / 24 小时仅为已观测字节正向下界;TOP 榜不是全部路径,空值不当零,不用客户端上报字节制造晋级。首次可信达标保存持久偏好,后续低流量不取消;新版本仍重验公开权限/副本,显式停用不被采集自动恢复。
74
+ - 每轮 4 分钟执行预算,租约最多 5 分钟。预算耗尽保存可恢复检查点并返回 `State=BudgetReached, Partial=true, AllResourcesReady=false`;`Code=1` 仍不等于所有资源复制或分流完成。外部取消、采集失败、失租和发布失败分别保留真实结果;单轮不能承诺任意体积全量复制。已确认的 8 MiB 私有暂存块可复用,通用复制受单对象 64 MiB、组 256 MiB、含入口 128 对象限制。
75
+ - 先安装拥有方应用包的 mci_file_offload_state 和 Owner/StateKey 唯一索引再部署新后端,缺表失败关闭。主库单条命令 5 秒,恢复最多 2000 条身份及 32 MiB 回执,超限/并发变更整批拒绝。4 分钟是调度预算,不承诺全部同步数据库或远端 I/O 在该时刻绝对结束;阿里云同步 SDK 使用自身 20 秒超时,取消后可能仍有在途尾部。MinIO 策略 SET 没有远端原子 CAS/fencing,前后验租、策略比对及未知结果回读无法消除外部策略写入竞态;未知结果不盲重写,不把本地租约或离线测试称为远端副作用“恰好一次”。
76
+ - 复制、Ready、公开授权、旧前缀撤权均验证当前租约;源 ACL/版本变化或停用先停止新路由,按签名 `PublishedRuns` 对旧授权逐项回读和匿名拒绝核验。旧目标无法绑定时阻断并保留未撤销事实,不能因任务返回成功而宣称旧 URL 已失效。暂停整个任务也停止后台复制/撤权推进;需要完成撤权时应保持该受控任务可运行,并先停用对应资源。
77
+ - 验收覆盖 job/host 同时竞争、双节点领取、失租前后副作用、暂停/删除后不退回 host、改 Key/主库不可用/CLR 拒绝、4 分钟部分工作恢复、源版本或权限变化、旧目标未知,以及真实消费者的第一次请求。私有、独立 JS 缺可信清单、旧富文本 HTML、Three.js 硬编码和平台 bootstrap 不因任务存在而自动分流;七个已接入客户端文件及完整边界见 `../v8-file-upload/SKILL.md` 与官网 `more/hdfs.md`。上线、小时请求下降、完整日费用下降必须分层独立验收。
78
+
67
79
  ## 任务骨架
68
80
 
69
81
  ```js
@@ -15,6 +15,8 @@ description: 设计、实现、迁移和验收 Microi 多通道消息通知与
15
15
  - `microi_manage_system_reminder` 提供 `Validate / Save / Publish / Withdraw`,确认串为 `<action>:<id或requestId>`。保存仅草稿;发布前核对用户已经授权的具体内容、范围与时间。保存/发布使用稳定 `requestId`,编辑/发布/撤回传最新 `expectedRevision`,超时先按原 Id/Key 回读,禁止换请求标识盲目新建。
16
16
  - `AccountScope` 在本租户 `Users` 默认 `AllAccounts`,在 `Tenants / Editions` 默认 `SuperAdmins`;不要让已指定的普通帐号被默认管理员筛选误排除。用户显式指定的帐号范围优先。
17
17
  - 配置接口只管理原表、校验引用和读取脱敏投递记录;实际发送继续调用 `msg_event`。`ConfigRevision` 缺省按 0 兼容旧记录,更新使用同事务条件写,失败不能覆盖别人修改。停用旧配置允许保留失效引用,再启用时重新核验。
18
+ - 业务规则详情的“查看投递记录”必须携带规则 Id,日志页提供独立分页读取的全规则筛选,不能只从当前日志页反推选项。MCP `Logs` 使用 `configId` 对应 `MsgEventId` 精确筛选;日志按 `CreateTime DESC, Id DESC` 稳定排序。历史空标题/通道通过本页规则批量映射显示,失败原因脱敏,禁止返回原始 `MsgResult/Payload`。FormEngine 的 CLR 宿主记录先转普通 JSON,再删除敏感字段,不能直接在宿主对象上 `delete`;同时验收真实 Jint 和只读原记录夹具。
19
+ - 微信可信原子先将 dynamic 参数和 FormEngine.Data 落为静态 JObject,避免字符串扩展方法发生动态绑定异常;当前模板的 `thingN/character_stringN/timeN` 等类型化字段必须原样进入 SDK JSON,同时保留旧 first/keyword/remark 和字段数/长度边界。模板必须属于实际 `WxMpId`,未绑定 OpenId、未认证/权限失效与后端缺陷分别排查。通知应用安装不代替 API 镜像部署或真实微信投递验收。
18
20
  - MCP 缺少上述工具时优先更新本机插件/CLI;当前宿主未重载可复用已有 `microi_run_engine` 调用同一固定接口,不另建临时维护引擎或绕过授权。明确区分本机工具打包成功与用户渠道已发布。
19
21
 
20
22
  ## 目标