weaver-work-cli 0.1.23 → 0.1.25

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 (358) hide show
  1. package/README.md +33 -3
  2. package/dist/core/output.js +53 -1
  3. package/dist/internal/e10/auth/commands.js +210 -17
  4. package/dist/internal/e10/auth/crypto.js +52 -12
  5. package/dist/internal/e10/auth/xiaoe.js +117 -35
  6. package/dist/internal/e10/context.js +3 -3
  7. package/dist/internal/e10/request-runtime.js +46 -4
  8. package/dist/shortcuts/caizhilian/file-upload/metadata.js +124 -0
  9. package/dist/shortcuts/caizhilian/file-upload/multipart.js +47 -0
  10. package/dist/shortcuts/caizhilian/file-upload/protocol.js +116 -0
  11. package/dist/shortcuts/caizhilian/file-upload/receipt.js +37 -0
  12. package/dist/shortcuts/caizhilian/host.js +13 -5
  13. package/dist/shortcuts/caizhilian/operations/handlers/file-upload.js +72 -179
  14. package/dist/shortcuts/caizhilian/operations/handlers/fileops.js +67 -1
  15. package/dist/shortcuts/caizhilian/operations/handlers/folder.js +701 -4
  16. package/dist/shortcuts/caizhilian/operations/handlers/setting-attach.js +198 -0
  17. package/dist/shortcuts/caizhilian/operations/registry.js +5 -1
  18. package/dist/shortcuts/caizhilian/operations/shared.js +32 -0
  19. package/dist/shortcuts/caizhilian/operations/specs.js +67 -0
  20. package/dist/shortcuts/workflow/continuation.js +14 -9
  21. package/dist/shortcuts/workflow/endpoints.js +11 -1
  22. package/dist/shortcuts/workflow/index.js +55 -1
  23. package/dist/shortcuts/workflow/operations/flow-status.js +63 -0
  24. package/dist/shortcuts/workflow/operations/form.js +1822 -547
  25. package/dist/shortcuts/workflow/operations/read.js +414 -13
  26. package/dist/shortcuts/workflow/operations/shared.js +28 -0
  27. package/dist/shortcuts/workflow/operations/write.js +5 -5
  28. package/dist/shortcuts/workflow/operations.js +8 -6
  29. package/dist/shortcuts/workflow/stdout-compact.js +33 -0
  30. package/docs/caizhilian.md +12 -5
  31. package/docs/e10-auth.md +25 -3
  32. package/node_modules/@napi-rs/keyring/LICENSE +21 -0
  33. package/node_modules/@napi-rs/keyring/README.md +19 -0
  34. package/node_modules/@napi-rs/keyring/index.d.ts +166 -0
  35. package/node_modules/@napi-rs/keyring/index.js +514 -0
  36. package/node_modules/@napi-rs/keyring/keytar.d.ts +53 -0
  37. package/node_modules/@napi-rs/keyring/keytar.js +26 -0
  38. package/node_modules/@napi-rs/keyring/package.json +125 -0
  39. package/node_modules/@napi-rs/keyring-darwin-arm64/README.md +3 -0
  40. package/node_modules/@napi-rs/keyring-darwin-arm64/keyring.darwin-arm64.node +0 -0
  41. package/node_modules/@napi-rs/keyring-darwin-arm64/package.json +32 -0
  42. package/node_modules/commander/LICENSE +22 -0
  43. package/node_modules/commander/Readme.md +1149 -0
  44. package/node_modules/commander/esm.mjs +16 -0
  45. package/node_modules/commander/index.js +24 -0
  46. package/node_modules/commander/lib/argument.js +149 -0
  47. package/node_modules/commander/lib/command.js +2662 -0
  48. package/node_modules/commander/lib/error.js +39 -0
  49. package/node_modules/commander/lib/help.js +709 -0
  50. package/node_modules/commander/lib/option.js +367 -0
  51. package/node_modules/commander/lib/suggestSimilar.js +101 -0
  52. package/node_modules/commander/package-support.json +16 -0
  53. package/node_modules/commander/package.json +82 -0
  54. package/node_modules/commander/typings/esm.d.mts +3 -0
  55. package/node_modules/commander/typings/index.d.ts +1045 -0
  56. package/package.json +5 -1
  57. package/skills/weaver-e10-builder/SKILL.md +281 -0
  58. package/skills/weaver-e10-builder/_catalog.md +94 -0
  59. package/skills/weaver-e10-builder/actionflows/CONTEXT.md +71 -0
  60. package/skills/weaver-e10-builder/actionflows/SKILL.md +176 -0
  61. package/skills/weaver-e10-builder/actionflows/docs/adr/0001-generated-actionflow-cleanup-identity.md +5 -0
  62. package/skills/weaver-e10-builder/actionflows/docs/adr/0002-preserve-existing-actionflow-on-update.md +36 -0
  63. package/skills/weaver-e10-builder/actionflows/references/components/calendar/MeetingCreate.md +19 -0
  64. package/skills/weaver-e10-builder/actionflows/references/components/calendar/ScheduleCreate.md +17 -0
  65. package/skills/weaver-e10-builder/actionflows/references/components/database/DMLExecute.md +38 -0
  66. package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentCopy.md +17 -0
  67. package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentMove.md +17 -0
  68. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentCopy.md +17 -0
  69. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentDelete.md +17 -0
  70. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentEdit.md +17 -0
  71. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentMove.md +17 -0
  72. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentPermissionChange.md +17 -0
  73. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRenewal.md +17 -0
  74. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRevert.md +17 -0
  75. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSave.md +17 -0
  76. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscription.md +17 -0
  77. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionApprove.md +17 -0
  78. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionSendBack.md +17 -0
  79. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionWithdraw.md +17 -0
  80. package/skills/weaver-e10-builder/actionflows/references/components/document/FileFolderSave.md +17 -0
  81. package/skills/weaver-e10-builder/actionflows/references/components/document/GetAttachmentInfo.md +17 -0
  82. package/skills/weaver-e10-builder/actionflows/references/components/document/GetDocumentInfo.md +17 -0
  83. package/skills/weaver-e10-builder/actionflows/references/components/document/ModifyDocumentStatus.md +17 -0
  84. package/skills/weaver-e10-builder/actionflows/references/components/document/ReplaceAttachment.md +17 -0
  85. package/skills/weaver-e10-builder/actionflows/references/components/document/UpdatePrintNum.md +17 -0
  86. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbAdd.md +100 -0
  87. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbDelete.md +23 -0
  88. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbRecover.md +17 -0
  89. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbSaveVersion.md +17 -0
  90. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbUpdate.md +67 -0
  91. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/DateTrigger.md +32 -0
  92. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EbGetDataById.md +17 -0
  93. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EnquiryForm.md +107 -0
  94. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventButton.md +33 -0
  95. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventFormData.md +19 -0
  96. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/TimeBatchTrigger.md +19 -0
  97. package/skills/weaver-e10-builder/actionflows/references/components/http/Http.md +77 -0
  98. package/skills/weaver-e10-builder/actionflows/references/components/logic/Condition.md +23 -0
  99. package/skills/weaver-e10-builder/actionflows/references/components/logic/LogicFlowSet.md +17 -0
  100. package/skills/weaver-e10-builder/actionflows/references/components/logic/MultipleExecution.md +38 -0
  101. package/skills/weaver-e10-builder/actionflows/references/components/logic/Output.md +37 -0
  102. package/skills/weaver-e10-builder/actionflows/references/components/message/InnerMQSend.md +50 -0
  103. package/skills/weaver-e10-builder/actionflows/references/components/message/SendMessage.md +30 -0
  104. package/skills/weaver-e10-builder/actionflows/references/components/personnel/AlterPersonStatus.md +30 -0
  105. package/skills/weaver-e10-builder/actionflows/references/components/personnel/HrmEmployeeUpdate.md +34 -0
  106. package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelAlterType.md +38 -0
  107. package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelOnboarding.md +36 -0
  108. package/skills/weaver-e10-builder/actionflows/references/components/serverless/ServerlessAction.md +42 -0
  109. package/skills/weaver-e10-builder/actionflows/references/components/trigger/CustomTrigger.md +82 -0
  110. package/skills/weaver-e10-builder/actionflows/references/components/trigger/InnerMQListener.md +41 -0
  111. package/skills/weaver-e10-builder/actionflows/references/components/trigger/SimpleScheduler.md +19 -0
  112. package/skills/weaver-e10-builder/actionflows/references/components/trigger/WebHookTrigger.md +91 -0
  113. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAddSign.md +17 -0
  114. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAgreeRejectApply.md +17 -0
  115. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCommit.md +17 -0
  116. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveConsulTurnTodo.md +17 -0
  117. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCreate.md +17 -0
  118. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDelete.md +19 -0
  119. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoCirculate.md +17 -0
  120. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoForward.md +17 -0
  121. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoTurnTodo.md +17 -0
  122. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveEntrust.md +19 -0
  123. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveIntervention.md +17 -0
  124. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveMandatoryArchiving.md +17 -0
  125. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveManualCC.md +17 -0
  126. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRefuseRejectApply.md +17 -0
  127. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRejectApply.md +17 -0
  128. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSave.md +17 -0
  129. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSendBack.md +17 -0
  130. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveShareEntry.md +17 -0
  131. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveTrigger.md +99 -0
  132. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveWithdraw.md +17 -0
  133. package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkFlowDocEmpowerment.md +17 -0
  134. package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkflowToDoc.md +17 -0
  135. package/skills/weaver-e10-builder/actionflows/references/condition_rules.md +100 -0
  136. package/skills/weaver-e10-builder/actionflows/references/dynamic_capability_matrix.md +39 -0
  137. package/skills/weaver-e10-builder/actionflows/references/dynamic_resources.md +41 -0
  138. package/skills/weaver-e10-builder/actionflows/references/examples/enquiry-form-batch-insert-scene2.json +1043 -0
  139. package/skills/weaver-e10-builder/actionflows/references/function_rules.md +15 -0
  140. package/skills/weaver-e10-builder/actionflows/references/trigger_runtime_notes.md +53 -0
  141. package/skills/weaver-e10-builder/assets/dom-structure/Bar.json +341 -0
  142. package/skills/weaver-e10-builder/assets/dom-structure/BarStack.json +341 -0
  143. package/skills/weaver-e10-builder/assets/dom-structure/Bubble.json +323 -0
  144. package/skills/weaver-e10-builder/assets/dom-structure/Calendar.json +515 -0
  145. package/skills/weaver-e10-builder/assets/dom-structure/Circular.json +337 -0
  146. package/skills/weaver-e10-builder/assets/dom-structure/CollapsePanel.json +289 -0
  147. package/skills/weaver-e10-builder/assets/dom-structure/Comment.json +617 -0
  148. package/skills/weaver-e10-builder/assets/dom-structure/CountDown.json +755 -0
  149. package/skills/weaver-e10-builder/assets/dom-structure/DigitalPanel.json +191 -0
  150. package/skills/weaver-e10-builder/assets/dom-structure/EbButton.json +387 -0
  151. package/skills/weaver-e10-builder/assets/dom-structure/FastCreate.json +242 -0
  152. package/skills/weaver-e10-builder/assets/dom-structure/Gauge.json +282 -0
  153. package/skills/weaver-e10-builder/assets/dom-structure/HBar.json +336 -0
  154. package/skills/weaver-e10-builder/assets/dom-structure/HBarStack.json +337 -0
  155. package/skills/weaver-e10-builder/assets/dom-structure/Line.json +341 -0
  156. package/skills/weaver-e10-builder/assets/dom-structure/NList.json +712 -0
  157. package/skills/weaver-e10-builder/assets/dom-structure/NavBar.json +274 -0
  158. package/skills/weaver-e10-builder/assets/dom-structure/NavPanel.json +390 -0
  159. package/skills/weaver-e10-builder/assets/dom-structure/NewTab.json +606 -0
  160. package/skills/weaver-e10-builder/assets/dom-structure/Nightingale.json +336 -0
  161. package/skills/weaver-e10-builder/assets/dom-structure/PageHeader.json +205 -0
  162. package/skills/weaver-e10-builder/assets/dom-structure/Picture.json +209 -0
  163. package/skills/weaver-e10-builder/assets/dom-structure/Pie.json +338 -0
  164. package/skills/weaver-e10-builder/assets/dom-structure/ProgressChart.json +299 -0
  165. package/skills/weaver-e10-builder/assets/dom-structure/SearchGlobal.json +628 -0
  166. package/skills/weaver-e10-builder/assets/dom-structure/Slide.json +489 -0
  167. package/skills/weaver-e10-builder/assets/dom-structure/Treemap.json +324 -0
  168. package/skills/weaver-e10-builder/assets/factory/chart-dimensions.json +536 -0
  169. package/skills/weaver-e10-builder/assets/factory/example-btn-progress-collapse-configured.json +2515 -0
  170. package/skills/weaver-e10-builder/assets/factory/example-configured-2.json +13805 -0
  171. package/skills/weaver-e10-builder/assets/factory/example-configured.json +6735 -0
  172. package/skills/weaver-e10-builder/assets/factory/factory-bar-stack.json +326 -0
  173. package/skills/weaver-e10-builder/assets/factory/factory-bar.json +222 -0
  174. package/skills/weaver-e10-builder/assets/factory/factory-bubble.json +322 -0
  175. package/skills/weaver-e10-builder/assets/factory/factory-calendar.json +325 -0
  176. package/skills/weaver-e10-builder/assets/factory/factory-circular.json +320 -0
  177. package/skills/weaver-e10-builder/assets/factory/factory-collapse-panel.json +132 -0
  178. package/skills/weaver-e10-builder/assets/factory/factory-comment.json +388 -0
  179. package/skills/weaver-e10-builder/assets/factory/factory-count-down.json +198 -0
  180. package/skills/weaver-e10-builder/assets/factory/factory-digital-panel.json +108 -0
  181. package/skills/weaver-e10-builder/assets/factory/factory-eb-button.json +150 -0
  182. package/skills/weaver-e10-builder/assets/factory/factory-fast-create.json +62 -0
  183. package/skills/weaver-e10-builder/assets/factory/factory-gauge.json +312 -0
  184. package/skills/weaver-e10-builder/assets/factory/factory-h-bar-stack.json +328 -0
  185. package/skills/weaver-e10-builder/assets/factory/factory-h-bar.json +326 -0
  186. package/skills/weaver-e10-builder/assets/factory/factory-line.json +212 -0
  187. package/skills/weaver-e10-builder/assets/factory/factory-nav-bar.json +167 -0
  188. package/skills/weaver-e10-builder/assets/factory/factory-nav-menu.json +144 -0
  189. package/skills/weaver-e10-builder/assets/factory/factory-nav-panel.json +338 -0
  190. package/skills/weaver-e10-builder/assets/factory/factory-new-tab.json +163 -0
  191. package/skills/weaver-e10-builder/assets/factory/factory-nightingale.json +312 -0
  192. package/skills/weaver-e10-builder/assets/factory/factory-nlist.json +112 -0
  193. package/skills/weaver-e10-builder/assets/factory/factory-page-header.json +171 -0
  194. package/skills/weaver-e10-builder/assets/factory/factory-picture.json +169 -0
  195. package/skills/weaver-e10-builder/assets/factory/factory-pie.json +212 -0
  196. package/skills/weaver-e10-builder/assets/factory/factory-progress-chart.json +162 -0
  197. package/skills/weaver-e10-builder/assets/factory/factory-search-global.json +104 -0
  198. package/skills/weaver-e10-builder/assets/factory/factory-slide.json +164 -0
  199. package/skills/weaver-e10-builder/assets/factory/factory-treemap.json +322 -0
  200. package/skills/weaver-e10-builder/assets/icons.db +0 -0
  201. package/skills/weaver-e10-builder/assets/sample/.claude/settings.local.json +8 -0
  202. package/skills/weaver-e10-builder/assets/sample/api/formApi.js +510 -0
  203. package/skills/weaver-e10-builder/assets/sample/config/config.js +0 -0
  204. package/skills/weaver-e10-builder/assets/sample/config/configLoad.js +0 -0
  205. package/skills/weaver-e10-builder/assets/sample/config/configLoad_default.js +0 -0
  206. package/skills/weaver-e10-builder/assets/sample/config/config_default.js +0 -0
  207. package/skills/weaver-e10-builder/assets/sample/entry.js +22 -0
  208. package/skills/weaver-e10-builder/assets/sample/eslint.config.cjs +48 -0
  209. package/skills/weaver-e10-builder/assets/sample/memo.md +0 -0
  210. package/skills/weaver-e10-builder/assets/sample/readme.js +8 -0
  211. package/skills/weaver-e10-builder/references/app/guide-app-publish.md +92 -0
  212. package/skills/weaver-e10-builder/references/auth/guide-auth.md +88 -0
  213. package/skills/weaver-e10-builder/references/coding/guide-edit-backfill.md +189 -0
  214. package/skills/weaver-e10-builder/references/coding/guide-form-crud.md +262 -0
  215. package/skills/weaver-e10-builder/references/coding/guide-page-code.md +244 -0
  216. package/skills/weaver-e10-builder/references/coding/guide-page-export.md +119 -0
  217. package/skills/weaver-e10-builder/references/coding/ref-compile-rules.md +130 -0
  218. package/skills/weaver-e10-builder/references/common/guide-plan-template.md +164 -0
  219. package/skills/weaver-e10-builder/references/common/map.md +153 -0
  220. package/skills/weaver-e10-builder/references/common/ref-cli-commands.md +635 -0
  221. package/skills/weaver-e10-builder/references/components/@weapp-Button.md +104 -0
  222. package/skills/weaver-e10-builder/references/components/base-Badge.md +100 -0
  223. package/skills/weaver-e10-builder/references/components/base-Dialog.md +358 -0
  224. package/skills/weaver-e10-builder/references/components/base-Empty.md +58 -0
  225. package/skills/weaver-e10-builder/references/components/base-Tag.md +112 -0
  226. package/skills/weaver-e10-builder/references/components/display-Alert.md +64 -0
  227. package/skills/weaver-e10-builder/references/components/display-Avatar.md +150 -0
  228. package/skills/weaver-e10-builder/references/components/display-Calendar.md +263 -0
  229. package/skills/weaver-e10-builder/references/components/display-Carousel.md +115 -0
  230. package/skills/weaver-e10-builder/references/components/display-Collapse.md +299 -0
  231. package/skills/weaver-e10-builder/references/components/display-FilePreview.md +49 -0
  232. package/skills/weaver-e10-builder/references/components/display-Icon.md +66 -0
  233. package/skills/weaver-e10-builder/references/components/display-List.md +320 -0
  234. package/skills/weaver-e10-builder/references/components/display-Pagination.md +41 -0
  235. package/skills/weaver-e10-builder/references/components/display-Spin.md +34 -0
  236. package/skills/weaver-e10-builder/references/components/display-Steps.md +89 -0
  237. package/skills/weaver-e10-builder/references/components/display-Table.md +160 -0
  238. package/skills/weaver-e10-builder/references/components/display-Title.md +117 -0
  239. package/skills/weaver-e10-builder/references/components/form-Checkbox.md +161 -0
  240. package/skills/weaver-e10-builder/references/components/form-DepartmentBrowser-api.md +52 -0
  241. package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser-api.md +51 -0
  242. package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser.md +51 -0
  243. package/skills/weaver-e10-builder/references/components/form-Input.md +123 -0
  244. package/skills/weaver-e10-builder/references/components/form-Radio.md +145 -0
  245. package/skills/weaver-e10-builder/references/components/form-Select.md +191 -0
  246. package/skills/weaver-e10-builder/references/components/form-Switch.md +46 -0
  247. package/skills/weaver-e10-builder/references/components/form-Upload.md +53 -0
  248. package/skills/weaver-e10-builder/references/components/generic-Echarts.md +102 -0
  249. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-components.md +130 -0
  250. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-css.md +127 -0
  251. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-factory.md +460 -0
  252. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-version.md +111 -0
  253. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer.md +288 -0
  254. package/skills/weaver-e10-builder/references/esb-interface/guide-import.md +34 -0
  255. package/skills/weaver-e10-builder/references/form/guide-create-form.md +248 -0
  256. package/skills/weaver-e10-builder/references/form/guide-ebuilder-filter.md +73 -0
  257. package/skills/weaver-e10-builder/references/form/guide-ebuilder-scope.md +82 -0
  258. package/skills/weaver-e10-builder/references/form/guide-field-linkage.md +123 -0
  259. package/skills/weaver-e10-builder/references/form/guide-form-archive-permission.md +175 -0
  260. package/skills/weaver-e10-builder/references/form/guide-form-association.md +124 -0
  261. package/skills/weaver-e10-builder/references/form/guide-form-button.md +169 -0
  262. package/skills/weaver-e10-builder/references/form/guide-form-data.md +78 -0
  263. package/skills/weaver-e10-builder/references/form/guide-form-formula-functions.md +343 -0
  264. package/skills/weaver-e10-builder/references/form/guide-form-layout-incremental.md +90 -0
  265. package/skills/weaver-e10-builder/references/form/guide-form-layout-planning.md +68 -0
  266. package/skills/weaver-e10-builder/references/form/guide-form-linkage.md +269 -0
  267. package/skills/weaver-e10-builder/references/form/guide-form-message.md +74 -0
  268. package/skills/weaver-e10-builder/references/form/guide-form-physical-table.md +146 -0
  269. package/skills/weaver-e10-builder/references/form/guide-form-serial-mark.md +47 -0
  270. package/skills/weaver-e10-builder/references/form/guide-form-sub-detail.md +82 -0
  271. package/skills/weaver-e10-builder/references/form/guide-form-view-permission.md +38 -0
  272. package/skills/weaver-e10-builder/references/form/guide-form-view.md +371 -0
  273. package/skills/weaver-e10-builder/references/form/guide-formula-linkage.md +281 -0
  274. package/skills/weaver-e10-builder/references/form/guide-list-columns.md +52 -0
  275. package/skills/weaver-e10-builder/references/form/guide-list-custom-text.md +52 -0
  276. package/skills/weaver-e10-builder/references/form/guide-list-stats.md +136 -0
  277. package/skills/weaver-e10-builder/references/form/guide-virtual-form.md +156 -0
  278. package/skills/weaver-e10-builder/references/form/ref-form-fields.md +293 -0
  279. package/skills/weaver-e10-builder/references/form/style-templates.md +97 -0
  280. package/skills/weaver-e10-builder/references/hrm/guide-matrix.md +245 -0
  281. package/skills/weaver-e10-builder/references/hrm/guide-org-employee.md +155 -0
  282. package/skills/weaver-e10-builder/references/menu/system-menus.md +75 -0
  283. package/skills/weaver-e10-builder/references/report/add-dataset-registration-guide.md +139 -0
  284. package/skills/weaver-e10-builder/references/report/ai-report-workflow.md +412 -0
  285. package/skills/weaver-e10-builder/references/report/api-report-build-fast-path.md +275 -0
  286. package/skills/weaver-e10-builder/references/report/app-datasource-lookup-guide.md +230 -0
  287. package/skills/weaver-e10-builder/references/report/cell-config-echo-guide.md +163 -0
  288. package/skills/weaver-e10-builder/references/report/cell-transform-guide.md +147 -0
  289. package/skills/weaver-e10-builder/references/report/condition-format-guide.md +140 -0
  290. package/skills/weaver-e10-builder/references/report/cross-dataset-filter-guide.md +304 -0
  291. package/skills/weaver-e10-builder/references/report/dataset-query-filter-guide.md +235 -0
  292. package/skills/weaver-e10-builder/references/report/dataset-sidebar-ops-guide.md +280 -0
  293. package/skills/weaver-e10-builder/references/report/dataset-table-field-contract-guide.md +339 -0
  294. package/skills/weaver-e10-builder/references/report/datasource-metadata-guide.md +365 -0
  295. package/skills/weaver-e10-builder/references/report/datasource-selection-and-parent-filter-guide.md +148 -0
  296. package/skills/weaver-e10-builder/references/report/date-range-query-reference.md +102 -0
  297. package/skills/weaver-e10-builder/references/report/default-header-style-guide.md +70 -0
  298. package/skills/weaver-e10-builder/references/report/designer-blank-prevention-guide.md +111 -0
  299. package/skills/weaver-e10-builder/references/report/event-hreflink-guide.md +184 -0
  300. package/skills/weaver-e10-builder/references/report/field-bind-exact-match-guide.md +208 -0
  301. package/skills/weaver-e10-builder/references/report/formula-cell-api-guide.md +258 -0
  302. package/skills/weaver-e10-builder/references/report/guide-report-build.md +131 -0
  303. package/skills/weaver-e10-builder/references/report/guide-report-modify.md +100 -0
  304. package/skills/weaver-e10-builder/references/report/guide-report-multisource.md +143 -0
  305. package/skills/weaver-e10-builder/references/report/guide-report-query.md +98 -0
  306. package/skills/weaver-e10-builder/references/report/hidden-row-and-header-merge-guide.md +100 -0
  307. package/skills/weaver-e10-builder/references/report/layout-showlocation-freeze-guide.md +167 -0
  308. package/skills/weaver-e10-builder/references/report/preaggregate-auto-disable-guide.md +107 -0
  309. package/skills/weaver-e10-builder/references/report/query-condition-api-guide.md +890 -0
  310. package/skills/weaver-e10-builder/references/report/ref-report-commands.md +122 -0
  311. package/skills/weaver-e10-builder/references/report/ref-report-pitfalls.md +226 -0
  312. package/skills/weaver-e10-builder/references/report/report-baseinfo-defaults-guide.md +117 -0
  313. package/skills/weaver-e10-builder/references/report/report-building-guide.md +511 -0
  314. package/skills/weaver-e10-builder/references/report/report-config-schema.md +445 -0
  315. package/skills/weaver-e10-builder/references/report/report-create-modes-guide.md +182 -0
  316. package/skills/weaver-e10-builder/references/report/report-data-model.md +447 -0
  317. package/skills/weaver-e10-builder/references/report/report-delivery-contract.md +101 -0
  318. package/skills/weaver-e10-builder/references/report/report-designer-feature-map.md +500 -0
  319. package/skills/weaver-e10-builder/references/report/report-internal-error-guide.md +78 -0
  320. package/skills/weaver-e10-builder/references/report/report-knowledge-base.md +389 -0
  321. package/skills/weaver-e10-builder/references/report/report-lifecycle-api-guide.md +392 -0
  322. package/skills/weaver-e10-builder/references/report/report-list-page-ops-guide.md +191 -0
  323. package/skills/weaver-e10-builder/references/report/report-permission-guide.md +365 -0
  324. package/skills/weaver-e10-builder/references/report/report-requirement-analysis-template.md +202 -0
  325. package/skills/weaver-e10-builder/references/report/report-self-check-guide.md +164 -0
  326. package/skills/weaver-e10-builder/references/report/safe-partial-save-guide.md +151 -0
  327. package/skills/weaver-e10-builder/references/report/snowflake-id-precision-guide.md +84 -0
  328. package/skills/weaver-e10-builder/references/report/spec-build-schema.md +294 -0
  329. package/skills/weaver-e10-builder/references/report/targeted-fix-guide.md +97 -0
  330. package/skills/weaver-e10-builder/references/report/user-request-scope-only-guide.md +82 -0
  331. package/skills/weaver-e10-builder/references/workflow/guide-function-management.md +154 -0
  332. package/skills/weaver-e10-builder/references/workflow/guide-opinion-settings.md +126 -0
  333. package/skills/weaver-e10-builder/references/workflow/guide-workflow-action.md +174 -0
  334. package/skills/weaver-e10-builder/references/workflow/guide-workflow-auth-resp.md +224 -0
  335. package/skills/weaver-e10-builder/references/workflow/guide-workflow-condition.md +447 -0
  336. package/skills/weaver-e10-builder/references/workflow/guide-workflow-node-layout.md +181 -0
  337. package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc-setting.md +248 -0
  338. package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc.md +68 -0
  339. package/skills/weaver-e10-builder/references/workflow/guide-workflow.md +527 -0
  340. package/skills/weaver-e10-builder/references/workflow/operator-matrix.md +76 -0
  341. package/skills/weaver-e10-caizhilian/SKILL.md +14 -4
  342. package/skills/weaver-e10-caizhilian/references/file-upload.md +100 -295
  343. package/skills/weaver-e10-caizhilian/references/files.md +15 -0
  344. package/skills/weaver-e10-caizhilian/references/folder.md +31 -3
  345. package/skills/weaver-e10-caizhilian/references/setting-attach.md +48 -3
  346. package/skills/weaver-e10-caizhilian/references/source-manifest.json +634 -25
  347. package/skills/weaver-e10-jiuchuanhui/SKILL.md +9 -1
  348. package/skills/weaver-e10-shared/SKILL.md +19 -5
  349. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +25 -5
  350. package/skills/weaver-e10-workflow/SKILL.md +28 -47
  351. package/skills/weaver-e10-workflow/references/source-manifest.json +46 -36
  352. package/skills/weaver-e10-workflow/references/workflow-batch.md +2 -4
  353. package/skills/weaver-e10-workflow/references/workflow-create.md +261 -86
  354. package/skills/weaver-e10-workflow/references/workflow-edit.md +2 -1
  355. package/skills/weaver-e10-workflow/references/workflow-memory.md +3 -6
  356. package/skills/weaver-e10-workflow/references/workflow-operate.md +2 -1
  357. package/skills/weaver-e10-workflow/references/workflow-query.md +11 -9
  358. package/skills/weaver-e10-workflow/references/workflow-share.md +2 -0
