weaver-work-cli 0.1.7 → 0.1.20

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 (264) hide show
  1. package/README.md +11 -11
  2. package/dist/cmd/action.js +76 -0
  3. package/dist/cmd/index.js +2 -0
  4. package/dist/cmd/refs/index.js +103 -0
  5. package/dist/cmd/register.js +31 -0
  6. package/dist/cmd/root.js +1 -0
  7. package/dist/cmd/setup/index.js +25 -5
  8. package/dist/cmd/skills/index.js +37 -5
  9. package/dist/core/connector.js +54 -0
  10. package/dist/core/context.js +2 -1
  11. package/dist/core/input.js +48 -0
  12. package/dist/core/output.js +298 -3
  13. package/dist/core/refs.js +432 -0
  14. package/dist/core/state.js +26 -0
  15. package/dist/internal/e10/auth/commands.js +2 -2
  16. package/dist/internal/e10/auth/session.js +14 -0
  17. package/dist/internal/e10/auth/xiaoe.js +116 -51
  18. package/dist/internal/e10/request-runtime.js +5 -0
  19. package/dist/internal/skills/install.js +148 -28
  20. package/dist/internal/skills/reader.js +12 -9
  21. package/dist/shortcuts/blog/continuation.js +74 -0
  22. package/dist/shortcuts/blog/errors.js +60 -0
  23. package/dist/shortcuts/blog/host.js +175 -0
  24. package/dist/shortcuts/blog/index.js +324 -0
  25. package/dist/shortcuts/blog/manifest.js +415 -0
  26. package/dist/shortcuts/blog/operations/comment.js +125 -0
  27. package/dist/shortcuts/blog/operations/comments.js +31 -0
  28. package/dist/shortcuts/blog/operations/edit.js +131 -0
  29. package/dist/shortcuts/blog/operations/export.js +46 -0
  30. package/dist/shortcuts/blog/operations/like.js +80 -0
  31. package/dist/shortcuts/blog/operations/publish.js +157 -0
  32. package/dist/shortcuts/blog/operations/query-user.js +58 -0
  33. package/dist/shortcuts/blog/operations/query.js +96 -0
  34. package/dist/shortcuts/blog/operations/registry.js +54 -0
  35. package/dist/shortcuts/blog/operations/remind.js +176 -0
  36. package/dist/shortcuts/blog/operations/shared.js +330 -0
  37. package/dist/shortcuts/blog/operations/types.js +16 -0
  38. package/dist/shortcuts/blog/operations.js +9 -0
  39. package/dist/shortcuts/caizhilian/continuation.js +70 -0
  40. package/dist/shortcuts/caizhilian/errors.js +53 -0
  41. package/dist/shortcuts/caizhilian/host.js +190 -0
  42. package/dist/shortcuts/caizhilian/index.js +186 -0
  43. package/dist/shortcuts/caizhilian/manifest.js +42 -0
  44. package/dist/shortcuts/caizhilian/operations/api.js +801 -0
  45. package/dist/shortcuts/caizhilian/operations/confirm.js +75 -0
  46. package/dist/shortcuts/caizhilian/operations/files.js +306 -0
  47. package/dist/shortcuts/caizhilian/operations/form.js +170 -0
  48. package/dist/shortcuts/caizhilian/operations/handlers/collab.js +611 -0
  49. package/dist/shortcuts/caizhilian/operations/handlers/document.js +890 -0
  50. package/dist/shortcuts/caizhilian/operations/handlers/file-collection.js +346 -0
  51. package/dist/shortcuts/caizhilian/operations/handlers/file-upload.js +192 -0
  52. package/dist/shortcuts/caizhilian/operations/handlers/fileops.js +570 -0
  53. package/dist/shortcuts/caizhilian/operations/handlers/folder.js +969 -0
  54. package/dist/shortcuts/caizhilian/operations/handlers/search.js +318 -0
  55. package/dist/shortcuts/caizhilian/operations/handlers/setting-attach.js +294 -0
  56. package/dist/shortcuts/caizhilian/operations/handlers/setting-backup.js +423 -0
  57. package/dist/shortcuts/caizhilian/operations/handlers/setting-encrypt.js +238 -0
  58. package/dist/shortcuts/caizhilian/operations/handlers/setting-storage.js +364 -0
  59. package/dist/shortcuts/caizhilian/operations/handlers/system.js +106 -0
  60. package/dist/shortcuts/caizhilian/operations/registry.js +151 -0
  61. package/dist/shortcuts/caizhilian/operations/shared.js +408 -0
  62. package/dist/shortcuts/caizhilian/operations/specs.js +623 -0
  63. package/dist/shortcuts/caizhilian/operations/types.js +57 -0
  64. package/dist/shortcuts/caizhilian/operations.js +21 -0
  65. package/dist/shortcuts/contract/continuation.js +70 -0
  66. package/dist/shortcuts/contract/errors.js +62 -0
  67. package/dist/shortcuts/contract/host.js +205 -0
  68. package/dist/shortcuts/contract/index.js +318 -0
  69. package/dist/shortcuts/contract/manifest.js +596 -0
  70. package/dist/shortcuts/contract/operations/clause-reference.js +78 -0
  71. package/dist/shortcuts/contract/operations/form-info.js +371 -0
  72. package/dist/shortcuts/contract/operations/read.js +118 -0
  73. package/dist/shortcuts/contract/operations/registry.js +43 -0
  74. package/dist/shortcuts/contract/operations/request.js +300 -0
  75. package/dist/shortcuts/contract/operations/shared.js +133 -0
  76. package/dist/shortcuts/contract/operations/subject.js +157 -0
  77. package/dist/shortcuts/contract/operations/template.js +81 -0
  78. package/dist/shortcuts/contract/operations/types.js +7 -0
  79. package/dist/shortcuts/contract/operations/workflow.js +52 -0
  80. package/dist/shortcuts/contract/operations/write.js +131 -0
  81. package/dist/shortcuts/contract/operations.js +8 -0
  82. package/dist/shortcuts/hrm/index.js +83 -2
  83. package/dist/shortcuts/hrm/operations/employee.js +160 -30
  84. package/dist/shortcuts/hrm/operations/org.js +17 -3
  85. package/dist/shortcuts/hrm/operations/position.js +18 -2
  86. package/dist/shortcuts/index.js +5 -1
  87. package/dist/shortcuts/invoice/index.js +74 -36
  88. package/dist/shortcuts/invoice/manifest.js +674 -4
  89. package/dist/shortcuts/invoice/markdown.js +172 -0
  90. package/dist/shortcuts/invoice/operations/add.js +3 -3
  91. package/dist/shortcuts/invoice/operations/delete.js +2 -2
  92. package/dist/shortcuts/invoice/operations/get.js +10 -2
  93. package/dist/shortcuts/invoice/operations/import.js +2 -2
  94. package/dist/shortcuts/invoice/operations/registry.js +8 -1
  95. package/dist/shortcuts/invoice/operations/reim-auto.js +719 -0
  96. package/dist/shortcuts/invoice/operations/reim.js +85 -2
  97. package/dist/shortcuts/invoice/operations/shared.js +75 -8
  98. package/dist/shortcuts/invoice/operations/update.js +2 -2
  99. package/dist/shortcuts/invoice/operations/upload-and-validate.js +93 -0
  100. package/dist/shortcuts/invoice/operations/validate-preview.js +2 -1
  101. package/dist/shortcuts/invoice/projection.js +328 -0
  102. package/dist/shortcuts/meeting/host.js +18 -1
  103. package/dist/shortcuts/meeting/manifest.js +30 -18
  104. package/dist/shortcuts/meeting/operations/eb/catalog.js +390 -0
  105. package/dist/shortcuts/meeting/operations/eb/conflict.js +389 -0
  106. package/dist/shortcuts/meeting/operations/eb/factory.js +389 -0
  107. package/dist/shortcuts/meeting/operations/eb/index.js +22 -0
  108. package/dist/shortcuts/meeting/operations/env.js +8 -1
  109. package/dist/shortcuts/meeting/operations/registry.js +2 -0
  110. package/dist/shortcuts/meeting/operations/signs.js +216 -2
  111. package/dist/shortcuts/workflow/endpoints.js +2 -1
  112. package/dist/shortcuts/workflow/errors.js +8 -2
  113. package/dist/shortcuts/workflow/host.js +6 -3
  114. package/dist/shortcuts/workflow/operations/form.js +931 -533
  115. package/dist/shortcuts/workflow/operations/read.js +462 -81
  116. package/dist/shortcuts/workflow/operations/shared.js +44 -0
  117. package/dist/shortcuts/workflow/operations/write.js +760 -56
  118. package/dist/shortcuts/workflow/operations.js +36 -10
  119. package/docs/_catalog.md +6 -0
  120. package/docs/agent-invoice.md +5 -1
  121. package/docs/agent-io-channel-design.md +468 -0
  122. package/docs/agent-skill-install.md +9 -4
  123. package/docs/blog.md +123 -0
  124. package/docs/caizhilian.md +304 -0
  125. package/docs/contract.md +91 -0
  126. package/docs/e10-auth.md +2 -2
  127. package/docs/hrm.md +19 -9
  128. package/docs/invoice.md +5 -1
  129. package/docs/meeting.md +1 -1
  130. package/docs/operation-manual.md +15 -3
  131. package/docs/skill-review-2026-09-19.md +2 -2
  132. package/package.json +2 -2
  133. package/scripts/package-skill.mjs +33 -20
  134. package/skill-template/business-info.json +113 -14
  135. package/skill-template/domains/blog.md +24 -0
  136. package/skill-template/domains/caizhilian.md +22 -0
  137. package/skill-template/domains/jinchengda.md +23 -0
  138. package/skill-template/domains/meeting.md +1 -1
  139. package/skill-template/domains/workflow.md +1 -1
  140. package/skill-template/skill-template.md +1 -1
  141. package/skills/weaver-e10-blog/SKILL.md +111 -0
  142. package/skills/weaver-e10-blog/references/blog-comment.md +51 -0
  143. package/skills/weaver-e10-blog/references/blog-comments.md +39 -0
  144. package/skills/weaver-e10-blog/references/blog-default-permission.md +38 -0
  145. package/skills/weaver-e10-blog/references/blog-disabled-capabilities.md +11 -0
  146. package/skills/weaver-e10-blog/references/blog-edit.md +51 -0
  147. package/skills/weaver-e10-blog/references/blog-export.md +42 -0
  148. package/skills/weaver-e10-blog/references/blog-like.md +50 -0
  149. package/skills/weaver-e10-blog/references/blog-publish.md +52 -0
  150. package/skills/weaver-e10-blog/references/blog-query-user.md +45 -0
  151. package/skills/weaver-e10-blog/references/blog-query.md +49 -0
  152. package/skills/weaver-e10-blog/references/blog-remind.md +51 -0
  153. package/skills/weaver-e10-blog/references/blog-resolve-users.md +38 -0
  154. package/skills/weaver-e10-blog/references/source-manifest.json +1540 -0
  155. package/skills/weaver-e10-caizhilian/SKILL.md +216 -0
  156. package/skills/weaver-e10-caizhilian/references/agent-entry.md +106 -0
  157. package/skills/weaver-e10-caizhilian/references/collaboration.md +112 -0
  158. package/skills/weaver-e10-caizhilian/references/document.md +111 -0
  159. package/skills/weaver-e10-caizhilian/references/file-collection.md +136 -0
  160. package/skills/weaver-e10-caizhilian/references/file-upload.md +309 -0
  161. package/skills/weaver-e10-caizhilian/references/files.md +120 -0
  162. package/skills/weaver-e10-caizhilian/references/folder.md +118 -0
  163. package/skills/weaver-e10-caizhilian/references/org-browser.md +104 -0
  164. package/skills/weaver-e10-caizhilian/references/setting-attach.md +410 -0
  165. package/skills/weaver-e10-caizhilian/references/setting-backup.md +372 -0
  166. package/skills/weaver-e10-caizhilian/references/setting-encrypt.md +399 -0
  167. package/skills/weaver-e10-caizhilian/references/setting-storage.md +603 -0
  168. package/skills/weaver-e10-caizhilian/references/source-manifest.json +5079 -0
  169. package/skills/weaver-e10-caizhilian/references/withheld.md +93 -0
  170. package/skills/weaver-e10-caizhilian/references/write-protocol.md +120 -0
  171. package/skills/weaver-e10-calendar/SKILL.md +4 -3
  172. package/skills/weaver-e10-ebuilder-form/SKILL.md +4 -9
  173. package/skills/weaver-e10-ebuilder-form/references/context-routing.md +0 -9
  174. package/skills/weaver-e10-ebuilder-form/references/custom-api.md +1 -5
  175. package/skills/weaver-e10-ebuilder-form/references/fields-browser.md +1 -5
  176. package/skills/weaver-e10-ebuilder-form/references/list-nlist.md +1 -5
  177. package/skills/weaver-e10-ebuilder-form/references/openapi-read.md +1 -5
  178. package/skills/weaver-e10-ebuilder-form/references/openapi-write.md +1 -5
  179. package/skills/weaver-e10-esb/SKILL.md +2 -2
  180. package/skills/weaver-e10-esb/references/source-manifest.json +9 -9
  181. package/skills/weaver-e10-hrm/SKILL.md +54 -6
  182. package/skills/weaver-e10-hrm/references/employee.md +89 -15
  183. package/skills/weaver-e10-hrm/references/org.md +7 -4
  184. package/skills/weaver-e10-hrm/references/position.md +14 -7
  185. package/skills/weaver-e10-hrm/references/source-manifest.json +1 -1
  186. package/skills/weaver-e10-jinchengda/SKILL.md +166 -0
  187. package/skills/weaver-e10-jinchengda/references/contract-agent-entry.md +82 -0
  188. package/skills/weaver-e10-jinchengda/references/contract-clause-recommender.md +69 -0
  189. package/skills/weaver-e10-jinchengda/references/contract-clause-reference-save.md +78 -0
  190. package/skills/weaver-e10-jinchengda/references/contract-disabled-capabilities.md +27 -0
  191. package/skills/weaver-e10-jinchengda/references/contract-request-status.md +71 -0
  192. package/skills/weaver-e10-jinchengda/references/contract-request-write.md +94 -0
  193. package/skills/weaver-e10-jinchengda/references/contract-signing-subjects.md +89 -0
  194. package/skills/weaver-e10-jinchengda/references/contract-subject-create.md +77 -0
  195. package/skills/weaver-e10-jinchengda/references/contract-template-selector.md +66 -0
  196. package/skills/weaver-e10-jinchengda/references/contract-workflow-discovery.md +94 -0
  197. package/skills/weaver-e10-jinchengda/references/source-manifest.json +259 -0
  198. package/skills/weaver-e10-jiuchuanhui/SKILL.md +5 -11
  199. package/skills/weaver-e10-jucailin/SKILL.md +4 -3
  200. package/skills/weaver-e10-mail/SKILL.md +4 -11
  201. package/skills/weaver-e10-meeting/SKILL.md +66 -32
  202. package/skills/weaver-e10-meeting/references/meeting-change.md +5 -2
  203. package/skills/weaver-e10-meeting/references/meeting-create.md +2 -1
  204. package/skills/weaver-e10-meeting/references/meeting-eb.md +114 -0
  205. package/skills/weaver-e10-meeting/references/meeting-lifecycle.md +9 -8
  206. package/skills/weaver-e10-meeting/references/meeting-receipts-signs.md +35 -7
  207. package/skills/weaver-e10-meeting/references/meeting-update.md +1 -1
  208. package/skills/weaver-e10-okr/SKILL.md +6 -11
  209. package/skills/weaver-e10-okr/references/source-manifest.json +3 -3
  210. package/skills/weaver-e10-plan/SKILL.md +3 -3
  211. package/skills/weaver-e10-plan/references/plan-collect-and-compose.md +1 -1
  212. package/skills/weaver-e10-plan/references/plan-overview-and-routing.md +1 -1
  213. package/skills/weaver-e10-plan/references/source-manifest.json +13 -13
  214. package/skills/weaver-e10-qiyecheng/SKILL.md +4 -10
  215. package/skills/weaver-e10-qiyecheng/references/source-manifest.json +9 -9
  216. package/skills/weaver-e10-shared/SKILL.md +36 -25
  217. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +10 -31
  218. package/skills/weaver-e10-shared/references/json-output-contract.md +20 -11
  219. package/skills/weaver-e10-shijingran/SKILL.md +2 -1
  220. package/skills/weaver-e10-shijingran/references/source-manifest.json +9 -9
  221. package/skills/weaver-e10-skill-maker/SKILL.md +4 -10
  222. package/skills/weaver-e10-skill-maker/references/business-skill-generation.md +5 -3
  223. package/skills/weaver-e10-skill-maker/references/module-cli-generation.md +12 -27
  224. package/skills/weaver-e10-skill-maker/references/module-gap-audit-and-repair.md +17 -5
  225. package/skills/weaver-e10-skill-maker/references/source-update-detection.md +4 -27
  226. package/skills/weaver-e10-wenshuding/SKILL.md +5 -16
  227. package/skills/weaver-e10-wenshuding/references/source-manifest.json +7 -7
  228. package/skills/weaver-e10-workflow/SKILL.md +32 -37
  229. package/skills/weaver-e10-workflow/references/source-manifest.json +40 -77
  230. package/skills/weaver-e10-workflow/references/workflow-batch.md +90 -29
  231. package/skills/weaver-e10-workflow/references/workflow-create.md +79 -109
  232. package/skills/weaver-e10-workflow/references/workflow-memory.md +19 -9
  233. package/skills/weaver-e10-workflow/references/workflow-operate.md +2 -2
  234. package/skills/weaver-e10-workflow/references/workflow-query.md +37 -20
  235. package/skills/weaver-e10-workflow/references/workflow-share.md +18 -2
  236. package/skills/weaver-e10-workflow/references/workflow-view.md +4 -4
  237. package/skills/weaver-e10-yepiaotong/SKILL.md +75 -39
  238. package/skills/weaver-e10-yepiaotong/references/invoice-detail.md +22 -1
  239. package/skills/weaver-e10-yepiaotong/references/invoice-enterprise-list.md +3 -1
  240. package/skills/weaver-e10-yepiaotong/references/invoice-issuing.md +5 -5
  241. package/skills/weaver-e10-yepiaotong/references/invoice-output-view.md +135 -0
  242. package/skills/weaver-e10-yepiaotong/references/invoice-personal-list.md +15 -3
  243. package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +1 -1
  244. package/skills/weaver-e10-yepiaotong/references/invoice-summarize.py +217 -0
  245. package/skills/weaver-e10-yepiaotong/references/invoice-upload-and-validate.md +88 -0
  246. package/skills/weaver-e10-yepiaotong/references/invoice-validation-preview.md +7 -2
  247. package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +90 -10
  248. package/skills/weaver-e10-yepiaotong/references/reim-examples.md +1 -0
  249. package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +70 -49
  250. package/skills/weaver-e10-yepiaotong/references/reim-fast-path.md +119 -0
  251. package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +55 -36
  252. package/skills/weaver-e10-yepiaotong/references/reim-matching-rules.md +4 -0
  253. package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +149 -0
  254. package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +125 -5
  255. package/skills/weaver-e10-yepiaotong/references/source-manifest.json +430 -63
  256. package/skills/weaver-e10-yimiaoban/SKILL.md +4 -12
  257. package/skills/weaver-e10-yimiaoban/references/source-manifest.json +3 -3
  258. package/skills/weaver-e10-ziguanjia/SKILL.md +2 -1
  259. package/skills/weaver-e10-ziguanjia/references/ziguanjia-agent-entry.md +3 -3
  260. package/tools/weaver-skill-detector-1.0.13/SKILL.md +9 -9
  261. package/tools/weaver-skill-detector-1.0.13/references/checklist.md +3 -3
  262. package/tools/weaver-skill-detector-1.0.13/scripts/__pycache__/validate_skill.cpython-313.pyc +0 -0
  263. package/tools/weaver-skill-detector-1.0.13/scripts/validate_skill.py +98 -91
  264. package/scripts/sync-connector-skills.mjs +0 -172
