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.
- package/CHANGELOG.md +1516 -0
- package/LICENSE +26 -0
- package/README.en.md +204 -0
- package/README.md +521 -0
- package/SECURITY.md +39 -0
- package/bin/darwin-arm64/crwu +0 -0
- package/bin/darwin-arm64/dws +0 -0
- package/bin/darwin-arm64/ossutil +0 -0
- package/bin/manifest.json +82 -0
- package/bin/win32-x64/crwu.exe +0 -0
- package/bin/win32-x64/dws.exe +4 -0
- package/bin/win32-x64/ossutil.exe +0 -0
- package/common/skills/.synced.json +8 -0
- package/common/skills/crwu-dws/SKILL.md +208 -0
- package/common/skills/crwu-dws/references/00-/347/233/256/345/275/225/345/277/253/347/205/247schema.md +113 -0
- 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
- 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
- package/common/skills/crwu-dws/scripts/test_dws_source_contract.py +493 -0
- package/common/skills/crwu-h3yun-login/SKILL.md +130 -0
- package/common/skills/crwu-h3yun-query/SKILL.md +192 -0
- package/config/crwu-workbench.yml +26 -0
- package/cordis.patch.yml +46 -0
- package/lib/client.js +10346 -0
- package/lib/index.js +11584 -0
- package/package.json +119 -0
- package/scripts/prepare.mjs +59 -0
- package/skills/README.md +26 -0
- package/skills/crwu/crwu-audit/SKILL.md +152 -0
- package/skills/crwu/crwu-audit/references/00-input-and-route-profile.md +232 -0
- package/skills/crwu/crwu-audit/references/01-report-id-resolution.md +13 -0
- package/skills/crwu/crwu-audit/references/02-scope-classification.md +25 -0
- package/skills/crwu/crwu-audit/references/03-asset-classification.md +27 -0
- package/skills/crwu/crwu-audit/references/04-business-classification.md +63 -0
- package/skills/crwu/crwu-audit/references/05-method-classification.md +66 -0
- package/skills/crwu/crwu-audit/references/06-overlay-classification.md +42 -0
- package/skills/crwu/crwu-audit/references/07-skill-registry.md +57 -0
- package/skills/crwu/crwu-audit/references/08-union-dispatch-rules.md +142 -0
- package/skills/crwu/crwu-audit/references/09-review-risk-classification.md +85 -0
- package/skills/crwu/crwu-audit/references/10-capability-gap-proposal.md +68 -0
- package/skills/crwu/crwu-audit/references/11-html-delivery-spec.md +881 -0
- package/skills/crwu/crwu-audit/references/12-leaf-common-contract.md +202 -0
- package/skills/crwu/crwu-audit/references/13-dingtalk-result-publish.md +88 -0
- package/skills/crwu/crwu-audit/references/14-orchestration-workflow.md +52 -0
- package/skills/crwu/crwu-audit/references/99-maintenance.md +62 -0
- package/skills/crwu/crwu-audit/scripts/README.md +157 -0
- package/skills/crwu/crwu-audit/scripts/audit_delivery.py +2736 -0
- package/skills/crwu/crwu-audit/scripts/audit_result.schema.json +1659 -0
- package/skills/crwu/crwu-audit/scripts/examples/audit-result.sample.json +739 -0
- package/skills/crwu/crwu-audit/scripts/fetch_review_records.py +85 -0
- package/skills/crwu/crwu-audit/scripts/media_extract.py +513 -0
- package/skills/crwu/crwu-audit/scripts/prepare_materials.py +1252 -0
- package/skills/crwu/crwu-audit/scripts/test_audit_delivery.py +1678 -0
- package/skills/crwu/crwu-audit/scripts/test_audit_multiaxis_router.py +1339 -0
- package/skills/crwu/crwu-audit/scripts/test_fetch_review_records.py +77 -0
- package/skills/crwu/crwu-audit/scripts/test_media_extract.py +332 -0
- package/skills/crwu/crwu-audit/scripts/test_prepare_materials.py +1081 -0
- package/skills/crwu/crwu-audit/template/audit-report.html +435 -0
- package/skills/crwu/crwu-audit-asset-asset-group-goodwill/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/00-applicability.md +28 -0
- package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/01-kb-assembly.md +31 -0
- package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/02-review-focus.md +21 -0
- package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-debt/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-debt/references/00-applicability.md +40 -0
- package/skills/crwu/crwu-audit-asset-debt/references/01-kb-assembly.md +41 -0
- package/skills/crwu/crwu-audit-asset-debt/references/02-review-focus.md +54 -0
- package/skills/crwu/crwu-audit-asset-debt/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-enterprise-value/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-enterprise-value/references/00-applicability.md +31 -0
- package/skills/crwu/crwu-audit-asset-enterprise-value/references/01-kb-assembly.md +35 -0
- package/skills/crwu/crwu-audit-asset-enterprise-value/references/02-review-focus.md +33 -0
- package/skills/crwu/crwu-audit-asset-enterprise-value/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-equipment/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-equipment/references/00-applicability.md +40 -0
- package/skills/crwu/crwu-audit-asset-equipment/references/01-kb-assembly.md +39 -0
- package/skills/crwu/crwu-audit-asset-equipment/references/02-review-focus.md +52 -0
- package/skills/crwu/crwu-audit-asset-equipment/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-intangible/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-intangible/references/00-applicability.md +36 -0
- package/skills/crwu/crwu-audit-asset-intangible/references/01-kb-assembly.md +40 -0
- package/skills/crwu/crwu-audit-asset-intangible/references/02-review-focus.md +68 -0
- package/skills/crwu/crwu-audit-asset-intangible/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-inventory/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-inventory/references/00-applicability.md +28 -0
- package/skills/crwu/crwu-audit-asset-inventory/references/01-kb-assembly.md +31 -0
- package/skills/crwu/crwu-audit-asset-inventory/references/02-review-focus.md +21 -0
- package/skills/crwu/crwu-audit-asset-inventory/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-mining-right/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-mining-right/references/00-applicability.md +31 -0
- package/skills/crwu/crwu-audit-asset-mining-right/references/01-kb-assembly.md +35 -0
- package/skills/crwu/crwu-audit-asset-mining-right/references/02-review-focus.md +33 -0
- package/skills/crwu/crwu-audit-asset-mining-right/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-other/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-other/references/00-applicability.md +28 -0
- package/skills/crwu/crwu-audit-asset-other/references/01-kb-assembly.md +31 -0
- package/skills/crwu/crwu-audit-asset-other/references/02-review-focus.md +21 -0
- package/skills/crwu/crwu-audit-asset-other/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-portfolio/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-portfolio/references/00-applicability.md +28 -0
- package/skills/crwu/crwu-audit-asset-portfolio/references/01-kb-assembly.md +31 -0
- package/skills/crwu/crwu-audit-asset-portfolio/references/02-review-focus.md +21 -0
- package/skills/crwu/crwu-audit-asset-portfolio/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-realestate/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-realestate/references/00-applicability.md +43 -0
- package/skills/crwu/crwu-audit-asset-realestate/references/01-kb-assembly.md +75 -0
- package/skills/crwu/crwu-audit-asset-realestate/references/02-review-focus.md +93 -0
- package/skills/crwu/crwu-audit-asset-realestate/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-scrap-materials/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-scrap-materials/references/00-applicability.md +28 -0
- package/skills/crwu/crwu-audit-asset-scrap-materials/references/01-kb-assembly.md +31 -0
- package/skills/crwu/crwu-audit-asset-scrap-materials/references/02-review-focus.md +21 -0
- package/skills/crwu/crwu-audit-asset-scrap-materials/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-transport-equipment/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-transport-equipment/references/00-applicability.md +31 -0
- package/skills/crwu/crwu-audit-asset-transport-equipment/references/01-kb-assembly.md +35 -0
- package/skills/crwu/crwu-audit-asset-transport-equipment/references/02-review-focus.md +33 -0
- package/skills/crwu/crwu-audit-asset-transport-equipment/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-asset-operation/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-asset-operation/references/00-applicability.md +30 -0
- package/skills/crwu/crwu-audit-biz-asset-operation/references/01-kb-assembly.md +32 -0
- package/skills/crwu/crwu-audit-biz-asset-operation/references/02-review-focus.md +42 -0
- package/skills/crwu/crwu-audit-biz-asset-operation/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-consulting-review/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-consulting-review/references/00-applicability.md +30 -0
- package/skills/crwu/crwu-audit-biz-consulting-review/references/01-kb-assembly.md +32 -0
- package/skills/crwu/crwu-audit-biz-consulting-review/references/02-review-focus.md +40 -0
- package/skills/crwu/crwu-audit-biz-consulting-review/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-financial-reporting/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-financial-reporting/references/00-applicability.md +41 -0
- package/skills/crwu/crwu-audit-biz-financial-reporting/references/01-kb-assembly.md +40 -0
- package/skills/crwu/crwu-audit-biz-financial-reporting/references/02-review-focus.md +64 -0
- package/skills/crwu/crwu-audit-biz-financial-reporting/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-financing-debt/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-financing-debt/references/00-applicability.md +31 -0
- package/skills/crwu/crwu-audit-biz-financing-debt/references/01-kb-assembly.md +34 -0
- package/skills/crwu/crwu-audit-biz-financing-debt/references/02-review-focus.md +47 -0
- package/skills/crwu/crwu-audit-biz-financing-debt/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-investment-capital/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-investment-capital/references/00-applicability.md +31 -0
- package/skills/crwu/crwu-audit-biz-investment-capital/references/01-kb-assembly.md +34 -0
- package/skills/crwu/crwu-audit-biz-investment-capital/references/02-review-focus.md +47 -0
- package/skills/crwu/crwu-audit-biz-investment-capital/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/00-applicability.md +30 -0
- package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/01-kb-assembly.md +32 -0
- package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/02-review-focus.md +40 -0
- package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-tax-history/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-tax-history/references/00-applicability.md +29 -0
- package/skills/crwu/crwu-audit-biz-tax-history/references/01-kb-assembly.md +30 -0
- package/skills/crwu/crwu-audit-biz-tax-history/references/02-review-focus.md +33 -0
- package/skills/crwu/crwu-audit-biz-tax-history/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-transaction-disposal/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-transaction-disposal/references/00-applicability.md +31 -0
- package/skills/crwu/crwu-audit-biz-transaction-disposal/references/01-kb-assembly.md +34 -0
- package/skills/crwu/crwu-audit-biz-transaction-disposal/references/02-review-focus.md +47 -0
- package/skills/crwu/crwu-audit-biz-transaction-disposal/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-datacheck/SKILL.md +59 -0
- package/skills/crwu/crwu-audit-datacheck/references/00-KB/350/243/205/351/205/215/350/241/250.md +25 -0
- package/skills/crwu/crwu-audit-datacheck/references/01-runtime-and-check-catalog.md +139 -0
- package/skills/crwu/crwu-audit-datacheck/scripts/recalc_check.py +521 -0
- package/skills/crwu/crwu-audit-datacheck/scripts/test_recalc_check.py +419 -0
- package/skills/crwu/crwu-audit-datacheck/scripts/test_skill_self_containment.py +44 -0
- package/skills/crwu/crwu-audit-external-data/SKILL.md +73 -0
- package/skills/crwu/crwu-audit-external-data/references/00-KB/350/243/205/351/205/215/350/241/250.md +38 -0
- package/skills/crwu/crwu-audit-external-data/references/01-connector-access.md +116 -0
- package/skills/crwu/crwu-audit-external-data/references/02-verification-workflow.md +78 -0
- package/skills/crwu/crwu-audit-external-data/scripts/connector_probe.py +374 -0
- package/skills/crwu/crwu-audit-external-data/scripts/test_connector_probe.py +264 -0
- package/skills/crwu/crwu-audit-output-filter/SKILL.md +34 -0
- package/skills/crwu/crwu-audit-output-filter/references/00-applicability.md +7 -0
- package/skills/crwu/crwu-audit-output-filter/references/01-kb-assembly.md +11 -0
- package/skills/crwu/crwu-audit-output-filter/references/02-review-focus.md +25 -0
- package/skills/crwu/crwu-audit-public-general-standards/SKILL.md +46 -0
- package/skills/crwu/crwu-audit-public-general-standards/references/00-applicability.md +41 -0
- package/skills/crwu/crwu-audit-public-general-standards/references/01-kb-assembly.md +66 -0
- package/skills/crwu/crwu-audit-public-general-standards/references/02-review-focus.md +111 -0
- package/skills/crwu/crwu-audit-public-general-standards/references/03-execution-contract.md +89 -0
- package/skills/crwu/crwu-dev-audit-optimize/SKILL.md +98 -0
- 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
- 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
- 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
- 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
- package/skills/crwu/crwu-dev-audit-optimize/scripts/examples/gap-analysis.sample.json +116 -0
- package/skills/crwu/crwu-dev-audit-optimize/scripts/gap_analysis.schema.json +33 -0
- package/skills/crwu/crwu-dev-audit-optimize/scripts/gap_analysis_delivery.py +475 -0
- package/skills/crwu/crwu-dev-audit-optimize/scripts/test_gap_analysis_delivery.py +855 -0
- package/skills/crwu/crwu-dev-audit-optimize/template/NOTICE.echarts.txt +7 -0
- package/skills/crwu/crwu-dev-audit-optimize/template/echarts.min.js +45 -0
- package/skills/crwu/crwu-dev-audit-optimize/template/gap-analysis-report.html +71 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/SKILL.md +74 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/00-responsibility-and-modes.md +62 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/01-kb-source-discovery.md +89 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/02-child-skill-contract.md +99 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/03-review-item-execution-contract.md +51 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/04-registry-and-mapping-update.md +73 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/05-validation-and-delivery.md +127 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/06-live-routing-reconciliation.md +136 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/07-kb-skill-map.md +411 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/README.md +200 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/check_audit_skill_mappings.py +2477 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/kb_tool.py +577 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/test_audit_skill_maintainer.py +5097 -0
- package/skills/dws/LICENSE +178 -0
- package/skills/dws/NOTICE +17 -0
- package/skills/dws/dingtalk-aisearch/SKILL.md +83 -0
- package/skills/dws/dingtalk-aisearch/references/aisearch.md +249 -0
- package/skills/dws/dingtalk-aisearch/references/intent-guide.md +15 -0
- package/skills/dws/dingtalk-aisearch/references/lite-recipes.md +31 -0
- package/skills/dws/dingtalk-aitable/SKILL.md +139 -0
- package/skills/dws/dingtalk-aitable/references/06-data-analytics.md +11 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-advperm.md +251 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-attachment.md +49 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-best-practices.md +48 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-cell-value.md +346 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-dashboard-chart.md +46 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-data-analysis-sop.md +131 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-datasource.md +272 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-error-recovery.md +128 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-export-import.md +113 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-field-properties.md +238 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-field.md +186 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-filter-sort.md +135 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-form.md +130 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-formula-guide.md +224 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-primary-doc.md +58 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-create.md +52 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-delete.md +20 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-history.md +97 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-name-key.md +47 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-query.md +120 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-share.md +54 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-stats.md +59 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-update.md +66 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-upsert.md +89 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-view-config.md +140 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-view-extras.md +195 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-view-types.md +95 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-workflow.md +384 -0
- package/skills/dws/dingtalk-aitable/references/aitable-record-ops.md +80 -0
- package/skills/dws/dingtalk-aitable/references/aitable-section.md +30 -0
- package/skills/dws/dingtalk-aitable/references/aitable.md +59 -0
- package/skills/dws/dingtalk-aitable/references/field-rules.md +17 -0
- package/skills/dws/dingtalk-aitable/references/intent-guide.md +17 -0
- package/skills/dws/dingtalk-aitable/references/recipes/conventions.md +44 -0
- package/skills/dws/dingtalk-aitable/references/url-patterns.md +144 -0
- package/skills/dws/dingtalk-aitable/scripts/aitable_export_via_task.py +210 -0
- package/skills/dws/dingtalk-aitable/scripts/aitable_import_via_task.py +173 -0
- package/skills/dws/dingtalk-aitable/scripts/bulk_add_fields.py +273 -0
- package/skills/dws/dingtalk-aitable/scripts/import_records.py +333 -0
- package/skills/dws/dingtalk-aitable/scripts/upload_attachment.py +190 -0
- package/skills/dws/dingtalk-calendar/SKILL.md +137 -0
- package/skills/dws/dingtalk-calendar/references/03-meeting.md +56 -0
- package/skills/dws/dingtalk-calendar/references/calendar.md +760 -0
- package/skills/dws/dingtalk-calendar/references/intent-guide.md +9 -0
- package/skills/dws/dingtalk-calendar/references/lite-recipes.md +25 -0
- package/skills/dws/dingtalk-calendar/scripts/calendar_free_slot_finder.py +199 -0
- package/skills/dws/dingtalk-calendar/scripts/calendar_schedule_meeting.py +233 -0
- package/skills/dws/dingtalk-calendar/scripts/calendar_today_agenda.py +139 -0
- package/skills/dws/dingtalk-chat/SKILL.md +127 -0
- package/skills/dws/dingtalk-chat/references/01-messaging.md +103 -0
- package/skills/dws/dingtalk-chat/references/card/callback.md +10 -0
- package/skills/dws/dingtalk-chat/references/card/create.md +27 -0
- package/skills/dws/dingtalk-chat/references/card/schema.md +14 -0
- package/skills/dws/dingtalk-chat/references/card/update.md +13 -0
- package/skills/dws/dingtalk-chat/references/chat/chat-bot.md +187 -0
- package/skills/dws/dingtalk-chat/references/chat/chat-conversation.md +165 -0
- package/skills/dws/dingtalk-chat/references/chat/group-admin.md +144 -0
- package/skills/dws/dingtalk-chat/references/chat/group-discovery.md +121 -0
- package/skills/dws/dingtalk-chat/references/chat/message-actions.md +132 -0
- package/skills/dws/dingtalk-chat/references/chat/message-media.md +76 -0
- package/skills/dws/dingtalk-chat/references/chat/message-query.md +135 -0
- package/skills/dws/dingtalk-chat/references/chat/thread.md +46 -0
- package/skills/dws/dingtalk-chat/references/chat-emoji-list.md +216 -0
- package/skills/dws/dingtalk-chat/references/chat.md +140 -0
- package/skills/dws/dingtalk-chat/references/contracts.md +70 -0
- package/skills/dws/dingtalk-chat/references/intent-guide.md +56 -0
- package/skills/dws/dingtalk-contact/SKILL.md +122 -0
- package/skills/dws/dingtalk-contact/references/08-directory.md +51 -0
- package/skills/dws/dingtalk-contact/references/contact.md +595 -0
- package/skills/dws/dingtalk-contact/references/intent-guide.md +14 -0
- package/skills/dws/dingtalk-contact/references/lite-recipes.md +30 -0
- package/skills/dws/dingtalk-contact/references/recipes/conventions.md +44 -0
- package/skills/dws/dingtalk-contact/scripts/contact_dept_members.py +130 -0
- package/skills/dws/dingtalk-doc/SKILL.md +112 -0
- package/skills/dws/dingtalk-doc/references/04-document.md +57 -0
- package/skills/dws/dingtalk-doc/references/contracts.md +40 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-block.md +39 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-comment.md +29 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-create.md +54 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-export.md +30 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-import.md +28 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-info.md +12 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-media.md +46 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-read.md +56 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-update.md +87 -0
- package/skills/dws/dingtalk-doc/references/doc/format/doc-jsonml-cookbook.md +469 -0
- package/skills/dws/dingtalk-doc/references/doc/format/doc-jsonml-schema.json +526 -0
- package/skills/dws/dingtalk-doc/references/doc/format/doc-jsonml-schema.md +711 -0
- package/skills/dws/dingtalk-doc/references/doc/style/doc-create-workflow.md +414 -0
- package/skills/dws/dingtalk-doc/references/doc/style/doc-style-guideline.md +404 -0
- package/skills/dws/dingtalk-doc/references/doc/style/doc-update-workflow.md +316 -0
- package/skills/dws/dingtalk-doc/references/doc.md +82 -0
- package/skills/dws/dingtalk-doc/references/intent-guide.md +20 -0
- package/skills/dws/dingtalk-drive/SKILL.md +128 -0
- package/skills/dws/dingtalk-drive/references/drive.md +126 -0
- package/skills/dws/dingtalk-drive/references/folder-sync.md +40 -0
- package/skills/dws/dingtalk-drive/references/intent-guide.md +22 -0
- package/skills/dws/dingtalk-drive/references/lite-recipes.md +39 -0
- package/skills/dws/dingtalk-event/SKILL.md +106 -0
- package/skills/dws/dingtalk-event/references/event-im-keys.md +54 -0
- package/skills/dws/dingtalk-event/references/event-im-lifecycle.md +35 -0
- package/skills/dws/dingtalk-event/references/event-im-operations.md +52 -0
- package/skills/dws/dingtalk-event/references/event-im-output.md +39 -0
- package/skills/dws/dingtalk-event/references/event-im.md +58 -0
- package/skills/dws/dingtalk-event/references/event-oa.md +155 -0
- package/skills/dws/dingtalk-event/references/event-todo.md +50 -0
- package/skills/dws/dingtalk-event/references/event-voip.md +69 -0
- package/skills/dws/dingtalk-mail/SKILL.md +113 -0
- package/skills/dws/dingtalk-mail/references/09-mail.md +45 -0
- package/skills/dws/dingtalk-mail/references/intent-guide.md +8 -0
- package/skills/dws/dingtalk-mail/references/lite-recipes.md +45 -0
- package/skills/dws/dingtalk-mail/references/mail.md +1889 -0
- package/skills/dws/dingtalk-mail/references/recipes/conventions.md +44 -0
- package/skills/dws/dingtalk-mail/scripts/mail_send_with_cc.py +122 -0
- package/skills/dws/dingtalk-mail/scripts/mail_unread_summary.py +114 -0
- package/skills/dws/dingtalk-minutes/SKILL.md +116 -0
- package/skills/dws/dingtalk-minutes/references/07-minutes.md +149 -0
- package/skills/dws/dingtalk-minutes/references/10-minutes-speaker-match.md +32 -0
- package/skills/dws/dingtalk-minutes/references/11-minutes-speaker-correct.md +40 -0
- package/skills/dws/dingtalk-minutes/references/intent-guide.md +79 -0
- package/skills/dws/dingtalk-minutes/references/lite-recipes.md +25 -0
- package/skills/dws/dingtalk-minutes/references/minutes.md +210 -0
- package/skills/dws/dingtalk-minutes/references/recipes/conventions.md +33 -0
- package/skills/dws/dingtalk-minutes/scripts/minutes_recent_summary.py +196 -0
- package/skills/dws/dingtalk-minutes/scripts/test_minutes_scripts.py +222 -0
- package/skills/dws/dingtalk-misc/SKILL.md +55 -0
- package/skills/dws/dingtalk-misc/references/05-reporting.md +29 -0
- package/skills/dws/dingtalk-misc/references/agoal.md +302 -0
- package/skills/dws/dingtalk-misc/references/attendance-intent-guide.md +7 -0
- package/skills/dws/dingtalk-misc/references/attendance-report.md +109 -0
- package/skills/dws/dingtalk-misc/references/attendance-schedule.md +115 -0
- package/skills/dws/dingtalk-misc/references/attendance-vacation.md +129 -0
- package/skills/dws/dingtalk-misc/references/attendance.md +149 -0
- package/skills/dws/dingtalk-misc/references/dev/app.md +42 -0
- package/skills/dws/dingtalk-misc/references/dev/connect.md +108 -0
- package/skills/dws/dingtalk-misc/references/dev/credentials.md +26 -0
- package/skills/dws/dingtalk-misc/references/dev/dev-index.md +13 -0
- package/skills/dws/dingtalk-misc/references/dev/event.md +47 -0
- package/skills/dws/dingtalk-misc/references/dev/mcp.md +106 -0
- package/skills/dws/dingtalk-misc/references/dev/member.md +19 -0
- package/skills/dws/dingtalk-misc/references/dev/permission.md +56 -0
- package/skills/dws/dingtalk-misc/references/dev/recipes.md +58 -0
- package/skills/dws/dingtalk-misc/references/dev/robot.md +74 -0
- package/skills/dws/dingtalk-misc/references/dev/security.md +21 -0
- package/skills/dws/dingtalk-misc/references/dev/version.md +99 -0
- package/skills/dws/dingtalk-misc/references/dev/webapp.md +22 -0
- package/skills/dws/dingtalk-misc/references/devapp.md +148 -0
- package/skills/dws/dingtalk-misc/references/devdoc-intent-guide.md +7 -0
- package/skills/dws/dingtalk-misc/references/devdoc.md +42 -0
- package/skills/dws/dingtalk-misc/references/ding.md +184 -0
- package/skills/dws/dingtalk-misc/references/hrbrain.md +67 -0
- package/skills/dws/dingtalk-misc/references/live.md +23 -0
- package/skills/dws/dingtalk-misc/references/markdown.md +167 -0
- package/skills/dws/dingtalk-misc/references/oa/oa-form-components.md +345 -0
- package/skills/dws/dingtalk-misc/references/oa/oa-process-nodes.md +374 -0
- package/skills/dws/dingtalk-misc/references/oa.md +1014 -0
- package/skills/dws/dingtalk-misc/references/openapi-explorer.md +47 -0
- package/skills/dws/dingtalk-misc/references/pat.md +52 -0
- package/skills/dws/dingtalk-misc/references/profile.md +41 -0
- package/skills/dws/dingtalk-misc/references/recruit.md +89 -0
- package/skills/dws/dingtalk-misc/references/report-conventions.md +44 -0
- package/skills/dws/dingtalk-misc/references/report-intent-guide.md +11 -0
- package/skills/dws/dingtalk-misc/references/report-lite-recipes.md +25 -0
- package/skills/dws/dingtalk-misc/references/report.md +109 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-batch-operations.md +104 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-chart.md +69 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-comment.md +166 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-conditional-format.md +59 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-dimension-operations.md +60 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-dropdown.md +103 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-export.md +135 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-filter-view.md +51 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-filter.md +181 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-formula.md +192 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-import.md +76 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-media-image.md +263 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-pivot-table.md +292 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-range-operations.md +161 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-read-data.md +60 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-revision-changeset.md +46 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-search-replace.md +120 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-style-format.md +71 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-version.md +84 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-workbook.md +59 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-write-data.md +93 -0
- package/skills/dws/dingtalk-misc/references/sheet-conventions.md +44 -0
- package/skills/dws/dingtalk-misc/references/sheet-intent-guide.md +12 -0
- package/skills/dws/dingtalk-misc/references/sheet.md +166 -0
- package/skills/dws/dingtalk-misc/references/skill.md +98 -0
- package/skills/dws/dingtalk-misc/references/unsupported-scripts.md +49 -0
- package/skills/dws/dingtalk-misc/references/url-patterns.md +144 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/compose.md +200 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/01-overview.md +57 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/02-query.md +288 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/03-update.md +249 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/04-text-style.md +395 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/05-shape-frame-group-connector.md +186 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/06-vector-icon-path.md +313 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/07-examples-errors-write-support.md +270 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/08-catalogs.md +61 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1.md +54 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/replace.md +41 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/vector.md +51 -0
- package/skills/dws/dingtalk-misc/references/whiteboard.md +115 -0
- package/skills/dws/dingtalk-misc/scripts/aiapp_create_and_poll.py +138 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_my_record.py +91 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_report_checkin.py +440 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_report_common.py +1698 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_report_daily.py +558 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_report_detail.py +809 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_report_monthly.py +758 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_report_record.py +947 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_schedule_export.py +344 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_schedule_import.py +498 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_team_shift.py +89 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_vacation_balance.py +617 -0
- package/skills/dws/dingtalk-misc/scripts/finance_daily_cashflow.py +70 -0
- package/skills/dws/dingtalk-misc/scripts/finance_expense_flow.py +138 -0
- package/skills/dws/dingtalk-misc/scripts/oa_batch_approve.py +158 -0
- package/skills/dws/dingtalk-misc/scripts/oa_pending_review.py +132 -0
- package/skills/dws/dingtalk-misc/scripts/report_received_today.py +315 -0
- package/skills/dws/dingtalk-misc/scripts/yida_custom_page_update.py +401 -0
- package/skills/dws/dingtalk-misc/scripts/yida_form_builder.py +526 -0
- package/skills/dws/dingtalk-misc/scripts/yida_form_fields.py +315 -0
- package/skills/dws/dingtalk-misc/scripts/yida_form_inspector.py +311 -0
- package/skills/dws/dingtalk-misc/scripts/yida_form_update.py +185 -0
- package/skills/dws/dingtalk-misc/scripts/yida_jsx_pipeline.py +1588 -0
- package/skills/dws/dingtalk-misc/scripts/yida_page_compiler.py +1441 -0
- package/skills/dws/dingtalk-misc/scripts/yida_page_generate.py +514 -0
- package/skills/dws/dingtalk-misc/scripts/yida_page_schema.py +519 -0
- package/skills/dws/dingtalk-misc/scripts/yida_page_self_check.py +398 -0
- package/skills/dws/dingtalk-misc/scripts/yida_process_flow.py +1478 -0
- package/skills/dws/dingtalk-misc/scripts/yida_process_update.py +589 -0
- package/skills/dws/dingtalk-misc/scripts/yida_report_builder.py +494 -0
- package/skills/dws/dingtalk-misc/scripts/yida_report_charts.py +1434 -0
- package/skills/dws/dingtalk-misc/scripts/yida_report_update.py +244 -0
- package/skills/dws/dingtalk-misc/scripts/yida_schema_common.py +340 -0
- package/skills/dws/dingtalk-shared/SKILL.md +83 -0
- package/skills/dws/dingtalk-shared/references/capability-limits.md +31 -0
- package/skills/dws/dingtalk-shared/references/channel-login.md +26 -0
- package/skills/dws/dingtalk-shared/references/confirmation.md +59 -0
- package/skills/dws/dingtalk-shared/references/error-codes.md +155 -0
- package/skills/dws/dingtalk-shared/references/global-reference.md +122 -0
- package/skills/dws/dingtalk-shared/references/intent-guide.md +537 -0
- package/skills/dws/dingtalk-shared/references/recipes/conventions.md +45 -0
- package/skills/dws/dingtalk-shared/references/recipes/lite-catalog.md +275 -0
- package/skills/dws/dingtalk-shared/references/recipes/meta.md +67 -0
- package/skills/dws/dingtalk-shared/references/routing.md +52 -0
- package/skills/dws/dingtalk-shared/references/runtime-contract.md +11 -0
- package/skills/dws/dingtalk-shared/references/schema-usage.md +88 -0
- package/skills/dws/dingtalk-shared/references/url-patterns.md +144 -0
- package/skills/dws/dingtalk-shared/references/workflow-routing.md +45 -0
- package/skills/dws/dingtalk-todo/SKILL.md +119 -0
- package/skills/dws/dingtalk-todo/references/02-task.md +70 -0
- package/skills/dws/dingtalk-todo/references/intent-guide.md +15 -0
- package/skills/dws/dingtalk-todo/references/lite-recipes.md +68 -0
- package/skills/dws/dingtalk-todo/references/recipes/conventions.md +44 -0
- package/skills/dws/dingtalk-todo/references/todo.md +517 -0
- package/skills/dws/dingtalk-todo/scripts/todo_batch_create.py +354 -0
- package/skills/dws/dingtalk-todo/scripts/todo_daily_summary.py +153 -0
- package/skills/dws/dingtalk-todo/scripts/todo_overdue_check.py +101 -0
- package/skills/dws/dingtalk-wiki/SKILL.md +117 -0
- package/skills/dws/dingtalk-wiki/references/intent-guide.md +14 -0
- package/skills/dws/dingtalk-wiki/references/lite-recipes.md +44 -0
- package/skills/dws/dingtalk-wiki/references/wiki-members.md +32 -0
- package/skills/dws/dingtalk-wiki/references/wiki-node-ops.md +46 -0
- package/skills/dws/dingtalk-wiki/references/wiki.md +65 -0
- package/skills/dws/provenance.json +27 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# OA 个人审批事件
|
|
2
|
+
|
|
3
|
+
先读事件产品入口 [SKILL.md](../SKILL.md) 的命令规则、调用流和子进程契约。本参考覆盖当前公开的七个 OA 个人事件:审批实例发起、抄送、终止和完成,以及审批任务创建、完成和转交。
|
|
4
|
+
|
|
5
|
+
<!-- dws-intent: event.listen.oa -->实时监听审批事件必须使用 `dws event consume` 长连接,不要轮询 OA 待办或审批实例列表来模拟事件。
|
|
6
|
+
|
|
7
|
+
## Prerequisite
|
|
8
|
+
|
|
9
|
+
OA 个人事件使用当前用户 OAuth 登录态。未登录或 token 失效时,先执行:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
dws auth login
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
非默认组织使用全局 `--profile <corpId 或 profile 名>`。事件范围始终是该 OAuth 用户相关的全部 OA 事件,不需要也不接受审批人、发起人或审批模板选择参数。
|
|
16
|
+
|
|
17
|
+
## Event catalog
|
|
18
|
+
|
|
19
|
+
| 事件码 | 订阅规则 | 接收语义 | 必填参数 |
|
|
20
|
+
|---|---|---|---|
|
|
21
|
+
| `user_oa_approval_task_created` | `all` | 审批任务创建,发送给审批人 | 无 |
|
|
22
|
+
| `user_oa_approval_task_finished` | `all` | 审批任务已完成 | 无 |
|
|
23
|
+
| `user_oa_approval_task_redirected` | `all` | 审批任务已转交 | 无 |
|
|
24
|
+
| `user_oa_approval_instance_started` | `all` | 审批实例已发起 | 无 |
|
|
25
|
+
| `user_oa_approval_instance_cc` | `all` | 审批实例到达抄送节点,发送给被抄送人 | 无 |
|
|
26
|
+
| `user_oa_approval_instance_terminated` | `all` | 审批实例已终止 | 无 |
|
|
27
|
+
| `user_oa_approval_instance_finished` | `all` | 审批实例完成,发送给审批单发起人 | 无 |
|
|
28
|
+
|
|
29
|
+
只承认上表 7 个 OA 事件码。CLI 为每个事件发送 `ruleType=all`、`filterRule={}` 的独立订阅请求;不要添加 `--user`、`--open-dingtalk-id`、`--group`、`--query` 或 `--filter-json`。
|
|
30
|
+
|
|
31
|
+
## Intent mapping
|
|
32
|
+
|
|
33
|
+
| 用户说 | 下一步 |
|
|
34
|
+
|---|---|
|
|
35
|
+
| “监听新的待我审批任务” / “有审批任务创建时通知我” | `dws event consume user_oa_approval_task_created --flatten -f ndjson` |
|
|
36
|
+
| “审批任务完成时通知我” | `dws event consume user_oa_approval_task_finished --flatten -f ndjson` |
|
|
37
|
+
| “审批任务被转交时通知我” | `dws event consume user_oa_approval_task_redirected --flatten -f ndjson` |
|
|
38
|
+
| “有审批单发起时通知我” | `dws event consume user_oa_approval_instance_started --flatten -f ndjson` |
|
|
39
|
+
| “有审批抄送给我时通知我” | `dws event consume user_oa_approval_instance_cc --flatten -f ndjson` |
|
|
40
|
+
| “有审批单终止时通知我” | `dws event consume user_oa_approval_instance_terminated --flatten -f ndjson` |
|
|
41
|
+
| “监听我发起的审批何时完成” / “审批实例完成时通知我” | `dws event consume user_oa_approval_instance_finished --flatten -f ndjson` |
|
|
42
|
+
| “同时监听全部已公开 OA 事件” | 一个 consume 放入七个 OA event key,不加目标或过滤参数 |
|
|
43
|
+
| “查看 OA 事件目录” | `dws event list --category oa` |
|
|
44
|
+
| “查看 OA 事件输出字段” | 对对应事件运行 `dws event schema <event_key> --flatten` |
|
|
45
|
+
|
|
46
|
+
三个审批任务事件分别表达任务已创建、已完成和已转交;四个审批实例事件分别表达实例已发起、到达抄送节点、已终止和已完成。`status` 和 `result` 保留服务端原值,不把当前样本值推断为完整枚举。
|
|
47
|
+
|
|
48
|
+
## Commands
|
|
49
|
+
|
|
50
|
+
查看稳定的扁平输出 schema:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
dws event schema user_oa_approval_task_created --flatten
|
|
54
|
+
dws event schema user_oa_approval_task_finished --flatten
|
|
55
|
+
dws event schema user_oa_approval_task_redirected --flatten
|
|
56
|
+
dws event schema user_oa_approval_instance_started --flatten
|
|
57
|
+
dws event schema user_oa_approval_instance_cc --flatten
|
|
58
|
+
dws event schema user_oa_approval_instance_terminated --flatten
|
|
59
|
+
dws event schema user_oa_approval_instance_finished --flatten
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
单独监听一种事件:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
dws event consume user_oa_approval_task_created --flatten -f ndjson
|
|
66
|
+
dws event consume user_oa_approval_task_finished --flatten -f ndjson
|
|
67
|
+
dws event consume user_oa_approval_task_redirected --flatten -f ndjson
|
|
68
|
+
dws event consume user_oa_approval_instance_started --flatten -f ndjson
|
|
69
|
+
dws event consume user_oa_approval_instance_cc --flatten -f ndjson
|
|
70
|
+
dws event consume user_oa_approval_instance_terminated --flatten -f ndjson
|
|
71
|
+
dws event consume user_oa_approval_instance_finished --flatten -f ndjson
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
同时监听七种事件:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
dws event consume \
|
|
78
|
+
user_oa_approval_task_created \
|
|
79
|
+
user_oa_approval_task_finished \
|
|
80
|
+
user_oa_approval_task_redirected \
|
|
81
|
+
user_oa_approval_instance_started \
|
|
82
|
+
user_oa_approval_instance_cc \
|
|
83
|
+
user_oa_approval_instance_terminated \
|
|
84
|
+
user_oa_approval_instance_finished \
|
|
85
|
+
--flatten \
|
|
86
|
+
-f ndjson
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
多事件 consume 会为七个 event key 分别创建订阅和逻辑 consumer,并共享当前组织的 personal bus、远程连接、stdout 和生命周期。不要给 OA 命令加 `--query` 或 `--filter-json`;这两个 flag 只用于兼容的 IM 消息接收事件。
|
|
90
|
+
|
|
91
|
+
## Output contract
|
|
92
|
+
|
|
93
|
+
`--flatten` 模式的所有 OA 事件都包含以下顶层字段:
|
|
94
|
+
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"type": "user_oa_approval_task_created",
|
|
98
|
+
"event_id": "...",
|
|
99
|
+
"timestamp": 0,
|
|
100
|
+
"subscribe_id": "...",
|
|
101
|
+
"process_instance_id": "...",
|
|
102
|
+
"process_code": "...",
|
|
103
|
+
"title": "...",
|
|
104
|
+
"status": "RUNNING",
|
|
105
|
+
"create_time": 0,
|
|
106
|
+
"event_time": 0
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
- `type` 是当前 event key;`event_id` 可用于去重;`timestamp` 是 transport 事件发生时间;`subscribe_id` 标识对应的独立订阅。
|
|
111
|
+
- `process_instance_id` 是审批实例 ID,可传给 OA 审批命令的 `--instance-id`;`process_code` 是审批流程模板编码。
|
|
112
|
+
- `create_time`、`finish_time` 和 `event_time` 都是毫秒时间戳。`event_time` 是审批业务事件时间,`timestamp` 是 transport 事件时间。
|
|
113
|
+
- 七类事件的额外字段如下;具体事件始终以 `dws event schema <event_key> --flatten` 为准。
|
|
114
|
+
|
|
115
|
+
| 事件 | 额外顶层字段 |
|
|
116
|
+
|---|---|
|
|
117
|
+
| `user_oa_approval_task_created` | `task_id` |
|
|
118
|
+
| `user_oa_approval_task_finished` | `task_id`、`result`、`finish_time` |
|
|
119
|
+
| `user_oa_approval_task_redirected` | `task_id`、`result`、`finish_time` |
|
|
120
|
+
| `user_oa_approval_instance_started` | 无 |
|
|
121
|
+
| `user_oa_approval_instance_cc` | 无 |
|
|
122
|
+
| `user_oa_approval_instance_terminated` | `finish_time` |
|
|
123
|
+
| `user_oa_approval_instance_finished` | `result`、`finish_time` |
|
|
124
|
+
|
|
125
|
+
任务完成事件示例:
|
|
126
|
+
|
|
127
|
+
```json
|
|
128
|
+
{
|
|
129
|
+
"type": "user_oa_approval_task_finished",
|
|
130
|
+
"event_id": "...",
|
|
131
|
+
"timestamp": 0,
|
|
132
|
+
"subscribe_id": "...",
|
|
133
|
+
"process_instance_id": "...",
|
|
134
|
+
"process_code": "...",
|
|
135
|
+
"task_id": "...",
|
|
136
|
+
"title": "测试审批",
|
|
137
|
+
"status": "FINISHED",
|
|
138
|
+
"result": "agree",
|
|
139
|
+
"create_time": 0,
|
|
140
|
+
"finish_time": 0,
|
|
141
|
+
"event_time": 0
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
- `task_id` 是当前审批任务 ID,可传给接受任务 ID 的 OA 审批命令。
|
|
146
|
+
- `status` 和 `result` 是服务端字符串;不要只根据当前样本把 `RUNNING/FINISHED/TERMINATED` 或 `agree/redirect` 写成封闭枚举。
|
|
147
|
+
- payload 缺失、为空、缺少对应事件的稳定 ID 或无法解析时,consume 会在 stderr 记录 warning,并把原始 transport envelope 写到 stdout,保证事件不被静默丢弃。
|
|
148
|
+
- 不传 `--flatten` 时保持兼容 transport envelope,业务 payload 位于 `.data | fromjson`。需要联调完整原始协议时使用不带 `--flatten` 的 `-f raw` 或 `--debug-raw-events`。
|
|
149
|
+
|
|
150
|
+
## Lifecycle
|
|
151
|
+
|
|
152
|
+
- 单事件等待 `[event] ready event_key=<key> bus_pid=<pid> subscribe_id=<id>`。
|
|
153
|
+
- 七事件先保存七条 `[event] subscription event_key=<key> subscribe_id=<id>`,再等待 `[event] ready event_count=7 bus_pid=<pid>`。
|
|
154
|
+
- 临时验证使用 `--max-events 1` 或 `--duration 10m`;任务完成后优雅结束 consume,本次新建的订阅会自动取消。
|
|
155
|
+
- 外部停止已有订阅时先运行 `dws event stop <subscribe_id> --dry-run`,确认后再加 `--yes`。不要 `kill -9`,否则会跳过自动退订。
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Todo 待办事件
|
|
2
|
+
|
|
3
|
+
<!-- dws-intent: event.listen.todo -->待办创建、更新或删除的实时变化使用 `dws event consume` 长连接;查询、创建、更新、完成或删除已有待办使用 `dws todo`,不要轮询待办列表模拟事件。
|
|
4
|
+
|
|
5
|
+
## EventKey 与订阅范围
|
|
6
|
+
|
|
7
|
+
| EventKey | 触发时机 | 典型入口 |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| `user_todo_task_create` | 当前用户相关的待办被创建 | `dws event consume user_todo_task_create --role-types executor --flatten -f ndjson` |
|
|
10
|
+
| `user_todo_task_update` | 当前用户相关的待办被更新 | `dws event consume user_todo_task_update --role-types executor --flatten -f ndjson` |
|
|
11
|
+
| `user_todo_task_delete` | 当前用户相关的待办被删除 | `dws event consume user_todo_task_delete --role-types executor --flatten -f ndjson` |
|
|
12
|
+
|
|
13
|
+
`--role-types` 只接受 `creator`、`executor`、`participant`,可用逗号组合。省略时订阅三种角色的并集;例如只监听自己创建的待办使用 `--role-types creator`,只监听指派给自己执行的待办使用 `--role-types executor`。
|
|
14
|
+
|
|
15
|
+
CLI 将角色范围规范化后下发为:
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{"roleTypes":["creator","executor","participant"]}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
该对象就是订阅控制面的 `filterRule`。Todo 事件不接受 `--user`、`--open-dingtalk-id`、`--group`、`--query` 或 `--filter-json`;这些参数不会替代 `roleTypes`。
|
|
22
|
+
|
|
23
|
+
三个 EventKey 可以在一个 consume 进程中共享相同的角色范围:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
dws event consume \
|
|
27
|
+
user_todo_task_create \
|
|
28
|
+
user_todo_task_update \
|
|
29
|
+
user_todo_task_delete \
|
|
30
|
+
--role-types executor \
|
|
31
|
+
--flatten --format ndjson
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## 扁平输出
|
|
35
|
+
|
|
36
|
+
三类事件都提供 `type`、`event_id`、`timestamp`、`subscribe_id`、`task_id`、`subject`、`creator_id` 和 `create_time`。
|
|
37
|
+
|
|
38
|
+
- 创建与更新还提供 `executor_ids`、`participant_ids`、`priority`、`status_stage`、`plan_start_date`、`plan_finish_date`、`start_date`、`finish_date`、`description`、`source`、`source_id`、`biz_tag`、`parent_id`、`is_multi_executor` 和 `scene_type`。
|
|
39
|
+
- 更新额外提供 `update_time` 与 `old_status_stage`。
|
|
40
|
+
- 删除额外提供 `delete_time`。
|
|
41
|
+
- `status_stage`:`0` 未开始、`1` 进行中、`2` 正常完成、`3` 异常完成。
|
|
42
|
+
- 服务端返回 `null` 的可选时间或 `parent_id` 在扁平输出中省略。字段契约以 `dws event schema <event_key> --flatten` 为准。
|
|
43
|
+
|
|
44
|
+
处理事件后若要读取完整待办或执行操作,把真实 `task_id` 交给 `dws todo` 对应命令;不要从标题猜任务 ID。事件监听本身不会创建、修改、完成或删除待办。
|
|
45
|
+
|
|
46
|
+
## 生命周期与后端边界
|
|
47
|
+
|
|
48
|
+
- 单事件等待 `[event] ready event_key=<key> bus_pid=<pid> subscribe_id=<id>`;三事件组合保存每条 subscription 后等待 `[event] ready event_count=3 bus_pid=<pid>`。
|
|
49
|
+
- 有界消费使用 `--max-events` 或 `--duration`;结束时使用 SIGTERM、关闭符合条件的管道 stdin,或让 bounded consume 自行退出。
|
|
50
|
+
- DWS 订阅 SPI 路由到 `lippi-tdp` 的 `com.dingtalk.todo.service.TodoDwsSubscriptionService`,版本 `1.0.0`、协议组 `HSF`。CLI 不直连 HSF;订阅或取消失败时保留服务端错误与 trace 信息,不换 EventKey 或 subscribe_id 绕过重试保护。
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# VoIP 个人通话邀请事件
|
|
2
|
+
|
|
3
|
+
先读事件产品入口 [SKILL.md](../SKILL.md) 的命令规则、生命周期和失败处理。本参考覆盖当前公开的 VoIP 个人事件 `user_voip_call_receive_invite`。
|
|
4
|
+
|
|
5
|
+
当前用户收到语音通话邀请时,使用 `dws event consume` 长连接实时监听,不轮询通话记录。
|
|
6
|
+
|
|
7
|
+
## Event catalog
|
|
8
|
+
|
|
9
|
+
| 事件码 | 订阅规则 | 接收语义 | 必填参数 |
|
|
10
|
+
|---|---|---|---|
|
|
11
|
+
| `user_voip_call_receive_invite` | `all` | 当前用户作为被叫收到语音通话邀请;服务端已将通话切换为会议模式 | 无 |
|
|
12
|
+
|
|
13
|
+
CLI 使用当前用户 OAuth 身份创建 `ruleType=all`、`filterRule={}` 的订阅。不要添加 `--user`、`--open-dingtalk-id`、`--group`、`--query` 或 `--filter-json`。
|
|
14
|
+
|
|
15
|
+
## Commands
|
|
16
|
+
|
|
17
|
+
查看目录和稳定扁平 Schema:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
dws event list --category voip
|
|
21
|
+
dws event schema user_voip_call_receive_invite --flatten
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
开始监听:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
dws event consume user_voip_call_receive_invite --flatten -f ndjson
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
测试时先由被叫用户登录并启动监听,等待 `[event] ready`;再由另一用户呼叫该被叫用户。需要有界取样时可加 `--max-events 1`。
|
|
31
|
+
|
|
32
|
+
## Output contract
|
|
33
|
+
|
|
34
|
+
`--flatten` 把服务端 camelCase payload 映射为稳定的 snake_case 顶层字段:
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"type": "user_voip_call_receive_invite",
|
|
39
|
+
"event_id": "...",
|
|
40
|
+
"timestamp": 0,
|
|
41
|
+
"subscribe_id": "...",
|
|
42
|
+
"biz_id": "VOIP_<roomId>_<calleeUid>",
|
|
43
|
+
"corp_id": "ding...",
|
|
44
|
+
"org_id": 0,
|
|
45
|
+
"target_uid": 0,
|
|
46
|
+
"call_id": "...",
|
|
47
|
+
"caller_uid": "0147333457361236773",
|
|
48
|
+
"caller_corp_id": "ding...",
|
|
49
|
+
"callee_uid": "digital-3559506650",
|
|
50
|
+
"callee_corp_id": "ding...",
|
|
51
|
+
"call_type": "conference",
|
|
52
|
+
"room_id": "...",
|
|
53
|
+
"create_time": 0,
|
|
54
|
+
"event_time": 0
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
- `event_id` 是 transport 事件 ID;`biz_id` 是业务事件唯一 ID,同一事件重试时保持不变,业务去重优先使用 `biz_id`。
|
|
59
|
+
- `target_uid` 是订阅并接收邀请的用户;正常情况下与 `callee_uid` 指向同一被叫用户。
|
|
60
|
+
- `caller_uid` 与 `callee_uid` 按服务端协议以字符串输出,必须保留前导 `0`、连字符等原始内容,不要转换为数字。滚动发布期间 DWS 仍兼容旧的 Long payload,并统一投影为字符串。
|
|
61
|
+
- `--flatten` 默认不输出敏感入会码 `room_code`,避免终端记录、`tee` 文件或 Agent 上下文意外泄露。
|
|
62
|
+
- `create_time` 与 `event_time` 都是毫秒时间戳;前者是通话邀请创建时间,后者是业务事件时间。
|
|
63
|
+
- payload 缺失、body 缺失、`bizid` 为空或无法解析时,consume 会在 stderr 输出 warning,并只把不含业务 payload 的基础事件字段写到 stdout,避免敏感值从异常回退路径泄露。
|
|
64
|
+
- 不传 `--flatten` 时仍保持 transport envelope,但 DWS 会从 `.data` 中移除敏感 `roomCode`。只有服务端联调确需检查原始 payload 时,才显式添加 `--debug-raw-events`;不要持久化或传播入会码。
|
|
65
|
+
- VoIP 事件的 `-f raw` 同样必须和 `--debug-raw-events` 一起使用,避免绕过默认脱敏。
|
|
66
|
+
|
|
67
|
+
## Boundary
|
|
68
|
+
|
|
69
|
+
DWS CLI 负责声明 EventKey、创建个人订阅、消费 Stream、输出稳定字段和管理生命周期。VoIP 服务端负责识别被叫用户、切换会议模式并投递真实事件;如果订阅创建成功但呼叫后没有事件,应携带 trace 与服务端团队核对 Provider、事件路由和 MQ 投递,不通过反复创建订阅绕过重试保护。
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dingtalk-mail
|
|
3
|
+
description: 钉钉邮箱读写、搜索、回复与转发。Use when 用户说发邮件/查邮件/回邮件/转发邮件/未读邮件/邮件搜索/邮箱附件。一句话发邮件时先用 dingtalk-contact 解析并确认收件人,再由本 skill 发送;不做钉钉消息(走 dingtalk-chat)、紧急通知(走 dingtalk-misc)。命令前缀:dws mail。
|
|
4
|
+
metadata:
|
|
5
|
+
cli_version: ">=0.2.14"
|
|
6
|
+
category: product
|
|
7
|
+
requires:
|
|
8
|
+
bins:
|
|
9
|
+
- dws
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# 钉钉邮箱 Skill
|
|
13
|
+
|
|
14
|
+
## 前置条件 — 执行操作前必读
|
|
15
|
+
|
|
16
|
+
> **CRITICAL — 执行任何 `dws` 操作前,MUST 先用 Read 工具完整读取 [`dingtalk-shared`](../dingtalk-shared/SKILL.md)。**该轻量文件包含全局执行契约、安全底线及 shared references 的按需加载导航;不要预加载其全部 references。
|
|
17
|
+
|
|
18
|
+
> 命令参考:[mail.md](references/mail.md)。复杂搜索、附件、批量处理、草稿等多步邮件场景参考:[09-mail.md](references/09-mail.md)。
|
|
19
|
+
|
|
20
|
+
<!-- VISIBLE_SHORTCUTS_START -->
|
|
21
|
+
## Shortcuts(无专用脚本/recipe 时优先)
|
|
22
|
+
|
|
23
|
+
以下 shortcut 同时进入公开 catalog 与 Runtime Schema。先按本 skill 的意图表、脚本和 recipe 路由:存在精确覆盖该场景的专用脚本/recipe 时按其执行;否则用户意图命中时,shortcut 优先于手写原子命令。命令已选中时直接执行;只在参数或安全语义不确定时读取 Agent leaf Schema(例如 `dws schema --cli-path "mail +<shortcut>" --compact --format json`),在当前 Cobra flags 不确定时读取 `dws mail <shortcut> --help`。只有参数映射、接口绑定或 provenance 审计才省略 `--compact`。仅当现有路由和 reference 都无法定位低频能力时,才用 `dws shortcut list --service mail --format json` 批量发现。
|
|
24
|
+
|
|
25
|
+
| Shortcut | 风险 | 适用场景 |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| `dws mail +find-mail-user` | read | 按关键词搜索邮箱联系人并投影列表(姓名/昵称/邮箱/工号等) |
|
|
28
|
+
| `dws mail +folder-list` | read | 列出顶层文件夹或指定父文件夹下的子文件夹 |
|
|
29
|
+
| `dws mail +message` | read | 读取一封邮件的完整正文与附件元数据 |
|
|
30
|
+
| `dws mail +messages` | read | 按请求顺序读取多封邮件并逐封验证身份 |
|
|
31
|
+
| `dws mail +search-mail` | read | 按 KQL 关键词搜索邮件并投影列表(主题/发件人/时间/messageId) |
|
|
32
|
+
| `dws mail +thread` | read | 读取完整邮件会话并精确验证 conversationId |
|
|
33
|
+
| `dws mail +triage` | read | 列出或筛选邮件摘要,自动解析邮箱与收件箱 |
|
|
34
|
+
| `dws mail +user-search` | read | 按关键词或工号搜索邮箱用户(仅企业邮箱) |
|
|
35
|
+
<!-- VISIBLE_SHORTCUTS_END -->
|
|
36
|
+
|
|
37
|
+
## 意图表
|
|
38
|
+
|
|
39
|
+
| 用户说 | 命令 |
|
|
40
|
+
|--------|------|
|
|
41
|
+
| "发邮件给 a@b.com" | `dws mail mailbox list --format json` → `dws mail message send --from <邮箱> --to a@b.com --subject "<标题>" --content "<正文>" --format json` |
|
|
42
|
+
| "回复 / 全部回复 / 转发" | `dws mail message reply` / `reply-all` / `forward` |
|
|
43
|
+
| "今天未读邮件" | `python scripts/mail_unread_summary.py` |
|
|
44
|
+
| "带抄送发送" | `python scripts/mail_send_with_cc.py --to a@b.com --cc c@d.com --subject "<标题>" --body "<正文>"` |
|
|
45
|
+
|
|
46
|
+
## 标准 SOP(必遵流程)
|
|
47
|
+
|
|
48
|
+
> 命中以下意图**必须**按对应 SOP 顺序执行;**禁止**跳步、替换命令、编造 email/messageId。每条命令必须带 `--format json`。收件邮箱**必须**真实解析,**禁止**猜测。
|
|
49
|
+
|
|
50
|
+
### SOP-1 拿邮箱(get-mailbox)
|
|
51
|
+
|
|
52
|
+
**触发**:我的邮箱/发件需要邮箱/查邮件需要邮箱。
|
|
53
|
+
|
|
54
|
+
1. **执行(必须)**:`dws mail mailbox list --format json`,取自己的 `email`(默认选企业邮箱 `type:ORG`);查**他人**邮箱用 `dws mail user search --keyword "<姓名>" --format json`,**禁止**用 `mailbox list` 查他人。
|
|
55
|
+
|
|
56
|
+
**禁止**:把 `mailbox list` 当作他人邮箱查询、猜测邮箱地址。
|
|
57
|
+
|
|
58
|
+
### SOP-2 查 / 搜邮件(search-mail)
|
|
59
|
+
|
|
60
|
+
**触发**:查邮件/搜邮件/某主题邮件/某人发的邮件。
|
|
61
|
+
|
|
62
|
+
1. **拿邮箱(必须)**:先按 SOP-1 取 `email`;用户已明确提供可跳过。
|
|
63
|
+
2. **执行(必须)**:浏览文件夹 `dws mail message list --email <邮箱> --limit <n> --format json`;KQL 搜索 `dws mail message search --email <邮箱> --query "<KQL>" --limit 20 --format json`(KQL 如 `subject:周报`、`from:alice@x.com`、`folderId:2`、`hasAttachments:true`,**只通过 `--query` 传**)。
|
|
64
|
+
3. **取正文(必须)**:`dws mail message get --email <邮箱> --id <messageId> --format json`;`messageId` 从列表/搜索结果取,**禁止**编造。
|
|
65
|
+
|
|
66
|
+
**禁止**:把 KQL 拆成多个 flag、跳过 `message list/search` 直接猜 messageId。
|
|
67
|
+
|
|
68
|
+
### SOP-3 发邮件(send-mail)
|
|
69
|
+
|
|
70
|
+
**触发**:发邮件/写邮件/群发。
|
|
71
|
+
|
|
72
|
+
1. **发件邮箱(必须)**:`dws mail mailbox list` 取自己邮箱。
|
|
73
|
+
2. **收件邮箱(必须)**:地址直接用;姓名按 [mail.md](references/mail.md) "查找他人邮箱地址"流程(`mail user search` 等)获取,**禁止**猜测。
|
|
74
|
+
3. **执行(必须)**:`dws mail message send --from <发件邮箱> --to <收件邮箱> --subject "<主题>" --content "<正文>" --format json`;按需 `--cc`/`--attachment`/`--inline-attachment`。
|
|
75
|
+
4. **验证(必须)**:从发送返回取真实 `internetMessageId`,执行 `dws mail message verify --email <发件邮箱> --internet-message-id <internetMessageId> --format json` 查发送状态;不要把普通 `messageId` 传给 verify。
|
|
76
|
+
|
|
77
|
+
**禁止**:猜测收件邮箱、发送后不确认状态就答复"已发送"。
|
|
78
|
+
|
|
79
|
+
### SOP-4 回复 / 转发(reply-forward)
|
|
80
|
+
|
|
81
|
+
**触发**:回复邮件/回复全部/转发。
|
|
82
|
+
|
|
83
|
+
1. **拿邮箱 + 原邮件(必须)**:SOP-1 取邮箱;用户未给 `messageId` 时**必须**先走 SOP-2 定位原邮件 `messageId`。
|
|
84
|
+
2. **执行(必须)**:回复 `dws mail message reply --from <邮箱> --id <messageId> --content "<正文>" --format json`;回复全部用 `reply-all`;转发 `dws mail message forward --from <邮箱> --to <收件邮箱> --id <messageId> --content "<附言>" --format json`。
|
|
85
|
+
|
|
86
|
+
**禁止**:未定位原邮件就回复/转发、编造 messageId。
|
|
87
|
+
|
|
88
|
+
## 高频硬约束
|
|
89
|
+
|
|
90
|
+
- 用户要"完整内容/看看这封邮件/正文"时,`message search` 命中后必须继续调用 `dws mail message get --email <邮箱> --id <messageId> --format json`;不要只列候选后停下。
|
|
91
|
+
- 搜到多封邮件时,若用户给了明确主题、附件名、发件人或时间线索,先选最匹配的一封执行 `message get`;只有同等候选无法判断时才询问用户。
|
|
92
|
+
- 附件链路固定三步:`message search` → `attachment list --email <邮箱> --id <messageId>` → `attachment download --email <邮箱> --message-id <messageId> --attachment-id <attachmentId> --name <文件名>`;不存在批量下载命令。
|
|
93
|
+
- 写入类操作(发送、回复、转发、删除、批量移动)按安全策略确认;只读查看、搜索、附件列表、下载不需要确认。
|
|
94
|
+
- 所有 `dws mail` 命令加 `--format json`,并复用同一封邮件的 `messageId`,不要重新搜索导致目标漂移。
|
|
95
|
+
|
|
96
|
+
## 轨迹高频直达规则
|
|
97
|
+
|
|
98
|
+
- 已被本页或 `09-mail.md` 精确覆盖的命令,直接执行;不要先探测 `contact`、`api`、`auth`、`profile`、Help 或 Schema。仅在命令真实报参数错误后,读取该命令的 leaf Help 一次。
|
|
99
|
+
- 多条件 KQL 必须用显式 `AND`,例如收件箱附件邮件:`hasAttachments:true AND folderId:2`;不要把相邻条件当作隐式 AND。
|
|
100
|
+
- 用户只要首个或任一单附件时,初始搜索后按相关性最多检查 3 个候选的 `attachment list`,下载命中附件并做一次本地存在性/大小检查后停止;若均未命中,只能说明已检查范围并询问是否继续翻页,不能断言不存在。用户要求全部/批量附件时,遍历全部匹配页和邮件,再逐个下载每个附件。
|
|
101
|
+
- “创建邮箱联系人”属于邮箱个人通讯录,固定走 `dws mail contact create/list`,不要切到 `dingtalk-contact`。只有“按人名解析邮件收件地址”才走下方跨产品协作。
|
|
102
|
+
- 用户要求用当前时间生成唯一标题且未指定显示格式时,使用紧凑格式 `date +%H%M%S`;只有用户明确要求 `HH:mm:ss` 等格式时才原样保留。
|
|
103
|
+
- 批量删除邮件或将整会话移入已删除前,先展示精确目标和不含确认参数的命令预览并停止;用户明确确认后,执行流程仅对同一组参数追加 `--yes`。操作成功后只做一次针对原 ID 或唯一主题的回读,结果符合预期即停止。
|
|
104
|
+
- 创建类返回了 `messageId`、`contactId` 或 `internetMessageId` 时,后续直接复用返回 ID;不要为了重新定位目标而做宽泛 list/search。
|
|
105
|
+
- 一次精确回读已经证明目标状态后结束任务;若回读冲突,报告冲突和已执行命令,不扩大到低层 API 或其他产品继续试探。
|
|
106
|
+
|
|
107
|
+
## 跨产品协作
|
|
108
|
+
|
|
109
|
+
- 收件人是人名 → 先用 `dingtalk-contact` 取 `orgAuthEmail`
|
|
110
|
+
- 钉钉内消息 → 切到 `dingtalk-chat`
|
|
111
|
+
## 局部意图与短流程
|
|
112
|
+
|
|
113
|
+
- [局部意图消歧](references/intent-guide.md);[短流程](references/lite-recipes.md)。
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# 邮件
|
|
2
|
+
|
|
3
|
+
> 邮件的 4 条 **lite** recipe:`mail-list-mailbox`、`mail-search`、`mail-send`、`mail-reply-forward`,见 [lite-recipes.md](./lite-recipes.md)。下列专用规则与消歧请在命中邮件场景且**超出**上述 lite 时阅读本文。
|
|
4
|
+
> 产品命令见 [mail.md](./mail.md)。通用批量/并行见 [recipes/conventions.md](recipes/conventions.md)。
|
|
5
|
+
|
|
6
|
+
## 专用规则(#9 非 lite 步骤必守)
|
|
7
|
+
|
|
8
|
+
- **KQL 语法强制**:邮件搜索的查询条件**只能**通过 `--query` 参数以 KQL 语法传入(如 `subject:周报`),多条件必须写显式 `AND`(如 `hasAttachments:true AND folderId:2`);**禁止臆造** `--subject`、`--sender`、`--from-address` 等不存在的 flag。详见 [mail.md](./mail.md) 中 KQL 查询字段说明。
|
|
9
|
+
- **邮箱地址前置**:大部分邮件命令需要 `--email` 或 `--from` 参数,执行前**必须**先通过 `mail mailbox list` 获取当前用户邮箱,禁止猜测邮箱地址。
|
|
10
|
+
- **查找他人邮箱**:需要获取某人邮箱地址时,**不要用 `mailbox list`**(只返回自己的),必须走三路并发查询流程(见 [mail.md](./mail.md) 中「查找他人邮箱地址」章节)。
|
|
11
|
+
- **附件下载三步走**:先 `message search` 搜索邮件获取 messageId,再 `attachment list` 取附件 ID 和文件名,最后逐个 `attachment download`。用户只要首个/任一单附件时,初始最多检查 3 个相关候选;均未命中只能说明已检查范围并询问是否继续,不能断言不存在。用户要求全部/批量附件时,必须沿搜索游标遍历全部匹配页和邮件,再逐个下载每个附件。**不存在 `download_batch` / `download_all` 等批量下载命令,禁止编造**。
|
|
12
|
+
- **危险操作确认**:`batch-delete` 执行前必须向用户确认,同意后加 `--yes`。
|
|
13
|
+
|
|
14
|
+
## 与其他场景消歧
|
|
15
|
+
|
|
16
|
+
- **"给某人发邮件"**(只知姓名不知邮箱)→ 先走「查找他人邮箱地址」三路并发,再 `mail-send`。
|
|
17
|
+
- **"找某人邮箱"**(终点是获取邮箱地址)→ 三路并发查询,不走 `mail-search`。
|
|
18
|
+
- **"搜某人发的邮件"**(终点是邮件内容)→ `mail-search`,KQL 用 `from:xxx`。
|
|
19
|
+
- **"催+邮件"** → `mail-send` 发催促邮件,不是 #1 消息。
|
|
20
|
+
- **"邮件+待办"** → 先 `mail-search` 找邮件内容,再走 #2 创建待办。
|
|
21
|
+
|
|
22
|
+
## Recipe 速查(本表步骤,非 SKILL lite)
|
|
23
|
+
|
|
24
|
+
| Recipe | 步骤 |
|
|
25
|
+
|--------|------|
|
|
26
|
+
| `mail-get` | `mail message get --email <邮箱> --id <messageId>` → 查看邮件完整内容(含正文) |
|
|
27
|
+
| `mail-folder-list` | `mail folder list --email <邮箱>` → 列举文件夹;`--folder <id>` 查子文件夹 |
|
|
28
|
+
| `mail-tag-list` | `mail tag list --email <邮箱>` → 列举邮件标签 |
|
|
29
|
+
| `mail-thread-get` | `mail thread get --email <邮箱> --id <conversationId>` → 获取会话(邮件线程)详情 |
|
|
30
|
+
| `mail-attachment-list` | `mail attachment list --email <邮箱> --id <messageId>` → 列举指定邮件的附件 |
|
|
31
|
+
| `mail-attachment-download` | 1. `mail attachment list --email <邮箱> --id <messageId>` → 取附件 `id` 和 `name`<br>2. `mail attachment download --email <邮箱> --message-id <messageId> --attachment-id <attachmentId> --name <文件名>` |
|
|
32
|
+
| `mail-batch-move` | `mail message batch-move --email <邮箱> --ids <id1,id2,...> --folder <folderId>`(常用 folderId: 2=收件箱, 6=已删除) |
|
|
33
|
+
| `mail-batch-delete` | 确认前仅展示 `mail message batch-delete --email <邮箱> --ids <id1,id2,...>` 和精确目标并停止;明确确认后由执行流程对相同参数追加 `--yes` |
|
|
34
|
+
| `mail-draft-create` | `mail draft create --from <邮箱> --subject "<标题>"` → 取 `messageId`(可选 `--to`、`--content`、`--cc`) |
|
|
35
|
+
| `mail-draft-update` | `mail draft update --from <邮箱> --id <draftId> --subject "<新标题>"`(可选 `--content`、`--to`、`--cc`) |
|
|
36
|
+
| `mail-draft-send` | `mail draft send --from <邮箱> --id <draftId>` |
|
|
37
|
+
|
|
38
|
+
## Full / 多步组合
|
|
39
|
+
|
|
40
|
+
| Recipe | 行动指南(固定路线) |
|
|
41
|
+
|--------|---------------------|
|
|
42
|
+
| search-and-download-attachment | 1. `mail mailbox list` → 取邮箱<br>2. `mail message search --email <邮箱> --query "<KQL>" --limit 10`;多条件用显式 `AND`<br>3. 首个/任一单附件:按相关性最多检查 3 个候选,命中后进入第 4 步;未命中则说明范围并询问是否继续翻页<br>4. 全部/批量附件:沿 `nextCursor` 遍历全部匹配页,对每封执行 `attachment list`<br>5. 对命中附件逐个执行 `mail attachment download --email <邮箱> --message-id <messageId> --attachment-id <attachmentId> --name <文件名>`;单附件做一次本地检查后停止,全部/批量请求完成全部逐项下载(**不存在批量下载命令**) |
|
|
43
|
+
| search-reply-forward | 1. `mail mailbox list` → 取邮箱<br>2. `mail message search --email <邮箱> --query "<KQL>" --limit 10` → 取 `messageId`<br>3. 展示搜索结果供用户选择<br>4. 按用户指示执行 reply / reply-all / forward(参见 lite `mail-reply-forward`) |
|
|
44
|
+
| batch-mail-cleanup | 1. `mail mailbox list` → 取邮箱<br>2. `mail message search --email <邮箱> --query "<KQL>" --limit 100` → 取多个 `messageId`<br>3. 展示列表供用户确认<br>4. `mail message batch-move --email <邮箱> --ids <id1,id2,...> --folder 6 ` 移到已删除;或 `batch-delete` 永久删除 |
|
|
45
|
+
| send-to-person-by-name | 1. `mail mailbox list` → 取发件邮箱<br>2. 走「查找他人邮箱地址」三路并发查询获取收件人邮箱(见 [mail.md](./mail.md))<br>3. `mail message send --from <发件邮箱> --to <收件邮箱> --subject "<标题>" --content "<内容>"` |
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# mail 局部意图消歧
|
|
2
|
+
|
|
3
|
+
本文件从单 Skill `intent-guide.md` 拆分而来,仅保留与本产品相关的跨产品消歧规则。
|
|
4
|
+
|
|
5
|
+
| 用户说... | 真实意图 | 应该用 | 不要用 | 理由 |
|
|
6
|
+
|---|---|---|---|---|
|
|
7
|
+
| "搜一下智能化方案/最近 OKR 相关邮件/最近发版相关消息" | 搜企业知识内容 | `aisearch enterprise` | `doc search` / `mail search` / `chat message search` | 跨文档、消息、日程、听记、邮件等企业内容语义检索走 enterprise;具体 `queries/types/time-range` 抽槽见 `aisearch.md` |
|
|
8
|
+
| "我发给某人的消息/邮件/文档/今天我干了什么" | 搜行为记录 | `aisearch behavior` | `chat` / `mail` / `doc` / `report` | 关注“谁对什么做过什么”,走 behavior;具体 `behavior-type/direction/chat-scope` 抽槽见 `aisearch.md` |
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# mail Lite Recipe
|
|
2
|
+
|
|
3
|
+
本文件从单 Skill `lite-recipes.md` 拆分而来,仅保留与本产品相关的轻量流程。
|
|
4
|
+
|
|
5
|
+
## #9 邮件
|
|
6
|
+
|
|
7
|
+
### mail-list-mailbox
|
|
8
|
+
|
|
9
|
+
查询当前用户自己的可用邮箱地址列表。**仅返回自己的邮箱**,不能查他人邮箱(查他人邮箱请走 [mail.md](./mail.md) 中「查找他人邮箱地址」三路并发查询流程)。
|
|
10
|
+
|
|
11
|
+
`mail mailbox list`
|
|
12
|
+
|
|
13
|
+
### mail-search
|
|
14
|
+
|
|
15
|
+
搜索邮件。**必须使用 KQL 语法通过 `--query` 传递查询条件**,禁止臆造 `--subject`、`--from` 等不存在的 flag。
|
|
16
|
+
|
|
17
|
+
1. 获取邮箱地址:`mail mailbox list` → 取用户邮箱地址。若用户已提供邮箱可跳过。
|
|
18
|
+
2. 构造 KQL 查询:根据用户意图将搜索条件转为 KQL 表达式(详见 [mail.md](./mail.md) 中 KQL 查询字段说明)。
|
|
19
|
+
- 按主题:`subject:周报`、`subject:"项目 进展"`(含空格须加双引号)
|
|
20
|
+
- 按发件人:`from:alice@company.com` 或 `from:"张三"`
|
|
21
|
+
- 按日期:`date>2025-06-01T00:00:00Z`(ISO8601 格式,必须含时间部分)
|
|
22
|
+
- 按文件夹:`folderId:2`(2=收件箱, 1=已发送, 5=草稿, 6=已删除)
|
|
23
|
+
- 按是否有附件:`hasAttachments:true`
|
|
24
|
+
- 组合:`from:alice AND subject:周报 AND date>2025-06-01T00:00:00Z`
|
|
25
|
+
3. 执行搜索:`mail message search --email <邮箱> --query "<KQL表达式>" --limit 20`
|
|
26
|
+
4. 查看详情(按需):`mail message get --email <邮箱> --id <messageId>`
|
|
27
|
+
|
|
28
|
+
### mail-send
|
|
29
|
+
|
|
30
|
+
发送邮件。
|
|
31
|
+
|
|
32
|
+
1. 获取邮箱地址:`mail mailbox list` → 取用户邮箱作为 `--from`。
|
|
33
|
+
2. 确定收件人:用户直接提供邮箱地址 → 直接使用;用户提供姓名或工号 → 走「查找他人邮箱地址」三路并发流程(见 [mail.md](./mail.md))。
|
|
34
|
+
3. 发送:`mail message send --from <发件邮箱> --to <收件邮箱> --subject "<主题>" --content "<正文>"`(可选 `--cc`、`--attachment`、`--inline-attachment`)。
|
|
35
|
+
|
|
36
|
+
### mail-reply-forward
|
|
37
|
+
|
|
38
|
+
回复或转发邮件。
|
|
39
|
+
|
|
40
|
+
1. 获取邮箱地址:`mail mailbox list` → 取用户邮箱。
|
|
41
|
+
2. 定位原始邮件:若用户未提供 messageId → 先用 `mail-search` 搜索定位。
|
|
42
|
+
3. 执行:
|
|
43
|
+
- 回复:`mail message reply --from <邮箱> --id <messageId>`(可选 `--to`、`--subject`、`--content`)
|
|
44
|
+
- 回复全部:`mail message reply-all --from <邮箱> --id <messageId>`(可选 `--to`、`--subject`、`--content`)
|
|
45
|
+
- 转发:`mail message forward --from <邮箱> --to <收件邮箱> --id <messageId>`(可选 `--subject`、`--content`)
|