@@ -5,7 +5,7 @@ display_name_en: Weaver E10 Document Management
5
5
  description: "泛微E10采知连知识管理系统Skill,包含多个功能模块,覆盖文档创建/搜索/编辑/比对、附件管理、文件夹操作、参与人与标签管理、文档共享与权限设置、文件存储/备份/加解密/附件设置、FTP/SFTP文件采集、本地文件上传。"
6
6
  description_zh: "泛微E10采知连知识管理系统Skill,包含多个功能模块,覆盖文档创建/搜索/编辑/比对、附件管理、文件夹操作、参与人与标签管理、文档共享与权限设置、文件存储/备份/加解密/附件设置、FTP/SFTP文件采集、本地文件上传。"
7
7
  description_en: "Weaver E10 document management Skill with multiple functional modules covering document CRUD, attachments, folders, sharing, permissions, file settings, FTP/SFTP collection, and file upload."
8
- version: 1.1.26
8
+ version: 1.1.33
9
9
  author: 泛微网络科技股份有限公司
10
10
  agent_created: true
11
11
  requires:
@@ -16,7 +16,7 @@ cliHelp: "weaver-work-cli caizhilian --help"
16
16
  **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若共享规则不存在、CLI 未安装或读取失败,说明本技能的必需依赖缺失,必须调用宿主提供的提问/确认弹框,向用户说明必须补齐 `weaver-work-cli` 与共享 skill `weaver-e10-shared`(不补齐本技能无法执行)及补齐计划,并把下面两条待执行命令原样完整展示在确认信息中;Agent 不能在未确认时自行安装。用户明确确认后,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`——省略会装进默认目录,导致本技能依然读不到共享规则。命令均成功后重新读取共享规则;仍读不到就停止并把结果报告用户,不得凭猜测继续。**
17
17
  **`--is-connector` 判据**:用户明确使用连接器、或上下文要求用连接器完成任务 → 传 `true`;本次任务或上下文直接选择单独技能 → 不传;用户没有明确说明时,按**正在运行的这份 Skill 是哪一级**定——**用户级(条目标 `(user)`)不传,连接器级(标 `(connector)`)传**(同名 Skill 只会运行用户级那一份)。传 `true` 时不要再写 `--profile` / `--base-url`。完整规则见 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md)。
18
18
 
19
- 认证与登录态只能按共享规则通过 `weaver-work-cli auth ...` 判断:本 Skill 不自行发起 HTTP 请求,请求头凭证由 CLI 统一注入,Agent 不手写、不索取、不转存,也不得直接读取、列出、打印或解析用户主目录下的旧 `.e10-cli`、auth、config 或 Keychain 数据。业务入参里出现认证字段会被 CLI 拒绝或剥离。
19
+ 认证与登录态只能按共享规则通过 `weaver-work-cli auth ...` 判断:本 Skill 不自行发起 HTTP 请求,请求头凭证由 CLI 统一注入,Agent 不手写、不索取、不转存,也不得直接读取、列出、打印或解析用户主目录下的旧 `.e10-cli`、auth、config 或 Keychain 数据。业务入参里出现认证字段会被 CLI 拒绝或剥离。请求头三件套由 CLI 统一注入、缺一不可:Cookie: <完整原始 Cookie 串>(禁止裁剪/去重/改写)、eteamsid: <ETEAMSID>、User-Agent: AgentType=<agentType>,IsAgent=true。完整契约见共享规则「请求头契约」章节。
20
20
 
21
21
  所有命令通过 `weaver-work-cli --json caizhilian run <operation>` 执行:简单 JSON 优先传 `--input-json '<json>'`,复杂或多行 JSON 先写入 UTF-8 文件再传 `--input <path>`,只有确认当前 shell 能稳定传管道时才使用 `--input -`。**不要写内联脚本包装调用**——自写脚本在中文与 Windows 环境下容易出现编码、转义问题,且脚本报错时无法判断调用是否已生效,容易导致误判或重复提交。调用前先按需读取 references 下对应的文件查参数结构,不要猜字段;**references 是第一信息源**,`weaver-work-cli caizhilian schema` 是 operation、字段和风险等级的合约来源,`weaver-work-cli caizhilian operations` 是按资源分组的能力目录(含 `withheldOperations`)。
22
22
 
@@ -38,7 +38,7 @@ cliHelp: "weaver-work-cli caizhilian --help"
38
38
  - 文档权限 / 下载权限 / 复制权限 / 移动权限 / 删除权限 / 新建文档权限 / 新建文件夹权限 / 设置权限 / 按权限反查
39
39
  - 文档共享 / 共享给某人某部门 / 取消共享 / 共享级别
40
40
  - 标签 / 公共标签 / 个人标签 / 参与人 / 协作者
41
- - 附件 / 上传附件 / 替换附件 / 下载附件 / 附件转 PDF / 封面 / 封面图
41
+ - 附件 / 上传附件 / 替换附件 / 下载附件 / 附件转 PDF / 附件历史版本 / 封面 / 封面图
42
42
  - 文档比对 / 比对链接 / 左右文件对比
43
43
 
44
44
  **判定规则:** 只要最终动作是对采知连文档或知识库文件夹做查询、创建、编辑、共享、权限设置、标签/参与人维护、附件与封面处理或文档比对,就归 `weaver-e10-caizhilian`。用户处理的是 E10 流程表单、人事、财务、邮件、会议等非文档中心业务时,不使用本 Skill。
@@ -53,11 +53,14 @@ cliHelp: "weaver-work-cli caizhilian --help"
53
53
  | 创建文档(HTML / Markdown / Office / 批量上传) | `caizhilian run caizhilian.document.create-html|create-markdown|create-office|create-by-upload.prepare/apply` | [`document.md`](references/document.md) |
54
54
  | 改文档基础字段 / 改作者 / 存正文 / 替换正文 | `caizhilian run caizhilian.document.update-field|update-author|update-html|replace-content.prepare/apply` | [`document.md`](references/document.md) |
55
55
  | 建文件夹 / 查虚拟文件夹 / 查文件夹设置 | `caizhilian run caizhilian.folder.create.prepare/apply`、`.search-virtual`、`.get-settings`、`.query-by-name` | [`folder.md`](references/folder.md) |
56
- | 文件夹默认共享与八类权限、按权限反查、同步管理员权限到子文件夹 | `caizhilian run caizhilian.folder.default-share.*`、`caizhilian.folder.permission.*`、`.query-by-permission`、`.sync-setting` | [`folder.md`](references/folder.md) |
56
+ | 文件夹默认共享与八类权限、按权限反查、同步管理员/维护/下载/删除/复制/新建/移动/默认参与人/默认共享人到子文件夹 | `caizhilian run caizhilian.folder.default-share.*`、`caizhilian.folder.permission.*`、`.query-by-permission`、`.sync-setting`、`.sync-maintain`、`.sync-download`、`.sync-delete`、`.sync-copy`、`.sync-create`、`.sync-move`、`.sync-participant`、`.sync-default-share` | [`folder.md`](references/folder.md) |
57
57
  | 标签增删查、参与人增删查、文档共享增删查 | `caizhilian run caizhilian.tag.*`、`caizhilian.participant.*`、`caizhilian.share.*` | [`collaboration.md`](references/collaboration.md) |
58
58
  | 把人名/部门/分部/岗位/角色/客户解析成 ID | `caizhilian run caizhilian.org.search-*`、`caizhilian.user.current` | [`org-browser.md`](references/org-browser.md) |
59
59
  | 附件上传/替换/下载(含 PDF 版)、封面上传/设置/移除、文档比对 | `caizhilian run caizhilian.attachment.*`、`caizhilian.cover.*`、`caizhilian.compare.*` | [`files.md`](references/files.md) |
60
+ | 查附件历史版本(按附件 ID 列出该附件的全部历史版本) | `caizhilian run caizhilian.attachment.list-versions` | [`files.md`](references/files.md) |
60
61
  | 附件设置(上传最大、格式控制、批量下载等) | `caizhilian run caizhilian.setting-attach.get` / `.set.prepare` / `.set.apply` | [`setting-attach.md`](references/setting-attach.md) |
62
+ | 查某个审批流程的附件上传到哪些文件夹(含各附件字段与通用设置的目录,去重合并) | `caizhilian run caizhilian.setting-attach.list-upload-folders` | [`setting-attach.md`](references/setting-attach.md) |
63
+ | 按名称搜索审批流程(拿流程 ID,供查附件上传目录用) | `caizhilian run caizhilian.setting-attach.search-workflows` | [`setting-attach.md`](references/setting-attach.md) |
61
64
  | 备份设置(开关、规则 CRUD、启停) | `caizhilian run caizhilian.setting-backup.get` / `.set.prepare` / `.set.apply` / `.rule.*` | [`setting-backup.md`](references/setting-backup.md) |
62
65
  | 加解密设置(8 项配置) | `caizhilian run caizhilian.setting-encrypt.get` / `.set.prepare` / `.set.apply` | [`setting-encrypt.md`](references/setting-encrypt.md) |
63
66
  | 存储设置(实例与规则管理) | `caizhilian run caizhilian.setting-storage.instance.*` / `.rule.*` | [`setting-storage.md`](references/setting-storage.md) |
@@ -67,6 +70,11 @@ cliHelp: "weaver-work-cli caizhilian --help"
67
70
  | 任何写操作的确认链、票据报错、写结果不确定 | `<name>.prepare` -> 用户确认 -> `<name>.apply --continuation TOKEN --yes` | [`write-protocol.md`](references/write-protocol.md) |
68
71
  | 环境列表 / 配置查看 / 重载配置 / 切换环境等未暴露能力 | 无 caizhilian 命令,改用框架命令 | [`withheld.md`](references/withheld.md) |
69
72
 
73
+ 文件上传支持秒传、普通流式上传和分片流式上传;成功必须有非空文件 ID、大小校验与私有回执。
74
+ 上传协议的 `lastModified`、`lastModifiedDate` 必须使用相同的整数毫秒值,由 CLI 自动处理;
75
+ 小数毫秒可能触发 E10 整数解析错误,详见 [`file-upload.md`](references/file-upload.md) 的时间戳规则与失败处理。
76
+ 认证沿用 `weaver-work-cli` 的共享规则;不执行独立文件上传 Skill 的 bundle 或独立浏览器登录。
77
+
70
78
  处理链:
71
79
 
72
80
  - 检索并阅读:`caizhilian.document.search` -> 用户选条目 -> `caizhilian.document.get` 取详情
@@ -75,6 +83,8 @@ cliHelp: "weaver-work-cli caizhilian --help"
75
83
  - 共享给某人:`caizhilian.org.search-user`(或 department/subcompany/...)取 `id` -> `caizhilian.share.form` 取 `obj_types[].id` 与 `share_level` 合法值 -> `caizhilian.share.add.prepare` -> 用户确认 -> `.apply`
76
84
  - 文件夹权限:`caizhilian.folder.permission.form` 取级联参数 -> `caizhilian.folder.permission.list` 看现状 -> `.add` / `.delete` / `.set-auth` 的 prepare -> 用户确认 -> `.apply`
77
85
  - 附件:`caizhilian.document.get` 或 `caizhilian.compare.list-file-objects` 取 `attachment_id` -> `caizhilian.attachment.upload|replace.prepare` -> 用户确认 -> `.apply`;下载用 `caizhilian.attachment.download`(需要 PDF 版用 `.download-as-pdf`)
86
+ - 附件历史版本:`caizhilian.attachment.list-versions` 直接按 `attachment_id` 查询(`doc_id` 可选)
87
+ - 查流程附件上传目录:用户只给流程名称时先 `caizhilian.setting-attach.search-workflows` 拿流程 ID,再 `caizhilian.setting-attach.list-upload-folders` 查目录
78
88
  - 文档比对:`caizhilian.compare.search-documents` / `.list-file-objects`(本地文件用 `.upload-file`)取左右 `file_id` -> `caizhilian.compare.submit.prepare` -> 用户确认 -> `.apply` -> 把 `compare_link` 交给用户
79
89
  - 写操作通用:只读定位 -> `prepare` -> 向用户摘要并取得明确确认 -> `apply`(入参与 prepare 逐字一致 + `--continuation` + `--yes`)
80
90
 
@@ -1,309 +1,114 @@
1
- ---
2
- name: weaver-file-upload
3
- description: >-
4
- Upload local files to the Weaver E10/eTeams file service with a bundled
5
- single-file Node CLI through the recorded preUploadCheck and module/upload
6
- protocol. Supports server-side second-hit, common streaming upload, chunked
7
- upload, terminal fileId validation, safe metadata, and session-isolated
8
- receipts. Use for Weaver file upload, attachment pre-upload, large-file
9
- chunk upload, second upload, or when another workflow needs a verified
10
- Weaver fileId from an absolute local path. Login is an explicit provider or
11
- standalone-browser choice with no automatic fallback.
12
- ---
1
+ # 文件上传
13
2
 
14
- # Weaver File Upload
3
+ 本模块把一个本地文件上传到 E10 文件服务,返回经过校验的文件 ID 与本地回执。
4
+ 上传协议采用 `weaver-file-upload` 的预检查、秒传、普通上传和分片上传契约。
5
+ 文件绑定到文档、附件字段、表单或消息由调用方负责。
15
6
 
16
- This Skill owns one transaction: turn one absolute local file path into one
17
- business-verified Weaver `fileId`. Binding that file to a form, document,
18
- message, or other business object belongs to the caller.
7
+ ## 运行与认证
19
8
 
20
- The delivery includes `dist/weaver-file-upload.js`, a single Node.js bundle
21
- containing the upload owner, large-integer JSON handling, WebSocket transport,
22
- and standalone Chrome/CDP login. It requires Node.js 18.20.0 or newer, does not
23
- run npm install, and does not download a platform executable on first use.
9
+ - 唯一运行时为 `weaver-work-cli`;源码位于 `src/shortcuts/caizhilian/file-upload/`,
10
+ 操作入口位于 `src/shortcuts/caizhilian/operations/handlers/file-upload.ts`。
11
+ - 安装与登录遵守 `../../weaver-e10-shared/SKILL.md`。认证只使用 CLI 当前身份或连接器注入的身份。
12
+ - 本模块不执行独立 Skill 的 `dist/weaver-file-upload.js`,不复用 `e10-login` 的会话,
13
+ 不启动第二套 Chrome 登录;独立 Skill 的双登录模式不属于本 CLI 上传接口。
14
+ - 缺少会话或登录失效时按共享规则处理,不自行切换账号或环境。
24
15
 
25
- ## Runtime Routing
16
+ ## 操作与参数
26
17
 
27
- - In a Harness with native Weaver session injection, execute the bundle through
28
- the host Skill runner and select `weaver-e10-login`. Do not start standalone
29
- browser login or read `.env.local` in that mode.
30
- - Otherwise execute the bundle directly and pass `--login-mode
31
- weaver-e10-login|standalone` to `login` and `upload`.
32
- - Provider mode calls only the public `e10-login whoami` contract. Standalone
33
- mode owns its browser, validator, session, and cleanup. Failure never switches
34
- to the other identity source.
18
+ | 操作 | 作用 | 必填 |
19
+ | --- | --- | --- |
20
+ | `caizhilian.file-upload.contract` | 获取完整命令、参数用途、策略和结果证据 | 无 |
21
+ | `caizhilian.file-upload.prepare` | 本地文件/上下文检查与 MD5、SHA256;不登录、不联网、不签发上传票据 | `file_path`、`module` |
22
+ | `caizhilian.file-upload.upload.prepare` | 用户授权检查、本地校验、绑定当前环境和身份的确认票据 | `file_path`、`module`、`user_confirmed=true` |
23
+ | `caizhilian.file-upload.upload.apply` | 校验确认票据和内容未变,再执行上传 | 上述参数、`continuation`、`confirm=true`(CLI 用 `--yes`) |
35
24
 
36
- ## First Move
25
+ 上传参数来自真实业务上下文,不能因为缺少可选字段阻塞基础上传。
37
26
 
38
- Resolve `SKILL_ROOT` from this file and request the complete machine contract:
39
-
40
- ```text
41
- node "$SKILL_ROOT/dist/weaver-file-upload.js" contract \
42
- --chat-id '<chatId>'
43
- ```
44
-
45
- Use `agent_callable_interface_contract.v1`; do not guess flags or learn them
46
- through repeated help calls. All flags follow the command. Before requesting
47
- missing upload inputs, show the contract's complete required, conditionally
48
- required, and optional lists with their purposes. Reuse an existing host
49
- attachment path instead of asking for it again.
50
-
51
- ## Workflow
52
-
53
- ```text
54
- contract
55
- -> prepare absolute file + context
56
- -> explicit provider | standalone login
57
- -> current-user upload authorization
58
- -> preUploadCheck
59
- -> second | common | chunk
60
- -> terminal non-empty fileId
61
- -> secret-free 0600 receipt
62
- ```
63
-
64
- Standalone login without a saved domain returns `status=requires_input`,
65
- `channel=agent_conversation`, and `resumeArgument=--base-url`. Ask for the
66
- non-secret OA/E10 root address in the current conversation, then resume:
67
-
68
- ```text
69
- node "$SKILL_ROOT/dist/weaver-file-upload.js" login \
70
- --chat-id '<chatId>' --login-mode standalone \
71
- --base-url 'https://<runtime-host>'
72
- ```
73
-
74
- Provider validation:
75
-
76
- ```text
77
- node "$SKILL_ROOT/dist/weaver-file-upload.js" login \
78
- --chat-id '<chatId>' --login-mode weaver-e10-login
79
- ```
80
-
81
- ## Hard Rules
82
-
83
- - `--file` and `--context-file` are absolute paths. `--chat-id` isolates
84
- receipts under `runs/<chatId>/`, or the resolved private state root.
85
- - `--module` is mandatory and comes from real caller business context. Never
86
- guess `workflow`, `document`, or another module.
87
- - `upload` requires `--user-confirmed` from the current user request. The CLI
88
- rejects a missing confirmation before file, authentication, or network work.
89
- - Context cannot override protocol-owned fields. File and chunk bodies remain
90
- streaming; the complete large file is never buffered in memory.
91
- - Never print or persist Cookie, ETEAMSID, token, Authorization, ticket,
92
- password, signed URL, multipart body, or raw server response.
93
- - HTTP 200 and `endChunk=true` are insufficient. Success requires a non-empty
94
- terminal `fileId`; any nonzero server size must match the local file.
95
- - A transport failure after an upload POST is
96
- `execution_state=unknown`, is not retry-safe, and is never replayed
97
- automatically.
98
- - Use `receipt_ref` and `receipt_sha256` as terminal evidence.
99
-
100
- ## Resources
101
-
102
- | Need | Read |
27
+ | 参数 | 用途 |
103
28
  | --- | --- |
104
- | Protocol, strategy, results, recovery | `references/file-upload-operation-contract.md` |
105
- | Required and optional parameters | `references/file-upload-input-parameters.md` |
106
- | Machine invocation contract | `references/file-upload-cli-contract.json` |
107
- | Rule ownership | `references/file-upload-rule-index.md` |
108
- | Host executor behavior | `references/file-upload-host-executor-prompt.md` |
109
- | Host integration | `references/file-upload-host-platform-integration.md` |
110
- | Source, tests, and packaging | `references/file-upload-maintenance.md` |
111
-
112
- <!-- weaver-domain-login:v1 -->
113
- ## 域名与登录方式
114
-
115
- - **不得写死域名**;构建和打包时不保存业务域名。
116
- - 运行时必须由用户显式选择方式 1(`weaver-e10-login`)或方式 2(本
117
- Skill 独立浏览器登录);不得因认证失败自动切换。
118
- - 方式 1 只调用 Provider 的公开 `whoami`,缺失或未登录时停止,不回退。
119
- - 方式 2 首次缺少域名时由 Agent 在当前对话中询问,再以 `--base-url`
120
- 恢复;CLI 不读取 stdin,也不打开交互终端。
121
- - 方式 2 的核心流程可独立安装和运行,不依赖任何其他 Skill;Provider
122
- 不打入 bundle。
123
- <!-- /weaver-domain-login:v1 -->
124
-
125
- <!-- weaver-browser-login-capture:v1 -->
126
- ## 登录与会话
127
-
128
- - 方式 2 使用本 Skill 的专用 Chrome + CDP,只打开运行时根地址;用户自然
129
- 完成密码、验证码、SSO 或 MFA。
130
- - Cookie 候选必须通过真实、无副作用的业务接口
131
- `POST /api/baseserver/layout/teamsCheck` 和非空
132
- `currentUser.employeeId` 校验。
133
- - 会话只原子写入权限为 `0600` 的 `.env.local`;不得输出 Cookie、session id、token、ticket 或密码。
134
- - 页面 target 失效时重新选择 page target。所有退出路径先调用
135
- `Browser.close`,再按本次 owned Profile/PID 定向清理,不关闭用户浏览器。
136
- - 合同位于 `references/file-upload-browser-login-contract.json`。
137
- <!-- /weaver-browser-login-capture:v1 -->
138
- # Weaver File Upload Operation Contract
139
-
140
- ## Scope
141
-
142
- The public product is one verified Weaver file-service object. Business-specific
143
- attachment ordering, form binding, editor nodes, messages, and document changes
144
- remain downstream operations.
145
-
146
- ```text
147
- local regular file
148
- -> POST /api/file/preUploadCheck?sf_request_type=ajax
149
- -> uploadType=second | common | chunk
150
- -> optional POST /api/file/module/upload?sf_request_type=ajax
151
- -> terminal non-empty fileid/fileId
152
- ```
153
-
154
- ## Public Actions
155
-
156
- | Action | Side effect | Login | Success evidence |
157
- | --- | --- | --- | --- |
158
- | `contract` | private local contract artifact | no | `agent_callable_interface_contract.v1` |
159
- | `prepare` | local reads only | no | path, size, hashes, module, safe context summary |
160
- | `login` | standalone mode starts one owned Chrome | explicit choice | validated runtime session |
161
- | `upload` | creates or resolves remote file object | yes | terminal file ID, size check, private receipt |
162
-
163
- Every command writes one JSON object. A nonzero exit means the action did not
164
- reach a verified result.
165
-
166
- ## Canonical Invocation
167
-
168
- All flags follow the command:
169
-
170
- ```text
171
- node "<skill_root>/dist/weaver-file-upload.js" contract \
172
- --chat-id '<chatId>'
173
-
174
- node "<skill_root>/dist/weaver-file-upload.js" prepare \
175
- --chat-id '<chatId>' --file '<absoluteFilePath>' --module '<module>' \
176
- [--context-file '<absoluteJsonObjectPath>']
177
-
178
- node "<skill_root>/dist/weaver-file-upload.js" login \
179
- --chat-id '<chatId>' \
180
- --login-mode '<weaver-e10-login|standalone>' \
181
- [--base-url '<runtimeRootUrl>']
182
-
183
- node "<skill_root>/dist/weaver-file-upload.js" upload \
184
- --chat-id '<chatId>' \
185
- --login-mode '<weaver-e10-login|standalone>' \
186
- --user-confirmed --file '<absoluteFilePath>' --module '<module>' \
187
- [--context-file '<absoluteJsonObjectPath>']
29
+ | `file_path` | 普通文件绝对路径;拒绝符号链接,复用已有宿主附件路径 |
30
+ | `module` | 真实业务模块,1–64 个字母、数字或 `._-`;无默认值,禁止猜测 |
31
+ | `user_confirmed` | 当前用户对本文件上传的明确授权;必须为布尔 `true` |
32
+ | `context_file`(可选) | 可选业务上下文 JSON 对象文件绝对路径,最大 64 KiB、嵌套最多 12 层 |
33
+ | `chat_id`(可选) | 宿主对话标识,隔离回执;1–128 个字母、数字或 `._-`,默认 `cli` |
34
+ | `timeout_seconds`(可选) | 每次请求及响应读取的超时上限,1–3600 秒,默认 300 |
35
+
36
+ `context_file` 可包含真实业务提供的 `source`(来源场景)、`fieldId`(附件字段)、
37
+ `sourceRefId`(来源对象)、`authModule`(鉴权模块)、`customParam`(模块扩展)、
38
+ `refId`(关联对象)、`commonText`(通用扩展)、`folderId`(目标文件夹)。
39
+ 空字符串按原业务语义保留。上下文不得包含凭证或危险对象键,也不能覆盖协议自动字段:
40
+ `sf_request_type`、`compressImg`、`module`、`name`、`size`、`MD5`、`lastModified`、
41
+ `lastModifiedDate`、`preUploadId`、`uploadType`、`uploadShardSize`、`chunk`、`chunks`、`file`。
42
+
43
+ ### 上传时间戳规则
44
+
45
+ `lastModified` 与 `lastModifiedDate` 是自 Unix epoch 起的**整数毫秒**,两个字段必须一致。
46
+ Node.js `stat().mtimeMs` 可能含小数;CLI 仅在生成协议字段时使用
47
+ `String(Math.floor(file.mtime_ms))`,例如 `1791798507076.7322` 转为 `1791798507076`。
48
+ 预检查、普通上传及每个分片都复用该整数值。不能直接提交带小数的 `mtimeMs`,也不能换成秒。
49
+
50
+ 本地用于检测文件变更的修改时间保留原始精度;无需修改源文件的时间属性。
51
+ 这些字段由 CLI 生成,不需要用户提供,也不能通过 `context_file` 覆盖。
52
+ 移植上传协议或维护其他运行时时,必须保留此归一化规则。
53
+
54
+ ## 上传与结果验证
55
+
56
+ 1. 未确认上传时,在文件读取、认证和网络操作前拒绝 `upload.prepare/apply`。
57
+ 2. 票据绑定环境、身份、完整入参、文件 SHA256 和上下文哈希;确认后改变文件或上下文必须重新 prepare。
58
+ 3. 执行 `preUploadCheck`,两个上传接口均固定 `sf_request_type=ajax`。
59
+ 4. `second` 直接解析已有文件对象;`common` 流式上传整个文件;`chunk` 使用服务端 MiB 分片大小,
60
+ 逐片发送精确切片、零起始编号、总片数与实际片字节数。未知策略和缺少预检字段直接失败。
61
+ 5. 中间分片必须明确 `endChunk=false` 且没有终态文件 ID;最终结果必须包含非空文件 ID。
62
+ 服务端返回的非零大小必须与本地一致;HTTP 200 或 `endChunk=true` 本身不能证明成功。
63
+ 6. 文件不会整体缓存在内存。multipart 使用精确 `Content-Length`,包含安全文件名和 RFC 5987 UTF-8 文件名。
64
+ 响应最大 4 MiB,保留大整数文件 ID 的字符串精度。
65
+
66
+ 成功结果包含 `version=weaver_file_upload_result.v1`、`business_verified=true`、
67
+ `upload_type`、归一化 `file`、`integrity.md5/sha256`、安全 `request_evidence`、
68
+ `receipt_ref` 与 `receipt_sha256`。同时保留兼容字段 `file_id`、`file_name`、`size`、`ext`。
69
+
70
+ 回执位于 CLI 私有状态目录下的 `caizhilian/file-upload/runs/<chat_id>/receipts/`,
71
+ POSIX 文件权限为 `0600`、回执目录为 `0700`。回执只保存归一化元数据和哈希,
72
+ 不保存凭证、签名 URL、业务上下文值、multipart 或原始服务端响应。
73
+
74
+ ## 失败处理
75
+
76
+ - 上传 POST 后的连接中断、响应读取或协议失败返回 `partial/write_uncertain`,
77
+ `execution_state=unknown`、`retry_safe=false`,不得自动重放。
78
+ - 文件上传已确认成功但回执写入失败返回 `partial/receipt_write_failed`,携带已上传文件 ID;
79
+ 不得因回执失败重新上传。
80
+ - 服务端明确拒绝、策略无效、分片不一致、文件 ID 缺失或大小不符都是失败;不得报告为上传成功。
81
+ - 若 `/api/file/module/upload` 返回业务 `code=500`(HTTP 可能仍为 200),且错误含
82
+ `For input string: "1791798507076.7322"` 这类带小数的毫秒时间戳,说明提交值触发整数解析错误。
83
+ 检查所用 CLI 是否包含时间戳归一化修复;维护其他运行时时核对上述两个字段。
84
+ 不能仅凭 500 判定为此问题;结果不确定时仍遵守不得自动重放的规则。
85
+ - 本地准备和预检失败没有上传文件内容的副作用。重新上传必须是用户授权的新事务。
86
+
87
+ ## 命令示例
88
+
89
+ 先读取 contract。下面的 `document` 只示意真实文档业务;使用时必须来自当前调用方场景。
90
+ 只有用户已经明确确认后,才传 `user_confirmed=true`,并遵守共享规则的连接器参数要求。
91
+
92
+ Windows PowerShell:
93
+
94
+ ```powershell
95
+ weaver-work-cli --json caizhilian run caizhilian.file-upload.contract
96
+ weaver-work-cli --json caizhilian run caizhilian.file-upload.prepare --input-json '{"file_path":"C:\\data\\report.pdf","module":"document"}'
97
+ weaver-work-cli --json caizhilian run caizhilian.file-upload.upload.prepare --input-json '{"file_path":"C:\\data\\report.pdf","module":"document","user_confirmed":true,"chat_id":"current-chat"}'
98
+ weaver-work-cli --json caizhilian run caizhilian.file-upload.upload.apply --input-json '{"file_path":"C:\\data\\report.pdf","module":"document","user_confirmed":true,"chat_id":"current-chat"}' --continuation TOKEN --yes
188
99
  ```