@@ -0,0 +1,114 @@
1
+ # EB 版(eBuilder 会议应用)operations
2
+
3
+ ## 何时使用
4
+
5
+ `meeting.env.detect` 判定 **`mode=eb`** 时,全部意图改用 `meeting.eb.*`。
6
+
7
+ > 标准版与 EB 版是**两套独立接口与数据**:标准版是 Java REST(`/api/meeting/**`、表 `mt_detail` 等),
8
+ > EB 版是 eBuilder formdata(`/api/ebuilder/form/formdata/v2/**`、表 `uf_*`)。**不可混用、数据互不相通**——
9
+ > 在 EB 环境调用标准版接口只会拿到空数据。
10
+ > EB 版独有:议题、纪要(标准版会议本身没有这两类数据)。
11
+
12
+ ## 调用约定(实现已内建,了解即可排错)
13
+
14
+ | 环节 | 约定 |
15
+ |---|---|
16
+ | 路径 | `/api/ebuilder/form/formdata/v2/{saveFormData|updateFormData|deleteFormData|getFormDataByPk|getFormDataList|getFormDataCount}/{interfacePk}` |
17
+ | 列表/总数 | 筛选条件走 **URL query**(参数名为 eBuilder 配置的占位符名,如 `hrmmember`、`mt_status`,**不是表 dataKey**);body 必须带 `datajson`;CLI 先 count 再 list(同条件),`total` 来自 count |
18
+ | 详情 | `getFormDataByPk`,body 顶层 `mainTable.id` |
19
+ | 写操作 | body 用 **`datas` 数组**包裹 `mainTable`(缺 `datas` 会报"datas节点未找到"),`header.operator` 为当前用户 |
20
+ | 日期字段 | 一律 `yyyy-MM-dd HH:mm`(**不带秒**,带秒报"不满足传入格式") |
21
+ | 人员 id | 传**员工 id**(不是姓名、不是 userid 以外的其它口径);姓名→id 用 `weaver-e10-hrm` |
22
+ | 新建/更新 | create 不传 id(系统生成);update/delete 必传 id |
23
+
24
+ ## operation 清单
25
+
26
+ | 模块 | 读 | 写(prepare → apply) | interfacePk |
27
+ |---|---|---|---|
28
+ | 会议 6.x | `meeting.eb.meeting.list` / `.detail` | `meeting.eb.meeting.create` / `.change` / `.delete` | query_mtDetail_list(+count) / query_mtDetail_info / create_meeting / change_meeting / delete_mtDetail |
29
+ | 会议室 2.x | `meeting.eb.room.list` / `.detail` | `meeting.eb.room.create` / `.update` / `.delete` | query_meeting_room_list(+count) / query_room_info / create_room / update_room / delete_room |
30
+ | 占用 5.x | `meeting.eb.roomUsage.list` / `.detail` | `meeting.eb.roomUsage.create` / `.delete` | query_roomusage_list(+count) / query_roomusage / create_roomusage / delete_roomusage |
31
+ | 签到 1.x | `meeting.eb.sign.list` / `.detail` | `meeting.eb.sign.create` / `.update` | query_meeting_sign_list(+count) / query_meeting_sign_info / create_meeting_sign / update_meeting_sign_info |
32
+ | 回执 4.x | `meeting.eb.receipt.list` / `.detail` | `meeting.eb.receipt.create` / `.update` | query_meeting_receipt_list(+count) / query_meeting_receipt / create_meeting_receipt / update_meeting_receipt |
33
+ | 纪要 3.x | `meeting.eb.minute.list` | **创建未实现**(走 OpenAPI,无自定义 interfacePk) | query_meeting_minute_list(+count) |
34
+ | 会议类型 3.5 | `meeting.eb.type.list` | `meeting.eb.type.create` / `.delete` | query_mt_type_list(+count) / create_mt_type / delete_mt_type |
35
+ | 议题类型 8.x | `meeting.eb.topicType.list` / `.detail` | `meeting.eb.topicType.update` / `.delete` | query_mt_topicType_list(+count) / query_mt_topicType_info / update_mt_topicType_info / delete_mt_topicType_info |
36
+ | 会议议题 9.x | `meeting.eb.topic.list` / `.detail` | `meeting.eb.topic.update` / `.delete` | query_mt_topic_list(+count) / query_mt_topic_info / update_mt_topic_info / delete_mt_topic_info |
37
+ | 应用设置 7.x | `meeting.eb.baseSet.get` | — | query_meeting_baseset |
38
+ | 冲突检测 | `meeting.eb.conflict.room` / `.member`(只读) | — | query_roomusage_list / query_mtDetail_list + query_meeting_receipt_list(+count) |
39
+
40
+ ## 常用命令
41
+
42
+ Windows PowerShell:
43
+
44
+ ```powershell
45
+ weaver-work-cli --json meeting run meeting.env.detect --input-json '{"refresh":true}'
46
+ weaver-work-cli --json meeting run meeting.eb.baseSet.get --input-json '{}'
47
+ weaver-work-cli --json meeting run meeting.eb.meeting.list --input-json '{"hrmmember":"100","mt_status":"2","pageSize":20}'
48
+ weaver-work-cli --json meeting run meeting.eb.meeting.detail --input-json '{"id":"1306126102057902085"}'
49
+ weaver-work-cli --json meeting run meeting.eb.meeting.create.prepare --input-json '{"mt_creator":"100","mt_name":"周会","begin_datetime":"2026-09-20 09:00","end_datetime":"2026-09-20 10:30","mt_status":"2","operate_type":"ADD"}'
50
+ ```
51
+
52
+ macOS/Linux(bash/zsh):
53
+
54
+ ```bash
55
+ weaver-work-cli --json meeting run meeting.env.detect --input-json '{"refresh":true}'
56
+ weaver-work-cli --json meeting run meeting.eb.baseSet.get --input-json '{}'
57
+ weaver-work-cli --json meeting run meeting.eb.meeting.list --input-json '{"hrmmember":"100","mt_status":"2","pageSize":20}'
58
+ weaver-work-cli --json meeting run meeting.eb.meeting.detail --input-json '{"id":"1306126102057902085"}'
59
+ weaver-work-cli --json meeting run meeting.eb.meeting.create.prepare --input-json '{"mt_creator":"100","mt_name":"周会","begin_datetime":"2026-09-20 09:00","end_datetime":"2026-09-20 10:30","mt_status":"2","operate_type":"ADD"}'
60
+ ```
61
+
62
+ ## 输出处理
63
+
64
+ - list:`{ total, pageNo, pageSize, count, rows, filters }`——`total` 来自 count 接口,`rows` 是当前页数据。
65
+ - detail / baseSet:`{ id, data }` / `{ data, count }`(baseSet 多条时取第一条)。
66
+ - write prepare:`{ status: 'AWAITING_CONFIRMATION', preview: { interfacePk, kind, body, path, notes }, continuation }`——**先向用户摘要 body 内容再确认**。
67
+ - write apply:`{ status: 'COMPLETE', interfacePk, dataIds }`;回读用对应 list/detail 核对。
68
+
69
+ ## 冲突检测(EB 版,强制)
70
+
71
+ > 2026-09-20 补齐:此前 EB 版建会**没有任何冲突校验** —— 重复占用同一间会议室、参会人在同一时段撞会都不会被拦住。
72
+
73
+ - **自动强制(建会/变更自带)**:`meeting.eb.meeting.create.prepare` 与 `meeting.eb.meeting.change.prepare` 在生成确认预览**之前**自动执行会议室与参会人冲突检测(传了 `address` / `hrm_members` 才会真的发起查询)。命中时按应用设置处置:
74
+ - `room_conflict=1` / `member_conflict=1`(禁止提交)→ 抛 `conflict_rejected`:**直接停止,不询问、不新建**;
75
+ - `room_conflict=0` / `member_conflict=0`(仅提醒)→ 写入 `warnings`:如实告知冲突并建议换时间/换地点,**但不阻止提交** —— 用户了解冲突后仍要求新建时,可继续 `apply` 完成建会;
76
+ - 检测请求本身失败 → 抛 `conflict_check_failed`(fail-closed:宁可拦住,不可漏检)。
77
+ - **只查不建**:`meeting.eb.conflict.room` / `meeting.eb.conflict.member`,返回 `verdict`:`ok` 无冲突 / `warn` 仅提醒 / `rejected` 禁止提交 / `skipped` 应用设置已关闭该项检测。
78
+ - **口径(与 standalone skill 一致,不可擅改)**:
79
+ - 策略来自 `meeting.eb.baseSet.get` → `room_conflict_chk` / `room_conflict`、`member_conflict_chk` / `member_conflict`(`chk=0` 表示关闭检测,**页面同样不校验**);
80
+ - 会议室:查占用视图 `query_roomusage_list`(`address` + 时间重叠:占用开始 < 我的结束 且 占用结束 > 我的开始;占用视图只对有效状态生成,无需再过滤状态);
81
+ - 参会人:**2 次请求方案(无 N+1)** —— `query_mtDetail_list`(时间范围 + `mt_status=1,2,8,9`)取候选会议 → `query_meeting_receipt_list?mt_id=<多值批量>`(分批 + 分页拉全)→ 本地求交集;**禁止**退回「逐场会议查回执」的旧做法;
82
+ - 参会人以**回执表 `member_id`** 为准(会议表 `hrm_members` 是渲染文本,不可靠),且只统计 `member_type=1`(参会人员);
83
+ - `org_members`(参会部门)CLI **不展开**成员,因此只有 `hrm_members` 参与人员冲突检测 —— 该情况会以 warning 如实说明,需要覆盖部门成员时请先把部门展开为员工 id。
84
+ - **冲突处置的唯一依据就是应用设置**(`room_conflict` / `member_conflict`),CLI 不额外加码、也不引入任何隐藏校验:
85
+ - `1`「禁止提交」→ 怎么都不允许提交,直接拒绝(`conflict_rejected`);
86
+ - `0`「仅提醒」→ 如实告知冲突并建议换时间/换地点;**用户坚持要新建,就可以继续新建**(`prepare` 只给 `warnings`,不阻止 `apply`)。
87
+
88
+ ## 建会特别说明(EB 版)
89
+
90
+ 1. 先 `meeting.eb.baseSet.get` 读 `only_flow_create` / `open_mt_approve` / `mt_new_wf`:
91
+ - `only_flow_create=1` 或审批开启 → **会议需经流程创建**,CLI 不直接建会,提示用户走 workflow;
92
+ - 未开启 → 可 `meeting.eb.meeting.create.prepare`。
93
+ 2. `mt_hours` 由 CLI 按 `begin_datetime`/`end_datetime` **自动计算**(小时,支持小数),无需用户提供。
94
+ 3. `caller`/`contacter` 未指明时 CLI 默认填当前用户。
95
+ 4. 建会后若需占用/回执/签到数据:审批关闭(手动建会)时才由 CLI 生成 —— `meeting.eb.roomUsage.create`(占用的 `room_id` 取会议室 id、`startdate`/`enddate` 与会议一致)、`meeting.eb.receipt.create`(`member_manager` 取 `member_id`)、`meeting.eb.sign.create`(必填 `mt_id`)。
96
+
97
+ ## 注意
98
+
99
+ - **取消会议**用 `meeting.eb.meeting.change.prepare`(`operate_type=CANCEL` 且 `mt_status=4`),没有独立 cancel 接口。
100
+ - `mt_status` 枚举:0草稿/1审批中/2未开始/3退回/4取消/5提前结束/6删除/7锁定/8结束/9进行中/10审批中(变更)/11审批中(取消)。
101
+ - 议题表 `uf_mt_topic` 在部分租户未注册,`meeting.eb.topic.list` 返回空数组属正常。
102
+ - `meeting.eb.sign.list` 展示时避免同时指定含 `sign_flag` 与 `attend_type` 的字段组合(后端可能 500)。
103
+ - 写操作一律 prepare → 用户确认 → apply;`apply` 的字段必须与 `prepare` 快照一致(不一致报 `target_changed`)。
104
+
105
+ ## 失败处理
106
+
107
+ - 业务失败返回原文 message(如 `传入参数datajson为空或解析异常`、`请求参数不能为空`),**原样转达用户**。
108
+ - `missing_required_field`:缺少必填字段,按提示补齐。
109
+ - `datetime_invalid`:日期需 `yyyy-MM-dd HH:mm`(不带秒)。
110
+ - `eb_write_not_applied`:接口返回 `datajson.status=false`,服务端未生效,核对字段与权限。
111
+ - `target_changed` / `continuation_expired`:重新 prepare 并再次确认。
112
+ - `partial/write_uncertain`:写请求发出后连接中断,**禁止自动重试**,先 list/detail 回查是否已生效。
113
+ - `conflict_rejected`:命中冲突且应用设置为**禁止提交** —— 立即停止,建议用户换时间或换地点;若应用设置为**仅提醒**,则只写入 `warnings`(不抛错),**用户了解冲突后坚持新建时仍可继续提交**。
114
+ - `conflict_check_failed`:冲突检测接口调用失败(fail-closed,直接拒绝建会),核对占用/回执接口权限后重试。
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## 何时使用
4
4
 
