dsh-crwu-workbench 0.0.10

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 (479) hide show
  1. package/CHANGELOG.md +1516 -0
  2. package/LICENSE +26 -0
  3. package/README.en.md +204 -0
  4. package/README.md +521 -0
  5. package/SECURITY.md +39 -0
  6. package/bin/darwin-arm64/crwu +0 -0
  7. package/bin/darwin-arm64/dws +0 -0
  8. package/bin/darwin-arm64/ossutil +0 -0
  9. package/bin/manifest.json +82 -0
  10. package/bin/win32-x64/crwu.exe +0 -0
  11. package/bin/win32-x64/dws.exe +4 -0
  12. package/bin/win32-x64/ossutil.exe +0 -0
  13. package/common/skills/.synced.json +8 -0
  14. package/common/skills/crwu-dws/SKILL.md +208 -0
  15. package/common/skills/crwu-dws/references/00-/347/233/256/345/275/225/345/277/253/347/205/247schema.md +113 -0
  16. package/common/skills/crwu-dws/references/01-/345/256/241/346/240/270/344/270/213/350/275/275/344/270/216manifest/350/247/204/350/214/203.md +115 -0
  17. package/common/skills/crwu-dws/references/02-/347/274/223/345/255/230/344/270/216/345/205/234/345/272/225/346/237/245/346/211/276/350/247/204/350/214/203.md +119 -0
  18. package/common/skills/crwu-dws/scripts/test_dws_source_contract.py +493 -0
  19. package/common/skills/crwu-h3yun-login/SKILL.md +130 -0
  20. package/common/skills/crwu-h3yun-query/SKILL.md +192 -0
  21. package/config/crwu-workbench.yml +26 -0
  22. package/cordis.patch.yml +46 -0
  23. package/lib/client.js +10346 -0
  24. package/lib/index.js +11584 -0
  25. package/package.json +119 -0
  26. package/scripts/prepare.mjs +59 -0
  27. package/skills/README.md +26 -0
  28. package/skills/crwu/crwu-audit/SKILL.md +152 -0
  29. package/skills/crwu/crwu-audit/references/00-input-and-route-profile.md +232 -0
  30. package/skills/crwu/crwu-audit/references/01-report-id-resolution.md +13 -0
  31. package/skills/crwu/crwu-audit/references/02-scope-classification.md +25 -0
  32. package/skills/crwu/crwu-audit/references/03-asset-classification.md +27 -0
  33. package/skills/crwu/crwu-audit/references/04-business-classification.md +63 -0
  34. package/skills/crwu/crwu-audit/references/05-method-classification.md +66 -0
  35. package/skills/crwu/crwu-audit/references/06-overlay-classification.md +42 -0
  36. package/skills/crwu/crwu-audit/references/07-skill-registry.md +57 -0
  37. package/skills/crwu/crwu-audit/references/08-union-dispatch-rules.md +142 -0
  38. package/skills/crwu/crwu-audit/references/09-review-risk-classification.md +85 -0
  39. package/skills/crwu/crwu-audit/references/10-capability-gap-proposal.md +68 -0
  40. package/skills/crwu/crwu-audit/references/11-html-delivery-spec.md +881 -0
  41. package/skills/crwu/crwu-audit/references/12-leaf-common-contract.md +202 -0
  42. package/skills/crwu/crwu-audit/references/13-dingtalk-result-publish.md +88 -0
  43. package/skills/crwu/crwu-audit/references/14-orchestration-workflow.md +52 -0
  44. package/skills/crwu/crwu-audit/references/99-maintenance.md +62 -0
  45. package/skills/crwu/crwu-audit/scripts/README.md +157 -0
  46. package/skills/crwu/crwu-audit/scripts/audit_delivery.py +2736 -0
  47. package/skills/crwu/crwu-audit/scripts/audit_result.schema.json +1659 -0
  48. package/skills/crwu/crwu-audit/scripts/examples/audit-result.sample.json +739 -0
  49. package/skills/crwu/crwu-audit/scripts/fetch_review_records.py +85 -0
  50. package/skills/crwu/crwu-audit/scripts/media_extract.py +513 -0
  51. package/skills/crwu/crwu-audit/scripts/prepare_materials.py +1252 -0
  52. package/skills/crwu/crwu-audit/scripts/test_audit_delivery.py +1678 -0
  53. package/skills/crwu/crwu-audit/scripts/test_audit_multiaxis_router.py +1339 -0
  54. package/skills/crwu/crwu-audit/scripts/test_fetch_review_records.py +77 -0
  55. package/skills/crwu/crwu-audit/scripts/test_media_extract.py +332 -0
  56. package/skills/crwu/crwu-audit/scripts/test_prepare_materials.py +1081 -0
  57. package/skills/crwu/crwu-audit/template/audit-report.html +435 -0
  58. package/skills/crwu/crwu-audit-asset-asset-group-goodwill/SKILL.md +38 -0
  59. package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/00-applicability.md +28 -0
  60. package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/01-kb-assembly.md +31 -0
  61. package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/02-review-focus.md +21 -0
  62. package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/03-common-contract.md +202 -0
  63. package/skills/crwu/crwu-audit-asset-debt/SKILL.md +38 -0
  64. package/skills/crwu/crwu-audit-asset-debt/references/00-applicability.md +40 -0
  65. package/skills/crwu/crwu-audit-asset-debt/references/01-kb-assembly.md +41 -0
  66. package/skills/crwu/crwu-audit-asset-debt/references/02-review-focus.md +54 -0
  67. package/skills/crwu/crwu-audit-asset-debt/references/03-common-contract.md +202 -0
  68. package/skills/crwu/crwu-audit-asset-enterprise-value/SKILL.md +38 -0
  69. package/skills/crwu/crwu-audit-asset-enterprise-value/references/00-applicability.md +31 -0
  70. package/skills/crwu/crwu-audit-asset-enterprise-value/references/01-kb-assembly.md +35 -0
  71. package/skills/crwu/crwu-audit-asset-enterprise-value/references/02-review-focus.md +33 -0
  72. package/skills/crwu/crwu-audit-asset-enterprise-value/references/03-common-contract.md +202 -0
  73. package/skills/crwu/crwu-audit-asset-equipment/SKILL.md +38 -0
  74. package/skills/crwu/crwu-audit-asset-equipment/references/00-applicability.md +40 -0
  75. package/skills/crwu/crwu-audit-asset-equipment/references/01-kb-assembly.md +39 -0
  76. package/skills/crwu/crwu-audit-asset-equipment/references/02-review-focus.md +52 -0
  77. package/skills/crwu/crwu-audit-asset-equipment/references/03-common-contract.md +202 -0
  78. package/skills/crwu/crwu-audit-asset-intangible/SKILL.md +38 -0
  79. package/skills/crwu/crwu-audit-asset-intangible/references/00-applicability.md +36 -0
  80. package/skills/crwu/crwu-audit-asset-intangible/references/01-kb-assembly.md +40 -0
  81. package/skills/crwu/crwu-audit-asset-intangible/references/02-review-focus.md +68 -0
  82. package/skills/crwu/crwu-audit-asset-intangible/references/03-common-contract.md +202 -0
  83. package/skills/crwu/crwu-audit-asset-inventory/SKILL.md +38 -0
  84. package/skills/crwu/crwu-audit-asset-inventory/references/00-applicability.md +28 -0
  85. package/skills/crwu/crwu-audit-asset-inventory/references/01-kb-assembly.md +31 -0
  86. package/skills/crwu/crwu-audit-asset-inventory/references/02-review-focus.md +21 -0
  87. package/skills/crwu/crwu-audit-asset-inventory/references/03-common-contract.md +202 -0
  88. package/skills/crwu/crwu-audit-asset-mining-right/SKILL.md +38 -0
  89. package/skills/crwu/crwu-audit-asset-mining-right/references/00-applicability.md +31 -0
  90. package/skills/crwu/crwu-audit-asset-mining-right/references/01-kb-assembly.md +35 -0
  91. package/skills/crwu/crwu-audit-asset-mining-right/references/02-review-focus.md +33 -0
  92. package/skills/crwu/crwu-audit-asset-mining-right/references/03-common-contract.md +202 -0
  93. package/skills/crwu/crwu-audit-asset-other/SKILL.md +38 -0
  94. package/skills/crwu/crwu-audit-asset-other/references/00-applicability.md +28 -0
  95. package/skills/crwu/crwu-audit-asset-other/references/01-kb-assembly.md +31 -0
  96. package/skills/crwu/crwu-audit-asset-other/references/02-review-focus.md +21 -0
  97. package/skills/crwu/crwu-audit-asset-other/references/03-common-contract.md +202 -0
  98. package/skills/crwu/crwu-audit-asset-portfolio/SKILL.md +38 -0
  99. package/skills/crwu/crwu-audit-asset-portfolio/references/00-applicability.md +28 -0
  100. package/skills/crwu/crwu-audit-asset-portfolio/references/01-kb-assembly.md +31 -0
  101. package/skills/crwu/crwu-audit-asset-portfolio/references/02-review-focus.md +21 -0
  102. package/skills/crwu/crwu-audit-asset-portfolio/references/03-common-contract.md +202 -0
  103. package/skills/crwu/crwu-audit-asset-realestate/SKILL.md +38 -0
  104. package/skills/crwu/crwu-audit-asset-realestate/references/00-applicability.md +43 -0
  105. package/skills/crwu/crwu-audit-asset-realestate/references/01-kb-assembly.md +75 -0
  106. package/skills/crwu/crwu-audit-asset-realestate/references/02-review-focus.md +93 -0
  107. package/skills/crwu/crwu-audit-asset-realestate/references/03-common-contract.md +202 -0
  108. package/skills/crwu/crwu-audit-asset-scrap-materials/SKILL.md +38 -0
  109. package/skills/crwu/crwu-audit-asset-scrap-materials/references/00-applicability.md +28 -0
  110. package/skills/crwu/crwu-audit-asset-scrap-materials/references/01-kb-assembly.md +31 -0
  111. package/skills/crwu/crwu-audit-asset-scrap-materials/references/02-review-focus.md +21 -0
  112. package/skills/crwu/crwu-audit-asset-scrap-materials/references/03-common-contract.md +202 -0
  113. package/skills/crwu/crwu-audit-asset-transport-equipment/SKILL.md +38 -0
  114. package/skills/crwu/crwu-audit-asset-transport-equipment/references/00-applicability.md +31 -0
  115. package/skills/crwu/crwu-audit-asset-transport-equipment/references/01-kb-assembly.md +35 -0
  116. package/skills/crwu/crwu-audit-asset-transport-equipment/references/02-review-focus.md +33 -0
  117. package/skills/crwu/crwu-audit-asset-transport-equipment/references/03-common-contract.md +202 -0
  118. package/skills/crwu/crwu-audit-biz-asset-operation/SKILL.md +38 -0
  119. package/skills/crwu/crwu-audit-biz-asset-operation/references/00-applicability.md +30 -0
  120. package/skills/crwu/crwu-audit-biz-asset-operation/references/01-kb-assembly.md +32 -0
  121. package/skills/crwu/crwu-audit-biz-asset-operation/references/02-review-focus.md +42 -0
  122. package/skills/crwu/crwu-audit-biz-asset-operation/references/03-common-contract.md +202 -0
  123. package/skills/crwu/crwu-audit-biz-consulting-review/SKILL.md +38 -0
  124. package/skills/crwu/crwu-audit-biz-consulting-review/references/00-applicability.md +30 -0
  125. package/skills/crwu/crwu-audit-biz-consulting-review/references/01-kb-assembly.md +32 -0
  126. package/skills/crwu/crwu-audit-biz-consulting-review/references/02-review-focus.md +40 -0
  127. package/skills/crwu/crwu-audit-biz-consulting-review/references/03-common-contract.md +202 -0
  128. package/skills/crwu/crwu-audit-biz-financial-reporting/SKILL.md +38 -0
  129. package/skills/crwu/crwu-audit-biz-financial-reporting/references/00-applicability.md +41 -0
  130. package/skills/crwu/crwu-audit-biz-financial-reporting/references/01-kb-assembly.md +40 -0
  131. package/skills/crwu/crwu-audit-biz-financial-reporting/references/02-review-focus.md +64 -0
  132. package/skills/crwu/crwu-audit-biz-financial-reporting/references/03-common-contract.md +202 -0
  133. package/skills/crwu/crwu-audit-biz-financing-debt/SKILL.md +38 -0
  134. package/skills/crwu/crwu-audit-biz-financing-debt/references/00-applicability.md +31 -0
  135. package/skills/crwu/crwu-audit-biz-financing-debt/references/01-kb-assembly.md +34 -0
  136. package/skills/crwu/crwu-audit-biz-financing-debt/references/02-review-focus.md +47 -0
  137. package/skills/crwu/crwu-audit-biz-financing-debt/references/03-common-contract.md +202 -0
  138. package/skills/crwu/crwu-audit-biz-investment-capital/SKILL.md +38 -0
  139. package/skills/crwu/crwu-audit-biz-investment-capital/references/00-applicability.md +31 -0
  140. package/skills/crwu/crwu-audit-biz-investment-capital/references/01-kb-assembly.md +34 -0
  141. package/skills/crwu/crwu-audit-biz-investment-capital/references/02-review-focus.md +47 -0
  142. package/skills/crwu/crwu-audit-biz-investment-capital/references/03-common-contract.md +202 -0
  143. package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/SKILL.md +38 -0
  144. package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/00-applicability.md +30 -0
  145. package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/01-kb-assembly.md +32 -0
  146. package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/02-review-focus.md +40 -0
  147. package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/03-common-contract.md +202 -0
  148. package/skills/crwu/crwu-audit-biz-tax-history/SKILL.md +38 -0
  149. package/skills/crwu/crwu-audit-biz-tax-history/references/00-applicability.md +29 -0
  150. package/skills/crwu/crwu-audit-biz-tax-history/references/01-kb-assembly.md +30 -0
  151. package/skills/crwu/crwu-audit-biz-tax-history/references/02-review-focus.md +33 -0
  152. package/skills/crwu/crwu-audit-biz-tax-history/references/03-common-contract.md +202 -0
  153. package/skills/crwu/crwu-audit-biz-transaction-disposal/SKILL.md +38 -0
  154. package/skills/crwu/crwu-audit-biz-transaction-disposal/references/00-applicability.md +31 -0
  155. package/skills/crwu/crwu-audit-biz-transaction-disposal/references/01-kb-assembly.md +34 -0
  156. package/skills/crwu/crwu-audit-biz-transaction-disposal/references/02-review-focus.md +47 -0
  157. package/skills/crwu/crwu-audit-biz-transaction-disposal/references/03-common-contract.md +202 -0
  158. package/skills/crwu/crwu-audit-datacheck/SKILL.md +59 -0
  159. package/skills/crwu/crwu-audit-datacheck/references/00-KB/350/243/205/351/205/215/350/241/250.md +25 -0
  160. package/skills/crwu/crwu-audit-datacheck/references/01-runtime-and-check-catalog.md +139 -0
  161. package/skills/crwu/crwu-audit-datacheck/scripts/recalc_check.py +521 -0
  162. package/skills/crwu/crwu-audit-datacheck/scripts/test_recalc_check.py +419 -0
  163. package/skills/crwu/crwu-audit-datacheck/scripts/test_skill_self_containment.py +44 -0
  164. package/skills/crwu/crwu-audit-external-data/SKILL.md +73 -0
  165. package/skills/crwu/crwu-audit-external-data/references/00-KB/350/243/205/351/205/215/350/241/250.md +38 -0
  166. package/skills/crwu/crwu-audit-external-data/references/01-connector-access.md +116 -0
  167. package/skills/crwu/crwu-audit-external-data/references/02-verification-workflow.md +78 -0
  168. package/skills/crwu/crwu-audit-external-data/scripts/connector_probe.py +374 -0
  169. package/skills/crwu/crwu-audit-external-data/scripts/test_connector_probe.py +264 -0
  170. package/skills/crwu/crwu-audit-output-filter/SKILL.md +34 -0
  171. package/skills/crwu/crwu-audit-output-filter/references/00-applicability.md +7 -0
  172. package/skills/crwu/crwu-audit-output-filter/references/01-kb-assembly.md +11 -0
  173. package/skills/crwu/crwu-audit-output-filter/references/02-review-focus.md +25 -0
  174. package/skills/crwu/crwu-audit-public-general-standards/SKILL.md +46 -0
  175. package/skills/crwu/crwu-audit-public-general-standards/references/00-applicability.md +41 -0
  176. package/skills/crwu/crwu-audit-public-general-standards/references/01-kb-assembly.md +66 -0
  177. package/skills/crwu/crwu-audit-public-general-standards/references/02-review-focus.md +111 -0
  178. package/skills/crwu/crwu-audit-public-general-standards/references/03-execution-contract.md +89 -0
  179. package/skills/crwu/crwu-dev-audit-optimize/SKILL.md +98 -0
  180. package/skills/crwu/crwu-dev-audit-optimize/references/00-/344/274/230/345/214/226/350/247/204/350/214/203/344/270/216/346/226/207/344/273/266/350/220/275/347/202/271.md +132 -0
  181. package/skills/crwu/crwu-dev-audit-optimize/references/01-/345/217/215/351/246/210/345/256/232/344/275/215/344/270/216/347/224/273/345/203/217/346/265/201/347/250/213.md +108 -0
  182. package/skills/crwu/crwu-dev-audit-optimize/references/02-/346/226/271/346/241/210/346/250/241/346/235/277/344/270/216/347/241/256/350/256/244/351/227/250/347/246/201.md +92 -0
  183. package/skills/crwu/crwu-dev-audit-optimize/references/03-AI/344/272/272/345/267/245/345/267/256/350/267/235/345/210/206/346/236/220/346/265/201/347/250/213.md +95 -0
  184. package/skills/crwu/crwu-dev-audit-optimize/scripts/examples/gap-analysis.sample.json +116 -0
  185. package/skills/crwu/crwu-dev-audit-optimize/scripts/gap_analysis.schema.json +33 -0
  186. package/skills/crwu/crwu-dev-audit-optimize/scripts/gap_analysis_delivery.py +475 -0
  187. package/skills/crwu/crwu-dev-audit-optimize/scripts/test_gap_analysis_delivery.py +855 -0
  188. package/skills/crwu/crwu-dev-audit-optimize/template/NOTICE.echarts.txt +7 -0
  189. package/skills/crwu/crwu-dev-audit-optimize/template/echarts.min.js +45 -0
  190. package/skills/crwu/crwu-dev-audit-optimize/template/gap-analysis-report.html +71 -0
  191. package/skills/crwu/crwu-dev-audit-skill-maintainer/SKILL.md +74 -0
  192. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/00-responsibility-and-modes.md +62 -0
  193. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/01-kb-source-discovery.md +89 -0
  194. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/02-child-skill-contract.md +99 -0
  195. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/03-review-item-execution-contract.md +51 -0
  196. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/04-registry-and-mapping-update.md +73 -0
  197. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/05-validation-and-delivery.md +127 -0
  198. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/06-live-routing-reconciliation.md +136 -0
  199. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/07-kb-skill-map.md +411 -0
  200. package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/README.md +200 -0
  201. package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/check_audit_skill_mappings.py +2477 -0
  202. package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/kb_tool.py +577 -0
  203. package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/test_audit_skill_maintainer.py +5097 -0
  204. package/skills/dws/LICENSE +178 -0
  205. package/skills/dws/NOTICE +17 -0
  206. package/skills/dws/dingtalk-aisearch/SKILL.md +83 -0
  207. package/skills/dws/dingtalk-aisearch/references/aisearch.md +249 -0
  208. package/skills/dws/dingtalk-aisearch/references/intent-guide.md +15 -0
  209. package/skills/dws/dingtalk-aisearch/references/lite-recipes.md +31 -0
  210. package/skills/dws/dingtalk-aitable/SKILL.md +139 -0
  211. package/skills/dws/dingtalk-aitable/references/06-data-analytics.md +11 -0
  212. package/skills/dws/dingtalk-aitable/references/aitable/aitable-advperm.md +251 -0
  213. package/skills/dws/dingtalk-aitable/references/aitable/aitable-attachment.md +49 -0
  214. package/skills/dws/dingtalk-aitable/references/aitable/aitable-best-practices.md +48 -0
  215. package/skills/dws/dingtalk-aitable/references/aitable/aitable-cell-value.md +346 -0
  216. package/skills/dws/dingtalk-aitable/references/aitable/aitable-dashboard-chart.md +46 -0
  217. package/skills/dws/dingtalk-aitable/references/aitable/aitable-data-analysis-sop.md +131 -0
  218. package/skills/dws/dingtalk-aitable/references/aitable/aitable-datasource.md +272 -0
  219. package/skills/dws/dingtalk-aitable/references/aitable/aitable-error-recovery.md +128 -0
  220. package/skills/dws/dingtalk-aitable/references/aitable/aitable-export-import.md +113 -0
  221. package/skills/dws/dingtalk-aitable/references/aitable/aitable-field-properties.md +238 -0
  222. package/skills/dws/dingtalk-aitable/references/aitable/aitable-field.md +186 -0
  223. package/skills/dws/dingtalk-aitable/references/aitable/aitable-filter-sort.md +135 -0
  224. package/skills/dws/dingtalk-aitable/references/aitable/aitable-form.md +130 -0
  225. package/skills/dws/dingtalk-aitable/references/aitable/aitable-formula-guide.md +224 -0
  226. package/skills/dws/dingtalk-aitable/references/aitable/aitable-primary-doc.md +58 -0
  227. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-create.md +52 -0
  228. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-delete.md +20 -0
  229. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-history.md +97 -0
  230. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-name-key.md +47 -0
  231. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-query.md +120 -0
  232. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-share.md +54 -0
  233. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-stats.md +59 -0
  234. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-update.md +66 -0
  235. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-upsert.md +89 -0
  236. package/skills/dws/dingtalk-aitable/references/aitable/aitable-view-config.md +140 -0
  237. package/skills/dws/dingtalk-aitable/references/aitable/aitable-view-extras.md +195 -0
  238. package/skills/dws/dingtalk-aitable/references/aitable/aitable-view-types.md +95 -0
  239. package/skills/dws/dingtalk-aitable/references/aitable/aitable-workflow.md +384 -0
  240. package/skills/dws/dingtalk-aitable/references/aitable-record-ops.md +80 -0
  241. package/skills/dws/dingtalk-aitable/references/aitable-section.md +30 -0
  242. package/skills/dws/dingtalk-aitable/references/aitable.md +59 -0
  243. package/skills/dws/dingtalk-aitable/references/field-rules.md +17 -0
  244. package/skills/dws/dingtalk-aitable/references/intent-guide.md +17 -0
  245. package/skills/dws/dingtalk-aitable/references/recipes/conventions.md +44 -0
  246. package/skills/dws/dingtalk-aitable/references/url-patterns.md +144 -0
  247. package/skills/dws/dingtalk-aitable/scripts/aitable_export_via_task.py +210 -0
  248. package/skills/dws/dingtalk-aitable/scripts/aitable_import_via_task.py +173 -0
  249. package/skills/dws/dingtalk-aitable/scripts/bulk_add_fields.py +273 -0
  250. package/skills/dws/dingtalk-aitable/scripts/import_records.py +333 -0
  251. package/skills/dws/dingtalk-aitable/scripts/upload_attachment.py +190 -0
  252. package/skills/dws/dingtalk-calendar/SKILL.md +137 -0
  253. package/skills/dws/dingtalk-calendar/references/03-meeting.md +56 -0
  254. package/skills/dws/dingtalk-calendar/references/calendar.md +760 -0
  255. package/skills/dws/dingtalk-calendar/references/intent-guide.md +9 -0
  256. package/skills/dws/dingtalk-calendar/references/lite-recipes.md +25 -0
  257. package/skills/dws/dingtalk-calendar/scripts/calendar_free_slot_finder.py +199 -0
  258. package/skills/dws/dingtalk-calendar/scripts/calendar_schedule_meeting.py +233 -0
  259. package/skills/dws/dingtalk-calendar/scripts/calendar_today_agenda.py +139 -0
  260. package/skills/dws/dingtalk-chat/SKILL.md +127 -0
  261. package/skills/dws/dingtalk-chat/references/01-messaging.md +103 -0
  262. package/skills/dws/dingtalk-chat/references/card/callback.md +10 -0
  263. package/skills/dws/dingtalk-chat/references/card/create.md +27 -0
  264. package/skills/dws/dingtalk-chat/references/card/schema.md +14 -0
  265. package/skills/dws/dingtalk-chat/references/card/update.md +13 -0
  266. package/skills/dws/dingtalk-chat/references/chat/chat-bot.md +187 -0
  267. package/skills/dws/dingtalk-chat/references/chat/chat-conversation.md +165 -0
  268. package/skills/dws/dingtalk-chat/references/chat/group-admin.md +144 -0
  269. package/skills/dws/dingtalk-chat/references/chat/group-discovery.md +121 -0
  270. package/skills/dws/dingtalk-chat/references/chat/message-actions.md +132 -0
  271. package/skills/dws/dingtalk-chat/references/chat/message-media.md +76 -0
  272. package/skills/dws/dingtalk-chat/references/chat/message-query.md +135 -0
  273. package/skills/dws/dingtalk-chat/references/chat/thread.md +46 -0
  274. package/skills/dws/dingtalk-chat/references/chat-emoji-list.md +216 -0
  275. package/skills/dws/dingtalk-chat/references/chat.md +140 -0
  276. package/skills/dws/dingtalk-chat/references/contracts.md +70 -0
  277. package/skills/dws/dingtalk-chat/references/intent-guide.md +56 -0
  278. package/skills/dws/dingtalk-contact/SKILL.md +122 -0
  279. package/skills/dws/dingtalk-contact/references/08-directory.md +51 -0
  280. package/skills/dws/dingtalk-contact/references/contact.md +595 -0
  281. package/skills/dws/dingtalk-contact/references/intent-guide.md +14 -0
  282. package/skills/dws/dingtalk-contact/references/lite-recipes.md +30 -0
  283. package/skills/dws/dingtalk-contact/references/recipes/conventions.md +44 -0
  284. package/skills/dws/dingtalk-contact/scripts/contact_dept_members.py +130 -0
  285. package/skills/dws/dingtalk-doc/SKILL.md +112 -0
  286. package/skills/dws/dingtalk-doc/references/04-document.md +57 -0
  287. package/skills/dws/dingtalk-doc/references/contracts.md +40 -0
  288. package/skills/dws/dingtalk-doc/references/doc/doc-block.md +39 -0
  289. package/skills/dws/dingtalk-doc/references/doc/doc-comment.md +29 -0
  290. package/skills/dws/dingtalk-doc/references/doc/doc-create.md +54 -0
  291. package/skills/dws/dingtalk-doc/references/doc/doc-export.md +30 -0
  292. package/skills/dws/dingtalk-doc/references/doc/doc-import.md +28 -0
  293. package/skills/dws/dingtalk-doc/references/doc/doc-info.md +12 -0
  294. package/skills/dws/dingtalk-doc/references/doc/doc-media.md +46 -0
  295. package/skills/dws/dingtalk-doc/references/doc/doc-read.md +56 -0
  296. package/skills/dws/dingtalk-doc/references/doc/doc-update.md +87 -0
  297. package/skills/dws/dingtalk-doc/references/doc/format/doc-jsonml-cookbook.md +469 -0
  298. package/skills/dws/dingtalk-doc/references/doc/format/doc-jsonml-schema.json +526 -0
  299. package/skills/dws/dingtalk-doc/references/doc/format/doc-jsonml-schema.md +711 -0
  300. package/skills/dws/dingtalk-doc/references/doc/style/doc-create-workflow.md +414 -0
  301. package/skills/dws/dingtalk-doc/references/doc/style/doc-style-guideline.md +404 -0
  302. package/skills/dws/dingtalk-doc/references/doc/style/doc-update-workflow.md +316 -0
  303. package/skills/dws/dingtalk-doc/references/doc.md +82 -0
  304. package/skills/dws/dingtalk-doc/references/intent-guide.md +20 -0
  305. package/skills/dws/dingtalk-drive/SKILL.md +128 -0
  306. package/skills/dws/dingtalk-drive/references/drive.md +126 -0
  307. package/skills/dws/dingtalk-drive/references/folder-sync.md +40 -0
  308. package/skills/dws/dingtalk-drive/references/intent-guide.md +22 -0
  309. package/skills/dws/dingtalk-drive/references/lite-recipes.md +39 -0
  310. package/skills/dws/dingtalk-event/SKILL.md +106 -0
  311. package/skills/dws/dingtalk-event/references/event-im-keys.md +54 -0
  312. package/skills/dws/dingtalk-event/references/event-im-lifecycle.md +35 -0
  313. package/skills/dws/dingtalk-event/references/event-im-operations.md +52 -0
  314. package/skills/dws/dingtalk-event/references/event-im-output.md +39 -0
  315. package/skills/dws/dingtalk-event/references/event-im.md +58 -0
  316. package/skills/dws/dingtalk-event/references/event-oa.md +155 -0
  317. package/skills/dws/dingtalk-event/references/event-todo.md +50 -0
  318. package/skills/dws/dingtalk-event/references/event-voip.md +69 -0
  319. package/skills/dws/dingtalk-mail/SKILL.md +113 -0
  320. package/skills/dws/dingtalk-mail/references/09-mail.md +45 -0
  321. package/skills/dws/dingtalk-mail/references/intent-guide.md +8 -0
  322. package/skills/dws/dingtalk-mail/references/lite-recipes.md +45 -0
  323. package/skills/dws/dingtalk-mail/references/mail.md +1889 -0
  324. package/skills/dws/dingtalk-mail/references/recipes/conventions.md +44 -0
  325. package/skills/dws/dingtalk-mail/scripts/mail_send_with_cc.py +122 -0
  326. package/skills/dws/dingtalk-mail/scripts/mail_unread_summary.py +114 -0
  327. package/skills/dws/dingtalk-minutes/SKILL.md +116 -0
  328. package/skills/dws/dingtalk-minutes/references/07-minutes.md +149 -0
  329. package/skills/dws/dingtalk-minutes/references/10-minutes-speaker-match.md +32 -0
  330. package/skills/dws/dingtalk-minutes/references/11-minutes-speaker-correct.md +40 -0
  331. package/skills/dws/dingtalk-minutes/references/intent-guide.md +79 -0
  332. package/skills/dws/dingtalk-minutes/references/lite-recipes.md +25 -0
  333. package/skills/dws/dingtalk-minutes/references/minutes.md +210 -0
  334. package/skills/dws/dingtalk-minutes/references/recipes/conventions.md +33 -0
  335. package/skills/dws/dingtalk-minutes/scripts/minutes_recent_summary.py +196 -0
  336. package/skills/dws/dingtalk-minutes/scripts/test_minutes_scripts.py +222 -0
  337. package/skills/dws/dingtalk-misc/SKILL.md +55 -0
  338. package/skills/dws/dingtalk-misc/references/05-reporting.md +29 -0
  339. package/skills/dws/dingtalk-misc/references/agoal.md +302 -0
  340. package/skills/dws/dingtalk-misc/references/attendance-intent-guide.md +7 -0
  341. package/skills/dws/dingtalk-misc/references/attendance-report.md +109 -0
  342. package/skills/dws/dingtalk-misc/references/attendance-schedule.md +115 -0
  343. package/skills/dws/dingtalk-misc/references/attendance-vacation.md +129 -0
  344. package/skills/dws/dingtalk-misc/references/attendance.md +149 -0
  345. package/skills/dws/dingtalk-misc/references/dev/app.md +42 -0
  346. package/skills/dws/dingtalk-misc/references/dev/connect.md +108 -0
  347. package/skills/dws/dingtalk-misc/references/dev/credentials.md +26 -0
  348. package/skills/dws/dingtalk-misc/references/dev/dev-index.md +13 -0
  349. package/skills/dws/dingtalk-misc/references/dev/event.md +47 -0
  350. package/skills/dws/dingtalk-misc/references/dev/mcp.md +106 -0
  351. package/skills/dws/dingtalk-misc/references/dev/member.md +19 -0
  352. package/skills/dws/dingtalk-misc/references/dev/permission.md +56 -0
  353. package/skills/dws/dingtalk-misc/references/dev/recipes.md +58 -0
  354. package/skills/dws/dingtalk-misc/references/dev/robot.md +74 -0
  355. package/skills/dws/dingtalk-misc/references/dev/security.md +21 -0
  356. package/skills/dws/dingtalk-misc/references/dev/version.md +99 -0
  357. package/skills/dws/dingtalk-misc/references/dev/webapp.md +22 -0
  358. package/skills/dws/dingtalk-misc/references/devapp.md +148 -0
  359. package/skills/dws/dingtalk-misc/references/devdoc-intent-guide.md +7 -0
  360. package/skills/dws/dingtalk-misc/references/devdoc.md +42 -0
  361. package/skills/dws/dingtalk-misc/references/ding.md +184 -0
  362. package/skills/dws/dingtalk-misc/references/hrbrain.md +67 -0
  363. package/skills/dws/dingtalk-misc/references/live.md +23 -0
  364. package/skills/dws/dingtalk-misc/references/markdown.md +167 -0
  365. package/skills/dws/dingtalk-misc/references/oa/oa-form-components.md +345 -0
  366. package/skills/dws/dingtalk-misc/references/oa/oa-process-nodes.md +374 -0
  367. package/skills/dws/dingtalk-misc/references/oa.md +1014 -0
  368. package/skills/dws/dingtalk-misc/references/openapi-explorer.md +47 -0
  369. package/skills/dws/dingtalk-misc/references/pat.md +52 -0
  370. package/skills/dws/dingtalk-misc/references/profile.md +41 -0
  371. package/skills/dws/dingtalk-misc/references/recruit.md +89 -0
  372. package/skills/dws/dingtalk-misc/references/report-conventions.md +44 -0
  373. package/skills/dws/dingtalk-misc/references/report-intent-guide.md +11 -0
  374. package/skills/dws/dingtalk-misc/references/report-lite-recipes.md +25 -0
  375. package/skills/dws/dingtalk-misc/references/report.md +109 -0
  376. package/skills/dws/dingtalk-misc/references/sheet/sheet-batch-operations.md +104 -0
  377. package/skills/dws/dingtalk-misc/references/sheet/sheet-chart.md +69 -0
  378. package/skills/dws/dingtalk-misc/references/sheet/sheet-comment.md +166 -0
  379. package/skills/dws/dingtalk-misc/references/sheet/sheet-conditional-format.md +59 -0
  380. package/skills/dws/dingtalk-misc/references/sheet/sheet-dimension-operations.md +60 -0
  381. package/skills/dws/dingtalk-misc/references/sheet/sheet-dropdown.md +103 -0
  382. package/skills/dws/dingtalk-misc/references/sheet/sheet-export.md +135 -0
  383. package/skills/dws/dingtalk-misc/references/sheet/sheet-filter-view.md +51 -0
  384. package/skills/dws/dingtalk-misc/references/sheet/sheet-filter.md +181 -0
  385. package/skills/dws/dingtalk-misc/references/sheet/sheet-formula.md +192 -0
  386. package/skills/dws/dingtalk-misc/references/sheet/sheet-import.md +76 -0
  387. package/skills/dws/dingtalk-misc/references/sheet/sheet-media-image.md +263 -0
  388. package/skills/dws/dingtalk-misc/references/sheet/sheet-pivot-table.md +292 -0
  389. package/skills/dws/dingtalk-misc/references/sheet/sheet-range-operations.md +161 -0
  390. package/skills/dws/dingtalk-misc/references/sheet/sheet-read-data.md +60 -0
  391. package/skills/dws/dingtalk-misc/references/sheet/sheet-revision-changeset.md +46 -0
  392. package/skills/dws/dingtalk-misc/references/sheet/sheet-search-replace.md +120 -0
  393. package/skills/dws/dingtalk-misc/references/sheet/sheet-style-format.md +71 -0
  394. package/skills/dws/dingtalk-misc/references/sheet/sheet-version.md +84 -0
  395. package/skills/dws/dingtalk-misc/references/sheet/sheet-workbook.md +59 -0
  396. package/skills/dws/dingtalk-misc/references/sheet/sheet-write-data.md +93 -0
  397. package/skills/dws/dingtalk-misc/references/sheet-conventions.md +44 -0
  398. package/skills/dws/dingtalk-misc/references/sheet-intent-guide.md +12 -0
  399. package/skills/dws/dingtalk-misc/references/sheet.md +166 -0
  400. package/skills/dws/dingtalk-misc/references/skill.md +98 -0
  401. package/skills/dws/dingtalk-misc/references/unsupported-scripts.md +49 -0
  402. package/skills/dws/dingtalk-misc/references/url-patterns.md +144 -0
  403. package/skills/dws/dingtalk-misc/references/whiteboard/compose.md +200 -0
  404. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/01-overview.md +57 -0
  405. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/02-query.md +288 -0
  406. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/03-update.md +249 -0
  407. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/04-text-style.md +395 -0
  408. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/05-shape-frame-group-connector.md +186 -0
  409. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/06-vector-icon-path.md +313 -0
  410. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/07-examples-errors-write-support.md +270 -0
  411. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/08-catalogs.md +61 -0
  412. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1.md +54 -0
  413. package/skills/dws/dingtalk-misc/references/whiteboard/replace.md +41 -0
  414. package/skills/dws/dingtalk-misc/references/whiteboard/vector.md +51 -0
  415. package/skills/dws/dingtalk-misc/references/whiteboard.md +115 -0
  416. package/skills/dws/dingtalk-misc/scripts/aiapp_create_and_poll.py +138 -0
  417. package/skills/dws/dingtalk-misc/scripts/attendance_my_record.py +91 -0
  418. package/skills/dws/dingtalk-misc/scripts/attendance_report_checkin.py +440 -0
  419. package/skills/dws/dingtalk-misc/scripts/attendance_report_common.py +1698 -0
  420. package/skills/dws/dingtalk-misc/scripts/attendance_report_daily.py +558 -0
  421. package/skills/dws/dingtalk-misc/scripts/attendance_report_detail.py +809 -0
  422. package/skills/dws/dingtalk-misc/scripts/attendance_report_monthly.py +758 -0
  423. package/skills/dws/dingtalk-misc/scripts/attendance_report_record.py +947 -0
  424. package/skills/dws/dingtalk-misc/scripts/attendance_schedule_export.py +344 -0
  425. package/skills/dws/dingtalk-misc/scripts/attendance_schedule_import.py +498 -0
  426. package/skills/dws/dingtalk-misc/scripts/attendance_team_shift.py +89 -0
  427. package/skills/dws/dingtalk-misc/scripts/attendance_vacation_balance.py +617 -0
  428. package/skills/dws/dingtalk-misc/scripts/finance_daily_cashflow.py +70 -0
  429. package/skills/dws/dingtalk-misc/scripts/finance_expense_flow.py +138 -0
  430. package/skills/dws/dingtalk-misc/scripts/oa_batch_approve.py +158 -0
  431. package/skills/dws/dingtalk-misc/scripts/oa_pending_review.py +132 -0
  432. package/skills/dws/dingtalk-misc/scripts/report_received_today.py +315 -0
  433. package/skills/dws/dingtalk-misc/scripts/yida_custom_page_update.py +401 -0
  434. package/skills/dws/dingtalk-misc/scripts/yida_form_builder.py +526 -0
  435. package/skills/dws/dingtalk-misc/scripts/yida_form_fields.py +315 -0
  436. package/skills/dws/dingtalk-misc/scripts/yida_form_inspector.py +311 -0
  437. package/skills/dws/dingtalk-misc/scripts/yida_form_update.py +185 -0
  438. package/skills/dws/dingtalk-misc/scripts/yida_jsx_pipeline.py +1588 -0
  439. package/skills/dws/dingtalk-misc/scripts/yida_page_compiler.py +1441 -0
  440. package/skills/dws/dingtalk-misc/scripts/yida_page_generate.py +514 -0
  441. package/skills/dws/dingtalk-misc/scripts/yida_page_schema.py +519 -0
  442. package/skills/dws/dingtalk-misc/scripts/yida_page_self_check.py +398 -0
  443. package/skills/dws/dingtalk-misc/scripts/yida_process_flow.py +1478 -0
  444. package/skills/dws/dingtalk-misc/scripts/yida_process_update.py +589 -0
  445. package/skills/dws/dingtalk-misc/scripts/yida_report_builder.py +494 -0
  446. package/skills/dws/dingtalk-misc/scripts/yida_report_charts.py +1434 -0
  447. package/skills/dws/dingtalk-misc/scripts/yida_report_update.py +244 -0
  448. package/skills/dws/dingtalk-misc/scripts/yida_schema_common.py +340 -0
  449. package/skills/dws/dingtalk-shared/SKILL.md +83 -0
  450. package/skills/dws/dingtalk-shared/references/capability-limits.md +31 -0
  451. package/skills/dws/dingtalk-shared/references/channel-login.md +26 -0
  452. package/skills/dws/dingtalk-shared/references/confirmation.md +59 -0
  453. package/skills/dws/dingtalk-shared/references/error-codes.md +155 -0
  454. package/skills/dws/dingtalk-shared/references/global-reference.md +122 -0
  455. package/skills/dws/dingtalk-shared/references/intent-guide.md +537 -0
  456. package/skills/dws/dingtalk-shared/references/recipes/conventions.md +45 -0
  457. package/skills/dws/dingtalk-shared/references/recipes/lite-catalog.md +275 -0
  458. package/skills/dws/dingtalk-shared/references/recipes/meta.md +67 -0
  459. package/skills/dws/dingtalk-shared/references/routing.md +52 -0
  460. package/skills/dws/dingtalk-shared/references/runtime-contract.md +11 -0
  461. package/skills/dws/dingtalk-shared/references/schema-usage.md +88 -0
  462. package/skills/dws/dingtalk-shared/references/url-patterns.md +144 -0
  463. package/skills/dws/dingtalk-shared/references/workflow-routing.md +45 -0
  464. package/skills/dws/dingtalk-todo/SKILL.md +119 -0
  465. package/skills/dws/dingtalk-todo/references/02-task.md +70 -0
  466. package/skills/dws/dingtalk-todo/references/intent-guide.md +15 -0
  467. package/skills/dws/dingtalk-todo/references/lite-recipes.md +68 -0
  468. package/skills/dws/dingtalk-todo/references/recipes/conventions.md +44 -0
  469. package/skills/dws/dingtalk-todo/references/todo.md +517 -0
  470. package/skills/dws/dingtalk-todo/scripts/todo_batch_create.py +354 -0
  471. package/skills/dws/dingtalk-todo/scripts/todo_daily_summary.py +153 -0
  472. package/skills/dws/dingtalk-todo/scripts/todo_overdue_check.py +101 -0
  473. package/skills/dws/dingtalk-wiki/SKILL.md +117 -0
  474. package/skills/dws/dingtalk-wiki/references/intent-guide.md +14 -0
  475. package/skills/dws/dingtalk-wiki/references/lite-recipes.md +44 -0
  476. package/skills/dws/dingtalk-wiki/references/wiki-members.md +32 -0
  477. package/skills/dws/dingtalk-wiki/references/wiki-node-ops.md +46 -0
  478. package/skills/dws/dingtalk-wiki/references/wiki.md +65 -0
  479. package/skills/dws/provenance.json +27 -0