189
100
 
190
- Call `contract` before the first upload and use its materialized commands.
191
- `--base-url` is valid only for `login` in standalone mode.
192
-
193
- ## Input Contract
194
-
195
- - `chatId`: 1-128 ASCII letters, digits, dot, underscore, or hyphen.
196
- - `file`: absolute path to a readable regular, non-symlink file.
197
- - `module`: 1-64 ASCII letters, digits, dot, underscore, or hyphen.
198
- - `context-file`: optional absolute path to a UTF-8 JSON object up to 64 KiB.
199
- Object keys cannot override protocol fields; nested unsafe object keys and
200
- nesting deeper than 12 levels are rejected.
201
- - `timeout`: optional positive seconds up to 3600.
202
- - `provider-timeout`: optional positive seconds up to 3600.
203
- - `user-confirmed`: mandatory for `upload` and valid only for the current user
204
- request and file.
205
- - `login-mode`: `weaver-e10-login` or `standalone`. Failure never changes it.
206
-
207
- Reserved fields are published by `references/file-upload-cli-contract.json`. Known optional
208
- context fields and their purposes are in `references/file-upload-input-parameters.md`.
209
-
210
- ## Upload Strategies
211
-
212
- Every file-bearing multipart request emits a sanitized quoted `filename`
213
- fallback and an RFC 5987 `filename*=UTF-8''...` value. The extended value
214
- percent-encodes UTF-8 bytes and the reserved characters `'`, `(`, `)`, and
215
- `*`, including filenames that combine Chinese text, spaces, and those
216
- characters.
217
-
218
- ### `second`
219
-
220
- The preflight already returns an existing file object, so no upload body is
221
- sent. The file ID is resolved from direct data, `uploadModuleDto`,
222
- `imUploadInfoDto`, or their `fileObj`. A returned nonzero size must equal the
223
- local size.
224
-
225
- ### `common`
101
+ macOS/Linux(bash/zsh):
226
102
 