5
- 取消一场会议(不开了)、彻底删除会议记录。
5
+ 取消一场会议(不开了)、删除会议记录(**移入回收站**)。
6
6
 
7
7
  > 提前结束会议(`overMeeting`)**不在支持范围**:服务端该接口为空实现(service 调用被注释、直接返回成功),调用只会得到"假成功"但不生效。请引导用户在系统页面操作。
8
8
 
@@ -21,10 +21,10 @@
21
21
  Windows PowerShell:
22
22
 
23
23
  ```powershell
24
- weaver-work-cli --json meeting run meeting.cancel.prepare --input-json '{\"id\":\"1305624900858404950\"}'
24
+ weaver-work-cli --json meeting run meeting.cancel.prepare --input-json '{"id":"1305624900858404950"}'
25
25
  # 用户确认后(continuation 原样传入):
26
- weaver-work-cli --json meeting run meeting.cancel.apply --input-json '{\"confirm\":true,\"continuation\":\"<prepare返回>\",\"id\":\"1305624900858404950\"}'
27
- weaver-work-cli --json meeting run meeting.delete.prepare --input-json '{\"id\":\"1305624900858404950\"}'
26
+ weaver-work-cli --json meeting run meeting.cancel.apply --input-json '{"confirm":true,"continuation":"<prepare返回>","id":"1305624900858404950"}'
27
+ weaver-work-cli --json meeting run meeting.delete.prepare --input-json '{"id":"1305624900858404950"}'
28
28
  ```
