@thinkingai/ae-cli 6.0.31 → 6.0.33

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 (255) hide show
  1. package/README.md +3 -2
  2. package/README.zh.md +3 -2
  3. package/dist/{auth-MEJ642P4.js → auth-ENM3FE6L.js} +3 -2
  4. package/dist/{auth-7H3HAAJ3.js → auth-UPGUOKTW.js} +13 -6
  5. package/dist/{capability-SEH3JWLN.js → capability-AJC5CBRT.js} +50 -18
  6. package/dist/{capability-SQ2IWKP3.js → capability-TQ5KU5Q6.js} +50 -18
  7. package/dist/chunk-24BAVOX3.js +51 -0
  8. package/dist/{chunk-MDJGDI6K.js → chunk-3KI3RRXX.js} +5 -5
  9. package/dist/{chunk-PKRD2IEM.js → chunk-3P3562ZX.js} +9 -7
  10. package/dist/{chunk-R77JT7XD.js → chunk-4Q5TNP4Q.js} +4 -4
  11. package/dist/{chunk-TKQJQXWT.js → chunk-6CHYBI64.js} +7 -4
  12. package/dist/{chunk-6LEYLOV3.js → chunk-CPVTECJ3.js} +9 -7
  13. package/dist/{chunk-KCA6BA5D.js → chunk-DB4Q3ANU.js} +5 -3
  14. package/dist/{chunk-2NDGFQHW.js → chunk-E7UXXHO3.js} +11 -3
  15. package/dist/{chunk-I4A62X3N.js → chunk-HQ2A7ITL.js} +23 -14
  16. package/dist/chunk-IMMGMU54.js +674 -0
  17. package/dist/{chunk-AJTH7LT3.js → chunk-IR4ZLVPW.js} +4 -2
  18. package/dist/{chunk-N2QORU5D.js → chunk-ISY6HMHM.js} +7 -4
  19. package/dist/{chunk-KGJQCYVC.js → chunk-LCXU3AAT.js} +4 -2
  20. package/dist/chunk-LYVNONC4.js +86 -0
  21. package/dist/{chunk-DYOS6YY7.js → chunk-RGXCNC4N.js} +23 -14
  22. package/dist/{chunk-YCLVYFK7.js → chunk-V6FR6WTW.js} +45 -87
  23. package/dist/chunk-VTWMIC5L.js +27 -0
  24. package/dist/{cli-token-TVQRSE46.js → cli-token-4SBMXAUK.js} +6 -3
  25. package/dist/{client-2643Z5AG.js → client-PP5FETMW.js} +4 -3
  26. package/dist/community-report-client-KK2QBANO.js +145 -0
  27. package/dist/{config-7UZWDE74.js → config-RCCGHHYA.js} +6 -3
  28. package/dist/index.js +541 -234
  29. package/dist/{metadata-W6JFFMBA.js → metadata-3M5F2AED.js} +15 -14
  30. package/dist/{metadata-X62TKIVK.js → metadata-W2MEOI4Z.js} +15 -14
  31. package/dist/{model-T3KZJWLW.js → model-OYQLXCQY.js} +3 -2
  32. package/dist/{raw-CN542NGT.js → raw-TPB7KSZO.js} +6 -4
  33. package/dist/{sync-ERNHDPB5.js → sync-EFJKFZK2.js} +6 -3
  34. package/dist/{te-agent-FCCWUDTJ.js → te-agent-K2OWMZXT.js} +3 -2
  35. package/dist/{te-analysis-NJGNWZFC.js → te-analysis-I73ZS4NK.js} +2196 -120
  36. package/dist/{te-analysis-YGV5V5EX.js → te-analysis-Q7AZCDU4.js} +2196 -120
  37. package/dist/te-common-ST3QPSXJ.js +61 -0
  38. package/dist/te-common-WSLIKKPC.js +61 -0
  39. package/dist/te-community-WXGB6IOX.js +1659 -0
  40. package/dist/te-community-X2AHXGCA.js +1659 -0
  41. package/dist/{te-dataops-ZNJBQ6VT.js → te-dataops-MJV54MNY.js} +10 -8
  42. package/dist/{te-dataops-F36T656A.js → te-dataops-OA7I6HBG.js} +10 -8
  43. package/dist/te-engage-GJRVQMK3.js +3895 -0
  44. package/dist/te-engage-JIXX3WBI.js +3895 -0
  45. package/dist/{te-kb-NT33UHAE.js → te-kb-CIZXRWMO.js} +105 -23
  46. package/dist/{te-meta-VKWNAWO4.js → te-meta-Q4L6EE3Q.js} +8 -240
  47. package/dist/{te-meta-MAAUHFQO.js → te-meta-VHCN4Q62.js} +8 -240
  48. package/dist/{te-team-OKCOX7OE.js → te-team-PDKKW7Q5.js} +7 -6
  49. package/dist/tracking/i18n/resources/cli/en.json +4 -3
  50. package/dist/tracking/i18n/resources/cli/ja.json +4 -3
  51. package/dist/tracking/i18n/resources/cli/ko.json +4 -3
  52. package/dist/tracking/i18n/resources/cli/zh.json +4 -3
  53. package/package.json +6 -2
  54. package/skills/ae-agent/SKILL.md +2 -1
  55. package/skills/ae-analysis/SKILL.md +21 -7
  56. package/skills/ae-analysis/references/adhoc_export.md +5 -6
  57. package/skills/ae-analysis/references/adhoc_run.md +7 -9
  58. package/skills/ae-analysis/references/ai_models.md +17 -1
  59. package/skills/ae-analysis/references/alert_create.md +25 -0
  60. package/skills/ae-analysis/references/alert_definition_schema_get.md +24 -0
  61. package/skills/ae-analysis/references/alert_delete.md +26 -0
  62. package/skills/ae-analysis/references/alert_detail_list.md +27 -0
  63. package/skills/ae-analysis/references/alert_get.md +25 -0
  64. package/skills/ae-analysis/references/alert_job_list.md +24 -0
  65. package/skills/ae-analysis/references/alert_list.md +27 -0
  66. package/skills/ae-analysis/references/alert_notice_config_list.md +24 -0
  67. package/skills/ae-analysis/references/alert_start.md +25 -0
  68. package/skills/ae-analysis/references/alert_stop.md +25 -0
  69. package/skills/ae-analysis/references/alert_update.md +26 -0
  70. package/skills/ae-analysis/references/analysis_data_retrieval.md +11 -11
  71. package/skills/ae-analysis/references/analysis_drilldown_contract.md +93 -0
  72. package/skills/ae-analysis/references/analysis_gateway_assets.md +9 -8
  73. package/skills/ae-analysis/references/asset_url_get.md +4 -3
  74. package/skills/ae-analysis/references/bi_panel_create.md +3 -3
  75. package/skills/ae-analysis/references/bi_panel_page_data_export.md +2 -2
  76. package/skills/ae-analysis/references/bi_panel_page_data_run.md +1 -1
  77. package/skills/ae-analysis/references/check_delete.md +27 -0
  78. package/skills/ae-analysis/references/check_export.md +27 -0
  79. package/skills/ae-analysis/references/check_get.md +27 -0
  80. package/skills/ae-analysis/references/check_list.md +24 -0
  81. package/skills/ae-analysis/references/check_retry.md +27 -0
  82. package/skills/ae-analysis/references/check_run.md +25 -0
  83. package/skills/ae-analysis/references/command_index.md +114 -46
  84. package/skills/ae-analysis/references/create_entity.md +2 -2
  85. package/skills/ae-analysis/references/dashboard_create.md +3 -3
  86. package/skills/ae-analysis/references/dashboard_daily_report_send.md +1 -0
  87. package/skills/ae-analysis/references/dashboard_daily_report_update.md +2 -0
  88. package/skills/ae-analysis/references/dashboard_report_data_export.md +4 -4
  89. package/skills/ae-analysis/references/dashboard_report_data_run.md +4 -4
  90. package/skills/ae-analysis/references/drilldown_entities_export.md +26 -0
  91. package/skills/ae-analysis/references/drilldown_entities_run.md +33 -0
  92. package/skills/ae-analysis/references/drilldown_events_export.md +21 -0
  93. package/skills/ae-analysis/references/drilldown_events_run.md +23 -0
  94. package/skills/ae-analysis/references/drilldown_user_events_export.md +6 -3
  95. package/skills/ae-analysis/references/drilldown_user_events_run.md +6 -6
  96. package/skills/ae-analysis/references/entity_detail_export.md +2 -0
  97. package/skills/ae-analysis/references/entity_detail_run.md +8 -1
  98. package/skills/ae-analysis/references/event_blacklist_add.md +25 -0
  99. package/skills/ae-analysis/references/event_blacklist_list.md +24 -0
  100. package/skills/ae-analysis/references/event_blacklist_update.md +26 -0
  101. package/skills/ae-analysis/references/event_detail_export.md +2 -0
  102. package/skills/ae-analysis/references/event_detail_run.md +2 -0
  103. package/skills/ae-analysis/references/event_list.md +10 -2
  104. package/skills/ae-analysis/references/ingest_error_list.md +27 -0
  105. package/skills/ae-analysis/references/ingest_summary.md +26 -0
  106. package/skills/ae-analysis/references/list_entities.md +1 -1
  107. package/skills/ae-analysis/references/live_data_export.md +27 -0
  108. package/skills/ae-analysis/references/live_data_list.md +27 -0
  109. package/skills/ae-analysis/references/metric_create.md +13 -4
  110. package/skills/ae-analysis/references/metric_delete.md +7 -0
  111. package/skills/ae-analysis/references/metric_get.md +6 -0
  112. package/skills/ae-analysis/references/metric_list.md +16 -3
  113. package/skills/ae-analysis/references/metric_update.md +12 -1
  114. package/skills/ae-analysis/references/plan_change_log_export.md +27 -0
  115. package/skills/ae-analysis/references/plan_change_log_list.md +24 -0
  116. package/skills/ae-analysis/references/plan_delete_items.md +30 -0
  117. package/skills/ae-analysis/references/plan_export.md +26 -0
  118. package/skills/ae-analysis/references/plan_generate.md +27 -0
  119. package/skills/ae-analysis/references/plan_get.md +24 -0
  120. package/skills/ae-analysis/references/plan_import_excel.md +26 -0
  121. package/skills/ae-analysis/references/plan_save_items.md +27 -0
  122. package/skills/ae-analysis/references/plan_sync_from_meta.md +24 -0
  123. package/skills/ae-analysis/references/project_access_detail_get.md +23 -0
  124. package/skills/ae-analysis/references/project_data_power_delete.md +26 -0
  125. package/skills/ae-analysis/references/project_data_power_get.md +24 -0
  126. package/skills/ae-analysis/references/project_data_power_list.md +23 -0
  127. package/skills/ae-analysis/references/project_data_power_upsert.md +24 -0
  128. package/skills/ae-analysis/references/project_entity_create.md +27 -0
  129. package/skills/ae-analysis/references/project_entity_delete.md +25 -0
  130. package/skills/ae-analysis/references/project_entity_event_list.md +24 -0
  131. package/skills/ae-analysis/references/project_entity_get.md +24 -0
  132. package/skills/ae-analysis/references/project_entity_list.md +28 -0
  133. package/skills/ae-analysis/references/project_entity_update.md +28 -0
  134. package/skills/ae-analysis/references/project_function_list.md +24 -0
  135. package/skills/ae-analysis/references/project_info_get.md +23 -0
  136. package/skills/ae-analysis/references/project_info_list.md +26 -0
  137. package/skills/ae-analysis/references/project_info_update.md +25 -0
  138. package/skills/ae-analysis/references/project_mark_time_create.md +27 -0
  139. package/skills/ae-analysis/references/project_mark_time_delete.md +25 -0
  140. package/skills/ae-analysis/references/project_mark_time_list.md +28 -0
  141. package/skills/ae-analysis/references/project_mark_time_update.md +28 -0
  142. package/skills/ae-analysis/references/project_member_add.md +25 -0
  143. package/skills/ae-analysis/references/project_member_batch_update.md +24 -0
  144. package/skills/ae-analysis/references/project_member_candidate_list.md +25 -0
  145. package/skills/ae-analysis/references/project_member_handover_export.md +27 -0
  146. package/skills/ae-analysis/references/project_member_handover_run.md +24 -0
  147. package/skills/ae-analysis/references/project_member_import.md +25 -0
  148. package/skills/ae-analysis/references/project_member_list.md +23 -0
  149. package/skills/ae-analysis/references/project_member_receiver_list.md +23 -0
  150. package/skills/ae-analysis/references/project_member_remove.md +26 -0
  151. package/skills/ae-analysis/references/project_member_update.md +25 -0
  152. package/skills/ae-analysis/references/project_owner_update.md +27 -0
  153. package/skills/ae-analysis/references/project_permission_binding_list.md +24 -0
  154. package/skills/ae-analysis/references/project_receive_status_update.md +25 -0
  155. package/skills/ae-analysis/references/project_role_delete.md +26 -0
  156. package/skills/ae-analysis/references/project_role_function_list.md +27 -0
  157. package/skills/ae-analysis/references/project_role_get.md +24 -0
  158. package/skills/ae-analysis/references/project_role_list.md +25 -0
  159. package/skills/ae-analysis/references/project_role_upsert.md +24 -0
  160. package/skills/ae-analysis/references/project_role_user_list.md +24 -0
  161. package/skills/ae-analysis/references/project_timezone_get.md +23 -0
  162. package/skills/ae-analysis/references/project_timezone_overview.md +23 -0
  163. package/skills/ae-analysis/references/project_timezone_update.md +25 -0
  164. package/skills/ae-analysis/references/project_user_id_items_update.md +24 -0
  165. package/skills/ae-analysis/references/property_list.md +21 -6
  166. package/skills/ae-analysis/references/public_link_create.md +1 -1
  167. package/skills/ae-analysis/references/query_create_result_cluster.md +15 -32
  168. package/skills/ae-analysis/references/report_create.md +1 -1
  169. package/skills/ae-analysis/references/report_data_export.md +5 -3
  170. package/skills/ae-analysis/references/report_data_run.md +13 -3
  171. package/skills/ae-analysis/references/report_get.md +2 -0
  172. package/skills/ae-analysis/references/report_update.md +1 -1
  173. package/skills/ae-analysis/references/sdk_sample_generate.md +24 -0
  174. package/skills/ae-analysis/references/user_cluster_create.md +5 -1
  175. package/skills/ae-analysis/references/user_cluster_create_id.md +2 -0
  176. package/skills/ae-analysis/references/user_cluster_get.md +4 -0
  177. package/skills/ae-analysis/references/user_cluster_refresh.md +4 -2
  178. package/skills/ae-analysis/references/user_cluster_update.md +5 -1
  179. package/skills/ae-analysis/references/user_cluster_update_id.md +2 -0
  180. package/skills/ae-analysis/references/user_tag_create.md +5 -1
  181. package/skills/ae-analysis/references/user_tag_create_id.md +2 -0
  182. package/skills/ae-analysis/references/user_tag_get.md +4 -0
  183. package/skills/ae-analysis/references/user_tag_refresh.md +4 -2
  184. package/skills/ae-analysis/references/user_tag_update.md +5 -1
  185. package/skills/ae-analysis/references/user_tag_update_id.md +2 -0
  186. package/skills/ae-analysis/references/virtual_event_create.md +22 -3
  187. package/skills/ae-analysis/references/virtual_property_create.md +23 -2
  188. package/skills/ae-analysis-global/SKILL.md +2 -0
  189. package/skills/ae-capability/SKILL.md +7 -5
  190. package/skills/ae-community/SKILL.md +72 -8
  191. package/skills/ae-community/references/community-chat-analysis.md +341 -0
  192. package/skills/ae-community/references/community-data-report.md +301 -0
  193. package/skills/ae-dataops/SKILL.md +2 -1
  194. package/skills/ae-engage/SKILL.md +204 -8
  195. package/skills/ae-engage/references/activity-activity-type.md +42 -0
  196. package/skills/ae-engage/references/activity-activity.md +70 -0
  197. package/skills/ae-engage/references/activity-approval.md +53 -0
  198. package/skills/ae-engage/references/activity-task.md +87 -0
  199. package/skills/ae-engage/references/activity-topic.md +98 -0
  200. package/skills/ae-engage/references/approval-approver-delete.md +26 -0
  201. package/skills/ae-engage/references/channel-test-send.md +37 -0
  202. package/skills/ae-engage/references/channel-touch-limits-batch-update.md +28 -0
  203. package/skills/ae-engage/references/channel-touch-limits-save.md +37 -0
  204. package/skills/ae-engage/references/channel-touch-limits-toggle.md +28 -0
  205. package/skills/ae-engage/references/channel-update-config.md +36 -0
  206. package/skills/ae-engage/references/client-param.md +58 -0
  207. package/skills/ae-engage/references/common-metric.md +75 -0
  208. package/skills/ae-engage/references/config-table.md +92 -0
  209. package/skills/ae-engage/references/engage-scene-config-item.md +69 -0
  210. package/skills/ae-engage/references/operation-log-query.md +1 -1
  211. package/skills/ae-engage/references/preset-event.md +42 -0
  212. package/skills/ae-engage/references/push-language.md +39 -0
  213. package/skills/ae-engage/references/scene-config-channel.md +58 -0
  214. package/skills/ae-engage/references/scene-config-group.md +62 -0
  215. package/skills/ae-engage/references/scene-config-item.md +68 -0
  216. package/skills/ae-engage/references/scene-config-metric.md +79 -0
  217. package/skills/ae-engage/references/scene-config-param.md +72 -0
  218. package/skills/ae-engage/references/scene-preset-metric.md +45 -0
  219. package/skills/ae-engage/references/scene-strategy.md +47 -0
  220. package/skills/ae-engage/references/scene-template.md +71 -0
  221. package/skills/ae-engage/references/{ops-delete.md → task-delete.md} +3 -3
  222. package/skills/ae-engage/references/whitelist.md +72 -0
  223. package/skills/ae-engage/references/workbench-workbench.md +48 -0
  224. package/skills/ae-generate-tracking-code/SKILL.md +4 -4
  225. package/skills/ae-generate-tracking-plan/SKILL.md +140 -16
  226. package/skills/ae-generate-tracking-plan/references/business-dimension-mapping.md +98 -33
  227. package/skills/ae-generate-tracking-plan/references/te-api.md +1 -1
  228. package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +16 -14
  229. package/skills/ae-kb/SKILL.md +36 -9
  230. package/skills/ae-metadata/SKILL.md +3 -2
  231. package/skills/ae-metadata/references/metadata_event_get.md +4 -4
  232. package/skills/ae-metadata/references/metadata_property_dimension_table_bind_existing.md +1 -1
  233. package/skills/ae-metadata/references/metadata_property_get.md +4 -4
  234. package/skills/ae-team/SKILL.md +2 -1
  235. package/dist/chunk-NOO24N7W.js +0 -11
  236. package/dist/chunk-TNW2CI4W.js +0 -129
  237. package/dist/te-common-5NJLF3XG.js +0 -130
  238. package/dist/te-common-7VTJZPII.js +0 -130
  239. package/dist/te-community-PEZ2VEF7.js +0 -687
  240. package/dist/te-community-TSKJ652U.js +0 -687
  241. package/dist/te-engage-BUWVSSSK.js +0 -1912
  242. package/dist/te-engage-EPE3QKDE.js +0 -1912
  243. package/skills/ae-analysis/references/create_metric.md +0 -58
  244. package/skills/ae-analysis/references/create_virtual_event.md +0 -60
  245. package/skills/ae-analysis/references/create_virtual_property.md +0 -69
  246. package/skills/ae-analysis/references/delete_metric.md +0 -32
  247. package/skills/ae-analysis/references/drilldown_users_export.md +0 -17
  248. package/skills/ae-analysis/references/drilldown_users_run.md +0 -61
  249. package/skills/ae-analysis/references/get_metric.md +0 -38
  250. package/skills/ae-analysis/references/get_resource_url.md +0 -33
  251. package/skills/ae-analysis/references/list_events.md +0 -46
  252. package/skills/ae-analysis/references/list_metrics.md +0 -52
  253. package/skills/ae-analysis/references/list_properties.md +0 -47
  254. package/skills/ae-analysis/references/update_metric.md +0 -58
  255. package/dist/{chunk-HL2AJQ4Q.js → chunk-PTE56QPL.js} +3 -3