227
- Require `preUploadId`, then stream the complete file once to
228
- `/api/file/module/upload`. The file is not loaded into one in-memory byte array.
229
- The response must contain a terminal file ID.
230
-
231
- ### `chunk`
232
-
233
- Require `preUploadId` and a positive `chunkDto.chunkSize`, interpreted as MiB.
234
- Calculate local chunk count; if the server supplies `chunkCount`, it must match.
235
- Send zero-based slices with exact `uploadShardSize`, `chunk`, and `chunks`.
236
- Intermediate responses must be explicitly nonterminal. The final response must
237
- contain the terminal file ID.
238
-
239
- Unknown or empty upload types stop before an upload body is sent.
240
-
241
- ## Business Validation
242
-
243
- - HTTP status is exactly 200 and redirects are rejected.
244
- - HTML and non-object JSON responses are rejected.
245
- - `status=false`, `success=false`, `fail=true`, or a non-success code is a
246
- business failure.
247
- - Preflight data is an object; network branches include `preUploadId`.
248
- - Final file ID is nonempty; returned nonzero size equals local size.
249
- - `endChunk=true` without a file ID is not terminal success.
250
-
251
- Responses are bounded to 4 MiB. Raw responses, credentials, signed URLs, and
252
- multipart bodies are neither returned nor saved.
253
-
254
- ## Result Contract
255
-
256
- Successful upload returns `weaver_file_upload_result.v1`:
257
-
258
- ```json
259
- {
260
- "status": "completed",
261
- "business_verified": true,
262
- "upload_type": "second|common|chunk",
263
- "file": {
264
- "file_id": "...",
265
- "name": "...",
266
- "size": 123,
267
- "mime_type": "...",
268
- "extension": "...",
269
- "is_image": false
270
- },
271
- "integrity": {"md5": "...", "sha256": "..."},
272
- "request_evidence": {
273
- "module": "...",
274
- "context_keys": [],
275
- "context_sha256": "...",
276
- "environment_identity_sha256": "...",
277
- "login_mode": "weaver-e10-login|standalone",
278
- "automatic_fallback": false
279
- },
280
- "receipt_ref": "/absolute/private/path.json",
281
- "receipt_sha256": "..."
282
- }
103
+ ```bash
104
+ weaver-work-cli --json caizhilian run caizhilian.file-upload.contract
105
+ weaver-work-cli --json caizhilian run caizhilian.file-upload.prepare --input-json '{"file_path":"/data/report.pdf","module":"document"}'
106
+ weaver-work-cli --json caizhilian run caizhilian.file-upload.upload.prepare --input-json '{"file_path":"/data/report.pdf","module":"document","user_confirmed":true,"chat_id":"current-chat"}'
107
+ weaver-work-cli --json caizhilian run caizhilian.file-upload.upload.apply --input-json '{"file_path":"/data/report.pdf","module":"document","user_confirmed":true,"chat_id":"current-chat"}' --continuation TOKEN --yes
283
108
  ```
284
109
 
285
- Downstream consumers use only the normalized file object and receipt evidence.
286
-
287
- ## Authentication Boundary
288
-
289
- Provider mode resolves only `e10-login whoami`. Its raw output remains in the
290
- child process boundary. The Node adapter bounds stdout, drains stderr, validates
291
- domain/session/identity fields, and calls the same business validator before
292
- use.
293
-
294
- Standalone mode resolves a runtime root from explicit input, environment, or
295
- this Skill's `.env.local`. Missing domain returns an Agent-conversation handoff.
296
- It launches an isolated Chrome, reads `DevToolsActivePort`, obtains same-origin
297
- cookies through CDP, and requires `ETEAMSID` plus a successful side-effect-free
298
- `teamsCheck` identity. It then atomically writes a `0600` session and closes the
299
- owned browser and process tree.
300
-
301
- ## Failure And Recovery
110
+ ## 验证范围
302
111
 
303
- - Local validation and preflight rejection have no upload side effect.
304
- - A network error after common/chunk POST dispatch returns
305
- `TRANSPORT_RESULT_UNKNOWN`, `execution_state=unknown`, and `retry_safe=false`.
306
- - Do not replay an outcome-unknown upload. A later user-authorized attempt begins
307
- with a new `preUploadCheck` and is a separate transaction.
308
- - Missing terminal ID, early terminal chunk, inconsistent count, or size mismatch
309
- is a hard failure with safe diagnostics only.
112
+ `test/business/caizhilian-file-upload.test.ts` 使用本机 HTTP 服务验证真实 multipart 传输、
113
+ 三种上传策略、带小数毫秒的文件修改时间归一化、内容变更保护、授权门禁、回执和失败恢复。
114
+ 此验证不等于真实 E10 租户验证。
@@ -26,6 +26,18 @@
26
26
  - 下载单文件上限 **100MB**,超限报 `file_too_large`;下载/上传超时 **120 秒**(普通接口 12 秒)。
27
27
  - 同名文件已存在时按源的 `rename` 策略自动改名为 `名称(1).扩展名`、`名称(2).扩展名`……**不覆盖**已有文件。
28
28
 
29
+ ### 附件历史版本(attachment.list-versions)
30
+
31
+ | operation | risk | 必填 | 可选 |
32
+ | --- | --- | --- | --- |
33
+ | `caizhilian.attachment.list-versions` | read | `attachment_id` | `doc_id`、`page_no`(1)、`page_size`(10) |
34
+
35
+ - 按附件 ID 查询该附件的**全部历史版本**(每次替换/新建产生的版本都在列表里,含当前最新版本)。
36
+ - `attachment_id` 来自 `caizhilian.document.get` 或 `caizhilian.compare.list-file-objects`;`doc_id` 可传可不传(不传时按空处理),需要时可同时给。
37
+ - 返回每个版本的 `id`(版本 ID)、`name`(文件名)、`versionNumber`(版本号)、`updateTime`、`describe`(版本说明,如「新建」「替换」)、`extName`(扩展名)。
38
+ - `updateTime` 自动转为东八区 `YYYY-MM-DD HH:MM:SS`:毫秒/秒时间戳均可,已是时间格式的字符串原样透传,无法识别的值原样保留。
39
+ - 结果超过一页时 `has_next=true`,用 `page_no` 翻页;不要拿返回计数推断总量。
40
+
29
41
  ### 封面(cover)
30
42
 
31
43
  | operation | risk | 必填 | 说明 |
@@ -60,6 +72,7 @@ weaver-work-cli --json caizhilian run caizhilian.attachment.upload.apply --input
60
72
  weaver-work-cli --json caizhilian run caizhilian.attachment.replace.prepare --input-json '{"doc_id":"1234567890","attachment_id":"888","folder_id":"456","file_path":"C:\\data\\合同v2.pdf"}'
61
73
  weaver-work-cli --json caizhilian run caizhilian.attachment.download --input-json '{"doc_id":"1234567890","attachment_id":"888","save_path":"C:\\data\\out\\合同.pdf"}'
62
74
  weaver-work-cli --json caizhilian run caizhilian.attachment.download-as-pdf --input-json '{"doc_id":"1234567890","attachment_id":"888","save_path":"C:\\data\\out"}'
75
+ weaver-work-cli --json caizhilian run caizhilian.attachment.list-versions --input-json '{"attachment_id":"888"}'
63
76
  weaver-work-cli --json caizhilian run caizhilian.cover.set.prepare --input-json '{"doc_id":"1234567890","file_path":"C:\\data\\cover.png"}'
64
77
  weaver-work-cli --json caizhilian run caizhilian.cover.remove.prepare --input-json '{"doc_id":"1234567890"}'
65
78
  weaver-work-cli --json caizhilian run caizhilian.compare.list-file-objects --input-json '{"doc_id":"1234567890"}'
@@ -74,6 +87,7 @@ weaver-work-cli --json caizhilian run caizhilian.attachment.upload.apply --input
74
87
  weaver-work-cli --json caizhilian run caizhilian.attachment.replace.prepare --input-json '{"doc_id":"1234567890","attachment_id":"888","folder_id":"456","file_path":"/tmp/data/contract-v2.pdf"}'
75
88
  weaver-work-cli --json caizhilian run caizhilian.attachment.download --input-json '{"doc_id":"1234567890","attachment_id":"888","save_path":"/tmp/data/out/contract.pdf"}'
76
89
  weaver-work-cli --json caizhilian run caizhilian.attachment.download-as-pdf --input-json '{"doc_id":"1234567890","attachment_id":"888","save_path":"/tmp/data/out/"}'
90
+ weaver-work-cli --json caizhilian run caizhilian.attachment.list-versions --input-json '{"attachment_id":"888"}'
77
91
  weaver-work-cli --json caizhilian run caizhilian.cover.set.prepare --input-json '{"doc_id":"1234567890","file_path":"/tmp/data/cover.png"}'
78
92
  weaver-work-cli --json caizhilian run caizhilian.cover.remove.prepare --input-json '{"doc_id":"1234567890"}'
79
93
  weaver-work-cli --json caizhilian run caizhilian.compare.list-file-objects --input-json '{"doc_id":"1234567890"}'
@@ -87,6 +101,7 @@ weaver-work-cli --json caizhilian run caizhilian.compare.submit.prepare --input-
87
101
  - **下载类返回**:`{ file_path, file_name, file_size }`,`meta` 带 `{ doc_id, attachment_id }`。回复用户时给出**绝对路径 + 文件大小**,并提示已存在同名文件时被自动改名。
88
102
  - `cover.upload.apply` 返回 `{ file_id, name, size, ext_name }`;`cover.set.apply` 返回 `{ doc_id, file_id, name }`;`cover.remove.apply` 返回 `{ doc_id, cover_picture_id }`(`cover_picture_id` 为删除后的空串)。
89
103
  - `compare.list-file-objects` 返回 `{ attachments: [{ docId, file_id, ext_name, file_name, size, updateTime }] }`,其中 `file_id` 就是 `compare.submit` 需要的 ID;用 Markdown 表格摘要「文件名/类型/大小/更新时间」。
104
+ - `attachment.list-versions` 返回 `{ versions: [{ id, name, versionNumber, updateTime, describe, extName }], has_next }`;`updateTime` 已转为东八区时间字符串。用 Markdown 表格摘要「版本号/文件名/更新时间/版本说明」,`id` 作为后续操作入参,不作为展示主体。
90
105
  - `compare.search-documents` 与 `document.search` 同构(`{ page_no, page_size, has_next, documents[] }`),参见 `document.md`。
91
106
  - `compare.submit.apply` 返回 `{ compare_link }`,把链接原样交给用户,不要尝试抓取链接内容。
92
107
 
@@ -46,7 +46,15 @@
46
46
  | `caizhilian.folder.permission.add` | `folder_id`、`permission_type`、`obj_type` | `obj_id`、`obj_id_department`、`obj_id_subcompany`、`obj_id_role`、`obj_id_position`、`obj_id_customer`、`obj_id_customer_type`、`department_attribute`、`role_level`、`position_level`、`position_attribute`、`position_level_department`、`position_level_subcompany` |
47
47
  | `caizhilian.folder.permission.delete` | `folder_id`、`permission_type`、`ids` | 无 |
48
48
  | `caizhilian.folder.permission.set-auth` | `folder_id`、`permission_type`、`value`(`true`/`user`/`false`) | 无 |
49
- | `caizhilian.folder.permission.sync-setting` | `id`(文件夹 ID) | `keepOldSettingForAllFolders`(默认 false) |
49
+ | `caizhilian.folder.permission.sync-setting` | `id`(文件夹 ID)、`keepOldSettingForAllFolders` | 无 |
50
+ | `caizhilian.folder.permission.sync-maintain` | `id`(文件夹 ID)、`keepOldSettingForAllFolders` | 无 |
51
+ | `caizhilian.folder.permission.sync-download` | `id`(文件夹 ID) | `keepOldSettingForAllFolders`(仅当下载权限为"允许以下人员下载"时必填) |
52
+ | `caizhilian.folder.permission.sync-delete` | `id`(文件夹 ID) | `keepOldSettingForAllFolders`(仅当删除权限为"允许以下人员删除文档"时必填) |
53
+ | `caizhilian.folder.permission.sync-copy` | `id`(文件夹 ID)、`keepOldSettingForAllFolders` | 无 |
54
+ | `caizhilian.folder.permission.sync-create` | `id`(文件夹 ID)、`keepOldSettingForAllFolders` | 无 |
55
+ | `caizhilian.folder.permission.sync-move` | `id`(文件夹 ID)、`keepOldSettingForAllFolders` | 无 |
56
+ | `caizhilian.folder.permission.sync-participant` | `id`(文件夹 ID)、`sync_to_folder_docs`、`sync_to_all_folders`、`sync_to_all_sub_folder_docs`(至少选一个) | `keep_old_for_folder_docs`、`keep_old_for_all_folders`、`keep_old_for_all_sub_folder_docs`(默认 true) |
57
+ | `caizhilian.folder.permission.sync-default-share` | `id`(文件夹 ID)、`sync_to_folder_docs`、`sync_to_all_folders`、`sync_to_all_sub_folder_docs`(至少选一个) | `keep_old_default_share_for_folder_docs`、`keep_old_non_default_share_for_folder_docs`、`keep_old_default_share_for_all_folders`、`keep_old_default_share_for_sub_folder_docs`、`keep_old_non_default_share_for_sub_folder_docs`(默认 true) |
50
58
 
51
59
  - `folder.create` 的 `parent_type=privy`(个人)时,`sequence` 强制为 `0`、`inherit_parent` 强制为 `false`(源行为)。
52
60
  - `obj_type` 与 `share_level` 不要猜:先用 `default-share.form` / `permission.form` 拿到 `obj_types[].id` 和级联参数,再决定要传哪些 `obj_id*` 字段;传了 `obj_type` 未配置的对象字段会报 `validation/obj_type_not_configured` 或 `obj_type_not_supported`。
@@ -65,6 +73,14 @@ weaver-work-cli --json caizhilian run caizhilian.folder.create.prepare --input-j
65
73
  weaver-work-cli --json caizhilian run caizhilian.folder.create.apply --input-json '{"name":"2026 合同","parent_id":"456","parent_type":"company","inherit_parent":true}' --continuation TOKEN --yes
66
74
  weaver-work-cli --json caizhilian run caizhilian.folder.permission.set-auth.prepare --input-json '{"folder_id":"456","permission_type":"downloadPremisstion","value":"user"}'
67
75
  weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-setting.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
76
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-maintain.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
77
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-download.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
78
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-delete.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
79
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-copy.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
80
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-create.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
81
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-move.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
82
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-participant.prepare --input-json '{"id":"456","sync_to_all_folders":true}'
83
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-default-share.prepare --input-json '{"id":"456","sync_to_all_folders":true}'
68
84
  ```