29
29
 
30
30
  macOS/Linux(bash/zsh):
@@ -38,14 +38,15 @@ weaver-work-cli --json meeting run meeting.delete.prepare --input-json '{"id":"1
38
38
  ## 输出处理
39
39
 
40
40
  - `prepare` 返回 `AWAITING_CONFIRMATION` + `preview`(`action`/`id`/`body`/`note`)+ `continuation`。
41
- - `apply` 返回 `COMPLETE` + `result`(接口原始返回);随后用 `meeting.list` 回查确认。
41
+ - `apply` 返回 `COMPLETE` + `result`(接口原始返回);随后用 `meeting.list` 回查确认(取消/删除后该会议不应再出现在正常列表)。
42
42
  - 两个动作的语义区别:
43
- - `cancel`:会议进入**取消状态**,占用/回执/签到随之失效;
44
- - `delete`:**彻底移除**会议记录(区别于取消),不可逆。
43
+ - `cancel`:会议进入**取消状态**(`mt_status=4`),占用/回执/签到随之失效;
44
+ - `delete`:**软删**——服务端 `deleteMeetingDetail` 执行 `update mt_detail set delete_type = 2`,会议**移入回收站、可以还原**(不是物理删除)。
45
45
 
46
46
  ## 注意
47
47
 