@@ -0,0 +1,70 @@
1
+ # engage-activity activity
2
+
3
+ > Capability ids: `engage-activity.activity.{create,update,delete,list,get,pause,end,stats,info-list}` · Domain: `engage`.
4
+
5
+ 运营活动 - 活动主体管理。`create`/`update` 使用 `--payload` 直传后端 DTO(原生 camelCase 结构,`project_id` 单独作为参数)。
6
+
7
+ ## Commands
8
+
9
+ ```bash
10
+ # Create an activity (draft)
11
+ ae-cli engage-activity activity create --project-id <project_id> \
12
+ --payload '{"activityName":"a1","activityType":"other_type","tzOffset":99,"periodType":0}'
13
+
14
+ # Update an activity
15
+ ae-cli engage-activity activity update --project-id <project_id> \
16
+ --payload '{"activityId":"act-1","activityName":"a1","activityType":"other_type","tzOffset":99,"periodType":0}'
17
+
18
+ # Delete an activity (draft/denied/ended only, high-risk)
19
+ ae-cli engage-activity activity delete --project-id <project_id> --activity-id <activity_id> --yes
20
+
21
+ # List activities
22
+ ae-cli engage-activity activity list --project-id <project_id> [--fuzzy-field <text>] [--page 1] [--page-size 20]
23
+
24
+ # Get an activity detail
25
+ ae-cli engage-activity activity get --project-id <project_id> --activity-id <activity_id>
26
+
27
+ # Pause / End an activity (write, no dry-run)
28
+ ae-cli engage-activity activity pause --project-id <project_id> --activity-id <activity_id>
29
+ ae-cli engage-activity activity end --project-id <project_id> --activity-id <activity_id>
30
+
31
+ # Activity status distribution statistics
32
+ ae-cli engage-activity activity stats --project-id <project_id> [--fuzzy-field <text>]
33
+
34
+ # Query an activity's topics + standalone tasks
35
+ ae-cli engage-activity activity info-list --project-id <project_id> --activity-id <activity_id>
36
+ ```
37
+
38
+ ## Parameters
39
+
40
+ | Command | Required flags | Notes |
41
+ |---|---|---|
42
+ | create | `--project-id`, `--payload` | payload = `ActivityAddDTO`. |
43
+ | update | `--project-id`, `--payload` | payload = `ActivityDTO` (`activityId` + base fields). |
44
+ | delete | `--project-id`, `--activity-id` | high-risk; requires `--yes`; no dry-run. |
45
+ | list | `--project-id` | `--fuzzy-field` / `--page` / `--page-size` optional. |
46
+ | get | `--project-id`, `--activity-id` | read. |
47
+ | pause | `--project-id`, `--activity-id` | write; no dry-run. |
48
+ | end | `--project-id`, `--activity-id` | write; no dry-run. |
49
+ | stats | `--project-id` | read; `--fuzzy-field` optional. |
50
+ | info-list | `--project-id`, `--activity-id` | read. |
51
+
52
+ ## Output
53
+
54
+ - `create` / `update`: `data.activity_id`.
55
+ - `list`: `data.status_count`, `data.activity_list`, `data.pager_result`.
56
+ - `get`: `data.activity`.
57
+ - `stats`: `data.status_count`.
58
+ - `info-list`: `data.info` with `taskList` (standalone tasks) and `topicList` (topics under the activity).
59
+ - `delete` / `pause` / `end`: `data.success`.
60
+
61
+ ## Timezone (`tzOffset`)
62
+
63
+ When the project has **timezone disabled**, use `tzOffset: 99` (server default sentinel) on create/update. Using `8` or other offsets returns `PROJECT_TIME_ZONE_NONE` when creating topics/tasks under the activity.
64
+
65
+ When timezone is enabled, `tzOffset` must match one of the project's configured offsets. Keep activity `tzOffset` aligned with tasks/topics created under it.
66
+
67
+ ## Decision Rules
68
+
69
+ - `delete` is `high-risk-write` and requires `--yes`; `pause`/`end` are state-changing `write` (no `--yes`) and do not support dry-run.
70
+ - Discover real activity IDs via `list` first; never invent IDs.
@@ -0,0 +1,53 @@
1
+ # engage-activity approval
2
+
3
+ > Capability ids: `engage-activity.approval.{submit,approve,reject,cancel}` · Domain: `engage`.
4
+
5
+ 运营活动 - 活动审批流。所有操作均针对活动(`ApprovalActivityIdDealDTO`:`projectId` + `activityId` + `reason`),均为状态变更 `write`,不支持 dry-run。`reject` 的 `reason` 必填;其余操作 `reason` 可选。
6
+
7
+ ## Commands
8
+
9
+ ```bash
10
+ # Submit an activity for approval
11
+ ae-cli engage-activity approval submit --project-id <project_id> --activity-id <activity_id>
12
+
13
+ # Approve an activity
14
+ ae-cli engage-activity approval approve --project-id <project_id> --activity-id <activity_id>
15
+
16
+ # Reject an activity (reason required)
17
+ ae-cli engage-activity approval reject --project-id <project_id> --activity-id <activity_id> --reason <reason>
18
+
19
+ # Cancel/withdraw a submitted approval
20
+ ae-cli engage-activity approval cancel --project-id <project_id> --activity-id <activity_id>
21
+ ```
22
+
23
+ ## Parameters
24
+
25
+ | Command | Required flags | Notes |
26
+ |---|---|---|
27
+ | submit | `--project-id`, `--activity-id` | `--reason` optional. |
28
+ | approve | `--project-id`, `--activity-id` | `--reason` optional. |
29
+ | reject | `--project-id`, `--activity-id`, `--reason` | `--reason` required, max 72 characters. |
30
+ | cancel | `--project-id`, `--activity-id` | `--reason` optional. |
31
+
32
+ ## Output
33
+
34
+ - All actions: `data.success`.
35
+
36
+ ## Decision Rules
37
+
38
+ - All approval actions are `write` (real state changes) and do not support dry-run; they do not require `--yes` (only `high-risk-write` does).
39
+ - Approve/reject require the caller to be a valid approver of the activity (enforced server-side).
40
+
41
+ ## Common Errors
42
+
43
+ | code | when |
44
+ |---|---|
45
+ | `ACTIVITY_NOT_FOUND` | activity id missing in project |
46
+ | `ACTIVITY_NO_APPROVAL_TASK` | submit with no standalone/topic tasks |
47
+ | `ACTIVITY_STATUS_INVALID` | activity not in draft/pending |
48
+ | `APPROVAL_NOT_PENDING` | no under-approval record |
49
+ | `NOT_APPROVER` | caller is not a project approver |
50
+ | `REASON_REQUIRED` | reject without `--reason` |
51
+ | `REASON_TOO_LONG` | reject reason longer than 72 characters |
52
+ | `CAPABILITY_PERMISSION_DENIED` | cancel caller is neither owner nor ops-manage-other-assets |
53
+ | `TOO_FREQUENT` | concurrent approve/submit lock conflict |
@@ -0,0 +1,87 @@
1
+ # engage-activity task
2
+
3
+ > Capability ids: `engage-activity.task.{get,copy}` · Domain: `engage`.
4
+ >
5
+ > Temporarily disabled: `task create` / `task update` (command registration + skill guidance).
6
+
7
+ 运营活动 - 独立任务(活动下不属于主题的任务)。`copy` 读取源任务详情、改名后重新创建(无后端复制 API)。
8
+
9
+ ## Commands
10
+
11
+ ```bash
12
+ # Get a standalone task detail
13
+ ae-cli engage-activity task get --project-id <project_id> --task-id <task_id>
14
+
15
+ # Copy a standalone task (loads detail, renames, re-creates)
16
+ ae-cli engage-activity task copy --project-id <project_id> --task-id <task_id> [--new-name <name>]
17
+ ```
18
+
19
+ <!-- Temporarily disabled: task create / task update
20
+ ```bash
21
+ # Create a standalone task under an activity (webhook + existing cluster)
22
+ ae-cli engage-activity task create --project-id <project_id> \
23
+ --payload '{ ... }'
24
+
25
+ # Update a standalone task
26
+ ae-cli engage-activity task update --project-id <project_id> \
27
+ --payload '{"taskId":"task-1","taskName":"t1", ...}'
28
+ ```
29
+ -->
30
+
31
+ ## Parameters
32
+
33
+ | Command | Required flags | Notes |
34
+ |---|---|---|
35
+ | get | `--project-id`, `--task-id` | read. |
36
+ | copy | `--project-id`, `--task-id` | `--new-name` optional (default source name + `_copy`). |
37
+
38
+ <!-- Temporarily disabled
39
+ | create | `--project-id`, `--payload` | payload = `OperationTaskOpDTO`; set `activityId`, leave `topicId` empty. |
40
+ | update | `--project-id`, `--payload` | payload = `OperationTaskOpDTO` including `taskId`. |
41
+ -->
42
+
43
+ ## Output
44
+
45
+ - `get`: `data.task`.
46
+ - `copy`: `data.task_id`, optional `data.trigger_time_stale` (true when source schedule-single time is already past).
47
+
48
+ ## Payload notes (for copy / detail shape)
49
+
50
+ ### Channel content
51
+
52
+ - `channelType` `1` = webhook, `2` = app_push, `3` = client_push, `4` = wechat, `5` = dou_yin`.
53
+ - `groupContentList[].contentList[].content` must be a JSON **array string**.
54
+ - **TEXT (rich text) params** must include both `value` and `config` (Slate.js JSON **string**). If `config` is missing, Hermes copy auto-fills
55
+ `config = [{"type":"paragraph","children":[{"text":"<value>"}]}]` as a JSON string.
56
+
57
+ ### Audience (`targetClusterType`)
58
+
59
+ | Value | Required | Notes |
60
+ |---|---|---|
61
+ | `2` (existed) | `clusterKey` | From `analysis user-cluster list/get`. |
62
+ | `1` (custom) | `qp` | JSON object string. |
63
+ | `3` (all) | — | Do not pass `clusterKey` or `qp`. |
64
+
65
+ ## Decision Rules
66
+
67
+ - Discover a real `task_id` via `get`/activity `info-list` first; never invent IDs.
68
+ - `copy` duplicates the editable task config (not runtime/trigger state).
69
+ - `copy` saves via **draft** add (`draft=true`), so a past schedule-single `triggerTime` is allowed; output may include `trigger_time_stale=true`. Update the time before `approval submit`.
70
+ - Standalone tasks must **not** include `topicId`; topic tasks use `engage-activity topic copy` (topic create/update are temporarily disabled).
71
+
72
+ ## Copy errors
73
+
74
+ `copy` = get detail → rename → draft `add` (no dedicated copy API). Prefer actionable codes over `INVALID_CAPABILITY_REQUEST`:
75
+
76
+ | code | when |
77
+ |---|---|
78
+ | `TASK_NOT_FOUND` | source `task_id` missing |
79
+ | `TASK_PROJECT_MISMATCH` | task exists but not in `--project-id` |
80
+ | `TOPIC_TASK_FORBIDDEN` | source has `topicId` (use `topic copy`) |
81
+ | `ACTIVITY_ID_REQUIRED` | source has no `activityId` (not a standalone activity task) |
82
+ | `TRIGGER_TIME_REQUIRED` | schedule-single missing `triggerTime` |
83
+ | `CHANNEL_NOT_FOUND` | source channel missing / type mismatch |
84
+ | `TASK_COUNT_LIMIT` | project task count limit exceeded |
85
+ | `RCC_SERVER_REQUIRED` | client push (`channelType=3`) but RCC server is not installed |
86
+
87
+ Past `triggerTime` no longer fails copy; check `data.trigger_time_stale` and fix before approval. Unmapped domain `PARAMETER_ERROR` may still return `INVALID_CAPABILITY_REQUEST` with a readable fallback message.
@@ -0,0 +1,98 @@
1
+ # engage-activity topic
2
+
3
+ > Capability ids: `engage-activity.topic.{remove-task,delete,get,copy}` · Domain: `engage`.
4
+ >
5
+ > Temporarily disabled: `topic create` / `topic update` (command registration + skill guidance).
6
+
7
+ Activity topics and tasks under a topic. `copy` loads the source topic, renames it, and re-creates (no dedicated backend copy API).
8
+
9
+ ## Commands
10
+
11
+ ```bash
12
+ # Remove a task from its topic (high-risk)
13
+ ae-cli engage-activity topic remove-task --project-id <project_id> --task-id <task_id> --yes
14
+
15
+ # Delete a topic (high-risk)
16
+ ae-cli engage-activity topic delete --project-id <project_id> --topic-id <topic_id> --yes
17
+
18
+ # Get a topic detail
19
+ ae-cli engage-activity topic get --project-id <project_id> --topic-id <topic_id>
20
+
21
+ # Copy a topic (loads detail, renames, re-creates)
22
+ ae-cli engage-activity topic copy --project-id <project_id> --topic-id <topic_id> [--new-name <name>]
23
+ ```
24
+
25
+ <!-- Temporarily disabled: topic create / topic update
26
+ ```bash
27
+ # Create a topic and its tasks under an activity
28
+ ae-cli engage-activity topic create --project-id <project_id> --payload '{ ... }'
29
+
30
+ # Update a topic and its task relations
31
+ ae-cli engage-activity topic update --project-id <project_id> --payload '{"topicId":"topic-1", ...}'
32
+ ```
33
+ -->
34
+
35
+ ## Parameters
36
+
37
+ | Command | Required flags | Notes |
38
+ |---|---|---|
39
+ | remove-task | `--project-id`, `--task-id` | high-risk; requires `--yes`; no dry-run. Only tasks with a non-empty `topicId`. |
40
+ | delete | `--project-id`, `--topic-id` | high-risk; requires `--yes`; no dry-run. |
41
+ | get | `--project-id`, `--topic-id` | read. |
42
+ | copy | `--project-id`, `--topic-id` | `--new-name` optional (default source name + `_copy`). |
43
+
44
+ <!-- Temporarily disabled
45
+ | create | `--project-id`, `--payload` | payload = `TopicAddDTO` (camelCase). |
46
+ | update | `--project-id`, `--payload` | payload = `TopicModifyReq` (`topicId` + fields + task lists). |
47
+ -->
48
+
49
+ ## Notes for get / copy
50
+
51
+ TEXT (rich text) params inside `groupContentList[].contentList[].content` need both `value` and Slate `config` (JSON string). If `config` is omitted, Hermes copy auto-fills
52
+ `[{"type":"paragraph","children":[{"text":"<value>"}]}]`. See `activity-task.md` Channel content.
53
+
54
+ Topic-level audience uses `topicClusterKey` / `topicQp`; do **not** pass task-level `clusterKey` at topic root.
55
+
56
+ ## Output
57
+
58
+ - `get`: `data.topic` (includes `topicClusterKey` for topic audience).
59
+ - `remove-task` / `delete` / `copy`: `data.success`.
60
+ - `copy` may include `data.trigger_time_stale=true` when source schedule-single time is already past.
61
+
62
+ ## Decision Rules
63
+
64
+ - `remove-task` and `delete` are `high-risk-write` — require `--yes`, no dry-run.
65
+ - `remove-task` only deletes **topic tasks** (`topicId` present). Standalone tasks → use `engage-task task delete`.
66
+ - `copy` duplicates the editable topic config and its tasks (not runtime/approval state).
67
+ - `copy` saves via **draft** add (`isDraft=true`), so a past schedule-single `triggerTime` is allowed; output may include `trigger_time_stale=true`. Update the time before `approval submit`.
68
+ - Prefer `topic get` as a template when inspecting channel/content fields.
69
+
70
+ ## Copy errors
71
+
72
+ `copy` = get topic detail → rename → draft `addTopicAndTask` (no dedicated copy API). Prefer actionable codes over `INVALID_CAPABILITY_REQUEST` / mismatched i18n text like "Campaign does not exist.":
73
+
74
+ | code | when |
75
+ |---|---|
76
+ | `TOPIC_NOT_FOUND` | source `topic_id` missing |
77
+ | `TOPIC_PROJECT_MISMATCH` | topic exists but not in `--project-id` |
78
+ | `ACTIVITY_ID_REQUIRED` | source topic detail has no `activityId` |
79
+ | `ACTIVITY_NOT_FOUND` | parent activity missing / deleted / wrong project |
80
+ | `TOPIC_TASKS_REQUIRED` | source topic has no tasks |
81
+ | `ACTIVITY_STATUS_INVALID` | parent activity is approving/working/complete |
82
+ | `TOPIC_COUNT_LIMIT` | activity topic count limit exceeded |
83
+ | `CHANNEL_NOT_FOUND` | source channel missing / type mismatch |
84
+ | `TASK_COUNT_LIMIT` | project task count limit exceeded |
85
+ | `RCC_SERVER_REQUIRED` | client push (`channelType=3`) but RCC server is not installed |
86
+ | `TRIGGER_TIME_REQUIRED` | schedule-single missing `triggerTime` |
87
+
88
+ Past `triggerTime` no longer fails copy; check `data.trigger_time_stale` and fix before approval.
89
+
90
+ ## remove-task errors
91
+
92
+ | code | when |
93
+ |---|---|
94
+ | `TASK_NOT_FOUND` | `--task-id` missing |
95
+ | `TASK_PROJECT_MISMATCH` | task exists but not in `--project-id` |
96
+ | `NOT_TOPIC_TASK` | task has no `topicId` (standalone); use `engage-task task delete` |
97
+ | `TASK_WORKING` | topic task `mappingStatus=working`; pause/end first |
98
+ | `TASK_APPROVING` | topic task pending approval; withdraw first |
@@ -0,0 +1,26 @@
1
+ # engage-setting approval-approver delete
2
+
3
+ > Capability id: `engage-setting.approval-approver.delete` · Domain: `engage`.
4
+
5
+ ## Command
6
+
7
+ ```bash
8
+ ae-cli engage-setting approval-approver delete --project-id <project_id> --approver <open_id> --yes
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Required | Description |
14
+ |---|---|---|
15
+ | `--project-id` / `-p` | Yes | Numeric project ID. |
16
+ | `--approver` | Yes | OpenID of the approver to remove. |
17
+
18
+ ## Output
19
+
20
+ - `data.success`: whether the approver was removed.
21
+
22
+ ## Decision Rules
23
+
24
+ - Use this command when the user asks to remove/delete an approver from a project.
25
+ - Discover the real approver OpenID with `ae-cli engage +approver_list --project_id <project_id>` first; never invent an OpenID.
26
+ - Risk is `high-risk-write`; the CLI confirmation gate requires `--yes` (or interactive confirmation) before executing.
@@ -0,0 +1,37 @@
1
+ # engage-setting channel test-send
2
+
3
+ > Capability id: `engage-setting.channel.test-send` · Domain: `engage`.
4
+
5
+ ## Command
6
+
7
+ ```bash
8
+ ae-cli engage-setting channel test-send \
9
+ --project-id <project_id> --channel-id <channel_id> --push-id <send_id> \
10
+ --content-list '[{"key":"title","value":"hello"}]' \
11
+ [--user-params-list '<json_array>'] [--push-environment dev|pro] \
12
+ [--mock-push] [--channel-template-id <id>]
13
+ ```
14
+
15
+ ## Parameters
16
+
17
+ | Parameter | Required | Description |
18
+ |---|---|---|
19
+ | `--project-id` / `-p` | Yes | Numeric project ID. |
20
+ | `--channel-id` | Yes | Channel ID to test. |
21
+ | `--push-id` | Yes | Recipient send ID (e.g. a test device id). |
22
+ | `--content-list` | Yes | JSON array of key/value content pairs, e.g. `[{"key":"title","value":"hello"}]`. |
23
+ | `--user-params-list` | No | JSON array of custom user params for the test push. |
24
+ | `--push-environment` | No | Push environment: `dev` or `pro`. |
25
+ | `--mock-push` | No | Mock the push (build request only, do not send). |
26
+ | `--channel-template-id` | No | WeChat channel template ID. |
27
+
28
+ ## Output
29
+
30
+ - `data.push_succeeded`: whether the test push succeeded.
31
+
32
+ ## Decision Rules
33
+
34
+ - Use this command when the user asks to send a test message to a channel / verify channel delivery.
35
+ - Discover the real channel id with `ae-cli engage +channel_list` first; never invent a channel id.
36
+ - `--mock-push` is useful to inspect the request body/headers without actually delivering a message.
37
+ - Risk is `write`; sending a real test push to a recipient is a write action.
@@ -0,0 +1,28 @@
1
+ # engage-setting channel-touch-limits batch-update
2
+
3
+ > Capability id: `engage-setting.channel-touch-limits.batch-update` · Domain: `engage`.
4
+
5
+ ## Command
6
+
7
+ ```bash
8
+ ae-cli engage-setting channel-touch-limits batch-update \
9
+ --project-id <project_id> \
10
+ --items '[{"rule_id":"r1","enable":true,"rule_def":"[]"},{"rule_id":"r2","enable":false,"rule_def":"[]"}]'
11
+ ```
12
+
13
+ ## Parameters
14
+
15
+ | Parameter | Required | Description |
16
+ |---|---|---|
17
+ | `--project-id` / `-p` | Yes | Numeric project ID. |
18
+ | `--items` | Yes | JSON array of rule updates. Each item: `rule_id`, `enable` (boolean), `rule_def` (rule definition JSON string). |
19
+
20
+ ## Output
21
+
22
+ - `data.success`: whether the batch update succeeded.
23
+
24
+ ## Decision Rules
25
+
26
+ - Use this command when the user asks to batch edit/update multiple touch-limit (fatigue-control) rules at once.
27
+ - Discover existing rule IDs with `ae-cli engage-setting channel-touch-limits list --project-id <project_id>` first; never invent rule IDs.
28
+ - Risk is `write`; ordinary update, no confirmation gate.
@@ -0,0 +1,37 @@
1
+ # engage-setting channel-touch-limits save
2
+
3
+ > Capability id: `engage-setting.channel-touch-limits.save` · Domain: `engage`.
4
+
5
+ ## Command
6
+
7
+ ```bash
8
+ # Create a new touch-limit rule (omit --rule-id)
9
+ ae-cli engage-setting channel-touch-limits save \
10
+ --project-id <project_id> --channel-biz-type <biz_type> \
11
+ --rule-def '<rule_def_json>' --enable true
12
+
13
+ # Update an existing touch-limit rule (provide --rule-id)
14
+ ae-cli engage-setting channel-touch-limits save \
15
+ --project-id <project_id> --channel-biz-type <biz_type> \
16
+ --rule-def '<rule_def_json>' --enable false --rule-id <rule_id>
17
+ ```
18
+
19
+ ## Parameters
20
+
21
+ | Parameter | Required | Description |
22
+ |---|---|---|
23
+ | `--project-id` / `-p` | Yes | Numeric project ID. |
24
+ | `--channel-biz-type` | Yes | Channel business type the rule belongs to. |
25
+ | `--rule-def` | Yes | Touch-limit rule definition (JSON string, see ChannelTouchLimitRuleDTO). |
26
+ | `--enable` | Yes | Whether the touch-limit rule is enabled. |
27
+ | `--rule-id` | No | Existing rule ID. When omitted a new rule is created. |
28
+
29
+ ## Output
30
+
31
+ - `data.success`: whether the save succeeded.
32
+
33
+ ## Decision Rules
34
+
35
+ - Use this command when the user asks to create or update a single touch-limit (fatigue-control) rule.
36
+ - For updates, discover the real rule ID with `ae-cli engage-setting channel-touch-limits list --project-id <project_id>` first.
37
+ - Risk is `write`; ordinary write, no confirmation gate.
@@ -0,0 +1,28 @@
1
+ # engage-setting channel-touch-limits toggle
2
+
3
+ > Capability id: `engage-setting.channel-touch-limits.toggle` · Domain: `engage`.
4
+
5
+ ## Command
6
+
7
+ ```bash
8
+ ae-cli engage-setting channel-touch-limits toggle \
9
+ --project-id <project_id> --rule-id <rule_id> --enable <true|false>
10
+ ```
11
+
12
+ ## Parameters
13
+
14
+ | Parameter | Required | Description |
15
+ |---|---|---|
16
+ | `--project-id` / `-p` | Yes | Numeric project ID. |
17
+ | `--rule-id` | Yes | Touch-limit rule ID to enable/disable. |
18
+ | `--enable` | Yes | Whether the touch-limit rule is enabled. |
19
+
20
+ ## Output
21
+
22
+ - `data.success`: whether the toggle succeeded.
23
+
24
+ ## Decision Rules
25
+
26
+ - Use this command when the user asks to enable or disable a single touch-limit (fatigue-control) rule.
27
+ - Discover the real rule ID with `ae-cli engage-setting channel-touch-limits list --project-id <project_id>` first.
28
+ - Risk is `write`; ordinary update, no confirmation gate.
@@ -0,0 +1,36 @@
1
+ # engage-setting channel update-config
2
+
3
+ > Capability id: `engage-setting.channel.update-config` · Domain: `engage`.
4
+
5
+ ## Command
6
+
7
+ ```bash
8
+ ae-cli engage-setting channel update-config \
9
+ --project-id <project_id> --channel-id <channel_id> --enable-touch-event <0|1> \
10
+ [--channel-name <name>] [--push-id-type <prop>] [--config '<json_string>'] \
11
+ [--touch-event-source <src>] [--event-delivery-name <name>] [--event-click-name <name>]
12
+ ```
13
+
14
+ ## Parameters
15
+
16
+ | Parameter | Required | Description |
17
+ |---|---|---|
18
+ | `--project-id` / `-p` | Yes | Numeric project ID. |
19
+ | `--channel-id` | Yes | Channel ID to update. |
20
+ | `--enable-touch-event` | Yes | Reach funnel toggle: `1` enabled, `0` disabled. |
21
+ | `--channel-name` | No | New channel name. |
22
+ | `--push-id-type` | No | User property used as the push ID. |
23
+ | `--config` | No | Channel-specific JSON config string (see ChannelConfigDTO). |
24
+ | `--touch-event-source` | No | Reach event source. |
25
+ | `--event-delivery-name` | No | Actual delivery event name. |
26
+ | `--event-click-name` | No | Click event name. |
27
+
28
+ ## Output
29
+
30
+ - `data.success`: whether the channel config was updated.
31
+
32
+ ## Decision Rules
33
+
34
+ - Use this command when the user asks to edit/update an existing channel's name, config, push-id type, or reach-funnel settings.
35
+ - `--config` is the channel-specific JSON config; discover the existing config with `ae-cli engage +channel_detail` first rather than inventing it.
36
+ - Risk is `write`; ordinary update, no confirmation gate.
@@ -0,0 +1,58 @@
1
+ # engage-setting client-param
2
+
3
+ > Capability ids: `engage-setting.client-param.{update,delete,list}` · Domain: `engage`. (`create` temporarily disabled in CLI.)
4
+
5
+ ## Commands
6
+
7
+ ```bash
8
+ # Update a custom client param
9
+ ae-cli engage-setting client-param update \
10
+ --project-id <project_id> --column-name <name> --column-type <type> --select-type <select> \
11
+ [--column-desc <desc>]
12
+
13
+ # Delete a custom client param (high-risk)
14
+ ae-cli engage-setting client-param delete --project-id <project_id> --column-name <name> --yes
15
+
16
+ # List custom client params
17
+ ae-cli engage-setting client-param list --project-id <project_id>
18
+ ```
19
+
20
+ ## Parameters
21
+
22
+ ### update
23
+
24
+ | Parameter | Required | Description |
25
+ |---|---|---|
26
+ | `--project-id` / `-p` | Yes | Numeric project ID. |
27
+ | `--column-name` | Yes | Client param column name. |
28
+ | `--column-type` | Yes | Column type (see ColumnTypeEnum). |
29
+ | `--select-type` | Yes | Select type (see SelectTypeEnum). |
30
+ | `--column-source` | No | Param source: preset or custom. |
31
+ | `--column-desc` | No | Display name of the param. Defaults to an empty string. |
32
+ | `--column-remark` | No | Description/remark for the param. |
33
+ | `--alternative-val` | No | JSON array of alternative values. |
34
+ | `--system-id-param` | No | Whether this is a system identifier param. |
35
+
36
+ ### delete
37
+
38
+ | Parameter | Required | Description |
39
+ |---|---|---|
40
+ | `--project-id` / `-p` | Yes | Numeric project ID. |
41
+ | `--column-name` | Yes | Client param column name to delete. |
42
+
43
+ ### list
44
+
45
+ | Parameter | Required | Description |
46
+ |---|---|---|
47
+ | `--project-id` / `-p` | Yes | Numeric project ID. |
48
+
49
+ ## Output
50
+
51
+ - `update`: `data.success` — whether the operation succeeded.
52
+ - `delete`: `data.success` and `data.task_list` (tasks still referencing the param, which block deletion; each item has `task_id`, `task_name`).
53
+ - `list`: `data.items` (each with `column_name`, `column_type`, `select_type`, `column_source`, `column_desc`, `column_remark`, `alternative_val`, `system_id_param`) and `data.total`.
54
+
55
+ ## Decision Rules
56
+
57
+ - Use these commands when the user asks to manage custom client params (客户端参数).
58
+ - `delete` is `high-risk-write` and requires `--yes` (or interactive confirmation). When `data.success` is false, `data.task_list` lists tasks that still reference the param — report them instead of forcing deletion.
@@ -0,0 +1,75 @@
1
+ # engage-setting common-metric
2
+
3
+ > Capability ids: `engage-setting.common-metric.{list,get,update,delete}` · Domain: `engage`. (`create` temporarily disabled in CLI.)
4
+
5
+ ## Commands
6
+
7
+ ```bash
8
+ # List common metrics
9
+ ae-cli engage-setting common-metric list --project-id <project_id>
10
+
11
+ # Get a common metric detail
12
+ ae-cli engage-setting common-metric get --project-id <project_id> --metric-name <name>
13
+
14
+ # Update a common metric
15
+ ae-cli engage-setting common-metric update \
16
+ --project-id <project_id> --metric-type <type> --metric-name <name> --metric-qp <qp> \
17
+ --metric-window-num <num> --metric-window-time-unit DAY --display-name <display>
18
+
19
+ # Delete a common metric (high-risk)
20
+ ae-cli engage-setting common-metric delete --project-id <project_id> --metric-name <name> --yes
21
+ ```
22
+
23
+ ## Parameters
24
+
25
+ ### list
26
+
27
+ | Parameter | Required | Description |
28
+ |---|---|---|
29
+ | `--project-id` / `-p` | Yes | Numeric project ID. |
30
+
31
+ ### get / delete
32
+
33
+ | Parameter | Required | Description |
34
+ |---|---|---|
35
+ | `--project-id` / `-p` | Yes | Numeric project ID. |
36
+ | `--metric-name` | Yes | Metric name. |
37
+
38
+ ### update
39
+
40
+ | Parameter | Required | Description |
41
+ |---|---|---|
42
+ | `--project-id` / `-p` | Yes | Numeric project ID. |
43
+ | `--metric-type` | Yes | Metric type (see MetricTypeEunm). |
44
+ | `--metric-name` | Yes | Metric name. |
45
+ | `--metric-qp` | Yes | Metric qp (event/property expression). |
46
+ | `--metric-window-num` | Yes | Metric window number. |
47
+ | `--metric-window-time-unit` | Yes | Metric window time unit (MINUTE/HOUR/DAY). |
48
+ | `--display-name` | Yes | Display name of the metric. |
49
+ | `--note` | No | Metric note/remark. |
50
+ | `--order-id` | No | Sort order id. |
51
+ | `--metric-setting-id` | No | Metric setting id (when binding to a setting). |
52
+ | `--metric-params` | No | Metric params JSON string. |
53
+
54
+ ## Output
55
+
56
+ - `list`: `data.items` (each with `project_id`, `metric_type`, `metric_name`, `metric_qp`, `metric_window_num`, `metric_window_time_unit`, `note`, `last_editer`, `last_update_time`, `order_id`, `display_name`, `metric_setting_id`, `metric_params`) and `data.total`.
57
+ - `get`: `data.metric` — a single metric object with the same fields, or `null`.
58
+ - `update` / `delete`: `data.success`.
59
+
60
+ ## Preflight for config-metric batch-add
61
+
62
+ `engage-scene config-metric batch-add --ta-metric-ids` requires TA common metrics to exist in the project. List them first:
63
+
64
+ ```bash
65
+ ae-cli engage-setting common-metric list --project-id <project_id>
66
+ ```
67
+
68
+ If `items` is empty, common metrics must be created in the Engage console before binding them to a config item, or treat the case as environment-blocked.
69
+
70
+ ## Decision Rules
71
+
72
+ - Use these commands when the user asks to manage common metrics (常用指标) for the analysis workbench.
73
+ - Discover existing metric names with `common-metric list` first; never invent names for `get`/`update`/`delete`.
74
+ - `--metric-qp` must be a complete metric QP expression; do not pass `{}` as a placeholder.
75
+ - `delete` is `high-risk-write` and requires `--yes` (or interactive confirmation).