weaver-work-cli 0.1.25 → 0.1.28

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 (173) hide show
  1. package/README.md +35 -30
  2. package/dist/cmd/root.js +1 -0
  3. package/dist/cmd/setup/index.js +1 -1
  4. package/dist/core/runtime-agent.js +19 -0
  5. package/dist/internal/e10/auth/commands.js +48 -33
  6. package/dist/internal/e10/auth/messages.js +3 -0
  7. package/dist/internal/e10/auth/session.js +8 -0
  8. package/dist/internal/e10/auth/xiaoe.js +62 -43
  9. package/dist/internal/e10/auth-recovery.js +148 -0
  10. package/dist/internal/e10/client.js +47 -15
  11. package/dist/internal/e10/context.js +9 -31
  12. package/dist/internal/e10/index.js +1 -0
  13. package/dist/internal/e10/request-runtime.js +51 -9
  14. package/dist/shortcuts/archive/host.js +3 -2
  15. package/dist/shortcuts/archive/manifest.js +1 -1
  16. package/dist/shortcuts/archive-oa/constants.js +66 -0
  17. package/dist/shortcuts/archive-oa/continuation.js +70 -0
  18. package/dist/shortcuts/archive-oa/errors.js +53 -0
  19. package/dist/shortcuts/archive-oa/host.js +158 -0
  20. package/dist/shortcuts/archive-oa/index.js +225 -0
  21. package/dist/shortcuts/archive-oa/manifest.js +62 -0
  22. package/dist/shortcuts/archive-oa/operations/borrow-car.js +159 -0
  23. package/dist/shortcuts/archive-oa/operations/borrow-url.js +108 -0
  24. package/dist/shortcuts/archive-oa/operations/confirm.js +48 -0
  25. package/dist/shortcuts/archive-oa/operations/contract.js +120 -0
  26. package/dist/shortcuts/archive-oa/operations/locate.js +50 -0
  27. package/dist/shortcuts/archive-oa/operations/registry.js +40 -0
  28. package/dist/shortcuts/archive-oa/operations/shared.js +181 -0
  29. package/dist/shortcuts/archive-oa/operations/types.js +45 -0
  30. package/dist/shortcuts/archive-oa/operations.js +13 -0
  31. package/dist/shortcuts/asset/host.js +7 -6
  32. package/dist/shortcuts/blog/host.js +4 -3
  33. package/dist/shortcuts/caizhilian/host.js +3 -2
  34. package/dist/shortcuts/caizhilian/manifest.js +1 -1
  35. package/dist/shortcuts/calendar/host.js +2 -1
  36. package/dist/shortcuts/contract/host.js +34 -59
  37. package/dist/shortcuts/ehr/host.js +2 -1
  38. package/dist/shortcuts/esb/host.js +2 -1
  39. package/dist/shortcuts/fna/host.js +6 -3
  40. package/dist/shortcuts/fna/manifest.js +10 -5
  41. package/dist/shortcuts/fna/operations/expense-chart.js +162 -0
  42. package/dist/shortcuts/fna/operations/registry.js +2 -0
  43. package/dist/shortcuts/hrm/host.js +2 -1
  44. package/dist/shortcuts/im/host.js +3 -2
  45. package/dist/shortcuts/index.js +2 -0
  46. package/dist/shortcuts/invoice/host.js +9 -7
  47. package/dist/shortcuts/invoice/manifest.js +38 -47
  48. package/dist/shortcuts/invoice/operations/issuing-qys.js +328 -0
  49. package/dist/shortcuts/invoice/operations/registry.js +2 -3
  50. package/dist/shortcuts/jiuchuanhui/host.js +2 -1
  51. package/dist/shortcuts/mail/host.js +2 -1
  52. package/dist/shortcuts/meeting/host.js +2 -1
  53. package/dist/shortcuts/meeting/operations/eb/conflict.js +78 -12
  54. package/dist/shortcuts/okr/host.js +2 -1
  55. package/dist/shortcuts/plan/host.js +2 -1
  56. package/dist/shortcuts/project/host.js +2 -1
  57. package/dist/shortcuts/workflow/endpoints.js +11 -0
  58. package/dist/shortcuts/workflow/host.js +5 -7
  59. package/dist/shortcuts/workflow/index.js +6 -36
  60. package/dist/shortcuts/workflow/operations/chatscene.js +252 -0
  61. package/dist/shortcuts/workflow/operations/form.js +1047 -191
  62. package/dist/shortcuts/workflow/operations/read.js +137 -8
  63. package/dist/shortcuts/workflow/operations/sign-input.js +106 -0
  64. package/dist/shortcuts/workflow/operations/write.js +9 -1
  65. package/dist/shortcuts/workflow/stdout-compact.js +16 -1
  66. package/docs/SKILL.md +1 -1
  67. package/docs/_catalog.md +1 -1
  68. package/docs/agent-invoice.md +1 -1
  69. package/docs/archive-oa.md +79 -0
  70. package/docs/caizhilian.md +1 -1
  71. package/docs/e10-auth.md +7 -6
  72. package/docs/fna.md +7 -3
  73. package/docs/invoice.md +4 -6
  74. package/package.json +1 -1
  75. package/skill-template/business-info.json +20 -1
  76. package/skill-template/domains/archive-oa.md +19 -0
  77. package/skill-template/domains/caizhilian.md +2 -1
  78. package/skill-template/domains/qiyecheng.md +1 -0
  79. package/skill-template/domains/yepiaotong.md +8 -4
  80. package/skill-template/skill-template.md +1 -0
  81. package/skills/weaver-e10-archive-oa/SKILL.md +159 -0
  82. package/skills/weaver-e10-archive-oa/references/archive-locate.md +49 -0
  83. package/skills/weaver-e10-archive-oa/references/borrow-car.md +76 -0
  84. package/skills/weaver-e10-archive-oa/references/borrow-flow.md +53 -0
  85. package/skills/weaver-e10-archive-oa/references/contract-search.md +63 -0
  86. package/skills/weaver-e10-archive-oa/references/disabled-capabilities.md +29 -0
  87. package/skills/weaver-e10-archive-oa/references/qys-contract-search.md +47 -0
  88. package/skills/weaver-e10-archive-oa/references/source-manifest.json +400 -0
  89. package/skills/weaver-e10-blog/SKILL.md +6 -1
  90. package/skills/weaver-e10-blog/references/blog-query.md +3 -1
  91. package/skills/weaver-e10-builder/SKILL.md +22 -0
  92. package/skills/weaver-e10-caizhilian/SKILL.md +47 -16
  93. package/skills/weaver-e10-caizhilian/references/action-flow.md +70 -0
  94. package/skills/weaver-e10-caizhilian/references/agent-entry.md +12 -4
  95. package/skills/weaver-e10-caizhilian/references/auth-and-install.md +207 -0
  96. package/skills/weaver-e10-caizhilian/references/collaboration.md +5 -3
  97. package/skills/weaver-e10-caizhilian/references/document.md +33 -11
  98. package/skills/weaver-e10-caizhilian/references/file-collection.md +57 -54
  99. package/skills/weaver-e10-caizhilian/references/file-upload.md +5 -6
  100. package/skills/weaver-e10-caizhilian/references/files.md +9 -3
  101. package/skills/weaver-e10-caizhilian/references/folder.md +48 -16
  102. package/skills/weaver-e10-caizhilian/references/host-executor-prompt.md +32 -0
  103. package/skills/weaver-e10-caizhilian/references/host-platform-integration.md +46 -0
  104. package/skills/weaver-e10-caizhilian/references/rule-index.md +56 -0
  105. package/skills/weaver-e10-caizhilian/references/setting-attach.md +17 -54
  106. package/skills/weaver-e10-caizhilian/references/setting-backup.md +16 -63
  107. package/skills/weaver-e10-caizhilian/references/setting-encrypt.md +24 -64
  108. package/skills/weaver-e10-caizhilian/references/setting-storage-docs-summary.md +126 -0
  109. package/skills/weaver-e10-caizhilian/references/setting-storage-field-map.md +57 -0
  110. package/skills/weaver-e10-caizhilian/references/setting-storage.md +143 -548
  111. package/skills/weaver-e10-caizhilian/references/source-manifest.json +7 -7
  112. package/skills/weaver-e10-caizhilian/references/task-workflow.md +87 -0
  113. package/skills/weaver-e10-caizhilian/references/withheld.md +21 -45
  114. package/skills/weaver-e10-caizhilian/references/write-protocol.md +7 -0
  115. package/skills/weaver-e10-calendar/SKILL.md +6 -1
  116. package/skills/weaver-e10-esb/SKILL.md +8 -0
  117. package/skills/weaver-e10-esb/references/input-format.md +3 -1
  118. package/skills/weaver-e10-esb/references/source-manifest.json +5 -5
  119. package/skills/weaver-e10-hrm/SKILL.md +6 -1
  120. package/skills/weaver-e10-hrm/references/employee.md +1 -1
  121. package/skills/weaver-e10-hrm/references/org.md +1 -1
  122. package/skills/weaver-e10-hrm/references/position.md +1 -1
  123. package/skills/weaver-e10-jinchengda/SKILL.md +2 -1
  124. package/skills/weaver-e10-jinchengda/references/contract-agent-entry.md +1 -1
  125. package/skills/weaver-e10-jiuchuanhui/SKILL.md +6 -1
  126. package/skills/weaver-e10-jucailin/SKILL.md +6 -1
  127. package/skills/weaver-e10-jucailin/references/hr-contact.md +1 -1
  128. package/skills/weaver-e10-jucailin/references/salary.md +1 -1
  129. package/skills/weaver-e10-mail/SKILL.md +6 -1
  130. package/skills/weaver-e10-meeting/SKILL.md +11 -6
  131. package/skills/weaver-e10-meeting/references/meeting-eb.md +7 -3
  132. package/skills/weaver-e10-meeting/references/meeting-queries.md +3 -1
  133. package/skills/weaver-e10-meeting/references/meeting-verification.md +4 -2
  134. package/skills/weaver-e10-okr/SKILL.md +6 -1
  135. package/skills/weaver-e10-okr/references/source-manifest.json +5 -5
  136. package/skills/weaver-e10-plan/SKILL.md +6 -1
  137. package/skills/weaver-e10-plan/references/plan-overview-and-routing.md +3 -1
  138. package/skills/weaver-e10-plan/references/plan-report-query.md +3 -1
  139. package/skills/weaver-e10-plan/references/source-manifest.json +7 -7
  140. package/skills/weaver-e10-qiyecheng/SKILL.md +16 -6
  141. package/skills/weaver-e10-qiyecheng/references/catalog.md +6 -3
  142. package/skills/weaver-e10-qiyecheng/references/expense-center.md +2 -0
  143. package/skills/weaver-e10-qiyecheng/references/expense-chart.md +78 -0
  144. package/skills/weaver-e10-qiyecheng/references/source-manifest.json +87 -33
  145. package/skills/weaver-e10-shared/SKILL.md +53 -28
  146. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +22 -20
  147. package/skills/weaver-e10-shared/references/non-interactive-environment.md +13 -13
  148. package/skills/weaver-e10-shared/references/weaver-e10-installation.md +3 -1
  149. package/skills/weaver-e10-wenshuding/SKILL.md +6 -1
  150. package/skills/weaver-e10-wenshuding/references/source-manifest.json +3 -3
  151. package/skills/weaver-e10-workflow/references/source-manifest.json +33 -24
  152. package/skills/weaver-e10-workflow/references/workflow-create.md +41 -26
  153. package/skills/weaver-e10-yepiaotong/SKILL.md +23 -18
  154. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +87 -45
  155. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-form-fill-rules.md +152 -0
  156. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-workflow.md +210 -0
  157. package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +59 -36
  158. package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +63 -512
  159. package/skills/weaver-e10-yepiaotong/references/reim-examples.md +205 -346
  160. package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +4 -5
  161. package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +231 -344
  162. package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +5 -5
  163. package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +201 -162
  164. package/skills/weaver-e10-yepiaotong/references/source-manifest.json +121 -145
  165. package/skills/weaver-e10-yimiaoban/SKILL.md +9 -2
  166. package/skills/weaver-e10-yimiaoban/references/file-user-i18n.md +1 -1
  167. package/skills/weaver-e10-yimiaoban/references/msg-read.md +1 -1
  168. package/skills/weaver-e10-yimiaoban/references/source-manifest.json +9 -9
  169. package/skills/weaver-e10-ziguanjia/SKILL.md +6 -1
  170. package/dist/shortcuts/invoice/operations/issuing.js +0 -198
  171. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-field-rules.md +0 -161
  172. package/skills/weaver-e10-yepiaotong/references/invoice-issuing.md +0 -107
  173. package/skills/weaver-e10-yepiaotong/references/reim-fast-path.md +0 -119