48
- - 两者都是**不可逆写操作**:apply 前必须向用户明确说明动作与后果并取得确认。
48
+ - 两者都是**写操作**:apply 前必须向用户明确说明动作与后果并取得确认。
49
+ - **不要对用户宣称"彻底删除、不可逆"**:删除只是移入回收站。CLI 目前**没有还原能力**,用户需要恢复时请引导其到**会议回收站页面**操作。
49
50
  - 禁止跳过 prepare 直接 apply;apply 的 `id` 必须与 prepare 一致(不一致报 `target_changed`)。
50
51
  - 示例中的 id 为 `PLACEHOLDER_VALUE`,实际使用请替换为真实查询结果。
51
52
 
@@ -2,14 +2,26 @@
2
2
 
3
3
  ## 何时使用
4
4
 
5
- 查会议回执情况、给某人回执(参加/不参加/请假)、查签到记录与统计。
5
+ 查会议回执情况、给某人回执(参加/不参加/请假)、查签到记录与统计,以及**补签 / 补签退 / 清除签到记录**。
6
6
 
7
7
  ## 输入要点
8
8
 
9
+ ### 回执
10
+
9
11
  - 回执更新**必须传回执记录主键 `id`**(不是 `memberId`);`prepare` 会自动按 `memberId` 回查定位。
10
12
  - `attendStatus` 枚举:`0`=未填写、`1`=参加、`2`=不参加(回执"否/请假"传 2)。
11
13
  - 回执列表接口必须带 `isMobile`(CLI 缺省 `false`;缺失会导致后端 NPE→500,已被 CLI 托管)。
12
14
 
15
+ ### 签到
16
+
17
+ - **`meeting.sign.list` 返回的 `signs[].id` 是「签到记录 id」**——补签/补签退/清除签到用的就是它,**不是会议 id、也不是人员 id**;`mtId`(会议 id)可省略,CLI 会按记录回查,若显式传入则必须与记录一致(不一致报 `sign_record_mismatch`)。
18
+ - 三个写动作与源码接口一一对应(`MeetingSignController`):
19
+ - 补签 `meeting.sign.mark.*` → `signMeetingByHandOne`(写 `signtime`,**已有签到时间会被覆盖**)
20
+ - 补签退 `meeting.sign.back.*` → `signBackMeetingByHandOne`(写 `signbackTime`)
21
+ - 清除签到 `meeting.sign.clear.*` → `delSign`(清空签到/签退时间与地点,复位为未签到)
22
+ - `ip` 与 `tenantKey` 由服务端从请求注入,CLI 不传。
23
+ - **本人扫码签到(`signMeeting`)不提供**:依赖现场二维码票据(qrticket)与设备 IP,代签会破坏签到真实性;请引导用户现场扫码或走 H5 签到。
24
+
13
25
  ## 命令
14
26
 
15
27
  Windows PowerShell:
@@ -20,29 +32,45 @@ weaver-work-cli --json meeting run meeting.receipt.update.prepare --input-json '
20
32
  # 用户确认后:
21
33
  weaver-work-cli --json meeting run meeting.receipt.update.apply --input-json '{"confirm":true,"continuation":"<prepare返回的continuation>","mtId":"1305624900858404950","memberId":"101","attendStatus":2,"remark":"请假"}'
22
34
  weaver-work-cli --json meeting run meeting.sign.list --input-json '{"mtId":"1305624900858404950"}'
35
+ # 补签(id 取 sign.list 里的 signs[].id):
36
+ weaver-work-cli --json meeting run meeting.sign.mark.prepare --input-json '{"id":"1305624900858404951"}'
37
+ weaver-work-cli --json meeting run meeting.sign.mark.apply --input-json '{"confirm":true,"continuation":"<prepare返回的continuation>","id":"1305624900858404951"}'
38
+ # 补签退 / 清除签到(同构,换 operation):
39
+ weaver-work-cli --json meeting run meeting.sign.back.prepare --input-json '{"id":"1305624900858404951"}'
40
+ weaver-work-cli --json meeting run meeting.sign.clear.prepare --input-json '{"id":"1305624900858404951"}'
23
41
  ```
24
42
 
25
43
  macOS/Linux(bash/zsh):
26
44
 
27
45
  ```bash
28
46
  weaver-work-cli --json meeting run meeting.receipt.list --input-json '{"mtId":"1305624900858404950"}'
29
- weaver-work-cli --json meeting run meeting.receipt.update.prepare --input-json '{"mtId":"1305624900858404950","memberId":"101","attendStatus":2,"remark":"请假"}'
30
- # 用户确认后:
31
- weaver-work-cli --json meeting run meeting.receipt.update.apply --input-json '{"confirm":true,"continuation":"<prepare返回的continuation>","mtId":"1305624900858404950","memberId":"101","attendStatus":2,"remark":"请假"}'
32
47
  weaver-work-cli --json meeting run meeting.sign.list --input-json '{"mtId":"1305624900858404950"}'
