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,165 @@
1
+ # chat-conversation:会话状态、红点、置顶与分组
2
+
3
+ > 返回入口:[chat.md](../chat.md)
4
+
5
+ ## 适用场景
6
+
7
+ 用于获取会话基础信息、全部会话/置顶会话列表、会话置顶、免打扰、隐藏、红点、已读未读、清空聊天记录、自定义会话分组和智能会话分组。
8
+
9
+ - <!-- dws-intent: chat.conversation.list-top -->查看置顶会话默认使用 `dws chat +conversation-list-top`;
10
+ 原子 `list-top-conversations` 只在需要原始响应时作为 fallback。
11
+ - <!-- dws-intent: chat.read.conversation -->取得目标会话后读取或导出消息记录,默认使用 `dws chat +chat-messages`;
12
+ 可附带非必填的 `--sender-query` 解析姓名:唯一解析成功后按 `senderId` 筛选同一次读取结果;
13
+ 解析失败、不完整或存在歧义时抑制未过滤消息并返回 `sender_resolution_failed`。不要回到原子
14
+ `message list`,也不要补跑 `+search-msg`。直接条件检索优先使用 `+search-msg`。
15
+
16
+ ## 必读约束
17
+
18
+ - 会话状态类命令通常需要 `openConversationId`。群聊只用 `+chat-search --query` 获取唯一候选,单聊可由 `chat conversation-info --user/--open-dingtalk-id` 获取。
19
+ - `set-top` 是会话置顶;`message set-top-msg` 是会话内消息置顶,二者不能混用。
20
+ - `clear-messages` 只清空当前用户视角的消息,不影响其他成员。
21
+ - 智能分组规则中的成员使用 openDingTalkId;如果用户只给姓名,先用 `aisearch person --dimension name` 获取。
22
+
23
+ ## 命令明细
24
+
25
+ ### 会话基础信息
26
+
27
+ ```bash
28
+ dws chat conversation-info --group <openConversationId> --format json
29
+ dws chat conversation-info --user <userId> --format json
30
+ dws chat conversation-info --open-dingtalk-id <openDingTalkId> --format json
31
+ ```
32
+
33
+ `--group`、`--user`、`--open-dingtalk-id` 互斥且必须指定一个。文件/音视频发送不依赖调用方预先读取 spaceId;直接用 `message send --msg-type file|audio|video --file`。
34
+
35
+ ### 只上传到会话文件空间
36
+
37
+ 用户明确要求上传文件但不发送消息时使用:
38
+
39
+ ```bash
40
+ dws chat conversation-file upload --conversation-id <openConversationId> --file ./report.pdf --format json
41
+ dws chat conversation-file upload --open-dingtalk-id <openDingTalkId> --file ./report.pdf --format json
42
+ ```
43
+
44
+ 命令只执行当前文件消息复用的本地上传链路,返回 `dentryId`、`spaceId`、`fileName`、`fileType` 和 `fileSize`。`--conversation-id`、`--user`、`--open-dingtalk-id` 必须且只能指定一个;文件必须是工作目录内的相对路径。URL 代传不受支持。
45
+
46
+ ### 会话列表与红点
47
+
48
+ | 命令 | 用途 | 参数 |
49
+ |------|------|------|
50
+ | `+conversation-list` | 获取当前用户会话 | 要求“全部”时加 `--page-all`;检查 `complete` / `failures` |
51
+ | `+chat-list` | 列出当前用户会话(默认群聊,可选单聊) | 默认只返回群聊;`--types group,p2p` 可包含单聊;要求全部时加 `--page-all`,合并去重后再过滤类型 |
52
+ | `+chat-list-all` | 获取当前用户加入的全部群 | 要求全部时加 `--page-all`;沿数字 `nextCursor` 去重聚合 |
53
+ | `+my-groups` | 获取并投影当前用户加入的群 | 要求全部时加 `--page-all`;读完后再应用 `--type` 本地过滤 |
54
+ | `+conversation-list-top` | 获取置顶会话列表 | 可选 `--limit` `--cursor` `--exclude-muted`;使用稳定 `conversations[]` |
55
+ | `message list-unread-conversations` | 获取未读会话列表 | 可选 `--count` `--exclude-muted` |
56
+ | `clear-red-point` | 清除指定会话红点 | `--conversation-id`,别名 `--id` / `--chat` |
57
+ | `clear-all-red-point` | 清除所有会话红点,一键全部已读 | 无参数 |
58
+
59
+ 翻页时,`hasMore=true` 用返回的 `nextCursor` 作为下次 `--cursor`。Shortcut 全量读取应检查
60
+ `complete`、`stopReason` 和 `failures`;达到 `--page-limit` 时会保留可继续的 `nextCursor`。
61
+
62
+ ### 会话置顶与通知
63
+
64
+ | 命令 | 用途 | 必填参数 |
65
+ |------|------|----------|
66
+ | `set-top` | 设置/取消会话置顶 | `--conversation-id`;默认置顶,`--off` 取消 |
67
+ | `mute` | 开启/关闭会话免打扰 | `--conversation-id`;默认开启,`--off` 关闭 |
68
+ | `hide` | 隐藏会话 | `--conversation-id` |
69
+ | `mute-at-all` | 关闭/恢复 @所有人通知 | `--conversation-id`;默认关闭,`--off` 恢复;必须先开启会话总免打扰 |
70
+ | `mute-red-envelope` | 关闭/恢复红包通知 | `--conversation-id`;默认关闭,`--off` 恢复;必须先开启会话总免打扰 |
71
+
72
+ 若连续操作两个子开关,优先操作红包通知;恢复 @所有人通知后,平台可能清除子开关所需的
73
+ 总免打扰状态,此时要先重新开启总免打扰,再操作红包通知。
74
+
75
+ ```bash
76
+ dws chat set-top --conversation-id <openConversationId>
77
+ dws chat set-top --conversation-id <openConversationId> --off
78
+ dws chat mute --conversation-id <openConversationId>
79
+ dws chat mute --conversation-id <openConversationId> --off
80
+ dws chat hide --conversation-id <openConversationId>
81
+ ```
82
+
83
+ ### 已读未读与清理
84
+
85
+ | 命令 | 用途 | 必填参数 |
86
+ |------|------|----------|
87
+ | `mark-unread` | 标记指定会话为未读 | `--conversation-id` |
88
+ | `mark-read` | 将指定消息及之前消息标记为已读 | `--conversation-id` `--message-id` |
89
+ | `clear-messages` | 清空当前用户指定会话的消息 | `--conversation-id` |
90
+
91
+ ```bash
92
+ dws chat mark-unread --conversation-id <openConversationId>
93
+ dws chat mark-read --conversation-id <openConversationId> --message-id <openMessageId>
94
+ dws chat clear-messages --conversation-id <openConversationId>
95
+ ```
96
+
97
+ ### 会话分组
98
+
99
+ | 命令 | 用途 | 必填参数 |
100
+ |------|------|----------|
101
+ | `category list` | 获取用户自定义会话分组 | 无 |
102
+ | `category list-conversations` | 拉取指定分组下会话 | `--category-id`,可选 `--exclude-muted` |
103
+ | `category list-by-conv` | 拉取指定会话所属的用户自定义会话分组 | `--group` |
104
+ | `category batch-info` | 批量拉取用户自定义会话分组信息 | `--category-ids` |
105
+ | `category create` | 创建会话分组 | `--title` |
106
+ | `category create-smart` | 创建智能会话分组,可按群名称关键词和群内成员匹配 | `--name`,可选 `--keywords` `--members` |
107
+ | `category delete` | 删除会话分组 | `--category-id` |
108
+ | `category rename` | 修改分组名称 | `--category-id` `--title` |
109
+ | `category add-conv` | 将会话加入分组 | `--group` `--category-ids` |
110
+ | `category remove-conv` | 将会话移出分组 | `--group` `--category-ids` |
111
+
112
+ ```bash
113
+ dws chat category list
114
+ dws chat category list-by-conv --group <openConversationId>
115
+ dws chat category batch-info --category-ids 123,456
116
+ dws chat category create --title "工作群"
117
+ dws chat category create-smart --name "重点群" --keywords "重点,项目" --members openDingTalkId1,openDingTalkId2
118
+ dws chat category add-conv --group <openConversationId> --category-ids 123,456
119
+ ```
120
+
121
+ `create-smart` 中 `--keywords` 是群名称关键词列表,`--members` 是群内成员 openDingTalkId 列表;两者可单独使用,也可组合使用。
122
+
123
+ ## 常见工作流
124
+
125
+ ### 获取单聊会话 ID 后置顶
126
+
127
+ ```bash
128
+ dws aisearch person --query "张三" --dimension name --format json
129
+ dws chat conversation-info --user <userId> --format json
130
+ dws chat set-top --conversation-id <openConversationId> --format json
131
+ ```
132
+
133
+ ### 查看置顶会话并拉消息
134
+
135
+ ```bash
136
+ dws chat +conversation-list-top --limit 100 --format json
137
+ dws chat +chat-messages --group <openConversationId> --time "2026-03-10 00:00:00" --direction older --format json
138
+ ```
139
+
140
+ ### 会话分组
141
+
142
+ ```bash
143
+ dws chat category create --title "重点项目" --format json
144
+ dws chat category add-conv --group <openConversationId> --category-ids <categoryId> --format json
145
+ dws chat category list-by-conv --group <openConversationId> --format json
146
+ dws chat category batch-info --category-ids <categoryId> --format json
147
+ dws chat category list-conversations --category-id <categoryId> --format json
148
+ ```
149
+
150
+ ### 智能会话分组
151
+
152
+ ```bash
153
+ dws aisearch person --query "张三" --dimension name --format json
154
+ dws chat category create-smart --name "项目组" --keywords "项目,开发" --format json
155
+ dws chat category create-smart --name "团队群" --members openDingTalkId1,openDingTalkId2 --format json
156
+ dws chat category create-smart --name "重点群" --keywords "重点" --members openDingTalkId1 --format json
157
+ ```
158
+
159
+ ## 常见错误与回退
160
+
161
+ - 用户说“置顶消息”:用 `message set-top-msg`,不是 `chat set-top`。
162
+ - 用户说“置顶会话”:设置/取消用 `chat set-top`,查看列表用 `+conversation-list-top`。
163
+ - 单聊没有会话 ID:先 `conversation-info --user` 或 `--open-dingtalk-id`。
164
+ - 清空聊天记录前必须确认目标会话;该操作只影响当前用户视角。
165
+ - 智能分组没有匹配条件:至少确认分组名称;关键词和成员规则不明确时先向用户确认,不要自行猜成员。
@@ -0,0 +1,144 @@
1
+ # group-admin:群创建、成员写入与管理
2
+
3
+ > 返回入口:[DingTalk Chat Skill](../../SKILL.md)
4
+
5
+ 用于建群、修改群资料、成员增删、邀请卡片分享、群主和管理员、禁言、公告、群设置、
6
+ 入群审批、群身份、退出、解散和升级外部群。只读群发现、成员读取和邀请链接使用
7
+ [group-discovery.md](group-discovery.md)。
8
+
9
+ ## 安全与目标
10
+
11
+ - 群目标统一使用当前 profile 下真实 `openConversationId`;支持自然群名的 Shortcut 由 CLI
12
+ 唯一解析,多候选时停止。
13
+ - 解散群、踢人、转让群主、禁言、管理员和外部群升级都是高影响操作;以最终 Runtime gate
14
+ 和精确 leaf Schema 为准确认对象、动作与影响。
15
+ - 所有自然成员和群主必须先完成唯一解析并按稳定 ID 去重,再开始任何写入;不得边解析边
16
+ 产生部分副作用。
17
+ - 群公告会触达成员;`notice edit` 是整体替换,必须有完整新正文。
18
+
19
+ ## 建群与基础资料
20
+
21
+ <!-- dws-intent: chat.create.group -->基础建群使用 `dws chat +chat-create`。已知成员 ID 传 `--users`,
22
+ 姓名/花名传 `--member-query`;群主默认当前用户,也可传 `--owner-open-dingtalk-id` 或
23
+ `--owner-query`。任一自然身份未唯一解析时,创建前整体停止。
24
+
25
+ ```bash
26
+ dws chat +chat-create --name "项目冲刺群" --member-query "测试用户甲,测试用户乙" --format json
27
+ dws chat +chat-create --name "合作群" --member-query "测试用户甲" \
28
+ --owner-query "测试用户乙" --type EXTERNAL --format json
29
+ ```
30
+
31
+ 修改群名称优先使用接受群名或稳定 ID 的 `+chat-update`:
32
+
33
+ ```bash
34
+ dws chat +chat-update --group <群名或openConversationId> --name "新群名" --format json
35
+ ```
36
+
37
+ 群头像和管理员级群开关使用 `+chat-update-icon`、`+chat-update-settings`;只有 Shortcut
38
+ 尚未发布真实必需字段时才评估原子 `group rename/update-icon/update-settings`。
39
+
40
+ 原子 `chat group create` 只用于 `+chat-create` 未发布的真实底层字段,并先读取精确 leaf
41
+ Schema。普通内部/外部群、话题群和显式群主已经由 `+chat-create` 覆盖,不回流到手工
42
+ `aisearch → group create` 链路。
43
+
44
+ ## 成员与机器人写入
45
+
46
+ | 动作 | 入口与关键参数 |
47
+ |---|---|
48
+ | 添加成员 | `group members add --id <cid> --users <userIds>` |
49
+ | 移除成员 | `group members remove --id <cid> --users <userIds>` |
50
+ | 添加已知机器人 | `+chat-add-bot` 或精确原子 `group members add-bot` |
51
+ | 查看群内机器人 | `+chat-bots --group <群名或cid>` |
52
+ | 移除群内机器人 | `+chat-remove-bot` 或精确原子 `group members remove-bot` |
53
+
54
+ 普通成员增删的 `--users` 只接受组织 `userId`,必须来自真实人员解析结果;不得把
55
+ `+chat-members-list` / `+chat-members-get` 返回的 `openDingTalkId` 直接传入。添加已知机器人
56
+ 使用 `robotCode`;移除机器人使用当前群 `+chat-bots` 返回的真实 `openBotId`,两者不能互换。
57
+ 缺少 `openBotId` 时在同一流程中先执行 `+chat-bots`,不必额外读取群发现 reference。只有需要
58
+ 搜索未知机器人、区分 `bot search` / `bot find`、机器人发送或撤回、Webhook 时,才读取
59
+ [chat-bot.md](chat-bot.md)。
60
+
61
+ ## 邀请卡片、群主、管理员与禁言
62
+
63
+ 邀请链接只读走 `+chat-invite-url`。实际分享邀请卡片使用 `group share-invite`:`--source`
64
+ 是被分享群,接收端在 `--target` 会话和 `--receiver` 单聊用户之间二选一。
65
+
66
+ ```bash
67
+ dws chat group share-invite --source <sourceCid> --target <targetCid> --format json
68
+ dws chat group share-invite --source <sourceCid> --receiver <openDingTalkId> --format json
69
+ ```
70
+
71
+ | 动作 | 入口与关键参数 |
72
+ |---|---|
73
+ | 转让群主 | `+chat-transfer-owner --group <cid> --new-owner <稳定ID>` |
74
+ | 设置/取消管理员 | `group set-admin --group <cid> --users <ids> [--off]` |
75
+ | 全员禁言/解除 | `group-mute --group <cid> [--off]` |
76
+ | 成员禁言/解除 | `+chat-mute-member` 或 `group-mute-member` |
77
+ | 查询禁言配置 | `group get-mute-config --group <cid>` |
78
+
79
+ 原子 `group-mute-member --mute-time` 单位为毫秒。不要用展示名称代替稳定用户 ID,也不要
80
+ 在未确认影响时执行转让、踢人或禁言。
81
+
82
+ ## 群设置与当前用户偏好
83
+
84
+ 管理员级群开关使用 `+chat-update-settings` 或原子 `group update-settings`。常见 settingKey
85
+ 包括 `authority`、`joinValidation`、`onlyAdminCanAtAll`、`searchable`、
86
+ `addFriendForbidden`、`onlyAdminCanDING`、`onlyAdminCanPinMsg` 和
87
+ `onlyAdminCanSendFile`、`groupEmailDisabled`、`groupLiveAuthority`、
88
+ `groupBillAuthority`;只修改用户明确要求的字段。
89
+
90
+ 新成员历史消息可见范围使用 `group set-history --group <cid> --option <值>`;`option` 只取
91
+ 精确 leaf Schema 发布值,不按自然语言猜枚举。
92
+
93
+ 当前登录用户自己的置顶、免打扰、群昵称和群备注使用 `group user-settings query/set`,
94
+ 不是管理员群开关。单个群昵称/备注优先 `group update-nick/update-alias`。
95
+
96
+ ```bash
97
+ dws chat group user-settings query --groups <cid1>,<cid2> --format json
98
+ dws chat group user-settings set \
99
+ --items '[{"openConversationId":"cid1","top":true,"mute":false}]' --format json
100
+ ```
101
+
102
+ 批量设置只传本次要改的字段;空字符串清除昵称或备注,不补用户未要求的值。
103
+
104
+ ## 群公告
105
+
106
+ | 动作 | 原子入口 |
107
+ |---|---|
108
+ | 发布公告 | `group notice create --group <cid> --content <完整Markdown>` |
109
+ | 修改公告 | `group notice edit --group <cid> --notice-id <id> --content <完整Markdown>` |
110
+ | 查询公告 | `group notice get/list` |
111
+
112
+ 定时公告 `--run-at` 使用带时区时间;`notice list --scheduled` 查询待发布公告。分页时沿真实
113
+ `nextPageCursor` 继续。修改前必须取得完整替换正文,不把增量片段当整篇公告。
114
+
115
+ ## 入群审批与群身份
116
+
117
+ 先用 `group list-join-validations` 取得真实 `record-id/applicant/inviter`,再执行
118
+ `group audit-join-validation` 或 `+chat-audit-join`。审批状态只使用精确 leaf Schema 发布值。
119
+
120
+ 群身份使用 `group-role` / `+chat-role-*`:
121
+
122
+ - `list/add/update/remove` 管理身份定义;
123
+ - `set-user/remove-user/query-user` 管理成员身份;
124
+ - `openRoleId` 必须来自真实身份列表。
125
+
126
+ 覆盖或清除成员身份前确认用户、群和完整角色集合,不能用展示名称猜 `openRoleId`。
127
+
128
+ ## 退出、解散与外部群升级
129
+
130
+ - 当前用户退出群:`+chat-quit` 或精确原子 `group quit`。
131
+ - 解散群:`group dismiss`,不可逆。
132
+ - 普通群升级外部群:`group upgrade-to-external`,不可逆。
133
+
134
+ 这些动作必须以最终 Runtime gate 为准,不把示例中的确认参数当固定事实。
135
+
136
+ ## 完成与错误
137
+
138
+ - 创建或更新后保留真实 `openConversationId` 和任务结果;只对查询结果真实返回的字段执行读回验证。
139
+ - 写接口成功但现有查询未返回目标设置时,报告真实写入回执和不可独立读回的边界;不用群名、
140
+ 成员数等其他字段代替验证,也不猜未发布的读回命令。
141
+ - 任一自然目标零命中或多候选时,在写入前整体停止。
142
+ - 逐项写入保留 succeeded/failed/unknown ledger,不用重试抹掉失败项。
143
+ - 分享邀请时 `--target` 与 `--receiver` 只能二选一;接收对象不明确时先确认。
144
+ - 机器人进群失败时确认机器人身份和当前用户管理权限,不连续切换同义原子命令。
@@ -0,0 +1,121 @@
1
+ # group-discovery:群发现、列表与成员读取
2
+
3
+ > 返回入口:[DingTalk Chat Skill](../../SKILL.md)
4
+
5
+ 用于只读的群列表、群搜索、共同群、群成员、群机器人和邀请链接。建群、改群、成员增删、
6
+ 邀请卡片分享、公告、禁言和其他群管理写操作读取 [group-admin.md](group-admin.md)。
7
+
8
+ ## 入口选择
9
+
10
+ | 用户终点 | 唯一推荐入口 |
11
+ |---|---|
12
+ | 我加入的全部群 | `dws chat +my-groups --page-all` |
13
+ | 我创建或管理的群 | `dws chat +chat-list-mine` |
14
+ | 只看群主群或管理员群 | `+chat-list-mine --role OWNER|ADMIN` |
15
+ | 按关键词搜索群 | `dws chat +chat-search --query <关键词>` |
16
+ | 查看指定群全部成员 | `dws chat +chat-members-list --group <群名或ID>` |
17
+ | 已知成员 openDingTalkId 批量查群内详情 | `dws chat +chat-members-get --id <cid> --users <ids>` |
18
+ | 获取群邀请链接 | `dws chat +chat-invite-url --group <群名或ID>` |
19
+ | 查看群机器人 | `dws chat +chat-bots --group <群名或ID>` |
20
+
21
+ “全部群”与“全部会话”不同:`+my-groups` 只列当前用户加入的群;
22
+ `+conversation-list --page-all` 可能同时包含单聊和群聊,不能替代群成员关系。
23
+
24
+ ## 群列表、分页与角色
25
+
26
+ `+my-groups` 返回当前用户加入的群,包括作为群主、管理员和普通成员加入的群:
27
+
28
+ - 要求完整列表时使用 `--page-all`;Runtime 沿真实 `nextCursor` 读取后续页,并按
29
+ `openConversationId` 合并去重,读完后再应用可选 `--type` 本地过滤。
30
+ - `--limit` 是每页数量,不是最终结果上限;`--cursor` 只用于从已有 `nextCursor` 手工续读。
31
+ - `--page-limit` 只与 `--page-all` 一起使用,用于限制最多读取页数。达到上限后仍有下一页时,
32
+ 结果不完整。
33
+ - 只有 `complete=true` 且 `hasMore=false` 才能声称已经读取全部;否则保留 `nextCursor`、
34
+ `stopReason` 和 `failures` 并说明结果不完整。
35
+
36
+ ```bash
37
+ dws chat +my-groups --page-all --page-limit 50 --format json
38
+ ```
39
+
40
+ `+chat-list-mine` 只返回当前用户作为群主或管理员的群。只要群集合时不传 `--role`,
41
+ 一次取得 OWNER 和 ADMIN。要求逐项标明身份时,直接分别查询 `--role OWNER` 和
42
+ `--role ADMIN`,不先执行无角色查询或读取 Help;按 `openConversationId` 合并去重后,
43
+ 再应用一次全局数量上限,不得把两个分支直接拼接。
44
+
45
+ ```bash
46
+ dws chat +chat-list-mine --limit 20 --format json
47
+ dws chat +chat-list-mine --role OWNER --format json
48
+ dws chat +chat-list-mine --role ADMIN --exclude-muted --format json
49
+ ```
50
+
51
+ `+my-groups` 不提供当前用户角色。用户明确要求普通成员群时,使用
52
+ `chat group list-all --limit 200`;返回 `hasMore=true` 时,必须把真实 `nextCursor`
53
+ 传给下一次调用并继续读取,直到 `hasMore=false`,不得把继续翻页交给用户。读完后按
54
+ `openConversationId` 去重,仅筛选真实返回的 `myRole=普通成员`;不得给 `+my-groups`
55
+ 编造 `--role MEMBER`,也不得用“全部群减去 OWNER/ADMIN 群”推断。
56
+
57
+ ## 群搜索与稳定 ID
58
+
59
+ 群搜索默认使用 `+chat-search`。要求全部候选时加 `--page-all`;可用
60
+ `--page-size/--page-token` 或兼容 `--limit/--cursor`。零命中或多候选时停止并展示候选,
61
+ 不要选择第一项。
62
+
63
+ ```bash
64
+ dws chat +chat-search --query "项目冲刺" --page-all --format json
65
+ ```
66
+
67
+ 只有数字群号时,使用 `chat group get-by-group-id --group-id <数字>` 转换为
68
+ `openConversationId`。需要搜索共同群时使用原子 `chat search-common`;`AND` 表示所有人
69
+ 都在群里,`OR` 表示任一人在群里。自然人员必须先解析为当前 profile 的真实身份。
70
+
71
+ ```bash
72
+ dws chat search-common --nicks "测试用户甲,测试用户乙" --match-mode AND --limit 20 --cursor 0
73
+ ```
74
+
75
+ ## 群成员
76
+
77
+ `+chat-members-list` 接受群名或 `openConversationId`,唯一解析后全量读取,并把用户与机器人
78
+ 分桶。结果必须检查 `buckets/complete/failures`。
79
+
80
+ ```bash
81
+ dws chat +chat-members-list --group "项目群" --format json
82
+ dws chat +chat-members-list --conversation-id <openConversationId> --format json
83
+ ```
84
+
85
+ 先检查 `+chat-members-list` 的稳定结果。只有结果未包含用户要求的群昵称、角色或其他群内字段时,
86
+ 才使用其中的真实 `openDingTalkId` 批量调用:
87
+
88
+ ```bash
89
+ dws chat +chat-members-get --id <openConversationId> \
90
+ --users <openDingTalkId1>,<openDingTalkId2> --format json
91
+ ```
92
+
93
+ 不要为了群内详情默认切换到企业通讯录;只有用户明确要求部门、岗位、直属主管等企业资料时,
94
+ 才把真实 userId 交给 `dingtalk-contact`。
95
+
96
+ ## 邀请链接与机器人
97
+
98
+ `+chat-invite-url` 是只读获取链接,可选 `--expires-seconds`;`group share-invite` 会实际把
99
+ 邀请卡片发送给另一个会话或用户,属于 [group-admin.md](group-admin.md)。
100
+
101
+ `+chat-bots` 返回稳定 `bots[]` 和 `openBotId`,供后续移除。搜索可用机器人、机器人发送和
102
+ 撤回读取 [chat-bot.md](chat-bot.md)。
103
+
104
+ ## 原子 fallback
105
+
106
+ | 原子命令 | 仅用于 |
107
+ |---|---|
108
+ | `chat search` / `search-common` | Shortcut 未发布的搜索字段或共同群 |
109
+ | `chat group get-by-group-id` | 数字群号转换 |
110
+ | `chat group members` | 需要原始成员分页响应 |
111
+ | `chat group members list-by-ids` | 需要原始批量成员详情 |
112
+ | `chat group list-all` / `list-my-groups` | 需要 Shortcut 未投影的真实底层字段 |
113
+
114
+ 使用原子 fallback 前读取精确 leaf Schema;不得把 fallback 写成与 Shortcut 并列的默认路线。
115
+
116
+ ## 完成与错误
117
+
118
+ - 分页完成只以真实 `complete/hasMore/nextCursor/failures` 判断,不看过滤后的 `count` 猜测。
119
+ - 所有稳定 ID 必须来自同一 profile 的真实返回。
120
+ - 找不到群或出现多候选时停止,不臆测 `openConversationId`。
121
+ - 任务从只读发现转为写操作时,使用 [group-admin.md](group-admin.md) 的目标和安全规则。
@@ -0,0 +1,132 @@
1
+ # message-actions:消息编辑、撤回、回复与对象操作
2
+
3
+ > 返回入口:[DingTalk Chat Skill](../../SKILL.md)
4
+
5
+ 用于对真实消息执行编辑、撤回、引用回复、转发、Pin、Top、Favorite 和表情回应写操作,
6
+ 并包含必要的紧邻验证。需要跨多个阶段传递真实结果的组合流程由
7
+ [01-messaging.md](../01-messaging.md) 说明;本文件不重复完整工作流。
8
+
9
+ ## 入口选择
10
+
11
+ | 用户终点 | 推荐入口 |
12
+ |---|---|
13
+ | 撤回当前用户消息 | `dws chat +messages-recall --msg-id <openMessageId>` |
14
+ | <!-- dws-intent: chat.reply.quote -->引用回复 | `dws chat +messages-reply` |
15
+ | 编辑已发送消息 | `dws chat message edit` |
16
+ | 单条/合并/话题转发 | `+messages-forward` / `+messages-combine-forward` / `+messages-forward-topic` |
17
+ | Pin / Unpin | `+messages-set-pin` / `+messages-unset-pin` |
18
+ | 消息 Top / 取消 Top | `+messages-set-top` / `+messages-unset-top` |
19
+ | Favorite / 取消 Favorite | `+flag-create` / `+flag-cancel` |
20
+ | 默认 emoji 回应 | `+messages-add-emoji` / `+messages-remove-emoji` |
21
+
22
+ 所有写操作以最终 Runtime gate 和精确 leaf Schema 为准。确认对象、消息和影响后再执行;
23
+ 不要因为文档示例自行制造或省略 confirmation。
24
+
25
+ ## 稳定 ID 规则
26
+
27
+ - `openTaskId` 是发送任务 ID,不是消息 ID。
28
+ - 撤回、编辑、回复、转发、Pin、Top 和 reaction 使用真实查询结果中的 `messageId`。
29
+ - 同时保留消息的 `conversationId`、thread、发送者和引用上下文。
30
+ - 子消息使用自己的 `messageId`;只在缺会话 ID 时继承父消息 `conversationId`。
31
+ - Bot 撤回使用 `processQueryKey`,不使用本文件的 `openMessageId` 路线。
32
+
33
+ 刚由用户身份发送的消息如果只得到 `openTaskId`,先查询发送状态:
34
+
35
+ ```text
36
+ +messages-send 或 message send
37
+ → openTaskId
38
+ → message query-send-status
39
+ → openMessageId + openConversationId
40
+ → 编辑或撤回
41
+ ```
42
+
43
+ ## 撤回与编辑
44
+
45
+ `+messages-recall` 可只传 `--msg-id`;省略会话 ID 时 CLI 会通过只读消息详情补齐。
46
+ 兼容单值 `--message-ids`,但不要把 `processQueryKey` 当消息 ID。
47
+
48
+ ```bash
49
+ dws chat +messages-recall --msg-id <openMessageId> --format json
50
+ dws chat +messages-recall --conversation-id <openConversationId> --msg-id <openMessageId> --format json
51
+ ```
52
+
53
+ 编辑使用 `message edit --conversation-id <cid> --msg-id <id>`,并在 `--text` 与 `--content`
54
+ 中二选一。`--text` 由 CLI 生成 Markdown content;`--content` 必须是完整 content JSON。
55
+
56
+ ```bash
57
+ dws chat message edit --conversation-id <openConversationId> --msg-id <openMessageId> --text "更新后的内容"
58
+ dws chat message edit --conversation-id <openConversationId> --msg-id <openMessageId> --content '{"title":"标题","text":"更新后的内容"}'
59
+ ```
60
+
61
+ 群聊 @所有人使用 `--at-all`;指定人员使用 `--at-open-dingtalk-ids`。正文中的占位符以
62
+ Runtime 规范化结果为准,不把裸展示名当稳定身份。
63
+
64
+ ## 引用回复与转发
65
+
66
+ 引用回复默认使用 `+messages-reply`。`--group` 和消息 ID 来自真实查询;
67
+ `--ref-sender` 可省略时让 CLI 只读补齐,不手工猜发送者身份。
68
+
69
+ ```bash
70
+ dws chat +messages-reply --group <openConversationId> \
71
+ --message-id <openMessageId> --content "收到" --format json
72
+ ```
73
+
74
+ | 动作 | 入口 | 关键上下文 |
75
+ |---|---|---|
76
+ | 单条转发 | `+messages-forward` | 源消息 ID、源会话、目标会话 |
77
+ | 合并转发 | `+messages-combine-forward` | 多个真实消息 ID、源/目标会话 |
78
+ | 话题转发 | `+messages-forward-topic` | 源消息、源会话、源 thread、目标会话 |
79
+
80
+ 只有 Shortcut 尚未发布真实必需字段时,才评估原子 `message reply`、`forward`、
81
+ `combine-forward` 或 `forward-topic`,并先读取精确 leaf Schema。不要复制正文伪装原生转发。
82
+
83
+ ## Pin、Top 与 Favorite
84
+
85
+ | 对象 | 写入入口 | 说明 |
86
+ |---|---|---|
87
+ | 消息 Pin | `+messages-set-pin` / `+messages-unset-pin` | 作用于一条消息 |
88
+ | 消息 Top | `+messages-set-top` / `+messages-unset-top` | 作用于会话内一条消息 |
89
+ | Favorite | `+flag-create` / `+flag-cancel` | 当前用户收藏 |
90
+ | 会话 Top | `+conversation-set-top` | 作用于整个会话,不属于本文件 |
91
+
92
+ 用户要求确认 Pin 已生效时,使用 `+messages-list-pin` 检查真实结果中的 `messageId`;取消 Pin
93
+ 后仅在用户要求确认取消结果时再次查询。典型短链为:`+messages-set-pin` →
94
+ `+messages-list-pin` → `+messages-unset-pin`。
95
+
96
+ 需要原子 fallback 时,消息 Pin 对应 `message set-pin-msg/unset-pin-msg`,消息 Top 对应
97
+ `message set-top-msg/unset-top-msg`,Favorite 对应 `message add-favorite/remove-favorite`。
98
+ 四种对象不能互换,即使用户都使用“收藏、钉住、置顶”等自然语言。
99
+
100
+ ## 表情回应
101
+
102
+ 优先在 [chat-emoji-list.md](../chat-emoji-list.md) 按表情名称查默认 emoji,不必全文理解表格。
103
+
104
+ | 场景 | 入口 |
105
+ |---|---|
106
+ | 添加/移除默认 emoji | `+messages-add-emoji` / `+messages-remove-emoji` |
107
+ | 默认表情无合适项时创建文字表情 | `+messages-create-text-emotion` |
108
+ | 添加/移除文字表情 | `+messages-add-text-emotion` / `+messages-remove-text-emotion` |
109
+ | 替换文字表情 | `message update-text-emotion` |
110
+
111
+ reaction 查询属于 [message-query.md](message-query.md),不要为了查看回应执行写命令。
112
+
113
+ ## 流式卡片与文本工具
114
+
115
+ 流式卡片使用根 Skill 直接链接的 [card/create.md](../card/create.md)、
116
+ [card/update.md](../card/update.md) 和 [card/schema.md](../card/schema.md);本文件不复制卡片参数。
117
+
118
+ 纯文本翻译使用:
119
+
120
+ ```bash
121
+ dws chat text translate --query "你好世界" --to en_US
122
+ ```
123
+
124
+ 用户只要求翻译文本时不要误走消息发送。
125
+
126
+ ## 完成与错误
127
+
128
+ - 写操作检查任务级结果、投递状态和失败项,不只看退出码。
129
+ - 投递状态 unknown 时保留幂等键,不自动换目标重发。
130
+ - `unknown flag` 时读取精确 leaf Help,最多修正一次。
131
+ - 目标消息不存在、会话不匹配或发送者上下文缺失时停止,不猜 ID。
132
+ - 已知稳定消息 ID 的单一动作及其紧邻验证均在本文件完成。
@@ -0,0 +1,76 @@
1
+ # message-media:特殊消息与资源下载
2
+
3
+ > 返回入口:[DingTalk Chat Skill](../../SKILL.md)
4
+
5
+ 只用于位置、联系人名片、底层 mediaId/fileId 和消息资源下载。普通文本、Markdown、文件、
6
+ 图片、音频和视频发送继续按根 Skill 使用 `+dm`、`+send-to-group` 或 `+messages-send --file`,
7
+ 不读取本文件。
8
+
9
+ ## 默认边界
10
+
11
+ - 用户身份普通文件/音视频:`dws chat +messages-send --as user --file <相对路径>`。
12
+ - 已知资源引用单独下载:`dws chat +messages-resource-download`。
13
+ - 从消息中定位并下载资源:在定位消息的 `+chat-messages`、`+search-msg` 或
14
+ `+messages-mget` 同一次调用中加 `--download-resources`。
15
+ - 只有 Shortcut 尚未发布的位置、联系人名片或真实底层媒体字段,才使用原子 fallback。
16
+
17
+ <!-- dws-intent: chat.send.advanced -->`dws chat +messages-send` 的 user 文件能力不能外推给 Bot/Webhook;
18
+ 机器人富媒体边界读取 [chat-bot.md](chat-bot.md),不得静默改成当前用户身份。
19
+
20
+ ## 位置与联系人名片
21
+
22
+ 位置消息必须确认纬度、经度、地址名称和地图缩略图 mediaId:
23
+
24
+ ```bash
25
+ dws chat message send --conversation-id <openConversationId> --msg-type location \
26
+ --latitude <纬度> --longitude <经度> --location-name <地址名称> \
27
+ --map-thumbnail-url "@mediaId"
28
+ ```
29
+
30
+ 联系人名片的 `--contact-id` 必须是联系人 `openDingTalkId`,不能把 userId 直接代入:
31
+
32
+ ```bash
33
+ dws chat message send --conversation-id <openConversationId> \
34
+ --msg-type profile --contact-id <openDingTalkId>
35
+ ```
36
+
37
+ 用户要求真实发送结果时,保留发送返回的 `openTaskId`,再执行:
38
+
39
+ ```bash
40
+ dws chat message query-send-status --open-task-id <openTaskId> --format json
41
+ ```
42
+
43
+ 检查真实 `sendStatus`、`openMessageId` 和 `openConversationId`。
44
+
45
+ 原子 `message send` 只在 Shortcut 缺少真实必需字段时使用。群聊目标用 `--conversation-id`;单聊目标
46
+ 用 `--user` 或 `--open-dingtalk-id`,三者通常互斥。发送前核对接收对象、消息类型和资源来源。
47
+
48
+ ## 资源下载
49
+
50
+ 公开 `+messages-resource-download` 使用工作目录内安全相对路径,默认不覆盖;完整文件先写入
51
+ 临时落盘再原子发布。覆盖必须由用户显式传 `--overwrite`,读取和下载不需要 `--yes`。
52
+
53
+ 任务要求从某条消息中定位并下载资源时,优先在限定会话、消息或时间范围的查询中加
54
+ `--download-resources --output-dir <目录>`,并检查下载 ledger。`+messages-resource-download`
55
+ 只用于已经持有完整、真实且属于当前组织/profile 的独立资源引用、无需再定位消息的场景。
56
+ 若 `fileId` 返回 `RESOURCE_NOT_FOUND`,不得把同一个 ID 改称 `mediaId` 重试,也不得原样
57
+ 重复调用;应回到消息查询并使用 `--download-resources`。
58
+
59
+ 底层 fallback:
60
+
61
+ ```bash
62
+ dws chat message download-media --type mediaId --resource-id <mediaId> \
63
+ --message-id <openMessageId> --open-conversation-id <openConversationId> \
64
+ --output ./downloads/
65
+ ```
66
+
67
+ `resource-id`、`message-id` 和会话 ID 必须来自同一 profile 下的真实消息查询结果。
68
+ 当前没有 Range/断点续传;失败时保留 ledger 或错误,显式重试整个文件,不拼接残片。
69
+
70
+ ## 完成与错误
71
+
72
+ - 查询并下载时同时检查消息完整性和每项下载 ledger;单项失败不抹掉已取得消息。
73
+ - 文件/音视频发送失败先确认工作目录内相对路径可读,不恢复独立上传再提取 mediaId 的旧默认链路。
74
+ - 位置参数不完整时先向用户确认,不猜经纬度或缩略图。
75
+ - 名片发送失败时确认 `--contact-id` 是 openDingTalkId。
76
+ - 下载目标存在时默认停止;只有用户明确允许覆盖时才传 `--overwrite`。