@@ -2,7 +2,7 @@
2
2
  name: weaver-setting-attach
3
3
  description: "对话式修改\"文件设置 → 附件设置\"页面的 15 个配置项(上传最大、上传格式控制 方式、附件打开方式、批量下载、禁止移动端下载、附加提示、图片压缩、版本清理、 打印转 PDF 等)。通过自然语言 / `setting set --item key=value` 即可完成 GET 全量 → modify(保留原值) → diff 让用户确认 → POST 落库,无需打开 浏览器逐项点击。覆盖 weapp 端 `POST /api/file/tenant/setting` 与 `POST /api/file/tenant/setting/save` 两条接口。另提供只读查询:按审批流程 ID 查附件上传目录(caizhilian.setting-attach.list-upload-folders)。Use for 改附件设置、改上传 最大、改附件打开方式、改白名单黑名单、附件批量下载、禁止移动端下载、附加 提示、文件设置、文件上传、格式限制、图片压缩、版本清理、清理文件版本、 打印转 PDF、按流程查上传目录、流程附件目录、流程上传文件夹、eteams-file 后台、<your-e10-domain>/info/fileSet/attach."
4
4
  license: Proprietary
5
- compatibility: 泛微E10采知连配套使用,内部可自由使用与修改,禁止对外分发
5
+ compatibility: 泛微E10采知连配套使用,随 weaver-e10-caizhilian 技能分发
6
6
  metadata:
7
7
  maintainer: unknown
8
8
  type: capability
@@ -21,22 +21,13 @@ metadata:
21
21
 
22
22
  ### 认证前置(必须)
23
23
 
24
- 本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent),凭证契约见共享规则 [`../../weaver-e10-shared/SKILL.md`](../../weaver-e10-shared/SKILL.md),不依赖手动配置文件,Agent 不得自己读取或输出凭证。
24
+ 本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent),凭证契约见 `auth-and-install.md`,不依赖手动配置文件,Agent 不得自己读取或输出凭证。
25
25
 