48
+ weaver-work-cli --json meeting run meeting.sign.mark.prepare --input-json '{"id":"1305624900858404951"}'
49
+ weaver-work-cli --json meeting run meeting.sign.mark.apply --input-json '{"confirm":true,"continuation":"<prepare返回的continuation>","id":"1305624900858404951"}'
50
+ weaver-work-cli --json meeting run meeting.sign.back.prepare --input-json '{"id":"1305624900858404951"}'
51
+ weaver-work-cli --json meeting run meeting.sign.clear.prepare --input-json '{"id":"1305624900858404951"}'
33
52
  ```
34
53
 
35
54
  ## 输出处理
36
55
 
37
56
  - `receipt.list` 返回 `receipts[]`(含 `id`/`memberId`/`attendStatus`/`remark`);`receipt.update.prepare` 返回 `preview`(含定位到的回执记录 `id`)。
38
57
  - `sign.list` 返回 `signs[]` 与 `summary`(`total`/`signed`/`unsigned`),输出 Markdown 表格。
58
+ - 签到写操作的 `prepare` 返回 `preview`:`signRecordId` / `meetingId` / `userid`(记录里的即 sign 所属人员 id)/ `current`(现有签到与签退时间)/ `effect` / `warnings` / `note`。
59
+ - **确认前必须把 `preview` 转述给用户**:给谁(`userid`)、哪场会(`meetingId`)、当前状态、这次会改什么(`effect`),以及 `warnings`(如"已有签到时间会被覆盖""该人员尚未签到,先补签退可能不符合业务预期""没有签到记录,清除不会改变数据")。
60
+ - `apply` 成功返回 `COMPLETE` + `action` + `signRecordId` + `meetingId`;随后用 `meeting.sign.list` 回查。
39
61
 
40
62
  ## 注意
41
63
 
42
- - `prepare` 找不到参会人回执记录时报 `receipt_not_found`:先用 `meeting.receipt.list` 核对 `memberId`。
43
- - `apply` 前必须取得用户对"目标回执 + 状态 + 备注"的明确确认。
64
+ - 回执与签到写操作都属于**改写事实**:apply 前必须取得用户对"目标对象 + 动作"的明确确认。
65
+ - 确认对象不要只念 id:签到场景先 `meeting.sign.list` 找到对应人员那行,把**人员姓名/账号 + 会议**说清楚再确认。
66
+ - 签到写操作接口返回 `WeaResult.success(false)` 表示未生效,CLI 会报 `sign_not_applied`(**不报成功**);此时先用 `meeting.sign.list` 复查记录是否还存在。
67
+ - 清除签到**无法通过 CLI 恢复**(服务端无恢复接口),必须提醒用户。
44
68
 
45
69
  ## 失败处理
46
70
 
71
+ - `receipt_not_found`:先用 `meeting.receipt.list` 核对 `memberId`。
72
+ - `sign_record_not_found`:id 不是签到记录 id(常见误传会议 id / 人员 id),先用 `meeting.sign.list` 取 `signs[].id`。
73
+ - `sign_record_mismatch`:传入的 `mtId` 与记录所属会议不一致,核对后重试。
74
+ - `sign_not_applied`:服务端未生效(记录可能已被删除),复查后重试。
47
75
  - `target_changed` / `continuation_expired`:重新 prepare 再确认。
48
- - 写请求发出后网络中断 → `partial/write_uncertain`:禁止自动重试,先 `meeting.receipt.list` 回查是否已生效。
76
+ - 写请求发出后网络中断 → `partial/write_uncertain`:禁止自动重试,先 `meeting.receipt.list` / `meeting.sign.list` 回查是否已生效。
@@ -4,4 +4,4 @@
4
4
 
5
5
  - 业务术语为「变更」;CLI operation 为 `meeting.change.prepare` / `meeting.change.apply`。
6
6
  - 旧 `meeting.update.*` 已下线:它会固定发送 `operateType=UPDATE`,与"草稿走 UPDATE、正常走 CHANGE"的真实业务语义不符。
7
- - 本文件可安全删除。
7
+ - 本文件保留仅作迁移提示;**不要单独删除本文件**:`SKILL.md`「不在范围」仍引用它,且 `test/skills/layout.test.ts` 要求 `references/` 下每个 `.md` 都被 `SKILL.md` 链接。如需彻底移除,请同时删掉 `SKILL.md` 中的引用行。
@@ -11,27 +11,21 @@ agent_created: true
11
11
  requires:
12
12
  bins: ["weaver-work-cli"]
13
13
  dependencies:
14
- - weaver-e10-login
14
+ - weaver-e10-shared
15
15
  cliHelp: "weaver-work-cli okr --help"
16
16
  ---
17
17
 
18
18
  # 泛微E10 OKR 目标管理
19
19
 
20
- **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若不存在则必须先执行 `weaver-work-cli skills install shared --target-dir <当前Agent的Skills目录>`,若 CLI 未安装则先执行 `npm install -g weaver-work-cli`,安装或读取失败时必须停止执行。**
20
+ **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若共享规则不存在、CLI 未安装或读取失败,说明本技能的必需依赖缺失,必须先提示用户先补齐 `weaver-work-cli` 与共享 skill `weaver-e10-shared`(不补齐本技能无法执行),并把下面两条待执行命令原样完整展示给用户;Agent 不能自行安装——必须先取得用户明确确认后再执行。用户确认后按顺序执行且仅执行一次:① 缺 CLI 时执行 `npm install -g weaver-work-cli`;② 再执行 `weaver-work-cli skills install shared --target-dir <SKILLS_ROOT>` 装回共享 skill,`<SKILLS_ROOT>` 取本 SKILL.md 所在目录的上一级绝对目录(即与本技能同级的 skills 根目录),不要省略 `--target-dir`——省略会装进默认目录,导致本技能依然读不到共享规则。命令均成功后重新读取共享规则;仍读不到就停止并把结果报告用户,不得凭猜测继续。**
21
+ **`--is-connector` 判据**:用户明确使用连接器、或上下文要求用连接器完成任务 → 传 `true`;本次任务或上下文直接选择单独技能 → 不传;用户没有明确说明时,按**正在运行的这份 Skill 是哪一级**定——**用户级(条目标 `(user)`)不传,连接器级(标 `(connector)`)传**(同名 Skill 只会运行用户级那一份)。传 `true` 时不要再写 `--profile` / `--base-url`。完整规则见 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md)。
21
22
 
22
23
  本技能覆盖 OKR 目标管理业务域:**目标分页查询**、**目标详情**、**关键成果查询与保存**、**目标对齐**、**目标评论**、**目标详情页链接**、**链路判定**。所有写操作(新建/编辑目标、保存关键成果、添加目标对齐)全部走 `prepare -> apply` 确认协议。
23
24
 
24
25
  ## 认证与请求头契约
25
26
 
26
- 登录与会话由 E10 登录能力统一提供:文档型约定为 `weaver-e10-login` 技能,本 CLI 场景下等价入口是 `weaver-work-cli auth ...` 命令体系。业务 Skill 不自建登录流程,不索取、打印或转存任何凭证。
27
+ 登录与会话由 `weaver-e10-shared` 共享规则和 `weaver-work-cli auth ...` 命令体系统一托管。业务 Skill 不自建登录流程,不索取、打印或转存任何凭证。
27
28
 
28
- CLI 发往 E10 的每个请求都自动携带以下三项用户信息参数,**缺一不可**(业务入参里不要传这些字段,也不要手工拼装请求头):
29
-
30
- ```text
31
- Cookie: <登录返回的完整原始 Cookie 串,原样透传,禁止裁剪/去重/改写>
32
- eteamsid: <登录返回的 ETEAMSID>
33
- User-Agent: AgentType=<agentType>,IsAgent=true
34
- ```
35
29
 
36
30
  ## 命令入口
37
31
 
@@ -135,5 +129,6 @@ weaver-work-cli --json okr run okr.list --input-json '{"period_type":"3","period
135
129
  macOS/Linux(bash/zsh):
136
130
 
137
131
  ```bash
