weaver-work-cli 0.1.24 → 0.1.26

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 (401) hide show
  1. package/README.md +30 -21
  2. package/dist/cmd/root.js +1 -0
  3. package/dist/core/output.js +53 -1
  4. package/dist/core/runtime-agent.js +19 -0
  5. package/dist/internal/e10/auth/commands.js +58 -23
  6. package/dist/internal/e10/auth/crypto.js +52 -12
  7. package/dist/internal/e10/auth/xiaoe.js +145 -53
  8. package/dist/internal/e10/context.js +5 -27
  9. package/dist/shortcuts/archive-oa/constants.js +66 -0
  10. package/dist/shortcuts/archive-oa/continuation.js +70 -0
  11. package/dist/shortcuts/archive-oa/errors.js +53 -0
  12. package/dist/shortcuts/archive-oa/host.js +157 -0
  13. package/dist/shortcuts/archive-oa/index.js +225 -0
  14. package/dist/shortcuts/archive-oa/manifest.js +62 -0
  15. package/dist/shortcuts/archive-oa/operations/borrow-car.js +159 -0
  16. package/dist/shortcuts/archive-oa/operations/borrow-url.js +108 -0
  17. package/dist/shortcuts/archive-oa/operations/confirm.js +48 -0
  18. package/dist/shortcuts/archive-oa/operations/contract.js +120 -0
  19. package/dist/shortcuts/archive-oa/operations/locate.js +50 -0
  20. package/dist/shortcuts/archive-oa/operations/registry.js +40 -0
  21. package/dist/shortcuts/archive-oa/operations/shared.js +181 -0
  22. package/dist/shortcuts/archive-oa/operations/types.js +45 -0
  23. package/dist/shortcuts/archive-oa/operations.js +13 -0
  24. package/dist/shortcuts/caizhilian/operations/handlers/fileops.js +67 -1
  25. package/dist/shortcuts/caizhilian/operations/handlers/setting-attach.js +198 -0
  26. package/dist/shortcuts/caizhilian/operations/shared.js +32 -0
  27. package/dist/shortcuts/caizhilian/operations/specs.js +15 -0
  28. package/dist/shortcuts/index.js +2 -0
  29. package/dist/shortcuts/invoice/host.js +2 -1
  30. package/dist/shortcuts/invoice/manifest.js +111 -0
  31. package/dist/shortcuts/invoice/operations/issuing-qys.js +361 -0
  32. package/dist/shortcuts/invoice/operations/issuing.js +5 -5
  33. package/dist/shortcuts/invoice/operations/registry.js +4 -0
  34. package/dist/shortcuts/workflow/endpoints.js +11 -0
  35. package/dist/shortcuts/workflow/host.js +2 -2
  36. package/dist/shortcuts/workflow/index.js +25 -1
  37. package/dist/shortcuts/workflow/operations/chatscene.js +270 -0
  38. package/dist/shortcuts/workflow/operations/form.js +2128 -244
  39. package/dist/shortcuts/workflow/operations/read.js +186 -41
  40. package/dist/shortcuts/workflow/operations/shared.js +25 -0
  41. package/dist/shortcuts/workflow/operations/sign-input.js +106 -0
  42. package/dist/shortcuts/workflow/operations/write.js +9 -1
  43. package/dist/shortcuts/workflow/stdout-compact.js +41 -0
  44. package/docs/archive-oa.md +79 -0
  45. package/docs/caizhilian.md +4 -3
  46. package/docs/e10-auth.md +13 -5
  47. package/node_modules/@napi-rs/keyring/LICENSE +21 -0
  48. package/node_modules/@napi-rs/keyring/README.md +19 -0
  49. package/node_modules/@napi-rs/keyring/index.d.ts +166 -0
  50. package/node_modules/@napi-rs/keyring/index.js +514 -0
  51. package/node_modules/@napi-rs/keyring/keytar.d.ts +53 -0
  52. package/node_modules/@napi-rs/keyring/keytar.js +26 -0
  53. package/node_modules/@napi-rs/keyring/package.json +125 -0
  54. package/node_modules/@napi-rs/keyring-darwin-arm64/README.md +3 -0
  55. package/node_modules/@napi-rs/keyring-darwin-arm64/keyring.darwin-arm64.node +0 -0
  56. package/node_modules/@napi-rs/keyring-darwin-arm64/package.json +32 -0
  57. package/node_modules/commander/LICENSE +22 -0
  58. package/node_modules/commander/Readme.md +1149 -0
  59. package/node_modules/commander/esm.mjs +16 -0
  60. package/node_modules/commander/index.js +24 -0
  61. package/node_modules/commander/lib/argument.js +149 -0
  62. package/node_modules/commander/lib/command.js +2662 -0
  63. package/node_modules/commander/lib/error.js +39 -0
  64. package/node_modules/commander/lib/help.js +709 -0
  65. package/node_modules/commander/lib/option.js +367 -0
  66. package/node_modules/commander/lib/suggestSimilar.js +101 -0
  67. package/node_modules/commander/package-support.json +16 -0
  68. package/node_modules/commander/package.json +82 -0
  69. package/node_modules/commander/typings/esm.d.mts +3 -0
  70. package/node_modules/commander/typings/index.d.ts +1045 -0
  71. package/package.json +5 -1
  72. package/skill-template/business-info.json +16 -0
  73. package/skill-template/domains/archive-oa.md +19 -0
  74. package/skill-template/domains/yepiaotong.md +2 -2
  75. package/skills/weaver-e10-archive-oa/SKILL.md +159 -0
  76. package/skills/weaver-e10-archive-oa/references/archive-locate.md +49 -0
  77. package/skills/weaver-e10-archive-oa/references/borrow-car.md +76 -0
  78. package/skills/weaver-e10-archive-oa/references/borrow-flow.md +53 -0
  79. package/skills/weaver-e10-archive-oa/references/contract-search.md +63 -0
  80. package/skills/weaver-e10-archive-oa/references/disabled-capabilities.md +29 -0
  81. package/skills/weaver-e10-archive-oa/references/qys-contract-search.md +47 -0
  82. package/skills/weaver-e10-archive-oa/references/source-manifest.json +400 -0
  83. package/skills/weaver-e10-builder/SKILL.md +303 -0
  84. package/skills/weaver-e10-builder/_catalog.md +94 -0
  85. package/skills/weaver-e10-builder/actionflows/CONTEXT.md +71 -0
  86. package/skills/weaver-e10-builder/actionflows/SKILL.md +176 -0
  87. package/skills/weaver-e10-builder/actionflows/docs/adr/0001-generated-actionflow-cleanup-identity.md +5 -0
  88. package/skills/weaver-e10-builder/actionflows/docs/adr/0002-preserve-existing-actionflow-on-update.md +36 -0
  89. package/skills/weaver-e10-builder/actionflows/references/components/calendar/MeetingCreate.md +19 -0
  90. package/skills/weaver-e10-builder/actionflows/references/components/calendar/ScheduleCreate.md +17 -0
  91. package/skills/weaver-e10-builder/actionflows/references/components/database/DMLExecute.md +38 -0
  92. package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentCopy.md +17 -0
  93. package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentMove.md +17 -0
  94. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentCopy.md +17 -0
  95. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentDelete.md +17 -0
  96. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentEdit.md +17 -0
  97. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentMove.md +17 -0
  98. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentPermissionChange.md +17 -0
  99. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRenewal.md +17 -0
  100. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRevert.md +17 -0
  101. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSave.md +17 -0
  102. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscription.md +17 -0
  103. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionApprove.md +17 -0
  104. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionSendBack.md +17 -0
  105. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionWithdraw.md +17 -0
  106. package/skills/weaver-e10-builder/actionflows/references/components/document/FileFolderSave.md +17 -0
  107. package/skills/weaver-e10-builder/actionflows/references/components/document/GetAttachmentInfo.md +17 -0
  108. package/skills/weaver-e10-builder/actionflows/references/components/document/GetDocumentInfo.md +17 -0
  109. package/skills/weaver-e10-builder/actionflows/references/components/document/ModifyDocumentStatus.md +17 -0
  110. package/skills/weaver-e10-builder/actionflows/references/components/document/ReplaceAttachment.md +17 -0
  111. package/skills/weaver-e10-builder/actionflows/references/components/document/UpdatePrintNum.md +17 -0
  112. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbAdd.md +100 -0
  113. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbDelete.md +23 -0
  114. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbRecover.md +17 -0
  115. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbSaveVersion.md +17 -0
  116. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbUpdate.md +67 -0
  117. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/DateTrigger.md +32 -0
  118. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EbGetDataById.md +17 -0
  119. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EnquiryForm.md +107 -0
  120. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventButton.md +33 -0
  121. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventFormData.md +19 -0
  122. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/TimeBatchTrigger.md +19 -0
  123. package/skills/weaver-e10-builder/actionflows/references/components/http/Http.md +77 -0
  124. package/skills/weaver-e10-builder/actionflows/references/components/logic/Condition.md +23 -0
  125. package/skills/weaver-e10-builder/actionflows/references/components/logic/LogicFlowSet.md +17 -0
  126. package/skills/weaver-e10-builder/actionflows/references/components/logic/MultipleExecution.md +38 -0
  127. package/skills/weaver-e10-builder/actionflows/references/components/logic/Output.md +37 -0
  128. package/skills/weaver-e10-builder/actionflows/references/components/message/InnerMQSend.md +50 -0
  129. package/skills/weaver-e10-builder/actionflows/references/components/message/SendMessage.md +30 -0
  130. package/skills/weaver-e10-builder/actionflows/references/components/personnel/AlterPersonStatus.md +30 -0
  131. package/skills/weaver-e10-builder/actionflows/references/components/personnel/HrmEmployeeUpdate.md +34 -0
  132. package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelAlterType.md +38 -0
  133. package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelOnboarding.md +36 -0
  134. package/skills/weaver-e10-builder/actionflows/references/components/serverless/ServerlessAction.md +42 -0
  135. package/skills/weaver-e10-builder/actionflows/references/components/trigger/CustomTrigger.md +82 -0
  136. package/skills/weaver-e10-builder/actionflows/references/components/trigger/InnerMQListener.md +41 -0
  137. package/skills/weaver-e10-builder/actionflows/references/components/trigger/SimpleScheduler.md +19 -0
  138. package/skills/weaver-e10-builder/actionflows/references/components/trigger/WebHookTrigger.md +91 -0
  139. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAddSign.md +17 -0
  140. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAgreeRejectApply.md +17 -0
  141. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCommit.md +17 -0
  142. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveConsulTurnTodo.md +17 -0
  143. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCreate.md +17 -0
  144. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDelete.md +19 -0
  145. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoCirculate.md +17 -0
  146. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoForward.md +17 -0
  147. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoTurnTodo.md +17 -0
  148. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveEntrust.md +19 -0
  149. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveIntervention.md +17 -0
  150. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveMandatoryArchiving.md +17 -0
  151. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveManualCC.md +17 -0
  152. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRefuseRejectApply.md +17 -0
  153. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRejectApply.md +17 -0
  154. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSave.md +17 -0
  155. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSendBack.md +17 -0
  156. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveShareEntry.md +17 -0
  157. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveTrigger.md +99 -0
  158. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveWithdraw.md +17 -0
  159. package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkFlowDocEmpowerment.md +17 -0
  160. package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkflowToDoc.md +17 -0
  161. package/skills/weaver-e10-builder/actionflows/references/condition_rules.md +100 -0
  162. package/skills/weaver-e10-builder/actionflows/references/dynamic_capability_matrix.md +39 -0
  163. package/skills/weaver-e10-builder/actionflows/references/dynamic_resources.md +41 -0
  164. package/skills/weaver-e10-builder/actionflows/references/examples/enquiry-form-batch-insert-scene2.json +1043 -0
  165. package/skills/weaver-e10-builder/actionflows/references/function_rules.md +15 -0
  166. package/skills/weaver-e10-builder/actionflows/references/trigger_runtime_notes.md +53 -0
  167. package/skills/weaver-e10-builder/assets/dom-structure/Bar.json +341 -0
  168. package/skills/weaver-e10-builder/assets/dom-structure/BarStack.json +341 -0
  169. package/skills/weaver-e10-builder/assets/dom-structure/Bubble.json +323 -0
  170. package/skills/weaver-e10-builder/assets/dom-structure/Calendar.json +515 -0
  171. package/skills/weaver-e10-builder/assets/dom-structure/Circular.json +337 -0
  172. package/skills/weaver-e10-builder/assets/dom-structure/CollapsePanel.json +289 -0
  173. package/skills/weaver-e10-builder/assets/dom-structure/Comment.json +617 -0
  174. package/skills/weaver-e10-builder/assets/dom-structure/CountDown.json +755 -0
  175. package/skills/weaver-e10-builder/assets/dom-structure/DigitalPanel.json +191 -0
  176. package/skills/weaver-e10-builder/assets/dom-structure/EbButton.json +387 -0
  177. package/skills/weaver-e10-builder/assets/dom-structure/FastCreate.json +242 -0
  178. package/skills/weaver-e10-builder/assets/dom-structure/Gauge.json +282 -0
  179. package/skills/weaver-e10-builder/assets/dom-structure/HBar.json +336 -0
  180. package/skills/weaver-e10-builder/assets/dom-structure/HBarStack.json +337 -0
  181. package/skills/weaver-e10-builder/assets/dom-structure/Line.json +341 -0
  182. package/skills/weaver-e10-builder/assets/dom-structure/NList.json +712 -0
  183. package/skills/weaver-e10-builder/assets/dom-structure/NavBar.json +274 -0
  184. package/skills/weaver-e10-builder/assets/dom-structure/NavPanel.json +390 -0
  185. package/skills/weaver-e10-builder/assets/dom-structure/NewTab.json +606 -0
  186. package/skills/weaver-e10-builder/assets/dom-structure/Nightingale.json +336 -0
  187. package/skills/weaver-e10-builder/assets/dom-structure/PageHeader.json +205 -0
  188. package/skills/weaver-e10-builder/assets/dom-structure/Picture.json +209 -0
  189. package/skills/weaver-e10-builder/assets/dom-structure/Pie.json +338 -0
  190. package/skills/weaver-e10-builder/assets/dom-structure/ProgressChart.json +299 -0
  191. package/skills/weaver-e10-builder/assets/dom-structure/SearchGlobal.json +628 -0
  192. package/skills/weaver-e10-builder/assets/dom-structure/Slide.json +489 -0
  193. package/skills/weaver-e10-builder/assets/dom-structure/Treemap.json +324 -0
  194. package/skills/weaver-e10-builder/assets/factory/chart-dimensions.json +536 -0
  195. package/skills/weaver-e10-builder/assets/factory/example-btn-progress-collapse-configured.json +2515 -0
  196. package/skills/weaver-e10-builder/assets/factory/example-configured-2.json +13805 -0
  197. package/skills/weaver-e10-builder/assets/factory/example-configured.json +6735 -0
  198. package/skills/weaver-e10-builder/assets/factory/factory-bar-stack.json +326 -0
  199. package/skills/weaver-e10-builder/assets/factory/factory-bar.json +222 -0
  200. package/skills/weaver-e10-builder/assets/factory/factory-bubble.json +322 -0
  201. package/skills/weaver-e10-builder/assets/factory/factory-calendar.json +325 -0
  202. package/skills/weaver-e10-builder/assets/factory/factory-circular.json +320 -0
  203. package/skills/weaver-e10-builder/assets/factory/factory-collapse-panel.json +132 -0
  204. package/skills/weaver-e10-builder/assets/factory/factory-comment.json +388 -0
  205. package/skills/weaver-e10-builder/assets/factory/factory-count-down.json +198 -0
  206. package/skills/weaver-e10-builder/assets/factory/factory-digital-panel.json +108 -0
  207. package/skills/weaver-e10-builder/assets/factory/factory-eb-button.json +150 -0
  208. package/skills/weaver-e10-builder/assets/factory/factory-fast-create.json +62 -0
  209. package/skills/weaver-e10-builder/assets/factory/factory-gauge.json +312 -0
  210. package/skills/weaver-e10-builder/assets/factory/factory-h-bar-stack.json +328 -0
  211. package/skills/weaver-e10-builder/assets/factory/factory-h-bar.json +326 -0
  212. package/skills/weaver-e10-builder/assets/factory/factory-line.json +212 -0
  213. package/skills/weaver-e10-builder/assets/factory/factory-nav-bar.json +167 -0
  214. package/skills/weaver-e10-builder/assets/factory/factory-nav-menu.json +144 -0
  215. package/skills/weaver-e10-builder/assets/factory/factory-nav-panel.json +338 -0
  216. package/skills/weaver-e10-builder/assets/factory/factory-new-tab.json +163 -0
  217. package/skills/weaver-e10-builder/assets/factory/factory-nightingale.json +312 -0
  218. package/skills/weaver-e10-builder/assets/factory/factory-nlist.json +112 -0
  219. package/skills/weaver-e10-builder/assets/factory/factory-page-header.json +171 -0
  220. package/skills/weaver-e10-builder/assets/factory/factory-picture.json +169 -0
  221. package/skills/weaver-e10-builder/assets/factory/factory-pie.json +212 -0
  222. package/skills/weaver-e10-builder/assets/factory/factory-progress-chart.json +162 -0
  223. package/skills/weaver-e10-builder/assets/factory/factory-search-global.json +104 -0
  224. package/skills/weaver-e10-builder/assets/factory/factory-slide.json +164 -0
  225. package/skills/weaver-e10-builder/assets/factory/factory-treemap.json +322 -0
  226. package/skills/weaver-e10-builder/assets/icons.db +0 -0
  227. package/skills/weaver-e10-builder/assets/sample/.claude/settings.local.json +8 -0
  228. package/skills/weaver-e10-builder/assets/sample/api/formApi.js +510 -0
  229. package/skills/weaver-e10-builder/assets/sample/config/config.js +0 -0
  230. package/skills/weaver-e10-builder/assets/sample/config/configLoad.js +0 -0
  231. package/skills/weaver-e10-builder/assets/sample/config/configLoad_default.js +0 -0
  232. package/skills/weaver-e10-builder/assets/sample/config/config_default.js +0 -0
  233. package/skills/weaver-e10-builder/assets/sample/entry.js +22 -0
  234. package/skills/weaver-e10-builder/assets/sample/eslint.config.cjs +48 -0
  235. package/skills/weaver-e10-builder/assets/sample/memo.md +0 -0
  236. package/skills/weaver-e10-builder/assets/sample/readme.js +8 -0
  237. package/skills/weaver-e10-builder/references/app/guide-app-publish.md +92 -0
  238. package/skills/weaver-e10-builder/references/auth/guide-auth.md +88 -0
  239. package/skills/weaver-e10-builder/references/coding/guide-edit-backfill.md +189 -0
  240. package/skills/weaver-e10-builder/references/coding/guide-form-crud.md +262 -0
  241. package/skills/weaver-e10-builder/references/coding/guide-page-code.md +244 -0
  242. package/skills/weaver-e10-builder/references/coding/guide-page-export.md +119 -0
  243. package/skills/weaver-e10-builder/references/coding/ref-compile-rules.md +130 -0
  244. package/skills/weaver-e10-builder/references/common/guide-plan-template.md +164 -0
  245. package/skills/weaver-e10-builder/references/common/map.md +153 -0
  246. package/skills/weaver-e10-builder/references/common/ref-cli-commands.md +635 -0
  247. package/skills/weaver-e10-builder/references/components/@weapp-Button.md +104 -0
  248. package/skills/weaver-e10-builder/references/components/base-Badge.md +100 -0
  249. package/skills/weaver-e10-builder/references/components/base-Dialog.md +358 -0
  250. package/skills/weaver-e10-builder/references/components/base-Empty.md +58 -0
  251. package/skills/weaver-e10-builder/references/components/base-Tag.md +112 -0
  252. package/skills/weaver-e10-builder/references/components/display-Alert.md +64 -0
  253. package/skills/weaver-e10-builder/references/components/display-Avatar.md +150 -0
  254. package/skills/weaver-e10-builder/references/components/display-Calendar.md +263 -0
  255. package/skills/weaver-e10-builder/references/components/display-Carousel.md +115 -0
  256. package/skills/weaver-e10-builder/references/components/display-Collapse.md +299 -0
  257. package/skills/weaver-e10-builder/references/components/display-FilePreview.md +49 -0
  258. package/skills/weaver-e10-builder/references/components/display-Icon.md +66 -0
  259. package/skills/weaver-e10-builder/references/components/display-List.md +320 -0
  260. package/skills/weaver-e10-builder/references/components/display-Pagination.md +41 -0
  261. package/skills/weaver-e10-builder/references/components/display-Spin.md +34 -0
  262. package/skills/weaver-e10-builder/references/components/display-Steps.md +89 -0
  263. package/skills/weaver-e10-builder/references/components/display-Table.md +160 -0
  264. package/skills/weaver-e10-builder/references/components/display-Title.md +117 -0
  265. package/skills/weaver-e10-builder/references/components/form-Checkbox.md +161 -0
  266. package/skills/weaver-e10-builder/references/components/form-DepartmentBrowser-api.md +52 -0
  267. package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser-api.md +51 -0
  268. package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser.md +51 -0
  269. package/skills/weaver-e10-builder/references/components/form-Input.md +123 -0
  270. package/skills/weaver-e10-builder/references/components/form-Radio.md +145 -0
  271. package/skills/weaver-e10-builder/references/components/form-Select.md +191 -0
  272. package/skills/weaver-e10-builder/references/components/form-Switch.md +46 -0
  273. package/skills/weaver-e10-builder/references/components/form-Upload.md +53 -0
  274. package/skills/weaver-e10-builder/references/components/generic-Echarts.md +102 -0
  275. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-components.md +130 -0
  276. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-css.md +127 -0
  277. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-factory.md +460 -0
  278. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-version.md +111 -0
  279. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer.md +288 -0
  280. package/skills/weaver-e10-builder/references/esb-interface/guide-import.md +34 -0
  281. package/skills/weaver-e10-builder/references/form/guide-create-form.md +248 -0
  282. package/skills/weaver-e10-builder/references/form/guide-ebuilder-filter.md +73 -0
  283. package/skills/weaver-e10-builder/references/form/guide-ebuilder-scope.md +82 -0
  284. package/skills/weaver-e10-builder/references/form/guide-field-linkage.md +123 -0
  285. package/skills/weaver-e10-builder/references/form/guide-form-archive-permission.md +175 -0
  286. package/skills/weaver-e10-builder/references/form/guide-form-association.md +124 -0
  287. package/skills/weaver-e10-builder/references/form/guide-form-button.md +169 -0
  288. package/skills/weaver-e10-builder/references/form/guide-form-data.md +78 -0
  289. package/skills/weaver-e10-builder/references/form/guide-form-formula-functions.md +343 -0
  290. package/skills/weaver-e10-builder/references/form/guide-form-layout-incremental.md +90 -0
  291. package/skills/weaver-e10-builder/references/form/guide-form-layout-planning.md +68 -0
  292. package/skills/weaver-e10-builder/references/form/guide-form-linkage.md +269 -0
  293. package/skills/weaver-e10-builder/references/form/guide-form-message.md +74 -0
  294. package/skills/weaver-e10-builder/references/form/guide-form-physical-table.md +146 -0
  295. package/skills/weaver-e10-builder/references/form/guide-form-serial-mark.md +47 -0
  296. package/skills/weaver-e10-builder/references/form/guide-form-sub-detail.md +82 -0
  297. package/skills/weaver-e10-builder/references/form/guide-form-view-permission.md +38 -0
  298. package/skills/weaver-e10-builder/references/form/guide-form-view.md +371 -0
  299. package/skills/weaver-e10-builder/references/form/guide-formula-linkage.md +281 -0
  300. package/skills/weaver-e10-builder/references/form/guide-list-columns.md +52 -0
  301. package/skills/weaver-e10-builder/references/form/guide-list-custom-text.md +52 -0
  302. package/skills/weaver-e10-builder/references/form/guide-list-stats.md +136 -0
  303. package/skills/weaver-e10-builder/references/form/guide-virtual-form.md +156 -0
  304. package/skills/weaver-e10-builder/references/form/ref-form-fields.md +293 -0
  305. package/skills/weaver-e10-builder/references/form/style-templates.md +97 -0
  306. package/skills/weaver-e10-builder/references/hrm/guide-matrix.md +245 -0
  307. package/skills/weaver-e10-builder/references/hrm/guide-org-employee.md +155 -0
  308. package/skills/weaver-e10-builder/references/menu/system-menus.md +75 -0
  309. package/skills/weaver-e10-builder/references/report/add-dataset-registration-guide.md +139 -0
  310. package/skills/weaver-e10-builder/references/report/ai-report-workflow.md +412 -0
  311. package/skills/weaver-e10-builder/references/report/api-report-build-fast-path.md +275 -0
  312. package/skills/weaver-e10-builder/references/report/app-datasource-lookup-guide.md +230 -0
  313. package/skills/weaver-e10-builder/references/report/cell-config-echo-guide.md +163 -0
  314. package/skills/weaver-e10-builder/references/report/cell-transform-guide.md +147 -0
  315. package/skills/weaver-e10-builder/references/report/condition-format-guide.md +140 -0
  316. package/skills/weaver-e10-builder/references/report/cross-dataset-filter-guide.md +304 -0
  317. package/skills/weaver-e10-builder/references/report/dataset-query-filter-guide.md +235 -0
  318. package/skills/weaver-e10-builder/references/report/dataset-sidebar-ops-guide.md +280 -0
  319. package/skills/weaver-e10-builder/references/report/dataset-table-field-contract-guide.md +339 -0
  320. package/skills/weaver-e10-builder/references/report/datasource-metadata-guide.md +365 -0
  321. package/skills/weaver-e10-builder/references/report/datasource-selection-and-parent-filter-guide.md +148 -0
  322. package/skills/weaver-e10-builder/references/report/date-range-query-reference.md +102 -0
  323. package/skills/weaver-e10-builder/references/report/default-header-style-guide.md +70 -0
  324. package/skills/weaver-e10-builder/references/report/designer-blank-prevention-guide.md +111 -0
  325. package/skills/weaver-e10-builder/references/report/event-hreflink-guide.md +184 -0
  326. package/skills/weaver-e10-builder/references/report/field-bind-exact-match-guide.md +208 -0
  327. package/skills/weaver-e10-builder/references/report/formula-cell-api-guide.md +258 -0
  328. package/skills/weaver-e10-builder/references/report/guide-report-build.md +131 -0
  329. package/skills/weaver-e10-builder/references/report/guide-report-modify.md +100 -0
  330. package/skills/weaver-e10-builder/references/report/guide-report-multisource.md +143 -0
  331. package/skills/weaver-e10-builder/references/report/guide-report-query.md +98 -0
  332. package/skills/weaver-e10-builder/references/report/hidden-row-and-header-merge-guide.md +100 -0
  333. package/skills/weaver-e10-builder/references/report/layout-showlocation-freeze-guide.md +167 -0
  334. package/skills/weaver-e10-builder/references/report/preaggregate-auto-disable-guide.md +107 -0
  335. package/skills/weaver-e10-builder/references/report/query-condition-api-guide.md +890 -0
  336. package/skills/weaver-e10-builder/references/report/ref-report-commands.md +122 -0
  337. package/skills/weaver-e10-builder/references/report/ref-report-pitfalls.md +226 -0
  338. package/skills/weaver-e10-builder/references/report/report-baseinfo-defaults-guide.md +117 -0
  339. package/skills/weaver-e10-builder/references/report/report-building-guide.md +511 -0
  340. package/skills/weaver-e10-builder/references/report/report-config-schema.md +445 -0
  341. package/skills/weaver-e10-builder/references/report/report-create-modes-guide.md +182 -0
  342. package/skills/weaver-e10-builder/references/report/report-data-model.md +447 -0
  343. package/skills/weaver-e10-builder/references/report/report-delivery-contract.md +101 -0
  344. package/skills/weaver-e10-builder/references/report/report-designer-feature-map.md +500 -0
  345. package/skills/weaver-e10-builder/references/report/report-internal-error-guide.md +78 -0
  346. package/skills/weaver-e10-builder/references/report/report-knowledge-base.md +389 -0
  347. package/skills/weaver-e10-builder/references/report/report-lifecycle-api-guide.md +392 -0
  348. package/skills/weaver-e10-builder/references/report/report-list-page-ops-guide.md +191 -0
  349. package/skills/weaver-e10-builder/references/report/report-permission-guide.md +365 -0
  350. package/skills/weaver-e10-builder/references/report/report-requirement-analysis-template.md +202 -0
  351. package/skills/weaver-e10-builder/references/report/report-self-check-guide.md +164 -0
  352. package/skills/weaver-e10-builder/references/report/safe-partial-save-guide.md +151 -0
  353. package/skills/weaver-e10-builder/references/report/snowflake-id-precision-guide.md +84 -0
  354. package/skills/weaver-e10-builder/references/report/spec-build-schema.md +294 -0
  355. package/skills/weaver-e10-builder/references/report/targeted-fix-guide.md +97 -0
  356. package/skills/weaver-e10-builder/references/report/user-request-scope-only-guide.md +82 -0
  357. package/skills/weaver-e10-builder/references/workflow/guide-function-management.md +154 -0
  358. package/skills/weaver-e10-builder/references/workflow/guide-opinion-settings.md +126 -0
  359. package/skills/weaver-e10-builder/references/workflow/guide-workflow-action.md +174 -0
  360. package/skills/weaver-e10-builder/references/workflow/guide-workflow-auth-resp.md +224 -0
  361. package/skills/weaver-e10-builder/references/workflow/guide-workflow-condition.md +447 -0
  362. package/skills/weaver-e10-builder/references/workflow/guide-workflow-node-layout.md +181 -0
  363. package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc-setting.md +248 -0
  364. package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc.md +68 -0
  365. package/skills/weaver-e10-builder/references/workflow/guide-workflow.md +527 -0
  366. package/skills/weaver-e10-builder/references/workflow/operator-matrix.md +76 -0
  367. package/skills/weaver-e10-caizhilian/SKILL.md +43 -16
  368. package/skills/weaver-e10-caizhilian/references/agent-entry.md +7 -3
  369. package/skills/weaver-e10-caizhilian/references/collaboration.md +5 -3
  370. package/skills/weaver-e10-caizhilian/references/document.md +33 -11
  371. package/skills/weaver-e10-caizhilian/references/file-collection.md +4 -3
  372. package/skills/weaver-e10-caizhilian/references/file-upload.md +2 -3
  373. package/skills/weaver-e10-caizhilian/references/files.md +23 -2
  374. package/skills/weaver-e10-caizhilian/references/folder.md +48 -16
  375. package/skills/weaver-e10-caizhilian/references/setting-attach.md +61 -42
  376. package/skills/weaver-e10-caizhilian/references/setting-backup.md +13 -51
  377. package/skills/weaver-e10-caizhilian/references/setting-encrypt.md +20 -51
  378. package/skills/weaver-e10-caizhilian/references/setting-storage.md +82 -147
  379. package/skills/weaver-e10-caizhilian/references/source-manifest.json +99 -1
  380. package/skills/weaver-e10-caizhilian/references/withheld.md +20 -44
  381. package/skills/weaver-e10-shared/SKILL.md +24 -18
  382. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +16 -15
  383. package/skills/weaver-e10-shared/references/non-interactive-environment.md +10 -10
  384. package/skills/weaver-e10-workflow/SKILL.md +23 -44
  385. package/skills/weaver-e10-workflow/references/source-manifest.json +40 -25
  386. package/skills/weaver-e10-workflow/references/workflow-create.md +278 -85
  387. package/skills/weaver-e10-workflow/references/workflow-edit.md +1 -1
  388. package/skills/weaver-e10-workflow/references/workflow-memory.md +1 -4
  389. package/skills/weaver-e10-workflow/references/workflow-query.md +2 -2
  390. package/skills/weaver-e10-yepiaotong/SKILL.md +10 -7
  391. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +49 -1
  392. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-qys-ledger.md +66 -0
  393. package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +59 -36
  394. package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +54 -509
  395. package/skills/weaver-e10-yepiaotong/references/reim-examples.md +182 -345
  396. package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +4 -5
  397. package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +153 -345
  398. package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +5 -5
  399. package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +182 -154
  400. package/skills/weaver-e10-yepiaotong/references/source-manifest.json +96 -0
  401. package/skills/weaver-e10-yepiaotong/references/reim-fast-path.md +0 -119