26
26
  **使用前必须确保**:
27
27
  1. CLI 已安装:`weaver-work-cli --version` 能正常输出版本号
28
28
  2. 已完成登录:`weaver-work-cli auth status` 显示已登录
29
29
 
30
- **首次登录**:
31
- ```text
32
- # OAuth2.0 浏览器授权(推荐)
33
- weaver-work-cli auth login
34
-
35
- # 或手动写入 ETEAMSID(从浏览器 DevTools 复制)
36
- weaver-work-cli auth set --eteamsid "PCACCOUNT_xxx"
37
- ```
38
-
39
- **凭证过期处理**:操作返回认证错误时,提示用户通过 `weaver-work-cli auth login` 或 `weaver-work-cli auth set` 重新登录。
30
+ **登录与登录失效处理**:读取 `auth-and-install.md`,由 Agent 复用任务开始时的宿主判定,禁止调用任何其他登录 Skill。明确为 XiaoE 时只执行 `weaver-work-cli auth xiaoe`,失败即停止且不得改走浏览器;非 XiaoE 时先取得用户确认的真实 E10 域名,再执行 `weaver-work-cli auth login --base-url "<用户确认的 E10 登录域名>" --agent_type "<当前智能体名称>"`。
40
31
 
41
32
  ## When to use
42
33
 
@@ -115,7 +106,7 @@ weaver-work-cli --json caizhilian run caizhilian.setting-attach.search-workflows
115
106
  | `shard-size` | `uploadShardSize` | 整数 MB | 1 ≤ n ≤ 50 |
116
107
  | `format-mode` | `sysFormatWhitesEnable` | `whitelist` / `blacklist` | 切换模式后会自动迁移 `format-list` |
117
108
  | `format-list` | `sysFormatWhites` 或 `sysFormatBlacks` | 逗号/分号分隔扩展名 | 自动按当前 mode 写到正确字段 |
118
- | `non-image-open` | `sysNonImageMediaOpenType` | `newTab` / `popupWindow` | 后端实际只有这两个值(v0.1.0 表格写的 dialog/directDownload 是错的,已纠正) |
109
+ | `non-image-open` | `sysNonImageMediaOpenType` | `newTab` / `popupWindow` | 后端实际只有这两个值 |
119
110
  | `image-open` | `sysImageMediaOpenType` | `newTab` / `previewComponent` | |
120
111
  | `show-attach-list` | `sysPreviewShowAttachmentList` | bool | |
121
112
  | `attach-expand` | `sysAttachmentListDefaultExpand` | bool | |
@@ -129,9 +120,9 @@ weaver-work-cli --json caizhilian run caizhilian.setting-attach.search-workflows
129
120
  | `version-size` | `sysFileVersionSize` | 整数(1-500) / `-1`(不限) | 每个文件最多保留多少个历史版本。**与 `version-time` 互斥**,由 `version-clean-type` 决定生效哪个 |
130
121
  | `version-time` | `sysFileVersionTime` | 整数(1-1095) / `-1`(永久) | 每个文件的历史版本保留多少天。**与 `version-size` 互斥**,由 `version-clean-type` 决定生效哪个 |
131
122
  | `print-pdf-types` | `sysPrintToPdfFileTypes` | 逗号分隔扩展名 | 打印时需要转 PDF 的扩展名(空 = 未启用,独立项) |
132
- | `version-clean-type` | `sysAutoClearFileVersionType` | `versionSize` / `versionTime` | 版本清理方式(按份数 / 按时间)—— v0.2.0 补。**决定 `version-size` 和 `version-time` 哪个生效** |
133
- | `version-size-type` | `sysFileVersionSizeType` | `selected` / `custom` | 份数那一行 UI 状态(selected = 选下拉 / custom = 自定义)—— v0.2.0 补 |
134
- | `version-time-type` | `sysFileVersionTimeType` | `selected` / `custom` | 时间那一行 UI 状态(selected = 选下拉 / custom = 自定义)—— v0.2.0 补 |
123
+ | `version-clean-type` | `sysAutoClearFileVersionType` | `versionSize` / `versionTime` | 版本清理方式(按份数 / 按时间)。**决定 `version-size` 和 `version-time` 哪个生效** |
124
+ | `version-size-type` | `sysFileVersionSizeType` | `selected` / `custom` | 份数那一行 UI 状态(selected = 选下拉 / custom = 自定义) |
125
+ | `version-time-type` | `sysFileVersionTimeType` | `selected` / `custom` | 时间那一行 UI 状态(selected = 选下拉 / custom = 自定义) |
135
126
 
136
127
  ### 版本清理设置规则(强制)
137
128
 
@@ -150,7 +141,7 @@ weaver-work-cli --json caizhilian run caizhilian.setting-attach.search-workflows
150
141
 
151
142
  **单独设置 `version-size` 或 `version-time` 不会生效**,必须同时设置 `version-size-type` 和 `version-time-type` 为 `custom`。
152
143
 
153
- 完整别名表见 [setting-attach-field-map.md](setting-attach-field-map.md)。
144
+ 完整别名表见本文「字段对照表」章节。
154
145
 
155
146
  ## 硬性门禁
156
147
 
@@ -178,7 +169,7 @@ weaver-work-cli --json caizhilian run caizhilian.setting-attach.search-workflows
178
169
 
179
170
  1. **操作前必查登录态**
180
171
  每次执行业务操作前,确认 CLI 已完成登录:
181
- - 若 `weaver-work-cli auth status` 显示未登录,提示用户执行 `weaver-work-cli auth login` 或 `weaver-work-cli auth set` 完成登录
172
+ - 若 `weaver-work-cli auth status` 显示未登录,立即停止业务操作并按 `auth-and-install.md` 的宿主分流恢复会话,不得直接指定或调用其他登录 Skill
182
173
  - 登录完成后**立刻**继续用户原本的请求,不要让用户再敲一次命令
183
174
 
184
175
  2. **查询要简洁**(`show` / 读设置时的输出格式)
@@ -242,27 +233,13 @@ weaver-work-cli --json caizhilian run caizhilian.setting-attach.search-workflows
242
233
 
243
234
  ## 宿主
244
235
 
245
- CLI 入口:
246
-
247
- ```text
248
- python3 scripts/attach_setting.py <cmd> [args]
249
- ```
250
-
251
- 装好后 `setting show / set ...` 即可直接调用。
236
+ CLI 入口:`weaver-work-cli caizhilian run caizhilian.setting-attach.<operation>`(操作清单见 SKILL.md 路由表)。
252
237
 
253
238
 
254
239
  ## 与 weaver-im 的关系
255
240
 
256
241
  两者**不共享凭证**(`auth_opt2` 决策)。现在统一通过 CLI 托管的认证获取凭证。
257
242
 
258
- ## 版本
259
-
260
- - 0.1.0(2026-08-06)首次创建。覆盖 eteams-file 截图"附件设置" Tab 的 11 字段。
261
- - 0.2.0(2026-08-09)补 6 字段:图片压缩(`img-compress` / `img-compress-quality`)、
262
- 版本清理(`auto-clear-version` / `version-size` / `version-time`)、
263
- 打印转 PDF(`print-pdf-types`)。这 3 类功能实际也在附件设置同一页
264
- (`AttachSet/index.tsx`),0.1.0 时只覆盖 11 项漏了。同时修 `mobile-block`
265
- alias 的 `invert=True` 方向写反 bug(CLI true 现在直接对应 DTO true)。
266
243
  # 接口协议