138
- printf '%s\n' '{"period_type":"3","period_range":"2026-09","page_size":10}' | weaver-work-cli --json okr run okr.list --input -
132
+ printf '%s
133
+ ' '{"period_type":"3","period_range":"2026-09","page_size":10}' | weaver-work-cli --json okr run okr.list --input -
139
134
  ```
@@ -573,7 +573,7 @@
573
573
  }
574
574
  },
575
575
  "artifactBaseline": {
576
- "aggregateSha256": "4cdd0ab6279dc176f129ad5134a9970a7f69d43e34a43e7ca3d04c9b77003078",
576
+ "aggregateSha256": "d0f0a278d8e96d1c9c2fd3422bc022fc0568a167f7326c5faaa588f2e4a26432",
577
577
  "files": [
578
578
  {
579
579
  "path": "src/shortcuts/okr/errors.ts",
@@ -647,8 +647,8 @@
647
647
  },
648
648
  {
649
649
  "path": "skills/weaver-e10-okr/SKILL.md",
650
- "size": 9543,
651
- "sha256": "7e72b527d9af4f617c97a7fbe4078dbc1a37c017d37f4d6259dac54650e91c30"
650
+ "size": 10350,
651
+ "sha256": "5d7036a7143a0af2a7c9886e8a600ede3cf72e153cbd27a5089a33c78ca297ea"
652
652
  },
653
653
  {
654
654
  "path": "docs/okr.md",
@@ -15,8 +15,8 @@ cliHelp: "weaver-work-cli plan --help"
15
15
 
16
16
  # 泛微E10计划报告
17
17
 
18
- **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若不存在则必须先执行 `weaver-work-cli skills install shared --target-dir <当前Agent的Skills目录>`,若 CLI 未安装则先执行 `npm install -g weaver-work-cli`,安装或读取失败时必须停止执行。**
19
-
18
+ **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若共享规则不存在、CLI 未安装或读取失败,说明本技能的必需依赖缺失,必须先提示用户先补齐 `weaver-work-cli` 与共享 skill `weaver-e10-shared`(不补齐本技能无法执行),并把下面两条待执行命令原样完整展示给用户;Agent 不能自行安装——必须先取得用户明确确认后再执行。用户确认后按顺序执行且仅执行一次:① 缺 CLI 时执行 `npm install -g weaver-work-cli`;② 再执行 `weaver-work-cli skills install shared --target-dir <SKILLS_ROOT>` 装回共享 skill,`<SKILLS_ROOT>` 取本 SKILL.md 所在目录的上一级绝对目录(即与本技能同级的 skills 根目录),不要省略 `--target-dir`——省略会装进默认目录,导致本技能依然读不到共享规则。命令均成功后重新读取共享规则;仍读不到就停止并把结果报告用户,不得凭猜测继续。**
19
+ **`--is-connector` 判据**:用户明确使用连接器、或上下文要求用连接器完成任务 → 传 `true`;本次任务或上下文直接选择单独技能 → 不传;用户没有明确说明时,按**正在运行的这份 Skill 是哪一级**定——**用户级(条目标 `(user)`)不传,连接器级(标 `(connector)`)传**(同名 Skill 只会运行用户级那一份)。传 `true` 时不要再写 `--profile` / `--base-url`。完整规则见 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md)。
20
20
 
21
21
  本技能覆盖报告业务域:**汇总生成报告**(多模块采集后整合)、**查询报告详情**、**分页查询报告**、**新建**、**修改**、**发布**、**撤回**、**发送提交提醒**、**查看报告评论**。写操作全部走 prepare→apply 确认协议。
22
22
 
@@ -105,7 +105,7 @@ weaver-work-cli --json plan run <operation> --input-json '{"key":"value"}'
105
105
  4. 涉及人员 ID 时只取 `id` 或 `employeeId` 字段,**禁止取 `userId`**;人员信息通过 weaver-e10-hrm skill 获取。
106
106
  5. 请求体中的雪花 ID(人员 ID、报告 ID 等)必须加引号包裹为字符串,避免精度丢失;直接用 CLI 的业务字段即可,CLI 会完成归一化。
107
107
  6. 执行阶段与创建出的报告内容中,**决不允许出现报告相关的数据库英文字段名**(如 `content`、`f_content`、`summary`、`f_summary`、`plans`、`f_plans`、`year`、`f_year`、`type`、`f_type`、`serial_number`、`f_serial_number`)。CLI 已把 eb 链路返回值归一化为业务字段,Agent 直接使用 `report.*` 业务键即可,不要向用户复述接口原始结构。
108
- 7. 认证与会话由 CLI 托管(Cookie 完整原始串、eteamsid、User-Agent 三件套缺一不可);若未登录先按共享规则读取 `../weaver-e10-shared/references/e10-auth-and-session.md` 并通过 `weaver-work-cli auth ...` 完成会话确认,禁止输出或索取任何凭证。
108
+ 7. 认证与会话由 CLI 托管,请求头三件套由 CLI 统一注入(唯一权威声明见 `weaver-e10-shared` 的「请求头契约」章节);若未登录先按共享规则读取 `../weaver-e10-shared/references/e10-auth-and-session.md` 并通过 `weaver-work-cli auth ...` 完成会话确认,禁止输出或索取任何凭证。
109
109
 
110
110
  ## 失败处理
111
111
 
@@ -24,7 +24,7 @@
24
24
 
25
25
  ### Step 0 前置准备(禁止调用任何报告接口)
26
26
 
27
- - 若尚未确认登录态,先按共享规则读取 `../weaver-e10-shared/references/e10-auth-and-session.md` 并通过 `weaver-work-cli auth ...` 确认会话(Cookie 完整原始串 + eteamsid + User-Agent 三件套,缺一不可)。
27
+ - 若尚未确认登录态,先按共享规则读取 `../weaver-e10-shared/references/e10-auth-and-session.md` 并通过 `weaver-work-cli auth ...` 确认会话(请求头三件套由 CLI 统一注入,唯一权威声明见 `weaver-e10-shared` 的「请求头契约」章节)。
28
28
  - 根据用户表述计算报告周期时间范围(周报遵循 ISO8601,例如「上周」= 上周一至上周日);未明确周期类型时先向用户确认周/月/季/年,确认前不得臆造区间。
29
29
  - 确定数据归属主体:默认当前登录人本人;若判定涉及他人且已获用户确认,则主体为该人。
30
30
 
@@ -87,7 +87,7 @@ eb 链路详情页地址为 `/sp/ebdfpage/card/0/{报告详情 eb 表单 id}/{
87
87
  6. **重复性判断**:判断当前人员是否提交某个周期的报告,**只能**通过 `plan.report.get` 按周期查询(必须传报告年份、报告类型、报告周期,创建人缺省为当前登录人)。
88
88
  7. **不得重复创建**:当且仅当用户确认需要创建某个周期的报告时才判断是否已创建;若已创建,不得重复创建,需明确告知用户并征询是否改为编辑。
89
89
  8. **字段名禁止项**:任何执行阶段和最终创建的报告内容中,决不允许出现报告相关的数据库英文字段名。CLI 已把 eb 链路返回值归一化为业务字段(`reportId` / `title` / `content` / `summary` / `plans` / `year` / `type` / `serialNumber` / `postStatus` / `postTime` / `creator` / `detailUrl`),Agent 只使用这些业务键,不要向用户复述原始接口结构。
90
- 9. **认证三件套**:所有请求必须携带完整登录态(Cookie 完整原始串、eteamsid、User-Agent)。由 CLI 托管,禁止输出、索取或写入任何凭证;未登录时先按共享规则读取 `../weaver-e10-shared/references/e10-auth-and-session.md` 并通过 `weaver-work-cli auth ...` 确认会话。
90
+ 9. **认证与请求头**:所有请求的请求头三件套由 CLI 统一注入(唯一权威声明见 `weaver-e10-shared` 的「请求头契约」章节)。由 CLI 托管,禁止输出、索取或写入任何凭证;未登录时先按共享规则读取 `../weaver-e10-shared/references/e10-auth-and-session.md` 并通过 `weaver-work-cli auth ...` 确认会话。
91
91
 
92
92
  ## 命令
93
93
 
@@ -682,7 +682,7 @@
682
682
  }
683
683
  },