@@ -0,0 +1,164 @@
1
+ # 报表落库自检(强制)
2
+
3
+ > **适用**:API/脚本保存布局后、交付设计器链接前(可后台跑,但**不得跳过**)。
4
+ > **目标**:尽早发现字段丢失、伪父格、绑定失败、超链接被冲掉,避免「设计器看着有格、取数/父格全错」。
5
+
6
+ ---
7
+
8
+ ## 一、父格坐标语义(勿混)
9
+
10
+ | API `leftX/leftY` 或 `topX/topY` | 设计器含义 | 说明 |
11
+ |----------------------------------|------------|------|
12
+ | **`-1, -1`** | **默认** 或 **无** | 普通 Const / 单数据集 Field 的常见正确态 |
13
+ | **`0, 0`** | **自定义 → 原点 (0,0)** | **不是默认**;写成 0,0 会显示父格「不对」 |
14
+ | **其它 `x,y`** | **自定义** 指向该坐标 | 多数据集入口、交叉、**超链接占位依赖**等 |
15
+
16
+ ---
17
+
18
+ ## 二、按单元格类型的父格规则
19
+
20
+ ### 2.1 普通 Const(表头 / 标题 / 无链接)
21
+
22
+ | 项 | 规则 |
23
+ |----|------|
24
+ | 左父格 | **`-1,-1`** |
25
+ | 上父格 | **`-1,-1`** |
26
+ | 禁止 | `(0,0)`;勿把「默认」误写成原点 |
27
+
28
+ ### 2.2 超链接 Const(`pcHreflink` / `h5Hreflink`,URL 含 `{L4}` `{C4}` 等)
29
+
30
+ > **事故**:把「左父格默认」套到「点击查看」上 → 设计器左/上显示不对,且 `{L4}` 无法解析;或重建 workbook 时丢掉 `ConstCellType.cellText` → 保存后 `cellText` 变空、`pcHreflink` 丢失。
31
+
32
+ | 项 | 规则 | 例(供应商表 M4) |
33
+ |----|------|-------------------|
34
+ | **上父格** | 无横向扩展时必须 **`topX=topY=-1`**(不需要上父格) | `(-1,-1)` |
35
+ | **左父格** | **禁止**一律改成默认;须指向占位符依赖的数据格 | `{L4}` → 左父格 **`(3,11)`**(同行「数据ID」) |
36
+ | **链接元数据** | 须进 **workbook `ConstCellType`**(`pcHreflink`/`openType`/`cellText`/`left*`/`top*`);仅写 `fields[]` **不够** | `/sp/ebdfpage/card/0/{sourceId}/{L4}` |
37
+ | **workbook** | `ConstCellType` 必须含:`cellText`、`leftX/leftY/topX/topY`、有链接时还要 `pcHreflink` | 服务端 `saveReportDevInfo` **从 cellType 回写 fields**;缺 `leftX` → Java int **0** → 伪 `(0,0)`;缺 `pcHreflink` → 链接丢失 |
38
+ | **禁止** | 只塞 `{typeName,cellText}` 的残 ConstCellType;禁止左=`(0,0)`;禁止有 `{Ln}` 却左=`-1,-1` |
39
+
40
+ **占位符 → 左父格**(自检算法):
41
+
42
+ 1. 从 `pcHreflink`/`h5Hreflink` 提取 `{L4}` / `{C4}` / `{Ln}` 等。
43
+ 2. `{L4}`:同行纵向扩展语境下,左父格应指向同列(或约定列)上提供 ID 的 Field(本需求为 `(3,11)`)。
44
+ 3. 若 URL 含占位而 `leftX/leftY === -1` → **FAIL**(不是「默认正确」)。
45
+ 4. 若 `topX/topY !== -1` 且无横向交叉需求 → **FAIL**。
46
+
47
+ ### 2.3 Field(单数据集、无指定计算)
48
+
49
+ | 场景 | 左父格 |
50
+ |------|--------|
51
+ | **新建**报表 | 优先 **`-1,-1`(默认)** |
52
+ | **已有**报表 | **禁止**用户未点名时批量改父格 |
53
+
54
+ ---
55
+
56
+ ## 三、保存门禁(每次 `saveReportDevInfo`)
57
+
58
+ ### 保存前
59
+
60
+ 1. `fields` 中 `cellType=Field` 数量 ≥ 保存前(或与预期列数一致)。
61
+ 2. workbook `dataTable` 内 `FieldCellType` 数量 ≥ Field 数。
62
+ 3. 每个 **Const**:workbook `ConstCellType` 须含 `cellText`(有文案时)以及显式 **`leftX/leftY/topX/topY`(常用 -1,禁止省略)**。
63
+ 4. 每个 **超链接 Const**:`ConstCellType` 须含非空 `pcHreflink`、`openType`,且父格与 `fields` 一致(服务端以 workbook 为准回写)。
64
+ 5. 每个 Field:`name` ∈ `fieldsAndOriginFields.fieldsKey[].name`(须带 `field_`;禁止裸雪花 ID)。
65
+ - 拉 fieldsKey 参数名用 **`datasetId`**(不是 `dataSetId`)。
66
+
67
+ ### 保存后立刻回读
68
+
69
+ | 检查项 | 失败标准 |
70
+ |--------|----------|
71
+ | Field 数量 | 比保存前减少 → **立即失败**,禁止再改,优先恢复 |
72
+ | Field.`name` | 裸 ID 或不在 fieldsKey → FAIL(`e10-cli report verify bind`) |
73
+ | 普通 Const 父格 | `left=top=(0,0)` → FAIL(伪自定义 A1) |
74
+ | 超链接 Const | 缺 `pcHreflink` / `cellText` 空 / `top≠-1` / 含 `{L*}` 但 `left=-1` 或 `left=(0,0)` → FAIL |
75
+ | 同数据集 leftFilterField | Field 上仍有跨源 leftFilter → WARN/FAIL |
76
+
77
+ ```bash
78
+ e10-cli report verify bind <reportId> [appId] # 字段绑定
79
+ e10-cli report verify self <reportId> [appId] # 父格/超链接自检
80
+ e10-cli report verify all <reportId> [appId] # 自检 + 绑定(推荐)
81
+ ```
82
+
83
+ ---
84
+
85
+ ## 四、Agent 自检脚本逻辑(摘要)
86
+
87
+ ```javascript
88
+ function assertParents(fields) {
89
+ for (const f of fields) {
90
+ if (f.cellType !== 'Const') continue;
91
+ const origin =
92
+ f.leftX === 0 && f.leftY === 0 && f.topX === 0 && f.topY === 0;
93
+ const href = f.pcHreflink || f.h5Hreflink || '';
94
+ if (origin && !href) {
95
+ throw new Error(`Const(${f.x},${f.y}) 父格(0,0)=伪自定义A1,应为-1,-1`);
96
+ }
97
+ if (!href) continue;
98
+ // 超链接:上父格默认无
99
+ if (f.topX !== -1 || f.topY !== -1) {
100
+ throw new Error(`链接格(${f.x},${f.y}) 不需要上父格,top 应为 -1,-1`);
101
+ }
102
+ if (!f.cellText) {
103
+ throw new Error(`链接格(${f.x},${f.y}) cellText 为空(workbook 可能未写 ConstCellType)`);
104
+ }
105
+ // URL 占位依赖左父格,禁止「默认」
106
+ if (/\{L\d+\}|\{C\d+\}/.test(href)) {
107
+ if (f.leftX === -1 && f.leftY === -1) {
108
+ throw new Error(`链接格(${f.x},${f.y}) 含占位符但左父格为默认,应指向依赖数据格`);
109
+ }
110
+ if (f.leftX === 0 && f.leftY === 0) {
111
+ throw new Error(`链接格(${f.x},${f.y}) 左父格不能为(0,0)`);
112
+ }
113
+ }
114
+ }
115
+ }
116
+
117
+ function assertWorkbookConstCellType(dataTable, fields) {
118
+ for (const f of fields) {
119
+ if (f.cellType !== 'Const') continue;
120
+ const cell = dataTable?.[String(f.x)]?.[String(f.y)];
121
+ const ct = cell?.style?.cellType;
122
+ if (!ct || ct.typeName !== 'ConstCellType') {
123
+ throw new Error(`workbook 缺 ConstCellType @(${f.x},${f.y})`);
124
+ }
125
+ if ((f.cellText || f.text) && !ct.cellText) {
126
+ throw new Error(`workbook 缺 cellText @(${f.x},${f.y}),保存会冲掉文案`);
127
+ }
128
+ // 缺 leftX 时服务端写成 0 → 伪自定义 A1
129
+ for (const k of ['leftX', 'leftY', 'topX', 'topY']) {
130
+ if (ct[k] === undefined || ct[k] === null) {
131
+ throw new Error(`workbook ConstCellType 缺 ${k} @(${f.x},${f.y}),会落成 0`);
132
+ }
133
+ }
134
+ if (f.pcHreflink && ct.pcHreflink !== f.pcHreflink) {
135
+ throw new Error(`workbook 缺/错 pcHreflink @(${f.x},${f.y})(服务端只认 cellType)`);
136
+ }
137
+ }
138
+ }
139
+
140
+ function assertFieldPreserved(before, after) {
141
+ const n = (fs) => fs.filter((f) => f.cellType === 'Field').length;
142
+ if (n(after) < n(before)) throw new Error('Field 被冲掉,禁止继续改');
143
+ }
144
+ ```
145
+
146
+ ---
147
+
148
+ ## 五、与交付节奏
149
+
150
+ - 布局落库成功 → **先交设计器地址**(`report-delivery-contract.md` §〇)。
151
+ - 本节自检可后台跑;**FAIL 必须补丁修复并告知**,不得假装完成。
152
+ - **禁止**:为修一格 Const 父格而提交残缺 workbook(会导致 Field 全变 Const,或 Const 文案/超链接被冲掉)。修父格必须 **整表 Field + ConstCellType 完整写入 workbook**。
153
+
154
+ ---
155
+
156
+ ## 六、相关文档
157
+
158
+ | 文档 | 关系 |
159
+ |------|------|
160
+ | `field-bind-exact-match-guide.md` | name ∈ fieldsKey |
161
+ | `datasource-selection-and-parent-filter-guide.md` §〇 | 单数据集左父格默认;**勿**套用到超链接 Const;勿擅自改已有表 |
162
+ | `safe-partial-save-guide.md` | 禁止空 workbook;须从 fields 重建 dataTable |
163
+ | `e10-cli report verify bind` | 绑定门禁 |
164
+ | `targeted-fix-guide.md` | 用户点名某处不对时禁止整表重扫 |
@@ -0,0 +1,151 @@
1
+ # 局部功能保存 · 设计区保护规范
2
+
3
+ > **适用场景**:通过 API / 脚本修改**快照、权限、查询条件、数据集筛选、页面布局**等「非布局主体」能力时。
4
+ > **事故根因(已验证)**:对 `saveReportDevInfo` 提交**空 workbook** 或 **workbookProps.sheets 无单元格** 的 payload,会**全量替换** `edc_reportsheetfield_dev` 等表,导致设计器字段与单元格配置被清空。
5
+ > **硬约束**:除非用户**明确要求删除/清除字段**,否则设计区域内容**不得被置空**。
6
+
7
+ ---
8
+
9
+ ## 一、核心原则
10
+
11
+ | 原则 | 说明 |
12
+ |------|------|
13
+ | **布局不可丢** | `getReportDevInfo.fields.length > 0` 是保存前最低门槛;保存后必须回读验证 |
14
+ | **禁止空 workbook 落库** | `workbookProps.sheets` 为空 **且** `fields` 为空 → **禁止**调用 `saveReportDevInfo`;`fields>0` 但 sheets 空 → **必须从 fields 重建**(含 spans)后再存 |
15
+ | **剔除 `(0,0)` 空 Const** | `x=0,y=0` 且文案空的 Const 为异常幽灵格,保存前删除 |
16
+ | **workbookProps 不可盲信** | 线上常见 `fields=12` 但 `workbookProps.dataTable` 为空;此时必须从 **fields 重建** dataTable |
17
+ | **groupId 原样回传** | `saveReportDevInfo` 的 `groupId`/`nameLabelId` 取自 `baseInfo`,禁止硬编码改分组 |
18
+ | **专用接口优先** | 权限 → `savePermissions`;查询 → `saveQueryItem`;数据集筛选 → `queryInfoSave`;版本还原 → `rollbackReport` |
19
+ | **快照是唯一例外需写 workbook** | 快照配置挂在 `workbook.snapshot`,必须走 `saveReportDevInfo`,但须套用 **§三 安全合并** |
20
+ | **快照 ID 禁 Number()** | `sheetId`/`id`/`jobId` 必须 **String(雪花)**;`Number(reportId)` 截断 → **设计区空白**(见 `designer-blank-prevention-guide.md`) |
21
+ | **快照默认名** | 未指定时 **`{报表名}-{date}-{time}`** |
22
+ | **showLocation 禁 0** | 合并 workbook 时若为 0 → 改为 **2**(或用户点名居左则 1) |
23
+ | **保存前快照版本** | 对已有报表做任意 `saveReportDevInfo` 前,建议 `saveAsVersion --list-only` 确认有版本可还原 |
24
+
25
+ ---
26
+
27
+ ## 二、接口与布局影响矩阵
28
+
29
+ | 操作 | 推荐接口 | 是否触及 layout/fields | 备注 |
30
+ |------|----------|------------------------|------|
31
+ | 使用/禁用权限 | `permission/table/savePermissions` | **否** | 全量替换权限 JSON,不动 fields |
32
+ | 矩阵权限 | `permission/matrix/save` | **否** | |
33
+ | 查询条件 | `saveQueryItem` / `saveQueryConfig` | **否** | |
34
+ | 数据集筛选 | `queryInfoSave` | **否** | |
35
+ | 存为新版本 | `saveAsVersion` | **否**(复制快照) | |
36
+ | 还原版本 | `GET rollbackReport` | **是**(整表替换) | 用户显式还原;会重置快照配置 |
37
+ | 页面布局/分页 | `allPageSetting` | **否**(pageSetting 独立) | |
38
+ | 定时快照 | `saveReportDevInfo` + `workbook.snapshot` | **是(若 workbook 空则灾难)** | 必须 §三 |
39
+ | 修改单元格/父格 | `saveReportDevInfo` +(可选)`saveReportWithCacheConfig` | **是** | **新空报表必须先 dev 后 cache**;见 `api-report-build-fast-path.md` |
40
+
41
+ ---
42
+
43
+ ## 三、saveReportDevInfo 安全合并流程(强制)
44
+
45
+ 凡必须调用 `saveReportDevInfo` 且**不是**「从零新建报表」或「用户要求清空」:
46
+
47
+ ```
48
+ 1. GET getReportDevInfo?reportId=
49
+ 2. fields = data.fields || []
50
+ 3. IF fields.length === 0 → ABORT(提示先 rollbackReport 或从版本还原)
51
+ 4. wb = mergeWorkbookSafe(data, patchFn)
52
+ ├─ 若 countCells(workbookProps) > 0 → 深拷贝 workbookProps
53
+ └─ 否则 → buildWorkbookFromFields(fields, sheetProps) // 禁止提交空 sheets
54
+ 5. patchFn(wb) // 仅改 snapshot / 必要字段,勿删 sheets/dataTable
55
+ 6. POST saveReportDevInfo(带当前 designKey + ebBusinessId)
56
+ 7. GET getReportDevInfo 回读:
57
+ - fields.length 不得小于保存前
58
+ - 若用户未要求删除,fields.length === 0 → 视为事故,立即 rollbackReport
59
+ ```
60
+
61
+ ### 3.1 buildWorkbookFromFields 最低要求
62
+
63
+ 从 `fields[]` 重建时,每个 field 须写入 `data.dataTable[x][y].style`(含 `cellType` 关键属性:父格、fieldKey、leftFilterField 等)。
64
+ **禁止**只提交 `{ version, sheets: {} }` 或 `{ sheets: { Sheet1: { data: { dataTable: {} } } } }`。
65
+
66
+ **Const(强制)**:`style.cellType` 须为完整 `ConstCellType`,至少包含:
67
+
68
+ | 属性 | 说明 |
69
+ |------|------|
70
+ | `cellText` | 有展示文案时必填 |
71
+ | `leftX/leftY/topX/topY` | **禁止省略**(省略 → Java int 默认 0 → 伪自定义 A1) |
72
+ | `pcHreflink` / `openType` | 超链接 Const 必填;服务端**只认 workbook cellType**,不只认 `fields[]` 顶层 |
73
+
74
+ 普通 Const 父格写 `-1`;超链接含 `{L4}` 时左父格指向依赖数据格。见 `report-self-check-guide.md` §2.2。
75
+
76
+ **定点修改**:用户只点一格时,语义上只改该格,但仍须整表 fields 原样写回 + 完整 workbook(见 `targeted-fix-guide.md`)。
77
+
78
+ ### 3.2 快照配置 patch 示例
79
+
80
+ ```javascript
81
+ const wb = mergeWorkbookSafe(dev.data, (wb) => {
82
+ wb.snapshot = {
83
+ enableSnapshot: true,
84
+ cron: '0 0 0 * * ?',
85
+ // 未指定名称时的平台默认
86
+ snapshotName: `${reportName}-{date}-{time}`,
87
+ params: JSON.stringify({ searchCondition: {} }),
88
+ // 雪花 ID 必须字符串,禁止 Number(reportId)(超 MAX_SAFE_INTEGER 会截断,设计器空白)
89
+ sheetId: String(reportId),
90
+ // 更新已有配置时可带 id/jobId(同样用 String);rollback 后建议 omit 让服务端重建调度
91
+ };
92
+ // 禁止 showLocation=0
93
+ for (const sh of Object.values(wb.sheets || {})) {
94
+ if (!sh.tag) sh.tag = {};
95
+ if (!sh.tag.showLocation || sh.tag.showLocation === 0) sh.tag.showLocation = 2;
96
+ }
97
+ });
98
+ ```
99
+
100
+ ### 3.3 保存后验证清单
101
+
102
+ | 检查项 | 通过标准 |
103
+ |--------|----------|
104
+ | `fields.length` | ≥ 保存前数量(允许只增不减,除非用户要求删格) |
105
+ | 关键单元格抽样 | 如 `(1,0)` 供应商等级 `(1,5)` 进货单编号 仍存在 |
106
+ | `snapshot.enableSnapshot` | 若本次任务为开快照,回读为 true |
107
+ | 设计器肉眼 | 提示用户 Ctrl+F5 强刷 |
108
+
109
+ ---
110
+
111
+ ## 四、事故恢复
112
+
113
+ | 现象 | 处理 |
114
+ |------|------|
115
+ | 设计器空白、`fields.length===0` | `GET rollbackReport?sheetId={版本snapshotId}&originSheetId={reportId}` |
116
+ | 无版本 | 查 `getVersionWithPage`;或本地 `inspect_*.json` / 脚本备份 |
117
+ | 快照误伤后 layout 已还原 | 快照需在设计器 **页面→快照设置** 重配,或 `set_snapshot_schedule.js`(已含保护) |
118
+
119
+ **版本 ID 来源**:`save_as_version.js --list-only` → `snapshotId` 列。
120
+
121
+ ---
122
+
123
+ ## 五、脚本与模块
124
+
125
+ | 文件 | 用途 |
126
+ |------|------|
127
+ | `e10-cli report fix(内部走安全局部保存)` | **安全合并 workbook**、保存前断言、保存后验证 |
128
+ | `e10-cli report snapshot set` | 定时快照(默认名 `{报表名}-{date}-{time}`;ID 字符串;依赖 safe_report_save) |
129
+ | `e10-cli report verify blank` | 防设计区空白门禁(sheetId/showLocation/scrollPage) |
130
+ | `e10-cli report restore` | 从版本 snapshotId 还原 layout |
131
+ | `references/designer-blank-prevention-guide.md` | **设计区空白禁令与定位** |
132
+ | `已由 CLI 取代` | `merge_workbook_safe` / `assert_layout_not_empty` / `verify_layout_preserved` |
133
+
134
+ ---
135
+
136
+ ## 六、Agent 硬约束(写入 SKILL 摘要)
137
+
138
+ 1. **默认禁止**对已有报表提交空 workbook 或 0 fields 的 `saveReportDevInfo`。
139
+ 2. 设置权限 / 查询 / 数据集筛选 / 菜单 / 复制 → **不得**调用 `saveReportDevInfo`。
140
+ 3. 设置快照 → **必须** `mergeWorkbookSafe` + 保存前后 `fields.length` 校验。
141
+ 4. 用户未说「删除」「清空」「重置布局」→ **任何步骤不得使 fields 归零**。
142
+ 5. 保存前:`saveAsVersion` 或确认 `getVersionWithPage` 有可用版本。
143
+ 6. 保存后:`getReportDevInfo` 回读失败 → **停止后续操作**,优先 `rollbackReport`。
144
+
145
+ ---
146
+
147
+ ## 七、源码依据
148
+
149
+ - `EdcReportDevDesignServiceImpl.saveReportDevInfoLast`:解压 workbook → `getFieldsFromWorkbook(wb)` → **全量** `saveFields` 覆盖 DB。
150
+ - `Workbook.snapshot`:`saveSnapshot(wb, reportId)` 仅在 workbook 含 snapshot 对象时执行;与 fields 同一保存事务。
151
+ - `workbookProps` 与 `fields` 分离存储;API 返回的 `workbookProps.sheets` 常不含 dataTable,**不能**作为唯一布局来源。
@@ -0,0 +1,84 @@
1
+ # 雪花 ID 精度安全指南
2
+
3
+ > **适用场景**:复制报表、权限绑定、添加到菜单、删除/回收站等一切涉及 `reportId` / `pageId` 的 API 链路。
4
+ > **事故案例**:`copySheet` 返回 `1311221384923619328`,Node `JSON.parse` 后变为 `1311221384923619300`(末位差 28),导致权限与菜单绑到不存在的 ID。
5
+
6
+ ---
7
+
8
+ ## 一、根因
9
+
10
+ | 项 | 值 |
11
+ |----|-----|
12
+ | E10 ID 类型 | 64 位雪花 ID(19 位十进制) |
13
+ | JS 安全整数上限 | `Number.MAX_SAFE_INTEGER = 9007199254740991`(16 位) |
14
+ | 后果 | `JSON.parse('{"id":1311221384923619328}')` → `id === 1311221384923619300` |
15
+
16
+ **Python 注意**:`json.loads` 大整数默认可保留,但 `int(report_id)` 传给部分接口仍会溢出;**全程用 `str` 承载 ID**。
17
+
18
+ ---
19
+
20
+ ## 二、强制规则(Agent)
21
+
22
+ 1. **禁止**对含 `id` / `reportId` / `pageId` 的 API 响应裸用 `JSON.parse` / `json.loads` 后直接当数字用。
23
+ 2. **必须**使用 Skill 工具:
24
+ - Node:`内置雪花安全解析` → `parseJsonSnowflakeSafe` / `extractIdFromRaw`
25
+ - Python:`内置雪花安全解析` → 同名函数
26
+ 3. **copySheet 后取新 ID 双保险**:
27
+ ```javascript
28
+ const newId = extractIdFromRaw(copyRes.raw) || stringifyId(copyRes.json.data?.id);
29
+ ```
30
+ ```python
31
+ new_id = extract_id_from_raw(cli.last_raw) or str((result.get("data") or {}).get("id", ""))
32
+ ```
33
+ 4. **后续 API 一律字符串**:`pageId`、`sourceId`、`reportId`、`sheetId` 参数禁止 `Number(id)`。
34
+ 5. **交付给用户/手册的 reportId** 必须来自 raw 提取或 snowflake 安全解析,禁止直接打印 `json.data.id`(未安全解析时)。
35
+
36
+ ---
37
+
38
+ ## 三、安全解析原理
39
+
40
+ 仅对**已知 ID 字段名**的 ≥16 位数字加引号后再 `JSON.parse`,**不**对嵌套 JSON 字符串内数字做全局替换(避免破坏 `tabs` 等字段)。
41
+
42
+ ```javascript
43
+ // 内置雪花安全解析
44
+ parseJsonSnowflakeSafe(rawText)
45
+ extractIdFromRaw(rawText, ['id', 'reportId', 'pageId'])
46
+ ```
47
+
48
+ ```python
49
+ # 内置雪花安全解析
50
+ parse_json_snowflake_safe(raw_text)
51
+ extract_id_from_raw(raw_text, keys=("id", "reportId", "pageId"))
52
+ ```
53
+
54
+ ---
55
+
56
+ ## 四、受影响 API(必用安全 ID)
57
+
58
+ | 操作 | API | ID 字段 |
59
+ |------|-----|---------|
60
+ | 复制 | `GET copySheet?sheetId=` | 响应 `data.id` |
61
+ | 权限 | `POST savePermissions` | body key、`sourceId` |
62
+ | 添加到菜单 | `POST savePublishMenu` | `page.pageId` |
63
+ | 删除 | `GET deleteReport?id=` | query `id` |
64
+ | 设计器 | `GET baseInfo?id=` | query `id` |
65
+ | 列表 | `GET report/list` | 每项 `id` |
66
+
67
+ ---
68
+
69
+ ## 五、验证清单
70
+
71
+ - [ ] copySheet 后 `newReportId` 与设计器 URL 中 ID 一致(末四位无漂移)
72
+ - [ ] `baseInfo?id={newId}` 能返回报表名称
73
+ - [ ] 菜单 `allMenus` 中 `pageId` 与报表 ID 字符串完全一致
74
+ - [ ] 权限 `getQueryItem` / `permission/table/list/new` 的 `sourceId` 正确
75
+
76
+ ---
77
+
78
+ ## 六、相关文档
79
+
80
+ | 文件 | 用途 |
81
+ |------|------|
82
+ | `report-lifecycle-api-guide.md` | 复制 / 权限 / 添加到菜单 API |
83
+ | `已由 CLI 取代` | Python 客户端(已接入 snowflake 解析) |
84
+ | `内置雪花安全解析` / `.py` | 跨语言安全解析 |