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,126 @@
1
+ # Drive 低频能力参考
2
+
3
+ 仅在根 Skill 的 Golden Route 不足时读取本文件的一个相关章节。高频搜索、列表、检查、单文件传输和文件夹同步直接按根 Skill 执行。
4
+
5
+ ## 身份与目标位置
6
+
7
+ - `--node`、`--folder`、`--remote-folder` 使用 dentryUuid/fileId;数字 dentryId 不能替代。
8
+ - 回收站恢复使用 `recycleItemId`,不能复用删除前的 nodeId。
9
+ - URL 类型不明时只执行一次 `dws drive info --node <URL> --format json`,按真实 nodeId/nodeType 分流。
10
+ - 普通文件夹目标使用 `--folder`;明确知识库 workspace 才使用 `--workspace`。零命中、多候选或类型不明时停止。
11
+
12
+ ## Runtime 确认与首次执行
13
+
14
+ - 先解析唯一目标,再以精确 leaf Schema 和 Runtime gate 判断是否需要确认;不要通过一次缺少 `--yes` 的失败调用探测确认要求。
15
+ - Runtime 要求确认且当前请求已明确授权具体节点/文件夹、动作与影响时,首次正式远端写调用直接追加 `--yes`。诸如“整理一下”“处理这些文件”不能视为对删除、覆盖、移动或公开状态变更的精确授权。
16
+ - Runtime 不要求确认时不添加 `--yes`。对象、范围或影响不完整时先询问;确认后必须保持同一 profile、目标、动作、范围和关键参数,任一项变化都要重新确认。
17
+ - `--dry-run`、差异预览和只读检查不加 `--yes`;预览结果符合授权范围后,正式执行才追加。收到 `confirmation_required` 仅表示尚未通过预执行门禁,不代表业务写入成功,也不能据此盲目重放。
18
+
19
+ ## 高级目录列表
20
+
21
+ 普通浏览优先 `+list`。需要递归、名称模式、节点类型或修改时间过滤时使用 managed leaf:
22
+
23
+ ```bash
24
+ dws drive list --folder <dentryUuid> --depth 2 --pattern "*周报*" --format json
25
+ dws drive list --folder <dentryUuid> --type file --start 7d --format json
26
+ ```
27
+
28
+ - `--depth` 最大 5;递归总量上限以结果中的 `truncated/errors` 为准。
29
+ - `--type file|folder` 是节点类型;`search --file-types` 是内容类型,二者不同。
30
+ - `--start/--end` 接受 `24h/7d/2w`、日期或 RFC3339,按修改时间过滤。
31
+ - 过滤模式是客户端有界扫描;`truncated=true` 不能声称全量。需要关键词检索时改用 `+search`。
32
+ - `--latest` 遇到截断或目录读取失败会拒绝给出不完整 Top-N,按错误中的目录和恢复命令缩小范围。
33
+
34
+ ## 非落盘下载地址
35
+
36
+ Agent 沙箱跨文件系统、或外部系统要自行控制下载行为与时机时,用 managed leaf 加 `--url-only` 只换取临时下载地址与签名请求头,不落盘:
37
+
38
+ ```bash
39
+ dws drive download --node <dentryUuid> --url-only --format json
40
+ dws drive download-version --node <dentryUuid> --version 3 --url-only --format json
41
+ ```
42
+
43
+ - `downloadUrl` 为带临时授权签名的链接,应尽快使用;`headers` 为需原样携带的签名请求头(OSS 预签名 URL 场景为空对象,签名已内含在地址里);`fileName/fileSize/version` 为服务端携带时的辅助字段。
44
+ - `--url-only` 与 `--output/--overwrite/--part-size/--parallel/--no-resume` 互斥;权限控制与现有下载链路一致;要把文件保存到本地路径时改用 `+download`。
45
+
46
+ ## 回收站
47
+
48
+ ```bash
49
+ dws drive +delete --node <dentryUuid>
50
+ dws drive +recycle-list --limit 20
51
+ dws drive +recycle-restore --id <recycleItemId>
52
+ ```
53
+
54
+ 删除前核对名称、类型和 ID;恢复从列表真实返回取 `id`。恢复后使用返回的新 nodeId,不沿用旧 ID。
55
+
56
+ ## 普通文件历史版本
57
+
58
+ | 意图 | 入口 | 完成证据 |
59
+ |---|---|---|
60
+ | 列版本 | `+version-history` | 版本集合与分页字段 |
61
+ | 查看版本 | `+version-get` | 请求的 version |
62
+ | 下载版本 | `+version-download` | 相对路径存在且 sizeBytes > 0 |
63
+ | 回滚版本 | `+version-revert` | Runtime 确认后读回最新版本 |
64
+
65
+ 这些入口只用于普通文件。adoc 版本走 Doc,axls 版本走 Sheet。
66
+
67
+ ## 收藏、统计与封面
68
+
69
+ - 收藏列表:`+star-list`;收藏/取消:`+star-add` / `+star-remove`。
70
+ - 节点统计和封面优先并入 `+inspect --include-stats` / `--include-cover`;只取单项才用 `+stats` / `+cover`。
71
+ - 收藏是个人状态,不代表共享或权限变化。
72
+
73
+ ## 普通文件评论
74
+
75
+ 普通 PDF、DOCX、XLSX 等本地文件使用 `dws drive comment`,复用 Doc/Sheet 的新评论服务链路。当前固定为文件级全文评论 `topicId=global`,不支持划词、单元格、页码、anchor 或 mention。
76
+
77
+ 旧 `drive comment list/create` 保留旧评论服务的行为和输出,仅作 deprecated 兼容入口。Agent 必须使用下面的 `list-v2/create-v2` 进入新评论体系。
78
+
79
+ ```bash
80
+ dws drive comment list-v2 --node <dentryUuid> --format json
81
+ dws drive comment create-v2 --node <dentryUuid> --content "请补充结论"
82
+ dws drive comment list-replies --node <dentryUuid> --comment-key <commentKey> --format json
83
+ ```
84
+
85
+ 完整生命周期包括 `list-v2/create-v2/reply/update/delete/batch-query/list-replies/resolve/restore/react-reply`。分页游标必须原样回传;`list-v2` 每页上限为 50,超过上限直接报错;写操作按 Runtime confirmation 执行,后续操作的 `commentKey` 必须来自真实返回。
86
+
87
+ ## 公开状态
88
+
89
+ ```bash
90
+ dws drive +publish-get --node <dentryUuid>
91
+ dws drive +publish-unset --node <dentryUuid>
92
+ ```
93
+
94
+ `+publish-get` 只读;`+publish-unset` 为高风险写。Runtime 虽注册了 `+publish-set`,但当前普通文件和在线文档都没有经过验证的开启公开闭环,因此根 Skill 明确不将它开放给 Agent。用户要求开启公开时,说明当前 Agent 路由不支持并停止;不要查询或执行 `+publish-set`、`drive publish set` 或其他替代写入口。只有补齐受支持节点上的真实 set→get→unset 闭环证据并更新 Agent 路由后,才重新开放该能力。
95
+
96
+ ## 权限
97
+
98
+ | 意图 | managed leaf |
99
+ |---|---|
100
+ | 查看成员权限 | `drive permission list` |
101
+ | 查询节点权限设置(权限模式/分享范围/策略) | `permission get-setting` |
102
+ | 添加、修改、移除成员 | `permission add` / `update` / `remove` |
103
+ | 转移所有者 | `permission transfer-owner` |
104
+ | 查看可申请权限和审批人 | `permission apply-info` |
105
+ | 发起权限申请 | `permission apply` |
106
+
107
+ 只在意图命中时读取一个精确 leaf Schema。成员变更、转移所有者、发起申请和公开状态变更必须明确节点、用户、角色与影响范围。转移所有者时,在构造最终命令前必须让用户分别明确决定 `--reserve-role <MANAGER|EDITOR|DOWNLOADER|READER|NONE>` 和 `--recursive=<true|false>`;Agent 不得根据默认值、对象类型或便捷性自行选择任一项。两项决策与目标、新所有者均明确后,才按 Runtime confirmation 构造首次正式调用。
108
+
109
+ `permission get-setting` 返回 `permissionMode`(INHERITED/INDEPENDENT,未知时为 null)、`shareScope`(可见范围与链接分享,密码明文不返回;`partnerIncluded`、`defaultRole` 等仅 ORGANIZATION 有意义,`linkShare` 仅开启链接分享时返回)和 `policies[]`(code/name/description/value/disabledValues/allowedValues;name/description 为中文名与值语义说明,随行必带;未下发的策略不返回,`node_spread_scope` 仅文件夹)。`disabledValues` 为不可设置取值列表(恒返回,无被禁档位时为空数组),每项含 `value`(被禁档位取值,与 value 同一值域)与 `reason`(服务端按请求语言返回的禁用原因文案,仅供展示理解,可为 null),与 allowedValues 互斥;示例:`{"value": "READER_AND_ABOVE", "reason": "企业安全策略要求不可低于可下载角色"}`。`value` 按策略分型:开关型为 ENABLED/DISABLED;member_invite、comment 为 READER_AND_ABOVE/DOWNLOADER_AND_ABOVE/EDITOR_AND_ABOVE/MANAGER_AND_ABOVE;node_spread、online_content_copy 为 DOWNLOADER_AND_ABOVE/EDITOR_AND_ABOVE/MANAGER_AND_ABOVE 或 NOBODY;node_spread_scope 为 ALL_NODES(限制对所有文档生效)/ PREVIEWABLE_ONLY(仅对可预览的文档生效)。NOBODY=该操作对所有人禁止;XXX_AND_ABOVE=不低于该角色才允许。name/description 示例(文案与产品权限设置页一致):external_share「添加企业外协作者」:是否允许添加企业外的人为协作者(ENABLED=允许,DISABLED=禁止);node_spread「谁可以下载、创建副本、打印」:允许哪些角色及以上的用户下载、创建副本、打印;NOBODY=所有人禁止下载、创建副本、打印;node_move_forbidden「禁止移动」:是否禁止移动到其他知识库或团队共享文件夹(ENABLED=禁止移动,DISABLED=允许移动)。
110
+
111
+ 发起权限申请先只读执行 `permission apply-info`。正式 `permission apply` 会通知审批人;调用前必须向用户逐项回显并确认资源、申请角色、审批人和理由。Agent 不得默认选择第一位审批人、最高/最低角色或代写申请理由;用户未明确同意完整申请内容时停在确认环节。
112
+
113
+ ## 快捷方式节点
114
+
115
+ `+create-shortcut --node <源ID> [--folder <目标ID>|--workspace <知识库ID>]` 创建链接。在线文档节点需要保留版式的独立副本时使用 `+copy`;普通钉盘文件的独立副本必须经用户授权后走 download→upload,因为当前 `+copy` 会拒绝普通文件。源/目标类型不兼容时停止,不把快捷方式当普通文件继续覆盖。
116
+
117
+ ## 错误恢复
118
+
119
+ 1. `unknown flag` 只查当前 leaf Help;`unknown command` 只查一次 Drive Shortcut 清单。
120
+ 2. 分页、递归或过滤未完成时保留 cursor/truncated/errors,不包装成全量成功。
121
+ 3. 写入超时或响应丢失先按 nodeId、名称、路径和大小回读,不能盲目重放。
122
+ 4. 在线文档误入普通下载/覆盖时切 Doc、Sheet 或 AITable;不要用 Drive 重试改变内容。
123
+
124
+ ## 辅助脚本
125
+
126
+ - [drive_tree_list.py](../scripts/drive_tree_list.py):递归列出钉盘目录树;普通浏览仍优先使用 `dws drive +list`。
@@ -0,0 +1,40 @@
1
+ # Drive 文件夹比较与同步
2
+
3
+ 仅用于本地目录与钉盘普通文件夹之间的递归文件级比较或镜像。单个文件使用根 Skill 的 `+download/+upload`。
4
+
5
+ ## 选择入口
6
+
7
+ | 目标 | 唯一入口 |
8
+ |---|---|
9
+ | 只比较,不写任何一侧 | `dws drive status` |
10
+ | 钉盘 → 本地 | `dws drive pull` |
11
+ | 本地 → 钉盘 | `dws drive push` |
12
+ | 两侧互相补齐 | `dws drive sync` |
13
+
14
+ 四个入口都要求 `--local-folder <绝对路径> --remote-folder <dentryUuid>`;`--space-id` 可选。动作已经明确时直接进入对应命令,不先重复执行 status。
15
+
16
+ ## 安全流程
17
+
18
+ `status` 只读,可直接执行。`pull/push/sync` 会写本地或钉盘,先使用相同参数 `--dry-run` 查看计划;确认目标、方向和冲突策略后,再按 Runtime confirmation 执行。
19
+
20
+ ```bash
21
+ dws drive status --local-folder /abs/local --remote-folder <folderId> --format json
22
+ dws drive pull --local-folder /abs/local --remote-folder <folderId> --if-exists skip --dry-run --format json
23
+ dws drive push --local-folder /abs/local --remote-folder <folderId> --if-exists skip --dry-run --format json
24
+ dws drive sync --local-folder /abs/local --remote-folder <folderId> --on-conflict skip --dry-run --format json
25
+ ```
26
+
27
+ ## 策略
28
+
29
+ - pull/push `--if-exists`: `skip` 是不覆盖的安全默认;`smart` 按修改时间做增量;`overwrite` 以来源侧覆盖目标侧。用户未明确选择覆盖策略时,Agent 必须保留 `skip`,不得代选 `smart/overwrite`;只有回显 dry-run 的覆盖项并得到明确授权后,才使用后两者。
30
+ - sync `--on-conflict`: `skip` 默认保留两侧;`remote-wins` 覆盖本地;`local-wins` 覆盖远端;`keep-both` 先改名本地再拉远端;`ask` 需要交互。
31
+ - 默认 exact 通过 MD5 比较;远端缺少可靠 MD5 时进入 `unknown` 并跳过。只有用户接受时间戳近似时才加 `--quick`。
32
+ - 这些命令只处理普通 `type=file` 和目录;在线文档、快捷方式不会按普通二进制同步。
33
+ - 文件级镜像只新增或覆盖,不删除任一侧多余文件。
34
+
35
+ ## 结果与恢复
36
+
37
+ - status 检查 `new_local/new_remote/modified/unchanged/unknown`。
38
+ - pull/push/sync 检查 summary 与逐条 items;任何 failed/unknown 必须保留,不把部分结果称为成功。
39
+ - 下载先写临时文件再原子替换;失败时保留原目标。上传在提交前明确失败时直接返回。`push/sync` Runtime 遇到 `commit_upload` 超时、连接中断、空响应或畸形响应会直接返回错误,不会自动恢复,也不能据此断言未提交;Agent 必须把该项保留为 `unknown`,再用只读 list/inspect 按远端路径、名称和大小有限核对,无法证明时报告未知,不能直接重放可能已提交项。服务未同时提供源端与结果的可比哈希时,不虚构 checksum 验证。
40
+ - dry-run 与正式执行必须使用同一 local-folder、remote-folder、space-id 和策略;不要在确认后静默改变方向或冲突策略。
@@ -0,0 +1,22 @@
1
+ # Drive 局部意图消歧
2
+
3
+ | 用户表达 | 应用 | 不应用 | 理由 |
4
+ |---|---|---|---|
5
+ | 全局找文件、最近文件、浏览已知“我的文件”/文档空间目录 | Drive | Wiki node | 未限定知识库 workspace,属于普通存储域 |
6
+ | 列出/发现钉盘企业空间或“我的文件”空间 | managed `dws wiki space list --type orgSpace|mySpace` 发现 spaceId/rootFolderId 后回 Drive | `wiki +space-list` 的 orgWikiSpace/myWikiSpace | Drive 存储空间前置;spaceId、rootFolderId 与知识库 workspaceId 不可互换 |
7
+ | 明确知识库内列节点、移动节点、搜索节点 | Wiki | Drive | workspace 内层级由 Wiki 管理 |
8
+ | 普通文件或文件夹移动、重命名、删除 | Drive | Doc | 节点存储动作不修改正文 |
9
+ | 普通文件创建独立副本 | Drive download→upload | Drive `+copy` | 当前 `+copy` 会拒绝普通钉盘文件,避免把 `.dlink` 快捷方式伪装成副本 |
10
+ | adoc 正文读取、编辑或导出 | Doc | Drive download | Drive 只管理节点;在线文档需要格式转换 |
11
+ | 本地 xlsx/xls/csv 节点下载后分析 | Drive + 本地工具 | Sheet range read | 上传的普通文件不是 axls 在线表格 |
12
+ | axls 在线表格导出为 xlsx | Sheet export | Drive download | export 执行格式转换 |
13
+ | able 记录、字段、视图 | AITable | Drive | 表内业务数据不属于存储节点动作 |
14
+ | able 仅复制结构、删除 Base | AITable `+base-copy --base-id <ID> --target-folder-id <真实ID> --only-struct` / `+base-delete --base-id <ID>` | Drive copy/delete | 当前 main 要求真实目标文件夹 ID;缺少时停止,禁止发明 `--target-root`、完整复制后逐表删数据或用 Drive 猜根 ID |
15
+ | Base 内 Table/Dashboard/Section 节点操作 | AITable `+table-*` / `+section-*` | Drive | nsheet 节点不是独立 Drive dentry |
16
+ | 整个 Base 移到普通文件夹、外层存储重命名 | Drive | AITable 表内命令 | 这是 Base 外层存储位置/名称动作 |
17
+ | PDF、DOCX、XLSX 等普通文件的评论查询或生命周期操作 | Drive `comment list-v2/create-v2/reply/update/delete/batch-query/list-replies/resolve/restore/react-reply` | Doc/Sheet comment | 默认进入新评论体系;普通文件固定使用文件级 global topic,不支持划词或单元格锚点;仅在用户明确要求旧评论兼容行为时使用 deprecated 的 `list/create` |
18
+ | Word/Markdown/Text 转在线文档 | Doc `+import` | Drive upload | import 会创建在线文档;upload 只保留原文件 |
19
+ | “上传文件”但未指定目标 | Drive `+upload` | — | 默认按普通文件上传到钉盘 |
20
+ | “照这个文档做一份同样格式的” | Drive `+copy` + `+rename`,再由 Doc 局部更新副本 | 读取后重建 | 先复制可保留在线文档版式 |
21
+
22
+ URL 本身不能证明产品类型。当前 Drive shortcut 的公开参数主要接受 ID;只有 URL 时先用 `dws drive info --node <URL> --format json` 预检并取真实 nodeId/nodeType。
@@ -0,0 +1,39 @@
1
+ # Drive 精简流程
2
+
3
+ 只在跨 Drive/Doc/Wiki 的组合任务命中时读取。单一 Drive 操作直接按根 Skill 执行。
4
+
5
+ ## 查找并读取在线文档
6
+
7
+ 1. 未指定空间:`dws drive +search --query "<关键词>" --format json`。
8
+ 2. 明确知识库:用 Wiki 在指定 workspace 搜索。
9
+ 3. 唯一确定 nodeId 后切 Doc `+fetch` 读取正文;大文档按返回 continuation 继续。
10
+
11
+ Drive search 找的是节点;正文全文检索优先用 Doc `+search`。
12
+
13
+ ## 列出目录中的文档
14
+
15
+ - 普通钉盘目录:`dws drive +list --folder <dentryUuid> --format json`
16
+ - 知识库目录:切 Wiki,用 workspace + parent node 定位
17
+
18
+ 处理 nextCursor,并设置最大页数/条目数。不要从根目录无界递归。
19
+
20
+ ## 导入为在线文档
21
+
22
+ ```bash
23
+ dws doc +import --file ./report.docx --format json
24
+ ```
25
+
26
+ - `.doc/.docx/.md/.txt` 通常导入为在线文字文档;`.xls/.xlsx` 导入为在线表格,最终类型以真实返回为准。
27
+ - 目标是“保留原文件”时使用 Drive `+upload`,不是 Doc import。
28
+ - 用户给目标文件夹 URL 时,若命令契约不保证 URL 直传,先用 `dws drive info --node <URL>` 验证它是 folder,并复用当前节点 nodeId;不要误用其父 folderId。
29
+ - 导入超时或返回 task/checkpoint 时按 Doc 返回的 continuation 恢复,不重复创建。
30
+
31
+ ## 模板保形生成
32
+
33
+ 1. `dws drive +copy --node <源nodeId> --folder <目标folderId>` 保形复制。
34
+ 2. 用返回的新 nodeId 执行 `dws drive +rename`。
35
+ 3. 切 Doc,只对副本执行局部正文更新。
36
+
37
+ 不要用“读取 Markdown → 新建文档”替代复制;该路径会丢失在线文档的版式属性。
38
+
39
+ 本剧本只适用于 `+copy` 支持的在线文档节点(如 adoc);普通钉盘文件创建独立副本应改走经用户授权的 download→upload。若源节点是 `able` 且用户要“只复制结构”,切 AITable,按当前 leaf 执行 `+base-copy --base-id <ID> --target-folder-id <真实ID> --only-struct`。只有根目录意图但没有真实目标文件夹 ID 时停止;禁止发明 `--target-root`、用 Drive 完整复制后逐表删记录或自建测试文件夹。
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: dingtalk-event
3
+ description: 钉钉个人 IM、OA 审批、VoIP 通话邀请与待办事件长连接监听。Use when 用户说监听消息/@我/某人/某群/全部消息、已读/撤回/reaction、群成员加入/群成员退出/群状态变化,监听审批任务创建/完成/转交、审批实例发起/抄送/终止/完成、VoIP 通话邀请,或监听待办创建/更新/删除。命令前缀:dws event。
4
+ metadata:
5
+ cli_version: ">=0.2.14"
6
+ category: product
7
+ requires:
8
+ bins:
9
+ - dws
10
+ ---
11
+
12
+ # 钉钉个人 IM、OA 审批、VoIP 与待办事件
13
+
14
+ > **前置:执行 `dws` 前必须完整读取 [`dingtalk-shared`](../dingtalk-shared/SKILL.md)。**Shared references 仅按需加载。
15
+
16
+ 本 Skill 只负责未来个人 IM/OA/VoIP/Todo 事件;发送和历史消息走 `dingtalk-chat`,审批处理走 `dingtalk-misc`,待办操作走 `dingtalk-todo`。
17
+
18
+ 实时监听使用长连接,不用历史消息、审批列表、通话记录或待办列表轮询。IM 优先使用 `dws event +listen-im`;OA、VoIP 与 Todo 使用 `dws event consume`。
19
+
20
+ <!-- dws-intent: event.listen.im -->消息、reaction、已读和撤回的默认监听入口是 `dws event +listen-im`;
21
+ 只有群生命周期、Filter DSL、原始 envelope 或底层订阅控制才使用
22
+ `event consume` fallback。
23
+
24
+ <!-- dws-intent: event.listen.oa -->OA 审批任务与审批实例的实时变化使用 `dws event consume`;查询或操作已有审批走 `dws oa`,不要用轮询模拟事件。
25
+
26
+ <!-- dws-intent: event.listen.todo -->待办创建、更新或删除的实时变化使用 `dws event consume`;查询或操作已有待办走 `dws todo`,不要用轮询模拟事件。
27
+
28
+ ## Golden Route
29
+
30
+ | 用户意图 | 唯一推荐入口 |
31
+ |---|---|
32
+ | 监听 @我的消息 | `dws event +listen-im --kind at-me` |
33
+ | 监听某人发来的消息 | `dws event +listen-im --kind sender --user-query <姓名>` |
34
+ | 监听指定群消息 | `dws event +listen-im --kind group --chat-query <群名>` |
35
+ | 同一人/群的消息、表情、已读或撤回 | `dws event +listen-im --kind <sender|group> --events message,reaction,read,recall ...` |
36
+ | 监听全部单聊或全部群消息 | `dws event +listen-im --kind <all-direct|all-group>`;只有用户明确要求“全部”时使用 |
37
+ | 群改名、成员进退、群解散 | 读取 [EventKey 索引](references/event-im-keys.md),使用精确 `event consume` EventKey |
38
+ | OA 审批任务或实例事件 | 读取 [OA 事件参考](references/event-oa.md),使用精确 `event consume` EventKey |
39
+ | 查看 OA 事件目录 | `dws event list --category oa` |
40
+ | VoIP 通话邀请 | 读取 [VoIP 事件参考](references/event-voip.md),使用精确 `event consume` EventKey |
41
+ | 待办创建、更新或删除事件 | 读取 [Todo 事件参考](references/event-todo.md),使用精确 `event consume` EventKey 与 `--role-types` |
42
+ | 查看 Todo 事件目录 | `dws event list --category todo` |
43
+ | 已知 EventKey 或需要底层订阅控制 | `dws event consume`;参数与约束以 leaf Schema 为准 |
44
+ | 查看状态 / 停止 | `dws event status` / `dws event stop <subscribe_id> --dry-run`,确认后再 `--yes` |
45
+
46
+ 默认 `--events message`。可选事件为 `message`、`reaction`、`read`、`recall`:
47
+
48
+ - `at-me`、`all-direct`、`all-group` 只支持 `message`,且不接受目标。
49
+ - `sender` 必须且只能传 `--user`、`--open-dingtalk-id` 或 `--user-query` 之一。
50
+ - `group` 必须且只能传 `--chat-id` 或 `--chat-query` 之一。
51
+ - `--query` 只用于纯 `message` 监听;混入 reaction/read/recall 时不得使用。
52
+
53
+ OA 事件不进入 `+listen-im`。七个公开 OA EventKey 都订阅当前 OAuth 用户相关的全部审批事件,使用 `ruleType=all`、`filterRule={}`;不接受 `--user`、`--open-dingtalk-id`、`--group`、`--query` 或 `--filter-json`。七项可放入同一个 consume,每项建立独立订阅并共享 bus。
54
+
55
+ Todo 事件也不进入 `+listen-im`。三个公开 EventKey 使用 `--role-types creator,executor,participant` 控制当前用户作为创建者、执行者或参与者的范围;省略时默认三种角色。Todo 不接受用户、群或消息 Filter 参数,三项可共享同一角色范围和 bus。
56
+
57
+ 自然姓名和群名由 CLI 内部唯一解析:零命中或多候选返回结构化失败,在创建任何订阅前停止。`--dry-run` 走同一解析链。解析、监听、状态和停止必须使用同一个 `--profile`,不得跨组织搬运 ID。
58
+
59
+ ### EventKey 索引
60
+
61
+ 16 个 EventKey 的目标与组合约束见 [EventKey 索引](references/event-im-keys.md)。兼容键包括 `user_im_message_receive_o2o_all`、`user_im_message_receive_group_all`、`user_im_group_updated`、`user_im_group_member_added`、`user_im_group_member_exited`、`user_im_group_disbanded`;群输出可含 `operator_open_dingtalk_id`、`members[].open_dingtalk_id`。OA 见 [OA 事件参考](references/event-oa.md),Todo 见 [Todo 事件参考](references/event-todo.md)。
62
+
63
+ ## 运行与结果契约
64
+
65
+ - 正常消费固定使用当前用户 OAuth 身份、`--flatten` 和 NDJSON;stdout 只输出事件,stderr 输出订阅、ready、退出和错误状态。
66
+ - 单事件 ready:`[event] ready event_key=<key> bus_pid=<pid> subscribe_id=<id>`。
67
+ - 多事件先逐条输出 subscription,全部就绪后输出 `[event] ready event_count=<n> bus_pid=<pid>`。必须等待 ready,不用 `sleep` 猜测。
68
+ - 有界任务使用 `--max-events N` 或 `--duration 10m`;无界任务需要宿主管理进程并持续读取 stdout。
69
+ - 干净退出会取消本次新建的订阅;使用 SIGTERM、关闭符合条件的管道 stdin,或 Runtime 的 bounded exit。不要 `kill -9`。
70
+ - 当前用户自己发送的消息会被 self-loop 过滤;自测事件应由另一用户或机器人发送。
71
+ - 事件只负责监听;需要回复时按 [输出与 Chat 交接](references/event-im-output.md) 把真实 `conversation_id` 或 `sender_open_dingtalk_id` 交给 `dws chat +messages-send`,不要从显示名猜 ID。
72
+ - 扁平消息/动作字段按事件类型读取:已读为 `reader_open_dingtalk_id`,撤回为 `recaller_open_dingtalk_id`,回应为 `reaction_name`、`operation_type`。媒体优先通过聊天读取命令加 `--download-resources`;已知消息 ID 的底层降级入口是 `dws chat message download-media`。
73
+ - OA 扁平事件提供审批实例、任务和状态字段;字段差异、原始回退条件及与 OA 命令的稳定 ID 交接以 [OA 事件参考](references/event-oa.md) 为准。
74
+ - Todo 扁平事件提供 `task_id`、标题、角色、状态阶段和时间字段;用真实 `task_id` 交给 `dws todo`,字段差异见 [Todo 事件参考](references/event-todo.md)。
75
+
76
+ ## 安全与失败处理
77
+
78
+ - `event stop` 会取消订阅并影响本地 consumer:先 `--dry-run`,用户确认后再加 `--yes`。
79
+ - 多事件属于一次原始操作;任一订阅启动失败时 Runtime 回滚本次已创建项,不拆成新命令绕过重试预算。
80
+ - 这套 `0/2/1` 是 **Agent/host** 编排预算,适用于全部 27 个公开个人 EventKey(16 个 IM + 7 个 OA + 1 个 VoIP + 3 个 Todo):`retryable=false` 对应 `max_additional_attempts=0`;`retryable=true` 对应 `max_additional_attempts=2`;`retryable=unknown` 对应 `max_additional_attempts=1`。它不是 CLI 持久化硬总次数上限;每次调用最多创建一次,进程内不会自动重试,CLI 也不持久化或计算跨调用的 Agent/host 尝试次数。
81
+ - 重试必须遵守 `retry_after_seconds` / `next_retry_at`。遇到 `in_flight`、`cooldown`、`terminal_hold` 不并发或递归重启同一逻辑订阅,也不换 `subscribe_id` / `trace_id` 绕过保护。
82
+ - 认证、profile、订阅保护状态和 bus 排障按失败类型读取 [订阅运维](references/event-im-operations.md),不要在正常路径预加载完整运维手册。
83
+
84
+ ### 本地订阅保护
85
+
86
+ 状态在 `~/.dws/events/open/personal_stream/<identity_hash>/personal_subscription_attempts.json`(`DWS_CONFIG_DIR` 改根);目录 `0700`,`personal_subscription_attempts.json` 与 `personal_subscription_attempts.lock` 为 `0600`。连续 `24h` 无失败后重置,`terminal_hold` 为 `1h`。紧急恢复只删除 `personal_subscription_attempts.json`,不要删除 lock 文件;这会清空该 identity 的全部保护记录。
87
+
88
+ ## 何时查询 Schema
89
+
90
+ - 已知 Golden Route 时直接执行,不先跑 `event list`。
91
+ - 只有解析业务字段时才用 `dws event schema <event_key> --flatten`。
92
+ - 只有参数或安全不确定时才用 `dws schema --cli-path "event +listen-im" --compact` 或对应 compact leaf。
93
+ - `event schema` 描述事件 payload;顶层 `dws schema` 描述 CLI 命令,两者不要混用。
94
+
95
+ ## Reference
96
+
97
+ | Topic | Reference | 何时读取 |
98
+ |---|---|---|
99
+ | 任务索引 | [event-im.md](references/event-im.md) | 还不能判断应该加载哪一个子 reference |
100
+ | EventKey、目标规则与底层 consume | [event-im-keys.md](references/event-im-keys.md) | 群生命周期、显式 EventKey 或多事件组合 |
101
+ | ready、bounded consume 与退出清理 | [event-im-lifecycle.md](references/event-im-lifecycle.md) | 启动/托管/关闭 consumer |
102
+ | 扁平字段与事件到 Chat 交接 | [event-im-output.md](references/event-im-output.md) | 解析事件或自动回复 |
103
+ | Filter、status/stop、重试与排障 | [event-im-operations.md](references/event-im-operations.md) | 订阅控制或失败恢复 |
104
+ | OA 审批事件 | [event-oa.md](references/event-oa.md) | 选择七个 OA EventKey、组合消费或解析审批字段 |
105
+ | VoIP 通话邀请事件 | [event-voip.md](references/event-voip.md) | 选择 VoIP EventKey、解析邀请字段或检查敏感输出边界 |
106
+ | Todo 待办事件 | [event-todo.md](references/event-todo.md) | 选择三个 Todo EventKey、设置角色范围或解析待办字段 |
@@ -0,0 +1,54 @@
1
+ # IM EventKey 与底层消费
2
+
3
+ 高频消息、reaction、已读和撤回优先 `dws event +listen-im`。本页只用于群生命周期、
4
+ 显式 EventKey 或高级底层控制。
5
+
6
+ ## 16 个 EventKey
7
+
8
+ | EventKey | 范围 | 目标参数 |
9
+ |---|---|---|
10
+ | `user_im_message_receive_at` | 被 @ 消息 | 无 |
11
+ | `user_im_message_receive_o2o` | 指定单聊消息 | `--user` 或 `--open-dingtalk-id` |
12
+ | `user_im_message_receive_group` | 指定群消息 | `--group` |
13
+ | `user_im_message_receive_user` | 指定发送人在单聊/群聊中的消息 | `--user` 或 `--open-dingtalk-id` |
14
+ | `user_im_message_receive_o2o_all` | 全部单聊消息 | 无 |
15
+ | `user_im_message_receive_group_all` | 全部群消息 | 无 |
16
+ | `user_im_message_read_o2o` | 指定单聊已读 | user 二选一 |
17
+ | `user_im_message_read_group` | 指定群已读 | `--group` |
18
+ | `user_im_message_recall_o2o` | 指定单聊撤回 | user 二选一 |
19
+ | `user_im_message_recall_group` | 指定群撤回 | `--group` |
20
+ | `user_im_message_reaction_o2o` | 指定单聊 reaction | user 二选一 |
21
+ | `user_im_message_reaction_group` | 指定群 reaction | `--group` |
22
+ | `user_im_group_updated` | 群标题变化 | `--group` |
23
+ | `user_im_group_member_added` | 成员加入 | `--group` |
24
+ | `user_im_group_member_exited` | 成员退出 | `--group` |
25
+ | `user_im_group_disbanded` | 群解散 | `--group` |
26
+
27
+ `--user` 只接收 userId;明确 openDingTalkId 时用对应 flag。群目标必须是
28
+ openConversationId。不要把两种身份混传或选择搜索第一项。
29
+
30
+ ## 精确模板
31
+
32
+ ```bash
33
+ dws event consume user_im_group_member_added \
34
+ --group <openConversationId> --flatten -f ndjson
35
+
36
+ dws event consume user_im_message_receive_user \
37
+ --open-dingtalk-id <openDingTalkId> --flatten -f ndjson
38
+
39
+ dws event consume user_im_message_receive_group \
40
+ user_im_message_reaction_group \
41
+ user_im_message_recall_group \
42
+ --group <openConversationId> --flatten -f ndjson
43
+ ```
44
+
45
+ 多事件只能共享同一 target/filter。用户类与群类不能混在一个命令中;不同人、群或过滤条件
46
+ 启动不同 consume。只有全部 EventKey 都是接收消息时才能共享 `--query/--filter-json`。
47
+ 多事件不支持 `--subscribe-id`、`--rule`、`--event-types`、`--filter`、`--foreground`、
48
+ `--force` 或 `--debug-raw-events`。
49
+
50
+ ## 意图消歧
51
+
52
+ - “我和某人的单聊” → `receive_o2o`;“某人发给我的消息” → `receive_user`。
53
+ - 执行撤回/添加 reaction 走 `dws chat`;监听它们才走 Event。
54
+ - 群改名/成员进退/解散使用四个生命周期 EventKey;解散自测只能用已确认可销毁测试群。
@@ -0,0 +1,35 @@
1
+ # IM consume 生命周期
2
+
3
+ ## Ready 门禁
4
+
5
+ 单事件只有出现以下 stderr 后才读取 stdout:
6
+
7
+ ```text
8
+ [event] ready event_key=<key> bus_pid=<pid> subscribe_id=<id>
9
+ ```
10
+
11
+ 多事件会先逐条输出 subscription,全部 IPC consumer 就绪后才输出:
12
+
13
+ ```text
14
+ [event] subscription event_key=<key> subscribe_id=<id>
15
+ [event] subscription event_key=<key> subscribe_id=<id>
16
+ [event] ready event_count=2 bus_pid=<pid>
17
+ ```
18
+
19
+ 不能把 subscription 行当成整体 ready,也不要用 `sleep` 猜建联。任一订阅或 IPC 建联失败,
20
+ Runtime 会回滚本次已创建订阅。
21
+
22
+ ## 有界与长期任务
23
+
24
+ - 有界消费使用 `--max-events N` 或 `--duration 10m`。
25
+ - 长期任务由宿主管理子进程并持续读取 stdout/stderr,避免管道背压。
26
+ - `--output-dir`/`--route` 是明确落盘任务,不要用文件 watcher 代替 stdout 事件循环。
27
+ - stdout 的 NDJSON 每行独立解析;单行失败不能吞掉后续事件。
28
+
29
+ ## 干净退出
30
+
31
+ 本次新建的订阅会在 SIGTERM、Ctrl+C、符合条件的 stdin EOF、duration 或 max-events 退出时
32
+ 自动取消。复用 `--subscribe-id` 的订阅默认保留,除非显式 `--ephemeral`。
33
+
34
+ 多事件中停止一个 subscribe_id 只移除对应 consumer;其余继续,最后一个移除后进程退出。
35
+ 禁止 `kill -9`,它会跳过清理。外部停止流程见 [event-im-operations.md](event-im-operations.md)。
@@ -0,0 +1,52 @@
1
+ # IM 订阅过滤、状态与排障
2
+
3
+ ## Filter
4
+
5
+ 优先用订阅规则缩小范围:单聊/发送人用 user 身份,群用 `--group`。接收消息事件需要额外
6
+ 正文过滤时才用 `--query` 或 `--filter-json`;已读、撤回、reaction 和群生命周期不使用
7
+ 消息内容过滤。业务别名包括 `content`、`sender`、`conversation_id`、
8
+ `sender_open_dingtalk_id`。
9
+
10
+ ## Status 与 stop
11
+
12
+ ```bash
13
+ dws event status --event <event_key>
14
+ dws event stop <subscribe_id> --dry-run
15
+ dws event stop <subscribe_id> --yes
16
+ dws event stop --all --dry-run
17
+ dws event stop --all --yes
18
+ ```
19
+
20
+ `status` 同时看服务端 Subscriptions 与本地 Consumers;用 PID、EventKey、subscribe_id 和
21
+ received/dropped 判断 consumer。裸 `event stop` 不取消任何订阅。stop 是有影响操作,先预览,
22
+ 按 Runtime gate 确认后执行。
23
+
24
+ ## 创建失败与 `0/2/1` 编排预算
25
+
26
+ 这些约束只治理 ready 之前的创建;ready 后断线由长连接重连:
27
+
28
+ - `retryable=false`:额外尝试 0 次。
29
+ - `retryable=true`:最多额外 2 次,并遵守 `retry_after_seconds/next_retry_at`。
30
+ - 未给 retryable:最多额外 1 次,然后停止并保留 trace。
31
+
32
+ 这是 Agent/host 预算,不是 CLI 跨进程计数器。一个逻辑订阅由 profile/身份、EventKey、
33
+ rule、目标和 filter 确定;换 subscribe_id、trace 或进程不能重置预算。遇到 `in_flight`、
34
+ `cooldown`、`terminal_hold` 不并发、递归或拆分多事件绕过保护。
35
+
36
+ ## 本地保护状态
37
+
38
+ open 版路径为
39
+ `~/.dws/events/open/personal_stream/<identity_hash>/personal_subscription_attempts.json`;
40
+ `DWS_CONFIG_DIR` 会改变根目录。identity 目录为 `0700`,JSON 与 lock 为 `0600`。
41
+ 连续 24h 无失败后重置,terminal hold 为 1h。
42
+
43
+ 紧急恢复前确认没有创建进程,只删除 attempts JSON,不删除 lock;这会清空该 identity 的
44
+ 全部保护记录,不是常规重试方式。
45
+
46
+ ## 最短排障
47
+
48
+ - 无输出:先确认正确 ready marker,再看 subscribe_id 和 received/dropped。
49
+ - 目标错误:o2o/user 检查身份 flag,group 检查 openConversationId。
50
+ - 判断服务端是否推到连接:临时单事件 `--debug --debug-raw-events`;它不能与 `--flatten`
51
+ 并用,排查后立即移除。
52
+ - 长期运行:交给宿主进程管理,不写历史消息轮询脚本。
@@ -0,0 +1,39 @@
1
+ # IM 事件输出与 Chat 交接
2
+
3
+ Agent 默认使用 `--flatten -f ndjson`,顶层直接读取字段,不再 `fromjson`。消息接收常见字段:
4
+
5
+ | 字段 | 语义 |
6
+ |---|---|
7
+ | `type` / `event_id` / `timestamp` | 事件类型、去重 ID、时间 |
8
+ | `subscribe_id` | 个人订阅与本地输出隔离键 |
9
+ | `message_id` / `conversation_id` | 稳定消息与会话 ID |
10
+ | `sender` / `sender_open_dingtalk_id` | 展示名与稳定发送人开放 ID |
11
+ | `content` / `create_time` / `event_time` | 正文及时间 |
12
+ | `quoted_message` | 可选引用原消息 |
13
+ | `forward_messages` | 可选合并转发子消息数组 |
14
+
15
+ 引用和转发子消息字段为 `message_id`、`conversation_id`、`sender`、
16
+ `sender_open_dingtalk_id`、`content`、`create_time`。按结构识别转发,不匹配本地化摘要。
17
+
18
+ 动作事件通用字段之外:已读提供 `reader_open_dingtalk_id/read_time`,撤回提供
19
+ `recaller_open_dingtalk_id/recall_time`,reaction 提供
20
+ `operator_open_dingtalk_id/reaction_name/reaction_text/operation_type/operation_time`。
21
+
22
+ 成员加入/退出提供 `conversation_id`、`operator_open_dingtalk_id`、`members[]` 和
23
+ `event_time`;成员稳定 ID 是 `members[].open_dingtalk_id`。群标题变化和群解散仅保守承诺
24
+ 基础路由字段及 `payload`,不得猜未由真实样本确认的键。
25
+
26
+ ## 事件驱动回复的精确 ID 映射
27
+
28
+ <!-- DWS_EVENT_CHAT_HANDOFF_START -->
29
+ | event field | exact chat target |
30
+ |---|---|
31
+ | `conversation_id` | `dws chat +messages-send --as user --group <conversation_id>` |
32
+ | `sender_open_dingtalk_id` | `dws chat +messages-send --as user --open-dingtalk-id <sender_open_dingtalk_id>` |
33
+ <!-- DWS_EVENT_CHAT_HANDOFF_END -->
34
+
35
+ 在上述命令后追加真实 `--text`/`--markdown` 和必要 confirmation。禁止使用 `sender` 再做
36
+ `--user-query`,也禁止把单聊发送人 ID 当成群 ID。交接 marker 由 policy 逐字验证。
37
+
38
+ 媒体事件正文可能只是描述。优先按真实消息 ID/会话 ID 使用 Chat 消息读取命令加
39
+ `--download-resources`;只有精确 lower fallback 才用 `chat message download-media`。
@@ -0,0 +1,58 @@
1
+ # IM 事件任务路由
2
+
3
+ 本页是任务索引,不再混放 16 个 EventKey、输出字段和运维细节。先用上层
4
+ [SKILL.md](../SKILL.md) 的 Golden Route;只加载当前任务对应的一份子 reference。
5
+
6
+ <!-- dws-intent: event.listen.im -->消息、reaction、已读和撤回默认使用 `dws event +listen-im` 长连接;
7
+ 群生命周期、显式 EventKey、Filter DSL、原始 envelope 或底层订阅控制才使用
8
+ `event consume`。不要写轮询脚本。
9
+
10
+ ## 选择哪一页
11
+
12
+ | 任务 | Reference |
13
+ |---|---|
14
+ | 选择 16 个 EventKey、区分 user/group/all 规则、组合底层 consume | [event-im-keys.md](event-im-keys.md) |
15
+ | 等待 ready、多事件回滚、bounded consume、退出清理 | [event-im-lifecycle.md](event-im-lifecycle.md) |
16
+ | 扁平字段、引用/转发、动作与群成员事件、事件驱动回复 | [event-im-output.md](event-im-output.md) |
17
+ | Filter、status/stop、重试预算、本地保护与排障 | [event-im-operations.md](event-im-operations.md) |
18
+
19
+ ## 共同硬规则
20
+
21
+ - 个人事件使用当前用户 OAuth;解析、consume、status、stop 必须是同一 `--profile`。
22
+ - `+listen-im --user-query/--chat-query` 在 CLI 内唯一解析;零命中、多候选或分页不完整时,
23
+ 在创建订阅前停止。底层 fallback 只传真实稳定 ID。
24
+ - 默认 `--flatten -f ndjson`;stdout 只处理事件,stderr 等待明确 ready marker。
25
+ - 指定目标优先于 `*_all`;只有用户明确说“全部单聊/全部群消息”才订阅全量事件。
26
+ - 当前用户自己发送的消息会被 self-loop 过滤;自测由另一用户或机器人触发。
27
+ - 事件只负责监听。回复必须使用事件里的真实 `conversation_id` 或
28
+ `sender_open_dingtalk_id`,禁止把展示名重新做自然查询。
29
+
30
+ ## 跨页契约索引
31
+
32
+ 以下索引保留跨页必须一致的机器可检验契约;解释、示例和操作步骤仍按上表按需加载:
33
+
34
+ - 16 个事件都使用同一 `--profile`。就绪以 `[event] ready` 为准;全量事件是
35
+ `user_im_message_receive_o2o_all` / `user_im_message_receive_group_all`,群生命周期是
36
+ `user_im_group_updated` / `user_im_group_member_added` /
37
+ `user_im_group_member_exited` / `user_im_group_disbanded`。
38
+ - 扁平动作字段包括 `reader_open_dingtalk_id`、`recaller_open_dingtalk_id`、
39
+ `operator_open_dingtalk_id`、`reaction_name`、`operation_type` 和 `members`;媒体 lower
40
+ fallback 是 `dws chat message download-media`,外部身份参数是 `--open-dingtalk-id`。
41
+ - 创建失败遵循 Agent/host 的 `0/2/1` 预算:`retryable=false` 对应
42
+ `max_additional_attempts=0`,`retryable=true` 对应 `max_additional_attempts=2`,
43
+ `retryable=unknown` 对应 `max_additional_attempts=1`,并遵守 `retry_after_seconds` /
44
+ `next_retry_at`。这不是 CLI 持久化硬总次数上限;进程内不会自动重试,也不持久化或计算跨调用的
45
+ Agent/host 尝试次数。`subscribe_id` / `trace_id` 不重置预算,`in_flight` / `cooldown` /
46
+ `terminal_hold` 不得被并发绕过。
47
+ - open 版保护文件是
48
+ `~/.dws/events/open/personal_stream/<identity_hash>/personal_subscription_attempts.json`;
49
+ `DWS_CONFIG_DIR` 可改变根目录。目录权限 `0700`,`personal_subscription_attempts.json` 与
50
+ `personal_subscription_attempts.lock` 权限 `0600`;连续 `24h` 无失败后重置,
51
+ `terminal_hold` 为 `1h`。紧急恢复只删除 `personal_subscription_attempts.json`,
52
+ 不要删除 lock 文件;这会清空该 identity 的全部保护记录。
53
+
54
+ ## Schema 边界
55
+
56
+ - 业务 payload:`dws event schema <event_key> --flatten`。
57
+ - CLI 参数/安全:`dws schema --cli-path "event +listen-im" --compact -f json` 或精确 compact consume leaf。
58
+ - `--flatten` 的 `jq_root_path` 为 `.`;兼容 transport envelope 才使用 `.data | fromjson`。