684
684
  "artifactBaseline": {
685
- "aggregateSha256": "4b3de9a1cd19fe0df8c5e5fb7d68286111271407bf96901e4168901655b22e65",
685
+ "aggregateSha256": "46eb5b4ad85eb36b032f3d965c081bd255c26aaec1bd59903c61029ce3ba82b8",
686
686
  "files": [
687
687
  {
688
688
  "path": "src/shortcuts/plan/index.ts",
@@ -765,14 +765,14 @@
765
765
  {
766
766
  "path": "src/shortcuts/index.ts",
767
767
  "role": "generated-cli",
768
- "size": 1274,
769
- "sha256": "54df058151b6f3602a2d112a49396b4ad4121cdba06d31c4c368ebd3235192c4"
768
+ "size": 1420,
769
+ "sha256": "569bef374df2d86b511150a0c609ce1abee63f8317994513bce6241276b5be40"
770
770
  },
771
771
  {
772
772
  "path": "skills/weaver-e10-plan/SKILL.md",
773
773
  "role": "generated-skill-entry",
774
- "size": 12383,
775
- "sha256": "10a8815bb358f479f10aa9767be6a2f9f1943dcdb1693ab128f8877b033215bf"
774
+ "size": 13660,
775
+ "sha256": "ea0019ddf7a99162dfc00f5dc60e87f88727560063b30f1b6b41ed6e8962e6a8"
776
776
  },
777
777
  {
778
778
  "path": "skill-template/product.json",
@@ -783,8 +783,8 @@
783
783
  {
784
784
  "path": "skills/weaver-e10-plan/references/plan-overview-and-routing.md",
785
785
  "role": "generated-reference",
786
- "size": 8462,
787
- "sha256": "6ad3f83d27a35958c6580aa9e20e659dee7412e8d392e55a5646e232da4d2da7"
786
+ "size": 8505,
787
+ "sha256": "a629a50385af9def289d1250aa3da6d7b0c558bf3b0cfbcf9dedffad55e3481b"
788
788
  },
789
789
  {
790
790
  "path": "skills/weaver-e10-plan/references/plan-report-query.md",
@@ -807,8 +807,8 @@
807
807
  {
808
808
  "path": "skills/weaver-e10-plan/references/plan-collect-and-compose.md",
809
809
  "role": "generated-reference",
810
- "size": 7664,
811
- "sha256": "ac721e76ef3139ef684004bed939a5cd2805b07054250742ec05858907df63dc"
810
+ "size": 7706,
811
+ "sha256": "8350d06f4840ced7ea416a09bdcb3d139ff11118df7ac19fb0d886a89140a607"
812
812
  },
813
813
  {
814
814
  "path": "docs/plan.md",
@@ -819,8 +819,8 @@
819
819
  {
820
820
  "path": "docs/_catalog.md",
821
821
  "role": "generated-doc",
822
- "size": 4580,
823
- "sha256": "7ec48267965b4ccd35dcc463ed0a73dd71c3f4d2fc3d978165f508261945d4b3"
822
+ "size": 5332,
823
+ "sha256": "a81903939aea5bf1196d1e3243709d2facf50d9bdcf74d8a6ca731061310dbbe"
824
824
  },
825
825
  {
826
826
  "path": "docs/SKILL.md",
@@ -843,8 +843,8 @@
843
843
  {
844
844
  "path": "skill-template/business-info.json",
845
845
  "role": "generated-template",
846
- "size": 6294,
847
- "sha256": "7af8cc1b35564b11a4c33cf566b22919d75c8a4daeec488d6ff8979c098c8ff7"
846
+ "size": 8216,
847
+ "sha256": "370a45e86c6b7e33869c5df1bf08d9f22bd98fa8b157b49716e13bca0e7b63c3"
848
848
  }
849
849
  ]
850
850
  },
@@ -11,13 +11,14 @@ agent_created: true
11
11
  requires:
12
12
  bins: ["weaver-work-cli"]
13
13
  dependencies:
14
- - weaver-e10-login
14
+ - weaver-e10-shared
15
15
  cliHelp: "weaver-work-cli fna --help"
16
16
  ---
17
17
 
18
18
  # weaver-work-cli 齐业成费控(FNA)Skill
19
19
 
20
- **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若不存在则必须先执行 `weaver-work-cli skills install shared --target-dir <当前Agent的Skills目录>`,若 CLI 未安装则先执行 `npm install -g weaver-work-cli`,安装或读取失败时必须停止执行。**
20
+ **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若共享规则不存在、CLI 未安装或读取失败,说明本技能的必需依赖缺失,必须先提示用户先补齐 `weaver-work-cli` 与共享 skill `weaver-e10-shared`(不补齐本技能无法执行),并把下面两条待执行命令原样完整展示给用户;Agent 不能自行安装——必须先取得用户明确确认后再执行。用户确认后按顺序执行且仅执行一次:① 缺 CLI 时执行 `npm install -g weaver-work-cli`;② 再执行 `weaver-work-cli skills install shared --target-dir <SKILLS_ROOT>` 装回共享 skill,`<SKILLS_ROOT>` 取本 SKILL.md 所在目录的上一级绝对目录(即与本技能同级的 skills 根目录),不要省略 `--target-dir`——省略会装进默认目录,导致本技能依然读不到共享规则。命令均成功后重新读取共享规则;仍读不到就停止并把结果报告用户,不得凭猜测继续。**
21
+ **`--is-connector` 判据**:用户明确使用连接器、或上下文要求用连接器完成任务 → 传 `true`;本次任务或上下文直接选择单独技能 → 不传;用户没有明确说明时,按**正在运行的这份 Skill 是哪一级**定——**用户级(条目标 `(user)`)不传,连接器级(标 `(connector)`)传**(同名 Skill 只会运行用户级那一份)。传 `true` 时不要再写 `--profile` / `--base-url`。完整规则见 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md)。
21
22
 
22
23
  所有调用统一走 `weaver-work-cli fna ...`,禁止绕过 CLI 直接 curl/fetch E10 接口,禁止读取、复制、打印或解析 Cookie、ETEAMSID、Token 或 `~/.e10-cli` 等认证目录;登录诊断只允许 `weaver-work-cli auth root/status/profile list/profile current`、`weaver-work-cli doctor --e10` 和业务命令 JSON 错误。
23
24
 
@@ -29,15 +30,8 @@ cliHelp: "weaver-work-cli fna --help"
29
30
 
30
31
  ## 认证与请求头契约
31
32
 
32
- 登录与会话由 E10 登录能力统一提供:文档型约定为 `weaver-e10-login` 技能,本 CLI 场景下等价入口是 `weaver-work-cli auth ...` 命令体系。业务 Skill 不自建登录流程,不索取、打印或转存任何凭证。
33
+ 登录与会话由 `weaver-e10-shared` 共享规则和 `weaver-work-cli auth ...` 命令体系统一托管。业务 Skill 不自建登录流程,不索取、打印或转存任何凭证。
33
34
 
34
- CLI 发往 E10 的每个请求都自动携带以下三项用户信息参数,**缺一不可**(业务入参里不要传这些字段,也不要手工拼装请求头):
35
-
36
- ```text
37
- Cookie: <登录返回的完整原始 Cookie 串,原样透传,禁止裁剪/去重/改写>
38
- eteamsid: <登录返回的 ETEAMSID>
39
- User-Agent: AgentType=<agentType>,IsAgent=true
40
- ```
41
35
 
42
36
  ## 能力范围
43
37
 
@@ -517,7 +517,7 @@
517
517
  }
518
518
  },
519
519
  "artifactBaseline": {
520
- "aggregateSha256": "b3054d5b48d3be996e055873a9b88060fcf4640c79c067004fd7ceebeab2c9de",
520
+ "aggregateSha256": "d2a6ce35980785ac91d23b49b5be485f643c327e7f4e2055fe75f0ff18ac42a8",
521
521
  "files": [
522
522
  {
523
523
  "path": "src/shortcuts/fna/manifest.ts",
@@ -600,8 +600,8 @@
600
600
  {
601
601
  "path": "src/shortcuts/index.ts",
602
602
  "role": "generated",
603
- "size": 1274,
604
- "sha256": "54df058151b6f3602a2d112a49396b4ad4121cdba06d31c4c368ebd3235192c4"
603
+ "size": 1420,
604
+ "sha256": "569bef374df2d86b511150a0c609ce1abee63f8317994513bce6241276b5be40"
605
605
  },
606
606
  {
607
607
  "path": "test/business/fna-operations.test.ts",
@@ -624,8 +624,8 @@
624
624
  {
625
625
  "path": "docs/_catalog.md",
626
626
  "role": "generated",
627
- "size": 4580,
628
- "sha256": "7ec48267965b4ccd35dcc463ed0a73dd71c3f4d2fc3d978165f508261945d4b3"
627
+ "size": 5332,
628
+ "sha256": "a81903939aea5bf1196d1e3243709d2facf50d9bdcf74d8a6ca731061310dbbe"
629
629
  },
630
630
  {
631
631
  "path": "docs/SKILL.md",
@@ -636,8 +636,8 @@
636
636
  {
637
637
  "path": "skills/weaver-e10-qiyecheng/SKILL.md",
638
638
  "role": "generated",
639
- "size": 10568,
640
- "sha256": "c9b0de725103edd503dba4c02d3f7ba548ade74ddf718c7b41a4e24a485e50ce"
639
+ "size": 11376,
640
+ "sha256": "8327955269084dcc00a1bc81078ac39e963ecccd21e6b4cc8f3d844a6fd49db6"
641
641
  },
642
642
  {
643
643
  "path": "skill-template/product.json",
@@ -678,8 +678,8 @@
678
678
  {
679
679
  "path": "skill-template/business-info.json",
680
680
  "role": "generated",
681
- "size": 6294,
682
- "sha256": "7af8cc1b35564b11a4c33cf566b22919d75c8a4daeec488d6ff8979c098c8ff7"
681
+ "size": 8216,
682
+ "sha256": "370a45e86c6b7e33869c5df1bf08d9f22bd98fa8b157b49716e13bca0e7b63c3"
683
683
  },
684
684
  {
685
685
  "path": "skill-template/domains/qiyecheng.md",