@@ -0,0 +1,195 @@
1
+ # 视图扩展操作(lock / frozen-cols / row-height / fill-color-rule / duplicate)
2
+
3
+ 本文档讲 5 项视图操作命令:
4
+
5
+ - 锁定 / 解锁视图:`view lock` / `view get lock`
6
+ - 冻结列:`view update frozen-cols` / `view get frozen-cols`
7
+ - 行高:`view update row-height` / `view get row-height`
8
+ - 数据高亮规则(条件填色):`view update fill-color-rule` / `view get fill-color-rule`
9
+ - 复制视图:`view duplicate`
10
+
11
+ 本文只负责上面 5 项额外能力。普通列顺序/filter/sort/group/列宽,以及 card/timebar/aggregate,均由根 Skill 直接路由到各自 reference;选中本文后不要再加载其他视图 reference。这 5 项**不能**通过 `view update --config '{...}'` 写入,必须用各自专属子命令。
12
+
13
+ ## 命令矩阵
14
+
15
+ | 子命令 | 用途 | 必填参数 | 适用 viewType |
16
+ |---|---|---|---|
17
+ | `view lock [--off]` | 锁定(默认)/ 解锁视图 | `--base-id --table-id --view-id` | 全部 |
18
+ | `view get lock` | 读取锁定状态 | `--base-id --table-id --view-id` | 全部 |
19
+ | `view update frozen-cols --count N` | 冻结左侧 N 列(0 取消) | `--base-id --table-id --view-id --count` | Grid |
20
+ | `view get frozen-cols` | 读取冻结列数 | `--base-id --table-id --view-id` | Grid |
21
+ | `view update row-height --cell-height N` | 设置单元格高度(像素) | `--base-id --table-id --view-id --cell-height` | Grid |
22
+ | `view get row-height` | 读取单元格高度 | `--base-id --table-id --view-id` | Grid |
23
+ | `view update fill-color-rule --json '[...]'` | 全量覆盖条件填色规则 | `--base-id --table-id --view-id --json` | Grid |
24
+ | `view get fill-color-rule` | 读取条件填色规则 | `--base-id --table-id --view-id` | 全部(其他视图返回 `[]`) |
25
+ | `view duplicate [--new-name X]` | 复制视图 | `--base-id --table-id --view-id` | 全部 |
26
+
27
+ ## 视图锁定 / 解锁
28
+
29
+ ```bash
30
+ # 锁定(默认)
31
+ dws aitable view lock --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID
32
+
33
+ # 解锁
34
+ dws aitable view lock --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --off
35
+
36
+ # 查询当前是否锁定
37
+ dws aitable view get lock --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --format json
38
+ # → {"data": {"baseId": ..., "tableId": ..., "viewId": ..., "locked": true|false}}
39
+ ```
40
+
41
+ 锁定的视图禁止他人修改其配置(filter/sort/group/字段顺序等),但记录读写不受影响。锁定状态可重复 set,幂等。
42
+
43
+ ## 冻结列(仅 Grid)
44
+
45
+ ```bash
46
+ # 冻结从首列起 1 列
47
+ dws aitable view update frozen-cols --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --count 1
48
+
49
+ # 取消冻结
50
+ dws aitable view update frozen-cols --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --count 0
51
+
52
+ # 查询当前冻结列数
53
+ dws aitable view get frozen-cols --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --format json
54
+ # → {"data": {..., "count": 1}} count 为 null 表示视图未显式设置
55
+ ```
56
+
57
+ `--count` 必须 ≥ 0;负数会被拒绝。
58
+
59
+ ## 行高(仅 Grid)
60
+
61
+ ⚠️ **`--cell-height` 只接受 4 档枚举:32 / 56 / 88 / 128**(与前端 CELL_HEIGHTS 约定一致),其他值会被拒绝。默认值为 32。
62
+
63
+ ```bash
64
+ # 设置行高 — 推荐档位 32 / 56 / 88 / 128
65
+ dws aitable view update row-height --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --cell-height 56
66
+
67
+ # 查询当前行高
68
+ dws aitable view get row-height --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --format json
69
+ # → {"data": {..., "cellHeight": 56}} cellHeight 为 null 表示视图未显式设置(前端按 32 渲染)
70
+ ```
71
+
72
+ ## 数据高亮规则(条件填色,仅 Grid)
73
+
74
+ `view update fill-color-rule` **整组覆盖**,传 `--json '[]'` 清空所有规则。
75
+
76
+ ### 规则结构
77
+
78
+ 每条规则 JSON 结构:
79
+
80
+ ```jsonc
81
+ {
82
+ "type": "cell" | "row" | "column" | "preRow",
83
+ "formatFieldId": "fldX", // 命中规则后被高亮的字段(cell/column 类型有意义)
84
+ "format": { "color": "firstLine5" }, // ⚠️ 必须用 FORMAT_COLORS 代号,不接受 hex
85
+ "filters": [ // 当前固定 1 条
86
+ {
87
+ "fieldId": "fldX", // ⚠️ 不是 operands[0]
88
+ "symbol": "GT", // ⚠️ 不是 operator;大写枚举
89
+ "value": 100 // 部分 symbol(EXIST/UN_EXIST)不需要 value
90
+ }
91
+ ]
92
+ }
93
+ ```
94
+
95
+ ### color 合法值(FORMAT_COLORS)
96
+
97
+ `firstLine1` ~ `firstLine11`(共 11 档色码,对应前端调色盘)。**不接受 `#FF0000` 这种 hex**。
98
+
99
+ ### filter.symbol 合法值
100
+
101
+ | 类别 | symbol |
102
+ |---|---|
103
+ | 数值/通用比较 | `GT` / `LT` / `GTE` / `LTE` / `EQ` / `NE` |
104
+ | 文本 | `CONTAIN` / `EXCLUSIVE` |
105
+ | 存在性(无 value) | `EXIST` / `UN_EXIST` |
106
+ | 多选 / 集合 | `ALL_OF` / `ANY_OF` / `NONE_OF` |
107
+ | 日期 | `BEFORE` / `AFTER` / `NOT_BEFORE` / `NOT_AFTER` / `DATE_EQ` / `FROM_NOW` / `DATE_BETWEEN` |
108
+
109
+ > **与 `record query --filters` / `view update filter` 的格式不同**:那两处用 `{operator, operands}` 结构;这里是 `{fieldId, symbol, value}`。不要混用。
110
+
111
+ ### 典型用法
112
+
113
+ ```bash
114
+ # 1) 给金额字段 > 100 的单元格上 firstLine5 色
115
+ dws aitable view update fill-color-rule --base-id BASE_ID --table-id TABLE_ID --view-id GRID_ID --json '[
116
+ {
117
+ "type":"cell",
118
+ "formatFieldId":"fldAmount",
119
+ "format":{"color":"firstLine5"},
120
+ "filters":[{"fieldId":"fldAmount","symbol":"GT","value":100}]
121
+ }
122
+ ]'
123
+
124
+ # 2) 清空所有规则
125
+ dws aitable view update fill-color-rule --base-id BASE_ID --table-id TABLE_ID --view-id GRID_ID --json '[]'
126
+
127
+ # 3) 查询当前规则
128
+ dws aitable view get fill-color-rule --base-id BASE_ID --table-id TABLE_ID --view-id GRID_ID --format json
129
+ # → {"data": [...]} 数组
130
+ ```
131
+
132
+ > **写入后请用 `view get fill-color-rule` 二次确认实际生效**,以读到的 `data` 数组为准。
133
+
134
+ ## 复制视图
135
+
136
+ ```bash
137
+ # 显式命名
138
+ dws aitable view duplicate --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --new-name "副本视图"
139
+
140
+ # 系统自动命名(一般是 "原视图名 (副本)")
141
+ dws aitable view duplicate --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --format json
142
+ # → {"data": {..., "viewId": "<新视图ID>", "sourceViewId": "<原视图ID>", "viewName": "..."}}
143
+ ```
144
+
145
+ 复制会保留源视图的 filter / sort / group / visible-fields / card / timebar 等全部配置;新视图的 viewId 与源视图独立。
146
+
147
+ ## 这些字段不能用 `view update --config '{...}'` 写
148
+
149
+ 下列字段必须用对应的专属子命令;如果错塞进 `view update --config`,CLI 会在 stderr 提示对应子命令并拒绝把字段当 view config 处理:
150
+
151
+ | 错误用法 | 应改用 |
152
+ |---|---|
153
+ | `--config '{"flags":1}'` | `view lock` / `view lock --off` |
154
+ | `--config '{"frozenColCount":2}'` | `view update frozen-cols --count N` |
155
+ | `--config '{"cellHeight":56}'` | `view update row-height --cell-height N` |
156
+ | `--config '{"rowHeightLevel":"tall"}'` | `view update row-height --cell-height N`(合法档位 32/56/88/128) |
157
+ | `--config '{"conditionalFormats":[...]}'` | `view update fill-color-rule --json '[...]'` |
158
+
159
+ ## 典型工作流
160
+
161
+ ### 配置一个"金额超阈值红色高亮"的 Grid 视图
162
+
163
+ ```bash
164
+ BASE=baseXXX; TABLE=tblYYY; VIEW=viwGridZZ; FLD=fldAmount
165
+
166
+ # 1) 关键字段冻结,避免横向滚动看不到
167
+ dws aitable view update frozen-cols --base-id $BASE --table-id $TABLE --view-id $VIEW --count 1
168
+
169
+ # 2) 加大行高让数据更易读
170
+ dws aitable view update row-height --base-id $BASE --table-id $TABLE --view-id $VIEW --cell-height 56
171
+
172
+ # 3) 金额 > 100 的单元格上色
173
+ dws aitable view update fill-color-rule --base-id $BASE --table-id $TABLE --view-id $VIEW --json "[
174
+ {\"type\":\"cell\",\"formatFieldId\":\"$FLD\",\"format\":{\"color\":\"firstLine5\"},
175
+ \"filters\":[{\"fieldId\":\"$FLD\",\"symbol\":\"GT\",\"value\":100}]}
176
+ ]"
177
+
178
+ # 4) 锁定视图,防止他人改坏
179
+ dws aitable view lock --base-id $BASE --table-id $TABLE --view-id $VIEW
180
+ ```
181
+
182
+ ### 复制一个"金牌客户"视图给销售团队
183
+
184
+ ```bash
185
+ dws aitable view duplicate --base-id BASE_ID --table-id TABLE_ID --view-id viw_VIP_template --new-name "金牌客户-华东区"
186
+ # 取返回里 data.viewId 进一步定制
187
+ ```
188
+
189
+ ### 排查"我设置了高亮规则为啥没生效"
190
+
191
+ ```bash
192
+ # 看实际生效的 conditionalFormats
193
+ dws aitable view get fill-color-rule --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --format json
194
+ # → 如果是 [] 说明上次写入失败;常见原因:color 用了 hex(必须 firstLineN)/ filter 用了 operator(必须 symbol)
195
+ ```
@@ -0,0 +1,95 @@
1
+ # 视图类型专属配置(card / timebar / aggregate)
2
+
3
+ 仅在任务明确涉及 Kanban/Gallery 卡片、Gantt 时间轴或 Grid 聚合时读取。本文件自包含这三类属性的命令与工作流;普通列顺序、筛选、排序、分组和列宽由根 Skill 直接路由到通用视图配置 reference,不要连读两个视图 reference。
4
+
5
+ 所有命令都必须同时传 `--base-id`、`--table-id`、`--view-id`。`view get/update card` 会先读取一次 viewType,再按 Kanban/Gallery 分发;timebar 仅 Gantt,aggregate 仅 Grid。
6
+
7
+ ## 支持矩阵
8
+
9
+ | viewType | card | timebar | aggregate |
10
+ |---|:---:|:---:|:---:|
11
+ | Grid | | | ✅ |
12
+ | Kanban | ✅ | | |
13
+ | Gallery | ✅ | | |
14
+ | Gantt | | ✅ | |
15
+ | Calendar | | | |
16
+
17
+ ## 读取专属属性
18
+
19
+ ```bash
20
+ dws aitable view get card --base-id <B> --table-id <T> --view-id <V> --format json
21
+ dws aitable view get timebar --base-id <B> --table-id <T> --view-id <V> --format json
22
+ dws aitable view get aggregate --base-id <B> --table-id <T> --view-id <V> --format json
23
+ ```
24
+
25
+ ## card(Kanban / Gallery)
26
+
27
+ 服务端按 viewType 分发到 `kanbanCard` 或 `galleryCard`。typed flag 与 `--json` 同时存在时 typed flag 优先;`--no-cover` 与 `--cover-field-id` 互斥。
28
+
29
+ | flag | 适用范围 | 说明 |
30
+ |---|---|---|
31
+ | `--cover-field-id` | Kanban / Gallery | 封面字段 ID |
32
+ | `--no-cover` | Kanban / Gallery | 清除封面 |
33
+ | `--cover-resize-mode` | Kanban / Gallery | `cover` / `contain` / `stretch` |
34
+ | `--hidden-field-title` | Kanban | 隐藏字段名标题 |
35
+ | `--cover-mode` | Gallery | `none` / `auto` / `custom` |
36
+ | `--display-field-name` | Gallery | 是否显示字段名 |
37
+ | `--json` | Kanban / Gallery | 完整 card 子块对象 |
38
+
39
+ ```bash
40
+ dws aitable view update card --base-id <B> --table-id <T> --view-id <KANBAN_V> \
41
+ --cover-field-id <ATTACHMENT_FIELD_ID> --cover-resize-mode contain
42
+ dws aitable view update card --base-id <B> --table-id <T> --view-id <KANBAN_V> --no-cover
43
+ dws aitable view update card --base-id <B> --table-id <T> --view-id <GALLERY_V> --cover-mode auto
44
+ dws aitable view update card --base-id <B> --table-id <T> --view-id <GALLERY_V> \
45
+ --json '{"coverMode":"custom","coverFieldId":"fldX","displayFieldName":true}'
46
+ ```
47
+
48
+ 排查 Kanban 封面时先读取 card:`coverFieldId` 为 `NONE` 或缺失表示未配置封面;否则再检查 `coverResizeMode`。
49
+
50
+ ## timebar(仅 Gantt)
51
+
52
+ `view create --view-type Gantt` 只创建空壳,必须紧跟 `view update timebar --start-field <日期字段ID>`;`view create --config` 不接受 `ganttTimebar`。
53
+
54
+ | flag | 说明 |
55
+ |---|---|
56
+ | `--start-field` | 开始日期 fieldId |
57
+ | `--end-field` | 结束日期 fieldId |
58
+ | `--display-field-id` | 时间条标题 fieldId |
59
+ | `--timeline-scale` | `year` / `quarter` / `month` / `weeks` |
60
+ | `--color-configs` | 颜色配置 JSON 数组;清空传 `[]` |
61
+ | `--official-holiday` | 是否标注法定节假日 |
62
+ | `--json` | 完整 ganttTimebar 子块 |
63
+
64
+ ```bash
65
+ # 第一步:创建并取得真实 viewId
66
+ dws aitable view create --base-id <B> --table-id <T> --view-type Gantt --name "项目甘特图" --format json
67
+
68
+ # 第二步:绑定日期字段,否则视图为空
69
+ dws aitable view update timebar --base-id <B> --table-id <T> --view-id <GANTT_V> \
70
+ --start-field <START_DATE_FIELD_ID> --end-field <END_DATE_FIELD_ID> --timeline-scale month
71
+
72
+ # 后续只改时间尺度和节假日
73
+ dws aitable view update timebar --base-id <B> --table-id <T> --view-id <GANTT_V> \
74
+ --timeline-scale quarter --official-holiday=true
75
+ ```
76
+
77
+ ## aggregate(仅 Grid)
78
+
79
+ 值是 `map[fieldId]→AggregateAction`;传 `null` 清除某字段聚合。常用 action 包括 `SUM`、`AVG`、`MAX`、`MIN`、`MEDIAN`、`RANGE`、`TOTAL`、`DISTINCT`、`EXIST`、`UN_EXIST`、`CHECKED`、`EARLIEST_DATE`,实际可用项受字段类型限制。
80
+
81
+ ```bash
82
+ dws aitable view update aggregate --base-id <B> --table-id <T> --view-id <GRID_V> \
83
+ --field-id <FIELD_ID> --action SUM
84
+ dws aitable view update aggregate --base-id <B> --table-id <T> --view-id <GRID_V> \
85
+ --clear-field-id <FIELD_ID_1,FIELD_ID_2>
86
+ dws aitable view update aggregate --base-id <B> --table-id <T> --view-id <GRID_V> \
87
+ --json '{"fldAmount":"AVG","fldObsolete":null}'
88
+ ```
89
+
90
+ ## 写后验证与停止条件
91
+
92
+ - 每次 update 后只用同一属性的 `view get card|timebar|aggregate` 回读,不加载其他 reference。
93
+ - viewType 不匹配时停止并保留真实错误,不更换 viewId 猜测。
94
+ - Gantt 未取得真实日期 fieldId 时停止,不用字段名代替。
95
+ - typed flag 与 `--json` 冲突时以 typed flag 为准;不要重复提交同一写操作。
@@ -0,0 +1,384 @@
1
+ # workflow — 自动化工作流管理
2
+
3
+ 创建 / 更新 / 启停 / 手动执行 / 查询执行历史 / 查看 / 列出 Base 下的自动化工作流("当 X 时自动 Y" 流程)。
4
+ 适用场景:用户要求创建自动化、修改流程、停掉或恢复流程、立即执行流程、核对执行结果或查询已有流程。
5
+
6
+ ## 命令一览
7
+
8
+ | 命令 | 用途 |
9
+ |------|------|
10
+ | `workflow edit-example` | 获取工作流编辑文档与 workflow-dsl/v1 示例 |
11
+ | `workflow create` | 创建并发布自动化工作流 |
12
+ | `workflow update` | 更新并发布已有自动化工作流 |
13
+ | `workflow list` | 列出 Base 下所有工作流(含状态/创建人/最后修改时间),支持分页 |
14
+ | `workflow get` | 获取单个工作流详情(含 flowSchema 完整节点定义) |
15
+ | `workflow enable` | 启用指定工作流(按配置的触发条件自动执行) |
16
+ | `workflow disable` | 禁用指定工作流(高危,建议 `--yes` 二次确认) |
17
+ | `workflow run` | 立即执行指定工作流(会产生真实副作用,需确认) |
18
+ | `workflow history` | 按状态、时间和分页条件查询工作流执行历史 |
19
+
20
+ > `workflow edit-example` 无参数;其他子命令的 `--base-id` 必填(可用隐藏别名 `--base`)。
21
+
22
+ ## DSL 入参格式与最小 Demo
23
+
24
+ 先运行 `workflow edit-example` 获取服务端提供的最新编辑文档和示例。`workflow create/update` 的 `--dsl` 接收钉钉 AI 表格 `workflow-dsl/v1` JSON object。
25
+
26
+ 复杂工作流还应注意:
27
+
28
+ 1. 使用 `workflow edit-example` 获取最新 DSL Guide、结构和示例。
29
+ 2. 涉及数据表、字段或视图的节点,先用 `table get` / `field get` / `view list` 确认真实 `sheetId`、`fieldId`、`viewId`。
30
+ 3. create 和 update 都提交完整的 workflow-dsl/v1 JSON object,并检查所有 `next`、`loopEntry`、branch `to` 和 ref。
31
+
32
+ 以下 Demo 表示“每天 09:00 触发,并向 Base 所有者发送消息”,不依赖数据表、字段或视图 ID:
33
+
34
+ ```json
35
+ {
36
+ "version": "workflow-dsl/v1",
37
+ "name": "每日提醒",
38
+ "description": "可选说明",
39
+ "trigger": "start",
40
+ "steps": {
41
+ "start": {
42
+ "type": "Scheduled",
43
+ "next": "send",
44
+ "data": {
45
+ "mode": "daily",
46
+ "time": "09:00",
47
+ "timezone": "GMT+08:00"
48
+ }
49
+ },
50
+ "send": {
51
+ "type": "SendMessage",
52
+ "data": {
53
+ "title": "定时任务已触发",
54
+ "to": {
55
+ "users": [{"ref": "$.system_node.ownerUserId"}]
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }
61
+ ```
62
+
63
+ 将上述 JSON 保存为 `workflow.json` 后创建工作流:
64
+
65
+ ```bash
66
+ dws aitable workflow create \
67
+ --base-id BASE_ID \
68
+ --dsl @workflow.json \
69
+ --locale zh-CN \
70
+ --format json
71
+ ```
72
+
73
+ 保存创建结果中的 `data.flowId`。更新时修改 `workflow.json` 中的完整目标定义,例如修改 `name`、`description` 或消息 `title`,然后调用:
74
+
75
+ ```bash
76
+ dws aitable workflow update \
77
+ --base-id BASE_ID \
78
+ --workflow-id FLOW_ID \
79
+ --dsl @workflow.json \
80
+ --locale zh-CN \
81
+ --format json
82
+ ```
83
+
84
+ create 和 update 都必须同时满足 `status=success`、`data.valid=true`、`data.issues=[]` 才表示发布成功;update 返回的 `data.flowId` 应与传入的 `FLOW_ID` 一致。以上仅为最小 Demo,复杂节点的 `type` 和 `data` 结构以钉钉 AI 表格 MCP 最新 DSL 文档为准。
85
+
86
+ ## 命令详情
87
+
88
+ ### workflow edit-example — 获取编辑文档与示例
89
+
90
+ ```bash
91
+ dws aitable workflow edit-example --format json
92
+ ```
93
+
94
+ 该命令无业务参数,调用 `aitable/edit_workflow_example` 返回服务端提供的工作流编辑文档和示例。创建或更新复杂工作流前优先调用它,避免依赖可能过期的本地 DSL 结构。
95
+
96
+ ### workflow create — 创建并发布工作流
97
+
98
+ ```bash
99
+ # 大 DSL 推荐从文件读取
100
+ dws aitable workflow create \
101
+ --base-id BASE_ID \
102
+ --dsl @workflow.json \
103
+ --locale zh-CN \
104
+ --format json
105
+
106
+ # 也支持 stdin
107
+ cat workflow.json | dws aitable workflow create --base-id BASE_ID --dsl - --format json
108
+ ```
109
+
110
+ | flag | 必填 | 说明 |
111
+ |------|------|------|
112
+ | `--base-id` | 是 | 所属 Base ID |
113
+ | `--dsl` | 是 | workflow-dsl/v1 JSON object;支持内联 JSON、`@filepath`、`-` stdin |
114
+ | `--locale` | 否 | 请求语言,如 `zh-CN` / `zh_CN` |
115
+
116
+ 创建成功返回发布结果:
117
+
118
+ ```json
119
+ {
120
+ "status": "success",
121
+ "data": {
122
+ "valid": true,
123
+ "flowId": "G-FLOW-XXXXXX",
124
+ "flowSchema": {},
125
+ "stepNodeIds": {},
126
+ "referenceMap": {},
127
+ "issues": []
128
+ }
129
+ }
130
+ ```
131
+
132
+ 关键语义:
133
+
134
+ - `create` 非幂等,CLI 不自动重试。若网络中断导致结果不确定,先 `workflow list` 按名称确认是否已创建,再决定是否重试。
135
+ - `status=success` 只说明 workflow-edit 正常返回;如果 `data.valid=false`,仍表示 DSL 未通过校验或发布,必须读取 `issues` 修正。
136
+ - 创建并发布后,用 `workflow list` 确认 `status`;需要运行但状态为 `STOP` 时再调用 `workflow enable`。
137
+
138
+ ### workflow update — 更新并发布工作流
139
+
140
+ ```bash
141
+ # 先留底现有详情,再提交完整目标 DSL
142
+ dws aitable workflow get --base-id BASE_ID --workflow-id WORKFLOW_ID --format json > /tmp/workflow-backup.json
143
+ dws aitable workflow update \
144
+ --base-id BASE_ID \
145
+ --workflow-id WORKFLOW_ID \
146
+ --dsl @workflow.json \
147
+ --locale zh_CN \
148
+ --format json
149
+ ```
150
+
151
+ | flag | 必填 | 说明 |
152
+ |------|------|------|
153
+ | `--base-id` | 是 | 所属 Base ID |
154
+ | `--workflow-id` | 是 | 目标工作流 ID,对应 list 的 `flowId` |
155
+ | `--dsl` | 是 | 完整目标 workflow-dsl/v1 JSON object;支持内联、`@filepath`、`-` stdin |
156
+ | `--locale` | 否 | 请求语言,如 `zh-CN` / `zh_CN` |
157
+
158
+ 返回结构与 create 相同,成功时 `flowId` 应为目标工作流。update 使用 AI 表格瞬态错误重试;最终仍必须检查 `data.valid` 和 `issues`,并用 `workflow get/list` 验证发布结果与运行状态。
159
+
160
+ ### workflow run — 立即执行工作流
161
+
162
+ ```bash
163
+ # 记录类触发器
164
+ dws aitable workflow run --base-id BASE_ID --workflow-id WORKFLOW_ID \
165
+ --table-id TABLE_ID --record-ids RECORD_ID_1,RECORD_ID_2
166
+
167
+ # 定时触发器不传 table-id / record-ids
168
+ dws aitable workflow run --base-id BASE_ID --workflow-id WORKFLOW_ID
169
+ ```
170
+
171
+ | flag | 必填 | 说明 |
172
+ |------|------|------|
173
+ | `--base-id` | 是 | 所属 Base ID |
174
+ | `--workflow-id` | 是 | 目标工作流 ID |
175
+ | `--table-id` | 条件必填 | 记录类触发器绑定的数据表;必须与触发器配置一致 |
176
+ | `--record-ids` | 条件必填 | 记录类触发器的记录 ID,1–5 个、逗号分隔且不可重复 |
177
+
178
+ `run` 启动真实异步执行,工作流中的发消息、写记录等动作会实际发生;执行前必须取得用户确认。返回项中的 `executionId` 是本次执行标识,可与 `workflow history` 项目的 `instanceId` 匹配。网络结果不确定时不要直接重复执行,先按该标识查询历史。
179
+
180
+ ### workflow history — 查询执行历史
181
+
182
+ ```bash
183
+ dws aitable workflow history --base-id BASE_ID --workflow-id WORKFLOW_ID \
184
+ --status failed --after-time 1786000000000 --before-time 1787000000000 \
185
+ --page 0 --size 50
186
+ ```
187
+
188
+ | flag | 说明 |
189
+ |------|------|
190
+ | `--base-id` | 必填 |
191
+ | `--workflow-id` | 必填;CLI 会映射为 MCP 的 `flowId` |
192
+ | `--status` | 可选:`success` / `failed` / `running` / `break` / `untrigger` |
193
+ | `--after-time` | 可选,Unix 毫秒开始时间 |
194
+ | `--before-time` | 可选,Unix 毫秒结束时间;与 after-time 同传时必须更大 |
195
+ | `--page` | 可选,从 0 开始,默认 0 |
196
+ | `--size` | 可选,默认 20,范围 `[1, 100]` |
197
+
198
+ 返回 `totalCount` 和 `list`。`running` 是非终态;`success`、`failed`、`break`、`untrigger` 是终态。
199
+
200
+ ### workflow list — 列出工作流
201
+
202
+ ```bash
203
+ dws aitable workflow list --base-id BASE_ID --format json
204
+ dws aitable workflow list --base-id BASE_ID --limit 50 --offset 100
205
+ ```
206
+
207
+ | flag | 说明 |
208
+ |------|------|
209
+ | `--base-id` | 必填 |
210
+ | `--limit` | 可选,分页大小 `[1, 100]`,不传走服务端默认 20 |
211
+ | `--offset` | 可选,分页偏移量 `>= 0`,不传走服务端默认 0 |
212
+
213
+ 返回结构:
214
+
215
+ ```json
216
+ {
217
+ "data": {
218
+ "list": [
219
+ {
220
+ "flowId": "G-FLOW-XXXXXX", // ★ 注意字段名是 flowId
221
+ "name": "流程1",
222
+ "description": "当创建记录时,就更新记录",
223
+ "status": "RUNNING", // RUNNING / STOP
224
+ "creatorStaffId": "281493",
225
+ "lastModifier": { "name": "李普阳", "staffId": "281493" },
226
+ "gmtModified": 1780318540000,
227
+ "versionId": "G-FLOW-VER-XXXXXX",
228
+ "icons": ["..."], // 触发器+动作的图标
229
+ "isSubFlow": false,
230
+ "opPermissions": { "canEdit": true }
231
+ }
232
+ ],
233
+ "recordCount": 1, // Base 下总数
234
+ "runningCount": 1 // RUNNING 状态的数量
235
+ }
236
+ }
237
+ ```
238
+
239
+ **注意**:
240
+ - 标识字段服务端在 `list` 里叫 **`flowId`**,但在 `enable` / `disable` 出参里叫 **`workflowId`**。CLI `--workflow-id` 传任一即可(同值)。
241
+ - `status` 是字符串枚举:`RUNNING`(启用中)/ `STOP`(已禁用),**不是** boolean。
242
+ - `runningCount` 是当前 Base 下 status=RUNNING 的工作流数,方便快速判断「有几个流程在跑」。
243
+
244
+ ### workflow get — 获取单个工作流详情
245
+
246
+ ```bash
247
+ dws aitable workflow get --base-id BASE_ID --workflow-id WORKFLOW_ID --format json
248
+ ```
249
+
250
+ | flag | 说明 |
251
+ |------|------|
252
+ | `--base-id` | 必填 |
253
+ | `--workflow-id` | 必填,对应 list 出参里的 `flowId` |
254
+
255
+ 返回完整工作流配置:
256
+
257
+ ```json
258
+ {
259
+ "data": {
260
+ "name": "流程1",
261
+ "namespace": "...",
262
+ "status": "RUNNING",
263
+ "versionId": "G-FLOW-VER-XXXXXX",
264
+ "versionNo": 14,
265
+ "versionStatus": "...",
266
+ "accessor": {...}, // 访问者信息
267
+ "corpId": "...",
268
+ "flowAttribute": {...}, // 流程顶层属性
269
+ "flowSchema": {...}, // ★ 流程节点定义(触发器/动作/分支等)
270
+ "gmtCreate": 1780317804000,
271
+ "gmtModified": 1780318540000
272
+ }
273
+ }
274
+ ```
275
+
276
+ `flowSchema` 是完整的节点 DAG,结构因流程而异(条件触发器 vs 定时触发器、单分支 vs 多分支等)。agent 应按需读取关心字段,不要试图建静态 schema。
277
+
278
+ ### workflow enable — 启用工作流
279
+
280
+ ```bash
281
+ dws aitable workflow enable --base-id BASE_ID --workflow-id WORKFLOW_ID --format json
282
+ ```
283
+
284
+ 返回 `{workflowId, enabled: true}` —— **`enabled: true` 是动作确认,不是当前状态查询**。要确认真启用了,必须再 `workflow list` 看 `status` 是否变成 `"RUNNING"` 或 `runningCount` 是否加 1。
285
+
286
+ ### workflow disable — 禁用工作流(高危)
287
+
288
+ ```bash
289
+ dws aitable workflow disable --base-id BASE_ID --workflow-id WORKFLOW_ID --yes --format json
290
+ ```
291
+
292
+ 返回 `{workflowId, disabled: true}` —— 同样是动作确认。禁用后该工作流不再自动触发。
293
+
294
+ **风险**:直接影响业务自动化(如停掉「记录创建后自动发通知」会让通知断流)。建议:
295
+ - 操作前先 `workflow get` 留底当前配置
296
+ - 脚本场景显式传 `--yes`;交互场景让用户在 prompt 中再次确认
297
+
298
+ ## 能力边界
299
+
300
+ | 能力 | 状态 |
301
+ |------|------|
302
+ | 新建工作流 | ✅ 创建并发布 |
303
+ | 修改工作流配置 | ✅ 更新并发布 |
304
+ | 列出工作流 | ✅ |
305
+ | 看工作流详情(含 flowSchema) | ✅ |
306
+ | 启用/禁用 | ✅ |
307
+ | 查看运行历史/执行日志 | ✅ `workflow history` |
308
+ | 手动触发/单次运行 | ✅ `workflow run`(需确认) |
309
+ | 删除工作流 | ❌ 暂未开放 |
310
+
311
+ ## 错误码速查
312
+
313
+ | 场景 | code | type | 备注 |
314
+ |------|------|------|------|
315
+ | create/update 返回 `valid=false` | — | success envelope | 读取 `data.issues` 修正 DSL,不能当作发布成功 |
316
+ | create 下游失败 | `CREATE_WORKFLOW_ERROR` | `SYSTEM_ERROR` | create 不自动重试;先 list 排查是否已创建 |
317
+ | update 下游失败 | `UPDATE_WORKFLOW_ERROR` | `SYSTEM_ERROR` | update 会重试瞬态错误,最终失败时保留 DSL 和 workflowId 排查 |
318
+ | `workflow-id` 不存在调 get | `GET_WORKFLOW_ERROR` | `SYSTEM_ERROR` | message 可能为 null,先 `workflow list` 核对 ID |
319
+ | `workflow-id` 不存在调 enable | `ENABLE_WORKFLOW_ERROR` | `SYSTEM_ERROR` | message 含 "场域中不存在该 namespace" |
320
+ | `workflow-id` 不存在调 disable | `DISABLE_WORKFLOW_ERROR` | `SYSTEM_ERROR` | 同上 |
321
+ | `--limit` < 1 或 > 100 | (CLI 层拦截) | — | `--limit 必须在 [1, 100] 范围内,got N` |
322
+ | `--offset` < 0 | (CLI 层拦截) | — | `--offset 必须 >= 0,got N` |
323
+
324
+ > 拿到 `*_WORKFLOW_ERROR / SYSTEM_ERROR` 时,先 `workflow list` 自查目标 ID 是否还存在、是否在当前 Base 下。
325
+
326
+ ## 典型工作流
327
+
328
+ ### 创建并确认一个工作流
329
+
330
+ ```bash
331
+ # 1. 按本文 DSL Demo 生成 /tmp/workflow.json
332
+ dws aitable workflow create --base-id BASE_ID --dsl @/tmp/workflow.json --locale zh-CN --format json \
333
+ | tee /tmp/workflow-result.json
334
+
335
+ # 2. valid 必须为 true;保存 flowId
336
+ jq '{valid: .data.valid, flowId: .data.flowId, issues: .data.issues}' /tmp/workflow-result.json
337
+
338
+ # 3. 确认运行状态,需要时显式启用
339
+ FLOW_ID=$(jq -r '.data.flowId' /tmp/workflow-result.json)
340
+ dws aitable workflow list --base-id BASE_ID --format json \
341
+ | jq --arg id "$FLOW_ID" '.data.list[] | select(.flowId == $id) | {flowId, name, status}'
342
+ ```
343
+
344
+ ### 看看 Base 里有哪些自动化在跑
345
+
346
+ ```bash
347
+ dws aitable workflow list --base-id BASE_ID --format json | jq '.data | {total: .recordCount, running: .runningCount, items: .list | map({name, status, flowId})}'
348
+ ```
349
+
350
+ ### 临时停掉某个流程做调试
351
+
352
+ ```bash
353
+ # 1. 留底当前状态
354
+ dws aitable workflow get --base-id BASE_ID --workflow-id WORKFLOW_ID --format json > /tmp/wf-backup.json
355
+
356
+ # 2. 禁用
357
+ dws aitable workflow disable --base-id BASE_ID --workflow-id WORKFLOW_ID --yes --format json
358
+
359
+ # 3. 调试做完后重启
360
+ dws aitable workflow enable --base-id BASE_ID --workflow-id WORKFLOW_ID --format json
361
+
362
+ # 4. 确认 status=RUNNING
363
+ dws aitable workflow list --base-id BASE_ID --format json | jq '.data.list[] | select(.flowId == "WORKFLOW_ID") | .status'
364
+ ```
365
+
366
+ ### 批量关掉某个 Base 下所有 workflow(调试 / 迁移前清场)
367
+
368
+ ```bash
369
+ for WF in $(dws aitable workflow list --base-id BASE_ID --limit 100 --format json | jq -r '.data.list[] | select(.status == "RUNNING") | .flowId'); do
370
+ dws aitable workflow disable --base-id BASE_ID --workflow-id "$WF" --yes --format json | jq .status
371
+ done
372
+ ```
373
+
374
+ ## 注意事项
375
+
376
+ - `--workflow-id` 接受的就是 `list` 返回里的 `flowId`(同值,CLI 屏蔽了服务端字段名差异)。
377
+ - create / update 的 `--dsl` 必须是 JSON object,不能传数组、字符串化的二次 JSON 或 FlowSchema。
378
+ - 本文 Demo 可直接用于最小定时消息工作流;复杂节点应以钉钉 AI 表格 MCP 最新 DSL 文档为准。
379
+ - `status=success` 且 `data.valid=false` 仍是 DSL 校验失败;`issues` 才是下一步修复依据。
380
+ - create 不自动重试;update 仅对网络/5xx/`retryable:true` 瞬态错误自动重试。
381
+ - enable / disable 出参里的 `enabled` / `disabled` 是 **动作确认 flag**,不是当前状态字段。要确认真生效请走 `workflow list` 查 `status`。
382
+ - `workflow get` 的 `flowSchema` 结构随触发器/动作类型变化,不要假设固定字段。
383
+ - `workflow run` 不自动重试;结果不确定时用 `workflow history` 按 executionId / instanceId 核对。
384
+ - 删除工作流当前仍未开放。