267
244
 
268
245
  ## 端点
@@ -276,13 +253,11 @@ python3 scripts/attach_setting.py <cmd> [args]
276
253
 
277
254
  ## 鉴权
278
255
 
279
- 走 `Cookie: ETEAMSID=<id>`,与前端 `axios` 默认 cookie 行为一致。
280
-
281
- CLI 自动从 `.env.local` / ENV 读取并塞进 Cookie。
256
+ 请求头凭证由 CLI 统一注入(见 `auth-and-install.md`「请求头契约」),Agent 不自行拼 Cookie、不读写本地凭证文件。
282
257
 
283
258
  ## FileSettingDto 节选(11 字段 + 只读)
284
259
 
285
- 完整 DTO 见 eteams-file 仓库 `BaseSetDto.java`。下面只列本 skill 关心的字段:
260
+ 完整字段以服务端 DTO 为准。下面只列本 skill 关心的字段:
286
261
 
287
262
  ```json
288
263
  {
@@ -315,25 +290,13 @@ CLI 自动从 `.env.local` / ENV 读取并塞进 Cookie。
315
290
  | 401/403 | — | ETEAMSID 失效/没权限,重跑 `setting login --config <name>` |
316
291
  | 5xx | — | 后端挂了,看日志 |
317
292
 
318
- ## 后端实现位置(参考)
319
-
320
- - Controller:`eteams-file/src/main/java/com/weaver/teams/file/e10/mvc/web/FileSettingController.java`
321
- - DTO:`com.weaver.teams.file.e10.dto.FileSettingDto` / `BaseSetDto`
322
- - 设置项注册:`com.weaver.teams.file.e10.manager.set.FileSetFactory`
323
- - 前端调用:`weapp-file/src/api/fileSetApi.ts` 中 `fileSetDatas` / `fileSetSave`
324
-
325
293
  ## POST 注意事项
326
294
 
327
- 1. **保存是逐字段 update,不是覆盖式全量**。后端 `fileSettingSave` 遍历 DTO,对**非 null**
328
- 字段调 `FileSetItemServiceProxy.updateSysFileItem(...)`;null 字段跳过不处理。
329
- 意味着:未指定字段**不会被清空**(因为后端根本不动它们)。
330
- 2. **但绝对不能透传只读/虚拟字段**——后端用每个字段名 `FileobjTenantPermissionEnum.valueOf(key)`,
331
- `sysMaxSingleUploadLimitSize` 等虚拟字段不在 enum 里,会抛
332
- `IllegalArgumentException: No enum constant ...` 让整笔事务回滚。
333
- 3. **只 POST 改了的字段**。CLI 用 `field_map.diff` 算出 changed 字段后只发这一份。
334
- 4. **服务端会校验范围**:传超范围值会返回业务异常(status=false / code=500),
335
- CLI 会原样打印 `detailErrorMessage`。
336
- 5. **操作日志**:`FileOpLogManager` 会记一条 `fileSetting` 日志(管理员可在"操作日志"里看到)。
295
+ 1. **保存是逐字段更新,不是覆盖式全量**。只提交的字段会被修改;未指定字段**不会被清空**。
296
+ 2. **绝对不能提交只读/虚拟字段**(如 `sysMaxSingleUploadLimitSize`),会直接报错并让整笔事务回滚。
297
+ 3. **只提交改了的字段**,CLI 会自动只发变更字段。
298
+ 4. **服务端会校验范围**:传超范围值会返回业务异常,CLI 会原样打印错误信息。
299
+ 5. **操作日志**:会记一条附件设置日志(管理员可在"操作日志"里看到)。
337
300
  # 字段对照表(11 项)
338
301
 
339
302
  > 对应 eteams-file 后端 `BaseSetDto` / `FileSettingDto`。
@@ -2,7 +2,7 @@
2
2
  name: weaver-setting-backup
3
3
  description: "对话式管理 weapp 后台\"文件设置 → 备份设置\"页面:开关本地备份、列出备份规则、 调整规则路径/周期/启停、删除规则。`backup on` 一句话开启、`backup update --id N --period 720` 一句话调整。覆盖 `POST /api/file/tenant/setting/save`(开关 `sysLocalFileBackup`)+ `FileBackupController` 全部 5 个 CRUD 端点。Use for 备份设置、本地备份、附件备份、备份规则、backupRule、backupPath、备份周期、 文件设置备份、eteams-file 备份、<your-e10-domain>/info/fileSet/backup."
4
4
  license: Proprietary
5
- compatibility: 泛微E10采知连配套使用,内部可自由使用与修改,禁止对外分发
5
+ compatibility: 泛微E10采知连配套使用,随 weaver-e10-caizhilian 技能分发
6
6
  metadata:
7
7
  maintainer: unknown
8
8
  type: capability
@@ -23,22 +23,13 @@ metadata:
23
23
 
24
24
  ### 认证前置(必须)
25
25
 
26
- 本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent),凭证契约见共享规则 [`../../weaver-e10-shared/SKILL.md`](../../weaver-e10-shared/SKILL.md),不依赖手动配置文件,Agent 不得自己读取或输出凭证。
26
+ 本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent),凭证契约见 `auth-and-install.md`,不依赖手动配置文件,Agent 不得自己读取或输出凭证。
27
27
 
28
28
  **使用前必须确保**:
29
29
  1. CLI 已安装:`weaver-work-cli --version` 能正常输出版本号
30
30
  2. 已完成登录:`weaver-work-cli auth status` 显示已登录
31
31
 
32
- **首次登录**:
33
- ```text
34
- # OAuth2.0 浏览器授权(推荐)
35
- weaver-work-cli auth login
36
-
37
- # 或手动写入 ETEAMSID(从浏览器 DevTools 复制)
38
- weaver-work-cli auth set --eteamsid "PCACCOUNT_xxx"
39
- ```
40
-
41
- **凭证过期处理**:操作返回认证错误时,提示用户通过 `weaver-work-cli auth login` 或 `weaver-work-cli auth set` 重新登录。
32
+ **登录与登录失效处理**:读取 `auth-and-install.md`,由 Agent 复用任务开始时的宿主判定,禁止调用任何其他登录 Skill。明确为 XiaoE 时只执行 `weaver-work-cli auth xiaoe`,失败即停止且不得改走浏览器;非 XiaoE 时先取得用户确认的真实 E10 域名,再执行 `weaver-work-cli auth login --base-url "<用户确认的 E10 登录域名>" --agent_type "<当前智能体名称>"`。
42
33
 
43
34
  ## When to use
44
35
 
@@ -96,7 +87,7 @@ backup delete --id 2 --yes
96
87
  2. **`prod` 必须 --yes**——防手滑。
97
88
  3. **不开开关不能调规则**——`backup update/enable/disable/delete` 在
98
89
  `sysLocalFileBackup=false` 时拒绝(关着的备份调规则没意义)。
99
- 4. **period 范围 60-1440 分钟**(后端 `FileBackupManagerImpl.java:57` 校验);
90
+ 4. **period 范围 60-1440 分钟**(后端校验);
100
91
  CLI 也做同样校验。
101
92
  5. **新建规则不能走 CLI**——后端没 `/api/file/create/backup/rule` 端点(前端 bug);
102
93
  唯一新建路径是 `backup on` 在无规则时自动建默认。
@@ -109,7 +100,7 @@ backup delete --id 2 --yes
109
100
 
110
101
  1. **操作前必查登录态**
111
102
  每次执行业务操作前,确认 CLI 已完成登录:
112
- - 若 `weaver-work-cli auth status` 显示未登录,提示用户执行 `weaver-work-cli auth login` 或 `weaver-work-cli auth set` 完成登录
103
+ - 若 `weaver-work-cli auth status` 显示未登录,立即停止业务操作并按 `auth-and-install.md` 的宿主分流恢复会话,不得直接指定或调用其他登录 Skill
113
104
  - 登录完成后**立刻**继续用户原本的请求,不要让用户再敲一次命令
114
105
 
115
106
  2. **查询要简洁**(`show / list` 时的输出格式)
@@ -174,10 +165,8 @@ backup delete --id 2 --yes
174
165
  和备份目录都必须是 E10 应用服务器能访问的目录(不能是客户本机的
175
166
  `/Users/xxx`、不能是某个应用节点临时目录、不能是其他服务器的远程
176
167
  路径),否则后端写不进去。改路径时 agent **必须**在话术里复述这个约束
177
- - **改"备份目录"前必做本地预校验,不发注定失败的请求** — 后端
178
- `FileSettingManagerImpl.checkBackupPath`
179
- (`src/main/java/com/weaver/teams/file/e10/manager/file/FileSettingManagerImpl.java:276-302`)
180
- 会拒 5 类路径,agent 改路径前**必须**在 CLI 端先把目标路径跑一遍
168
+ - **改"备份目录"前必做本地预校验,不发注定失败的请求** — 后端会拒 5 类路径,
169
+ agent 改路径前**必须**在 CLI 端先把目标路径跑一遍
181
170
  等价校验,任一不过**直接告诉客户"后端会拒:<原因>",让客户重新给路径**,
182
171
  **不要**静默发请求让后端报错。5 项校验:
183
172
 
@@ -187,9 +176,7 @@ backup delete --id 2 --yes
187
176
  4. 不能等于源目录(源目录按 `;` 切分后逐个比较)
188
177
  5. 不能是源目录的子目录(源目录末尾补 `/` 后取备份路径前 N 位对比)
189
178
 
190
- CLI 已有 `_validate_backup_path()` 函数封装这 5 项(`scripts/backup_setting.py`),
191
- `cmd_update` 在 `--backup-path` 显式传值时自动跑,错误打到 stderr 并
192
- `return 4`,不发请求。常见客户语言:
179
+ CLI 会在 `--backup-path` 显式传值时自动跑这 5 项校验,不通过直接报错返回,不发请求。常见客户语言:
193
180
  - "路径要以 / 开头"(CODE_20080)
194
181
  - "路径不能含特殊字符 \* ? \" < > |"(CODE_20078)
195
182
  - "路径不能含空白 / 分号 / 单引号 / 全角问号"(FILE_PATH 正则)
@@ -224,11 +211,7 @@ backup delete --id 2 --yes
224
211
 
225
212
  ## 宿主
226
213
 
227
- CLI 入口:
228
-
229
- ```text
230
- python3 scripts/backup_setting.py <cmd> [args]
231
- ```
214
+ CLI 入口:`weaver-work-cli caizhilian run caizhilian.setting-backup.<operation>`(操作清单见 SKILL.md 路由表)。
232
215
 
233
216
 
234
217
  ## 与 weaver-setting-attach / weaver-setting-encrypt 的关系
@@ -244,28 +227,6 @@ python3 scripts/backup_setting.py <cmd> [args]
244
227
 
245
228
  ## 版本
246
229
 
247
- - 0.1.0(2026-08-06)首次创建。
248
- - 0.2.0(2026-08-06)优化:对话式规则完整内联 6 条(去除外部仓库依赖),加上 backup
249
- 特有"业务前置 + 路径约束 + 典型部署模板"作为规则 6/7 整合;重写"与 attach/encrypt
250
- 关系"段(删开发内部决策);门禁 1 补对话确认说明;加版本号规则。
251
- - 0.2.1(2026-08-09)优化:规则 3 `show` / `list` 规则详情输出格式改为按列表
252
- 逐项展示,规则名前不再显示 `规则 #<id>`,直接用规则名。
253
- - 0.2.2(2026-08-09)澄清:业务上后端只支持 1 条"默认备份规则",不能
254
- 新建第二条。规则 6 改写为"只支持 1 条默认规则,不能新增",去掉
255
- "新建规则没 CLI 入口"的旧表述(之前会让用户去找 weapp 后台手动加,
256
- 实际是后端根本不支持)。
257
- - 0.2.3(2026-08-09)修 bug + 加预校验:
258
- - `scripts/backup_api.py 的 `get_rule`` 参数从 `id` 改为 `backupId`(后端
259
- `FileBackupServiceImpl.getBackupRule:88` 校验的是 `backupId`,传 `id`
260
- 被拒)
261
- - `scripts/backup_setting.py 的 `cmd_update`` 拉详情时多下沉一层到 `weaForm.data`,
262
- 否则 `backupName` 等字段读到空串
263
- - 规则 6 加"改备份目录前必做本地预校验":把后端
264
- `FileSettingManagerImpl.checkBackupPath:276-302` 的 5 项校验
265
- (`/` 开头 / 硬禁字符 / FILE_PATH 正则 / 不等于源路径 / 非源路径子目录)
266
- 搬到 CLI 端 `_validate_backup_path()`,update 前自动跑,错误直接
267
- 拦在客户端不发请求
268
-
269
230
  版本号规则 `x.y.z`:
270
231
  - **x 升** — 大重构(接口变化、DTO 结构变化、命令大幅增删)
271
232
  - **y 升** — 新增命令、新增子模块、新增业务场景
@@ -292,7 +253,7 @@ python3 scripts/backup_setting.py <cmd> [args]
292
253
 
293
254
  1. **开关是逐字段 update**:只传 `sysLocalFileBackup` 一个字段,后端不会清空
294
255
  其它字段(参考 agent memory 中 weaver-setting-attach 的同款经验)。
295
- 2. **开开关 + 无规则 = 自动建默认规则**——`SysLocalFileBackup.java:138-159`:
256
+ 2. **开开关 + 无规则 = 自动建默认规则**:
296
257
  ```java
297
258
  getInitFileBackup(tenantKey, newValue)
298
259
  → 取第一个 LOCAL_STORE 实例 → 构造 BackupRuleCreateParam
@@ -302,19 +263,12 @@ python3 scripts/backup_setting.py <cmd> [args]
302
263
  3. **新建规则的端点不存在**——前端 `createBackupRule` 调的是
303
264
  `/api/file/create/backup/rule`,后端 `FileBackupController` 里**没有**这个
304
265
  端点。前端 bug,CLI 不暴露 `create`。
305
- 4. **period 范围 60-1440 分钟**——后端 `FileBackupManagerImpl.java:57` 校验。
266
+ 4. **period 范围 60-1440 分钟**——后端校验。
306
267
  5. **delete 是批量**——body 是 `{ids: [N1, N2, ...]}`;CLI 一次只支持一个
307
268
  id,多个需要循环。
308
269
  6. **enable 接口的字段是 `enableStatus`(Boolean),不是 `enabled`**——后端
309
270
  `BackupRuleEnableParam` 用 `enableStatus` 字段。
310
271
 
311
- ## 后端实现位置
312
-
313
- - Controller:`eteams-file/src/main/java/com/weaver/teams/file/e10/mvc/web/FileBackupController.java`
314
- - 开关注册:`eteams-file/src/main/java/com/weaver/teams/file/e10/manager/set/impl/SysLocalFileBackup.java`
315
- - 规则 CRUD:`eteams-file/src/main/java/com/weaver/teams/file/e10/service/web/impl/FileBackupServiceImpl.java`
316
- - Param/DTO:`eteams-file/src/main/java/com/weaver/teams/file/e10/param/BackupRule*.java`
317
- - 前端 UI:`weapp-file/src/components/pc/FileSet/components/BackupSet/`
318
272
  # 字段说明
319
273
 
320
274
  ## 顶层:本地备份开关
@@ -322,7 +276,7 @@ python3 scripts/backup_setting.py <cmd> [args]
322
276
  - **DTO 字段**:`sysLocalFileBackup`(Boolean)
323
277
  - **GET 端点**:`POST /api/file/tenant/setting`
324
278
  - **SAVE 端点**:`POST /api/file/tenant/setting/save`(只传这一个字段)
325
- - **特殊行为**:开时如果当前无规则,**自动建默认规则**(用第一个本地存储实例的 path,详见 `SysLocalFileBackup.java:138-159`)
279
+ - **特殊行为**:开时如果当前无规则,**自动建默认规则**(用第一个本地存储实例的 path)
326
280
 
327
281
  ## 备份规则字段
328
282
 
@@ -360,13 +314,12 @@ python3 scripts/backup_setting.py <cmd> [args]
360
314
 
361
315
  ## ⚠️ 已知坑
362
316
 
363
- 1. **没有"新建规则"接口**——后端 `FileBackupController` 没有
364
- `/api/file/create/backup/rule` 端点;前端代码 `RuleDialog.tsx:120` 调了但
365
- 后端没实现,是个**前端 bug**。CLI 不暴露 `create` 子命令。
317
+ 1. **没有"新建规则"接口**——后端没有新建规则端点(前端页面调了但后端没实现,是个**前端 bug**)。
318
+ CLI 不暴露 `create` 子命令。
366
319
  2. **唯一新建路径**:`backup on` 开启本地备份时如果无规则会自动建默认
367
320
  (用第一个本地存储实例的 path)。如果租户没有本地存储实例,
368
- `SysLocalFileBackup.java:142` 会抛 `BusinessException("no useful local storage")`。
321
+ 后端会报"没有可用的本地存储"错误。
369
322
  3. **规则操作需要本地备份开启**——CLI 在 `update/enable/disable/delete` 前
370
323
  会 GET 一次 settings 检查 `sysLocalFileBackup`,没开会拒绝并提示先 `on`。
371
- 4. **period 范围 60-1440**(后端 `FileBackupManagerImpl.java:57` 校验),
324
+ 4. **period 范围 60-1440**(后端校验),
372
325
  CLI 也做同样校验;非整数倍数的"1440"会被四舍五入(按分钟)。
@@ -2,7 +2,7 @@
2
2
  name: weaver-setting-encrypt
3
3
  description: "对话式修改 weapp 后台\"文件设置 → 加解密设置\"页面的全部 8 个子字段(加解密功能开关、 第三方加解密软件、软件地址、加解密场景、加密/未加密 × 上传/下载 4 个文件处理字段)。 通过自然语言 / `setting-encrypt set --item key=value` 即可完成读取全量 → modify(保留原值)→ diff 让用户确认 → POST 落库。查询优先使用 `GET /api/file/thirdPlugEncDec/config`,旧版本 404 时兼容 `POST /api/file/tenant/setting`;保存使用 `POST /api/file/tenant/setting/save`。Use for 加解密、加密场景、华途、天锐绿盾、亿赛通、文件设置加解密、 <your-e10-domain>/info/fileSet/encryption."
4
4
  license: Proprietary
5
- compatibility: 泛微E10采知连配套使用,内部可自由使用与修改,禁止对外分发
5
+ compatibility: 泛微E10采知连配套使用,随 weaver-e10-caizhilian 技能分发
6
6
  metadata:
7
7
  maintainer: unknown
8
8
  type: capability
@@ -13,7 +13,7 @@ metadata:
13
13
 
14
14
  # weaver-setting-encrypt
15
15
 
16
- > 版本 1.1.9:修正第三方软件名称到后端编码的转换,亿赛通提交为 `est`;同时兼容旧版本查询接口。
16
+ > 说明:第三方软件名称提交前会转换为后端编码,亿赛通提交为 `est`;同时兼容旧版本查询接口。
17
17
 
18
18
  让"文件设置 → 加解密设置"页面**用对话就能改**。背后调两条 HTTP 接口:
19
19
  - `GET /api/file/thirdPlugEncDec/config`(新版本专用端点,读完整 `EncryptionSettings`)
@@ -28,22 +28,13 @@ metadata:
28
28
 
29
29
  ### 认证前置(必须)
30
30
 
31
- 本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent),凭证契约见共享规则 [`../../weaver-e10-shared/SKILL.md`](../../weaver-e10-shared/SKILL.md),不依赖手动配置文件,Agent 不得自己读取或输出凭证。
31
+ 本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent),凭证契约见 `auth-and-install.md`,不依赖手动配置文件,Agent 不得自己读取或输出凭证。
32
32
 
33
33
  **使用前必须确保**:
34
34
  1. CLI 已安装:`weaver-work-cli --version` 能正常输出版本号
35
35
  2. 已完成登录:`weaver-work-cli auth status` 显示已登录
36
36
 
37
- **首次登录**:
38
- ```text
39
- # OAuth2.0 浏览器授权(推荐)
40
- weaver-work-cli auth login
41
-
42
- # 或手动写入 ETEAMSID(从浏览器 DevTools 复制)
43
- weaver-work-cli auth set --eteamsid "PCACCOUNT_xxx"
44
- ```
45
-
46
- **凭证过期处理**:操作返回认证错误时,提示用户通过 `weaver-work-cli auth login` 或 `weaver-work-cli auth set` 重新登录。
37
+ **登录与登录失效处理**:读取 `auth-and-install.md`,由 Agent 复用任务开始时的宿主判定,禁止调用任何其他登录 Skill。明确为 XiaoE 时只执行 `weaver-work-cli auth xiaoe`,失败即停止且不得改走浏览器;非 XiaoE 时先取得用户确认的真实 E10 域名,再执行 `weaver-work-cli auth login --base-url "<用户确认的 E10 登录域名>" --agent_type "<当前智能体名称>"`。
47
38
 
48
39
  ## When to use
49
40
 
@@ -67,8 +58,7 @@ CLI 软链名 `setting-encrypt`(用全名避开与 `weaver-setting-attach` 的
67
58
 
68
59
  ## 8 个支持字段(扁平 key)
69
60
 
70
- CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完整别名表见
71
- [setting-encrypt-field-map.md](setting-encrypt-field-map.md)。
61
+ CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完整别名表见本文「字段对照表」章节。
72
62
 
73
63
  > **历史说明**:早期版本支持 13 个字段(含加密机分支:`encryptMachineType` /
74
64
  > `encryptIp` / `encryptPort` / `encryptAppID` / `encryptAppKey`)。前端下拉已移除
@@ -78,7 +68,7 @@ CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完
78
68
  | 别名(key) | DTO 字段 | 类型 | 备注 | 依赖 |
79
69
  |---|---|---|---|---|
80
70
  | `open-encrypt` | `openEncryptFunction` | bool | 加解密功能开关 | — |
81
- | `encrypt-plugs` | `encryptPlugs` | enum | 后端编码:`est`=亿赛通、`tipray`=天锐绿盾、`vtext`=华途(对接方式/限制见 [setting-encrypt-third-party-plugins.md](setting-encrypt-third-party-plugins.md)) | — |
71
+ | `encrypt-plugs` | `encryptPlugs` | enum | 后端编码:`est`=亿赛通、`tipray`=天锐绿盾、`vtext`=华途(对接方式与限制见下方第三方软件说明) | — |
82
72
  | `encrypt-url` | `encryptUrl` | str (URL) | 软件地址 | — |
83
73
  | `encrypt-scene` | `encryptScene` | enum | 场景:`uploadAndDownloadEncrypt` / `uploadAndDownloadNotProcessed` / `custom` | — |
84
74
  | `encrypt-file-upload` | `encryptFileUpload` | enum (str) | 加密文件-上传:`0`=解密 `1`=加密 其它=不处理 | `encrypt-scene=custom` |
@@ -94,10 +84,8 @@ CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完
94
84
  "改前值 / 改后影响 / 明确询问" 三步**(见对话式规则 3),得到
95
85
  "改 / 确认 / 好的" 之类回复后才调 CLI。
96
86
  2. **`prod` 必加 --yes**——生产环境操作时必须同时带 `--yes` 才会发 POST。
97
- 3. **整对象 POST,子字段 merge**——`encryptionSettings` 是 DTO 嵌套对象,后端
98
- `EncryptionSettings.java:49` 的 `updateSysFileItem` 接收**整对象**并存到 `param`
99
- 字段前 `toString()`(整对象变 JSON 串)。CLI 必须 GET 拉整对象 → 改子字段 merge
100
- 进 `current` → **整对象 toString 一起 POST**。**不能只 POST 改了的子字段**
87
+ 3. **整对象 POST,子字段 merge**——`encryptionSettings` 是嵌套对象,后端按**整对象**接收并保存。
88
+ CLI 必须 GET 拉整对象 → 改子字段 merge 进 `current` → **整对象一起 POST**。**不能只 POST 改了的子字段**
101
89
  (后端不支持增量,会覆盖整对象);也不能"只 diff 几个 key"就 POST(merge 时
102
90
  其他子字段会丢)。
103
91
  4. **保存后再次读取校验**——POST 完按同样的端点兼容逻辑重新读取并比对。
@@ -109,7 +97,7 @@ CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完
109
97
 
110
98
  ### 后端接口执行规则
111
99
 
112
- 加解密设置必须由 `scripts/encrypt_setting.py` 调用 `encrypt_api.py` 完成,禁止通过浏览器表单或浏览器自动化写入。浏览器仅可参与 `weaver-work-cli auth login` 登录授权。
100
+ 加解密设置必须通过 CLI 的加解密设置操作完成,禁止通过浏览器表单或浏览器自动化写入。浏览器仅可参与非 XiaoE 环境的 `weaver-work-cli auth login` 登录授权;XiaoE 环境不得回退浏览器登录。
113
101
 
114
102
  - 查询接口优先是 `GET /api/file/thirdPlugEncDec/config`;旧版本返回 404 时,使用
115
103
  `POST /api/file/tenant/setting` 读取 `data.encryptionSettings`。保存接口是
@@ -117,7 +105,7 @@ CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完
117
105
  - 保存前必须 GET 读取完整的 8 字段对象,合并目标字段后整体保存,不能只提交变更字段。
118
106
  - 保存后必须重新 GET,确认 `encryptPlugs`、`encryptUrl`、`encryptScene` 与目标值一致;否则明确报告“未保存成功”。
119
107
  - 下拉列表出现“亿赛通”仅说明前端提供该选项,不代表当前租户已经保存亿赛通;接口回读为空才是未配置。
120
- - `[http://12332](http://12332).com` 不是无歧义的 URL。应先确认用户是否要写入 `http://12332.com`,不能由 agent 静默猜测。
108
+ - 用户给出的加解密服务地址若不是无歧义的 URL(例如只有主机片段、缺协议头),应先确认用户要写入的完整地址(协议 + 主机),不能由 agent 静默猜测补全。
121
109
  - 用户明确表达“设置为 X”是修改意图;在提交外部写入前仍需按对话确认规则取得明确确认。确认一旦收到,应继续当前待保存流程,不要再次结束在“等待确认”。
122
110
 
123
111
  ## 对话式交互规则
@@ -127,7 +115,7 @@ CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完
127
115
 
128
116
  1. **操作前必查登录态**
129
117
  每次执行业务操作前,确认 CLI 已完成登录:
130
- - 若 `weaver-work-cli auth status` 显示未登录,提示用户执行 `weaver-work-cli auth login` 或 `weaver-work-cli auth set` 完成登录
118
+ - 若 `weaver-work-cli auth status` 显示未登录,立即停止业务操作并按 `auth-and-install.md` 的宿主分流恢复会话,不得直接指定或调用其他登录 Skill
131
119
  - 登录完成后**立刻**继续用户原本的请求,不要让用户再敲一次命令
132
120
 
133
121
  2. **查询要简洁**(`show` / 读设置时的输出格式)
@@ -178,8 +166,8 @@ CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完
178
166
  - 华途对接出问题 → 找华途侧开发 / 客户运维
179
167
  - 亿赛通对接出问题 → 找亿赛通侧开发 / 客户运维
180
168
  - 天锐绿盾没生效 → 检查应用服务器本地是否安装(文档:见 setting-encrypt-third-party-plugins.md 一节)
181
- - 总部开发**只负责 E10 后台配置项,不管远程服务**;不要试图通过改 E10 设置来"修"
182
- - **集成官方支持之外的插件**:走 E10 二开流程(由总部开发评估接入)
169
+ - **只负责 E10 后台配置项,不管远程服务**;不要试图通过改 E10 设置来"修"
170
+ - **集成官方支持之外的插件**:走 E10 二开流程评估接入
183
171
  - **后端返回致命错误**(已知):不重试,直接告诉客户失败原因 + 正确路径
184
172
  - 话术模板:
185
173
  "这里改不了:<原因>。需要去<正确路径>那里先做<前置操作>。
@@ -188,11 +176,7 @@ CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完
188
176
 
189
177
  ## 宿主
190
178
 
191
- CLI 入口:
192
-
193
- ```text
194
- python3 scripts/encrypt_setting.py <cmd> [args]
195
- ```
179
+ CLI 入口:`weaver-work-cli caizhilian run caizhilian.setting-encrypt.<operation>`(操作清单见 SKILL.md 路由表)。
196
180
 
197
181
 
198
182
  ## 与 weaver-setting-attach 的关系
@@ -208,20 +192,6 @@ python3 scripts/encrypt_setting.py <cmd> [args]
208
192
 
209
193
  ## 版本
210
194
 
211
- - 0.1.0(2026-08-06)首次创建。覆盖 eteams-file 截图"加解密设置" Tab 的 13 字段。
212
- - 0.2.0(2026-08-06)优化:对话式规则完整内联(去除外部仓库依赖)、字段表加"依赖"列、
213
- 软链名统一为 `setting-encrypt`、门禁 4 表述修正、删除开发内部决策泄露、版本号规则确立。
214
- - 0.2.1(2026-08-06)业务知识沉淀:新建 `setting-encrypt-third-party-plugins.md`,写入 3 个官方
215
- 插件对接步骤 / 限制 / 二开联系人;修正 `encryptPlugs` 常见值("三未信安"→"天锐绿盾 / 华途");
216
- 对话式规则 6 增加"远程服务/插件对接问题"与"集成官方支持之外插件"两类引导。
217
- - 1.0.0(2026-08-09)字段大删减:前端 UI 下拉已移除加密机(`encryptMachine`)选项,
218
- 后端 `EncryptionSettings.toString()` 也漏了 `encryptMachineType` 输出。删除 5 个
219
- 加密机专属字段(`encrypt-machine-type` / `encrypt-ip` / `encrypt-port` / `encrypt-app-id` /
220
- `encrypt-app-key`),CLI 字段表从 13 缩到 8。`encryptPlugs` 现在固定为华途 / 天锐绿盾 /
221
- 亿赛通 3 个值;3 个软件分支的配置项完全相同,不再有"加密机分支"差异。
222
- - 1.1.7(2026-09-02)明确只能通过后端接口执行加解密设置,移除浏览器写入流程,保留未保存状态判定和歧义 URL 处理。
223
- - 1.1.8(2026-09-02)兼容旧版本部署中 `thirdPlugEncDec/config` 不存在的情况:查询和保存后校验在专用接口 404 时改用 `tenant/setting` 的 `encryptionSettings`。
224
-
225
195
  版本号规则 `x.y.z`:
226
196
  - **x 升** — 大重构(GET/POST 模式变化、DTO 结构变化、字段大幅增删)
227
197
  - **y 升** — 新增字段、新增命令、新增子模块
@@ -242,7 +212,7 @@ python3 scripts/encrypt_setting.py <cmd> [args]
242
212
 
243
213
  ## EncryptionSettings 完整字段(8 子字段)
244
214
 
245
- > **v1.0.0 (2026-08-09) 字段大删减**:从 13 缩到 8。前端 UI 下拉已移除加密机
215
+ > **字段大删减**:从 13 缩到 8。前端 UI 下拉已移除加密机
246
216
  > (`encryptMachine`) 选项,因此删除 `encryptMachineType` / `encryptIp` /
247
217
  > `encryptPort` / `encryptAppID` / `encryptAppKey` 5 个加密机专属字段。
248
218
 
@@ -286,30 +256,20 @@ GET 端点返回的是**扁平 dict**(8 子字段直接平铺);POST 时整
286
256
  校验时还原为普通 URL。
287
257
  4. **license 控制**:没 `ENC_DEC` license 时 GET 返回的 `openEncryptFunction=false`,
288
258
  且整个对象字段大多为空。
289
- 5. **encryptScene 校验**:后端 `StoThirdPlugEncDecProcess.java:718-722` 对值
290
- 做 `equalsIgnoreCase` 比对;不在 enum 内的值会被忽略(不抛错)。
291
- 6. **4 个文件处理字段仅 encryptScene=custom 时生效**:其它场景下后端用预设
292
- 覆盖这 4 个字段(实际行为见 `StoThirdPlugEncDecProcess.java:755-770`)。
293
-
294
- ## 后端实现位置
295
-
296
- - Controller:`eteams-file/src/main/java/com/weaver/teams/file/e10/mvc/web/thirdplugencdec/FileThirdPlugEncDecController.java`
297
- - 设置项注册:`eteams-file/src/main/java/com/weaver/teams/file/e10/manager/set/impl/EncryptionSettings.java`
298
- - 业务逻辑:`eteams-file/src/main/java/com/weaver/teams/file/e10/manager/storage/chain/process/StoThirdPlugEncDecProcess.java`
299
- - DTO:`eteams-file/src/main/java/com/weaver/teams/file/e10/dto/BaseSetDto.java`(嵌套类 `EncryptionSettings`)
300
- - 前端 UI:`weapp-file/src/components/pc/FileSet/components/Encryption/index.tsx`
259
+ 5. **encryptScene 校验**:后端对值做忽略大小写比对;不在枚举内的值会被忽略(不抛错)。
260
+ 6. **4 个文件处理字段仅 encryptScene=custom 时生效**:其它场景下后端用预设值覆盖这 4 个字段。
261
+
301
262
  # 字段对照表(8 个子字段)
302
263
 
303
- > 对应 eteams-file 后端 `BaseSetDto.EncryptionSettings`(嵌套类)。
304
- > 整对象 toString() 存到 `FileObjTenantPermission.param` 字段。
264
+ > 对应后端「加密设置」嵌套对象,整对象序列化后保存。
305
265
  > CLI 接受 snake-case 别名 / 中文别名 / DTO 字段名(驼峰)。
306
266
 
307
267
  > **数据结构说明**:后端 GET `/api/file/thirdPlugEncDec/config` 返回的是**扁平的
308
268
  > EncryptionSettings 字典**(8 个子字段直接平铺,没有外层 `encryptionSettings` 包装)。
309
269
  > CLI 内部统一用扁平 dict;POST 时整个扁平对象作为 `encryptionSettings` 字段的值
310
- > 一起发出去(参考 [setting-encrypt-api.md](setting-encrypt-api.md))。
270
+ > 一起发出去(参考本文「接口协议」章节)。
311
271
 
312
- > **v1.0.0 (2026-08-09) 字段大删减**:从 13 缩到 8。前端 UI 下拉已移除加密机
272
+ > **字段大删减**:从 13 缩到 8。前端 UI 下拉已移除加密机
313
273
  > (`encryptMachine`) 选项,后端 `EncryptionSettings.toString()` 也漏了
314
274
  > `encryptMachineType` 输出,因此删除 5 个加密机专属字段
315
275
  > (`encrypt-machine-type` / `encrypt-ip` / `encrypt-port` / `encrypt-app-id` /
@@ -333,9 +293,9 @@ GET 端点返回的是**扁平 dict**(8 子字段直接平铺);POST 时整
333
293
  - **后端值**:`est`=亿赛通 / `tipray`=天锐绿盾 / `vtext`=华途
334
294
  - **输入别名**:CLI 也接受 `亿赛通` / `天锐绿盾` / `华途`,提交前会转换为上述编码
335
295
  - **对接/限制**:
336
- - 详细对接步骤、限制、二开联系人见 [setting-encrypt-third-party-plugins.md](setting-encrypt-third-party-plugins.md)
296
+ - 详细对接步骤与限制需走 E10 二开流程获取(联系管理员)
337
297
  - 天锐绿盾**仅支持本地安装**;远程调用方式需走 E10 二开流程
338
- - 华途/亿赛通都是远程服务,**总部开发不介入远程服务确认**,找客户/厂商侧
298
+ - 华途/亿赛通都是远程服务,远程服务的确认与联调由客户/厂商侧负责
339
299
  - **示例**:`--item encrypt-plugs=亿赛通`(实际提交 `encryptPlugs=est`)
340
300
 
341
301
  ## 3. 软件地址
@@ -354,7 +314,7 @@ GET 端点返回的是**扁平 dict**(8 子字段直接平铺);POST 时整
354
314
  - **中文**:`加解密场景` / `场景`
355
315
  - **DTO 字段**:`encryptScene`
356
316
  - **类型**:enum
357
- - **值**(前端 `Encryption/index.tsx:122-129` 实际只有 3 个):
317
+ - **值**(前端实际只有 3 个):
358
318
 
359
319
  | 英文 id | 中文 | 含义 |
360
320
  |---|---|---|