69
85
 
70
86
  macOS/Linux(bash/zsh):
@@ -77,6 +93,14 @@ weaver-work-cli --json caizhilian run caizhilian.folder.create.prepare --input-j
77
93
  weaver-work-cli --json caizhilian run caizhilian.folder.create.apply --input-json '{"name":"2026 合同","parent_id":"456","parent_type":"company","inherit_parent":true}' --continuation TOKEN --yes
78
94
  weaver-work-cli --json caizhilian run caizhilian.folder.permission.set-auth.prepare --input-json '{"folder_id":"456","permission_type":"downloadPremisstion","value":"user"}'
79
95
  weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-setting.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
96
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-maintain.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
97
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-download.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
98
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-delete.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
99
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-copy.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
100
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-create.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
101
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-move.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
102
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-participant.prepare --input-json '{"id":"456","sync_to_all_folders":true}'
103
+ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-default-share.prepare --input-json '{"id":"456","sync_to_all_folders":true}'
80
104
  ```
81
105
 
82
106
  ## 输出处理
@@ -92,7 +116,7 @@ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-setting.
92
116
  - `permission.detail` 返回 `{ title, current_setting, list_label, items[] }`;`setting_type=defaultShares` 时只返回 `{ title, items[] }`。
93
117
  - `permission.query` 返回 `{ permissions }`:以 `folder_id` 为 key 的映射,每个 value 含 `isCreateDoc`、`isCreateFolder`、`canMoveDoc`、`canCopyDoc` 四个布尔标志与 `allowDocumentCreateTypes`(允许创建的文档类型列表,无设置时为空数组)。建文档前可用它确认目标文件夹是否允许创建及允许的文档类型。
94
118
  - `query-by-permission` 返回 `{ total, page_no, page_size, has_next, folders[] }`,每项含 `folder_id`、`folder_name`、`folder_type`。返回空数组只表示「没有匹配到」:先按上文核对 `object_ids` 是不是对象的真实 ID,再如实把结果告诉用户;**不要据此断定「反查不支持该权限类型」**。返回里没有文件夹路径,需要展示路径时用 `get-settings` 的 `currentFolder.title` 或 `query-by-name` 补。
95
- - 写操作 `apply` 返回结果回显:`default-share.add` → `{ added: true, default_shares }` 或 `{ added: false, message }`(服务端判定「已存在」不是失败,必须把 message 转述给用户);`default-share.delete` → `{ deleted: true, default_shares }`;`permission.add` → `{ added: true, shares }`;`permission.delete` → `{ deleted: true, shares }`;`permission.set-auth` → `{ permission_type, value, current_value }`;`permission.sync-setting` → `{ existChildFolder }`。
119
+ - 写操作 `apply` 返回结果回显:`default-share.add` → `{ added: true, default_shares }` 或 `{ added: false, message }`(服务端判定「已存在」不是失败,必须把 message 转述给用户);`default-share.delete` → `{ deleted: true, default_shares }`;`permission.add` → `{ added: true, shares }`;`permission.delete` → `{ deleted: true, shares }`;`permission.set-auth` → `{ permission_type, value, current_value }`;`permission.sync-setting` → `{ existChildFolder }`;`permission.sync-maintain` → `{ existChildFolder }`;`permission.sync-download` → `{ existChildFolder }`;`permission.sync-delete` → `{ existChildFolder }`;`permission.sync-copy` → `{ existChildFolder }`;`permission.sync-create` → `{ existChildFolder }`;`permission.sync-move` → `{ existChildFolder }`;`permission.sync-participant` → `{ existChildFolder, existChildDocument, asyncKey }`;`permission.sync-default-share` → `{ existChildFolder, existChildDocument, asyncKey }`。
96
120
  - 权限/共享类写操作的 `prepare` 返回请求体预览 + `continuation`;向用户摘要时必须写清「哪个文件夹、哪项权限、给谁、什么级别」,并说明删除类操作不可撤销。
97
121
  - 列表类结果默认用 Markdown 表格摘要(文件夹名/路径/权限类型/对象/级别),不要原样贴 JSON。
98
122
 
@@ -101,7 +125,11 @@ weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-setting.
101
125
  - 文件夹权限与默认共享是**影响面很大的配置**:改错会导致整个知识库的下载、复制、新建权限对全员开放或全部收紧。`permission.set-auth` 从 `user` 改成 `true` 等于放开给所有人,确认摘要里必须显式写出这一后果。
102
126
  - `folder.create` 会在服务端产生新节点;`inherit_parent=true` 会连带继承父文件夹的权限与默认设置,必须在确认摘要里说明。
103
127
  - 删除类(`default-share.delete` / `permission.delete`)必须先做一次对应 `list` 只读查询,把待删条目的可读信息展示给用户后再 prepare。
104
- - `permission.sync-setting` 会将当前文件夹的管理员权限设置同步到所有下级子文件夹,**执行前必须提醒用户此操作对系统性能可能有一定影响**。`keepOldSettingForAllFolders=true` 表示保留原有管理员设置,`false` 表示不保留。
128
+ - `permission.sync-setting`、`permission.sync-maintain`、`permission.sync-copy`、`permission.sync-create`、`permission.sync-move` 的 `keepOldSettingForAllFolders` 是**必填参数**,必须明确传入 `true`(保留原有设置)或 `false`(不保留),否则会报错。执行前必须提醒用户此操作对系统性能可能有一定影响。
129
+ - `permission.sync-participant` 是**异步操作**,支持三种同步范围:同步到当前文件夹内的历史文档(`sync_to_folder_docs`)、同步到所有下级文件夹(`sync_to_all_folders`)、同步到所有下级文件夹内的历史文档(`sync_to_all_sub_folder_docs`),**至少选择一个**。每个选中的范围对应的"原有参与人"参数(`keep_old_for_folder_docs`、`keep_old_for_all_folders`、`keep_old_for_all_sub_folder_docs`)默认为 `true`(保留)。执行后会自动轮询进度,超时时间为 300 秒。
130
+ - `permission.sync-default-share` 是**异步操作**,支持三种同步范围:同步到当前文件夹内的历史文档(`sync_to_folder_docs`)、同步到所有下级文件夹(`sync_to_all_folders`)、同步到所有下级文件夹内的历史文档(`sync_to_all_sub_folder_docs`),**至少选择一个**。每个选中的范围对应的"原有默认共享人"和"原有非默认共享人"参数默认为 `true`(保留)。执行后会自动轮询进度,超时时间为 300 秒。
131
+ - `permission.sync-download` 的行为取决于当前下载权限设置:当下载权限为"允许所有人下载"或"不允许下载"时,直接同步到所有下级文件夹,不需要 `keepOldSettingForAllFolders` 参数;当下载权限为"允许以下人员下载"时,`keepOldSettingForAllFolders` 是**必填参数**,必须明确传入 `true`(保留原有下载权限设置)或 `false`(不保留)。
132
+ - `permission.sync-delete` 的行为取决于当前删除权限设置:当删除权限为"允许完全控制权限人员删除文档"时,直接同步到所有下级文件夹,不需要 `keepOldSettingForAllFolders` 参数;当删除权限为"允许以下人员删除文档"时,`keepOldSettingForAllFolders` 是**必填参数**,必须明确传入 `true`(保留原有删除权限设置)或 `false`(不保留)。
105
133
  - 本 reference 只覆盖文件夹与权限;文档级共享/参与人/标签见 `collaboration.md`。
106
134
 
107
135
  ## 失败处理