@thinkingai/ae-cli 6.1.10 → 6.1.11

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 (225) hide show
  1. package/README.md +25 -3
  2. package/README.zh.md +25 -3
  3. package/dist/{auth-56Z45UVR.js → auth-GDV3H5I4.js} +18 -8
  4. package/dist/{auth-ENM3FE6L.js → auth-NN55553T.js} +3 -3
  5. package/dist/{capability-2H6PAOA3.js → capability-TPORIKRQ.js} +19 -15
  6. package/dist/{capability-YPOQX6PL.js → capability-VQNC5CF7.js} +19 -15
  7. package/dist/chunk-4NN5IWVN.js +26 -0
  8. package/dist/{chunk-DB4Q3ANU.js → chunk-6A2FUCIS.js} +3 -3
  9. package/dist/{chunk-PVBYJWC2.js → chunk-7KQWSBSL.js} +4 -4
  10. package/dist/{chunk-24BAVOX3.js → chunk-AXDXJTPC.js} +3 -1
  11. package/dist/{chunk-CPVTECJ3.js → chunk-DT6Y3TD7.js} +5 -5
  12. package/dist/{chunk-EGEIXA2Z.js → chunk-DWO43OIB.js} +0 -248
  13. package/dist/{chunk-V6FR6WTW.js → chunk-GJJA4CQZ.js} +34 -2
  14. package/dist/{chunk-RGXCNC4N.js → chunk-GS2P7LFD.js} +50 -17
  15. package/dist/{chunk-LYVNONC4.js → chunk-JHENBQ5B.js} +35 -0
  16. package/dist/{chunk-3P3562ZX.js → chunk-MVDZ7DBQ.js} +5 -5
  17. package/dist/{chunk-LCXU3AAT.js → chunk-NBPKWKRA.js} +2 -2
  18. package/dist/{chunk-HQ2A7ITL.js → chunk-RBNKI5ZW.js} +50 -17
  19. package/dist/{chunk-LHVM35J4.js → chunk-TS6BUGUY.js} +4 -4
  20. package/dist/chunk-TUKQZTMI.js +250 -0
  21. package/dist/{chunk-J7MZHDHQ.js → chunk-VKD5WQKN.js} +5 -5
  22. package/dist/{chunk-3KI3RRXX.js → chunk-VTXHDCBW.js} +3 -3
  23. package/dist/{chunk-KTYR3U6D.js → chunk-YTG6Q75E.js} +10 -6
  24. package/dist/{chunk-IR4ZLVPW.js → chunk-YV52FB5G.js} +25 -3
  25. package/dist/{chunk-E7UXXHO3.js → chunk-Z3OXWCIA.js} +3 -3
  26. package/dist/{cli-token-4SBMXAUK.js → cli-token-GL5MS5FK.js} +4 -4
  27. package/dist/{client-PP5FETMW.js → client-DAIPF7XN.js} +4 -4
  28. package/dist/{community-report-client-KK2QBANO.js → community-report-client-M2RW4MXD.js} +2 -2
  29. package/dist/config-4VZNLBKF.js +489 -0
  30. package/dist/index.js +94 -35
  31. package/dist/memory-RWJW4XFO.js +892 -0
  32. package/dist/memory-VO2ZJCRT.js +892 -0
  33. package/dist/{metadata-JIQ77HFY.js → metadata-YGTHR2XJ.js} +8 -8
  34. package/dist/{metadata-AN3YFZEV.js → metadata-ZRN2GHPN.js} +8 -8
  35. package/dist/{model-JASQVOFD.js → model-CLUIK3K5.js} +7 -5
  36. package/dist/{raw-XJCAT3HX.js → raw-52B4UKO4.js} +8 -7
  37. package/dist/sync-3REDHGY6.js +10259 -0
  38. package/dist/{te-agent-JHUG6DVV.js → te-agent-XNPELAKX.js} +580 -84
  39. package/dist/{te-analysis-ITKTO6JS.js → te-analysis-GJI5FZUL.js} +1152 -13
  40. package/dist/{te-analysis-RAC67YYD.js → te-analysis-N2BRDJZ5.js} +1152 -13
  41. package/dist/{te-community-QOYIYEJI.js → te-community-SQXKE5OO.js} +7 -7
  42. package/dist/{te-community-UFKI6ONP.js → te-community-TYSNU3NQ.js} +7 -7
  43. package/dist/{te-dataops-PZQ5NQLY.js → te-dataops-5TM7WZDI.js} +370 -189
  44. package/dist/{te-dataops-XTWVTJCA.js → te-dataops-OWIADNSM.js} +370 -189
  45. package/dist/{te-engage-NLZUPSBK.js → te-engage-F7V55KVW.js} +333 -105
  46. package/dist/{te-engage-E7F4HTXU.js → te-engage-FMYAYCNV.js} +333 -105
  47. package/dist/{te-experiment-N63WF7XA.js → te-experiment-JWXOYJ3W.js} +83 -10
  48. package/dist/{te-experiment-D32TB6ZB.js → te-experiment-UPDMHCAJ.js} +83 -10
  49. package/dist/{te-kb-E7NSCBRB.js → te-kb-VRMEY3D4.js} +6 -6
  50. package/dist/{te-meta-GBDTMPEL.js → te-meta-53BVXPFI.js} +7 -7
  51. package/dist/{te-meta-ZTLTSHXC.js → te-meta-TOCBPBXI.js} +7 -7
  52. package/dist/{te-system-AH7DMCAQ.js → te-system-XGS5EQIQ.js} +4 -4
  53. package/dist/{te-team-BQ3SKSZV.js → te-team-BZRDV2CM.js} +7 -7
  54. package/dist/{update-DKG6UXEM.js → update-HEDXGOJH.js} +8 -6
  55. package/package.json +4 -1
  56. package/skills/ae-agent/SKILL.md +178 -16
  57. package/skills/ae-agent/references/add-skill.md +22 -10
  58. package/skills/ae-agent/references/edit-skill.md +24 -14
  59. package/skills/ae-agent/references/find-archived-conversations.md +82 -0
  60. package/skills/ae-agent/references/restore-conversation.md +54 -0
  61. package/skills/ae-agent/references/upload-skill.md +24 -14
  62. package/skills/ae-analysis/SKILL.md +1 -1
  63. package/skills/ae-analysis/references/command_index.md +104 -42
  64. package/skills/ae-analysis/references/entity_id_import_options.md +1 -1
  65. package/skills/ae-analysis/references/project_access_detail_get.md +3 -3
  66. package/skills/ae-analysis/references/project_data_power_delete.md +3 -3
  67. package/skills/ae-analysis/references/project_data_power_get.md +3 -3
  68. package/skills/ae-analysis/references/project_data_power_list.md +3 -3
  69. package/skills/ae-analysis/references/project_data_power_upsert.md +3 -3
  70. package/skills/ae-analysis/references/project_entity_create.md +3 -3
  71. package/skills/ae-analysis/references/project_entity_delete.md +3 -3
  72. package/skills/ae-analysis/references/project_entity_event_list.md +3 -3
  73. package/skills/ae-analysis/references/project_entity_get.md +3 -3
  74. package/skills/ae-analysis/references/project_entity_list.md +3 -3
  75. package/skills/ae-analysis/references/project_entity_update.md +3 -3
  76. package/skills/ae-analysis/references/project_function_list.md +3 -3
  77. package/skills/ae-analysis/references/project_info_create.md +25 -0
  78. package/skills/ae-analysis/references/project_info_delete.md +24 -0
  79. package/skills/ae-analysis/references/project_info_get.md +3 -3
  80. package/skills/ae-analysis/references/project_info_list.md +3 -3
  81. package/skills/ae-analysis/references/project_info_update.md +3 -3
  82. package/skills/ae-analysis/references/project_mark_time_create.md +3 -3
  83. package/skills/ae-analysis/references/project_mark_time_delete.md +3 -3
  84. package/skills/ae-analysis/references/project_mark_time_list.md +3 -3
  85. package/skills/ae-analysis/references/project_mark_time_update.md +3 -3
  86. package/skills/ae-analysis/references/project_member_add.md +3 -3
  87. package/skills/ae-analysis/references/project_member_batch_update.md +3 -3
  88. package/skills/ae-analysis/references/project_member_candidate_list.md +3 -3
  89. package/skills/ae-analysis/references/project_member_handover_export.md +3 -3
  90. package/skills/ae-analysis/references/project_member_handover_run.md +3 -3
  91. package/skills/ae-analysis/references/project_member_import.md +3 -3
  92. package/skills/ae-analysis/references/project_member_list.md +3 -3
  93. package/skills/ae-analysis/references/project_member_receiver_list.md +3 -3
  94. package/skills/ae-analysis/references/project_member_remove.md +3 -3
  95. package/skills/ae-analysis/references/project_member_update.md +3 -3
  96. package/skills/ae-analysis/references/project_owner_update.md +3 -3
  97. package/skills/ae-analysis/references/project_permission_binding_list.md +3 -3
  98. package/skills/ae-analysis/references/project_receive_status_update.md +3 -3
  99. package/skills/ae-analysis/references/project_role_delete.md +3 -3
  100. package/skills/ae-analysis/references/project_role_function_list.md +3 -3
  101. package/skills/ae-analysis/references/project_role_get.md +3 -3
  102. package/skills/ae-analysis/references/project_role_list.md +3 -3
  103. package/skills/ae-analysis/references/project_role_upsert.md +3 -3
  104. package/skills/ae-analysis/references/project_role_user_list.md +3 -3
  105. package/skills/ae-analysis/references/project_space_list.md +1 -1
  106. package/skills/ae-analysis/references/project_timezone_get.md +3 -3
  107. package/skills/ae-analysis/references/project_timezone_overview.md +3 -3
  108. package/skills/ae-analysis/references/project_timezone_update.md +3 -3
  109. package/skills/ae-analysis/references/project_user_id_items_update.md +3 -3
  110. package/skills/ae-analysis/references/system_admin_function_list.md +22 -0
  111. package/skills/ae-analysis/references/system_admin_function_update.md +26 -0
  112. package/skills/ae-analysis/references/system_admin_list.md +21 -0
  113. package/skills/ae-analysis/references/system_admin_remove.md +25 -0
  114. package/skills/ae-analysis/references/system_admin_upsert.md +25 -0
  115. package/skills/ae-analysis/references/system_function_list.md +21 -0
  116. package/skills/ae-analysis/references/system_member_add.md +25 -0
  117. package/skills/ae-analysis/references/system_member_candidate_list.md +22 -0
  118. package/skills/ae-analysis/references/system_member_delete.md +25 -0
  119. package/skills/ae-analysis/references/system_member_list.md +24 -0
  120. package/skills/ae-analysis/references/system_member_mfa_unbind.md +25 -0
  121. package/skills/ae-analysis/references/system_member_password_reset.md +32 -0
  122. package/skills/ae-analysis/references/system_member_project_batch_update.md +27 -0
  123. package/skills/ae-analysis/references/system_member_status_update.md +26 -0
  124. package/skills/ae-analysis/references/system_member_update.md +23 -0
  125. package/skills/ae-analysis/references/system_mfa_get.md +21 -0
  126. package/skills/ae-analysis/references/system_mfa_update.md +25 -0
  127. package/skills/ae-analysis/references/system_node_monitor_list.md +24 -0
  128. package/skills/ae-analysis/references/system_oauth2_update.md +22 -0
  129. package/skills/ae-analysis/references/system_ops_alert_contact_delete.md +25 -0
  130. package/skills/ae-analysis/references/system_ops_alert_contact_list.md +23 -0
  131. package/skills/ae-analysis/references/system_ops_alert_contact_test.md +29 -0
  132. package/skills/ae-analysis/references/system_ops_alert_contact_upsert.md +39 -0
  133. package/skills/ae-analysis/references/system_preference_get.md +21 -0
  134. package/skills/ae-analysis/references/system_preference_update.md +22 -0
  135. package/skills/ae-analysis/references/system_project_usage_list.md +28 -0
  136. package/skills/ae-analysis/references/system_query_alert_rule_list.md +21 -0
  137. package/skills/ae-analysis/references/system_query_alert_rule_update.md +26 -0
  138. package/skills/ae-analysis/references/system_query_monitor_overview.md +26 -0
  139. package/skills/ae-analysis/references/system_query_task_cancel.md +25 -0
  140. package/skills/ae-analysis/references/system_query_task_export.md +49 -0
  141. package/skills/ae-analysis/references/system_query_task_get.md +23 -0
  142. package/skills/ae-analysis/references/system_query_task_list.md +35 -0
  143. package/skills/ae-analysis/references/system_query_task_options.md +27 -0
  144. package/skills/ae-analysis/references/system_receiver_address_delete.md +26 -0
  145. package/skills/ae-analysis/references/system_receiver_address_overview.md +21 -0
  146. package/skills/ae-analysis/references/system_receiver_address_project_list.md +21 -0
  147. package/skills/ae-analysis/references/system_receiver_address_promote.md +24 -0
  148. package/skills/ae-analysis/references/system_receiver_address_upsert.md +27 -0
  149. package/skills/ae-analysis/references/system_receiver_detection_get.md +22 -0
  150. package/skills/ae-analysis/references/system_receiver_detection_run.md +22 -0
  151. package/skills/ae-analysis/references/system_receiver_detection_update.md +25 -0
  152. package/skills/ae-analysis/references/system_role_delete.md +26 -0
  153. package/skills/ae-analysis/references/system_role_function_list.md +22 -0
  154. package/skills/ae-analysis/references/system_role_get.md +22 -0
  155. package/skills/ae-analysis/references/system_role_list.md +24 -0
  156. package/skills/ae-analysis/references/system_role_upsert.md +27 -0
  157. package/skills/ae-analysis/references/system_role_user_list.md +22 -0
  158. package/skills/ae-analysis/references/system_seat_list.md +25 -0
  159. package/skills/ae-analysis/references/system_seat_update.md +26 -0
  160. package/skills/ae-analysis/references/system_smtp_delete.md +24 -0
  161. package/skills/ae-analysis/references/system_smtp_get.md +21 -0
  162. package/skills/ae-analysis/references/system_smtp_test.md +22 -0
  163. package/skills/ae-analysis/references/system_smtp_upsert.md +31 -0
  164. package/skills/ae-analysis/references/system_third_party_login_disable.md +25 -0
  165. package/skills/ae-analysis/references/system_third_party_login_list.md +21 -0
  166. package/skills/ae-analysis/references/system_third_party_login_upsert.md +33 -0
  167. package/skills/ae-analysis/references/system_usage_overview.md +21 -0
  168. package/skills/ae-analysis/references/system_usage_trend_export.md +44 -0
  169. package/skills/ae-analysis/references/system_usage_trend_query.md +28 -0
  170. package/skills/ae-dataops/SKILL.md +1 -1
  171. package/skills/ae-dataops/references/dataops-flow-create.md +51 -16
  172. package/skills/ae-engage/SKILL.md +56 -26
  173. package/skills/ae-engage/references/activity-activity.md +3 -0
  174. package/skills/ae-engage/references/activity-approval.md +12 -4
  175. package/skills/ae-engage/references/activity-task.md +21 -6
  176. package/skills/ae-engage/references/activity-topic.md +31 -13
  177. package/skills/ae-engage/references/add-channel.md +170 -41
  178. package/skills/ae-engage/references/build-task-save-guide.md +40 -27
  179. package/skills/ae-engage/references/channel-update-config.md +3 -2
  180. package/skills/ae-engage/references/common-metric.md +48 -120
  181. package/skills/ae-engage/references/flow-detail.md +13 -0
  182. package/skills/ae-engage/references/preset-event.md +12 -32
  183. package/skills/ae-engage/references/save-flow.md +127 -64
  184. package/skills/ae-engage/references/save-task.md +197 -59
  185. package/skills/ae-engage/references/scene-config-metric.md +3 -0
  186. package/skills/ae-engage/references/scene-preset-metric.md +8 -37
  187. package/skills/ae-engage/references/scene-strategy-audience.md +51 -643
  188. package/skills/ae-engage/references/scene-strategy.md +6 -6
  189. package/skills/ae-engage/references/task-detail.md +10 -0
  190. package/skills/ae-engage/references/task-submit-approval.md +45 -0
  191. package/skills/ae-engage/references/validate-flow-node-config.md +1 -1
  192. package/skills/ae-experiment/SKILL.md +21 -1
  193. package/skills/ae-experiment/references/check_experiment_ready.md +2 -0
  194. package/skills/ae-experiment/references/query_experiment_detail.md +6 -0
  195. package/skills/ae-experiment/references/query_experiment_list.md +4 -0
  196. package/skills/ae-experiment/references/query_experiment_list_archived.md +3 -0
  197. package/skills/ae-experiment/references/query_metric_detail.md +5 -0
  198. package/skills/ae-experiment/references/query_metric_list.md +3 -0
  199. package/skills/ae-experiment/references/save_experiment.md +46 -3
  200. package/skills/ae-experiment/references/save_metric.md +62 -0
  201. package/skills/ae-experiment/references/save_submit_experiment.md +3 -0
  202. package/skills/ae-experiment-design/SKILL.md +149 -0
  203. package/skills/ae-experiment-design/agents/openai.yaml +4 -0
  204. package/skills/ae-experiment-design/references/client-experiment-sdk.md +147 -0
  205. package/skills/ae-experiment-design/references/experiment-creation.md +108 -0
  206. package/skills/ae-experiment-design/references/experiment-sdk-contract.md +100 -0
  207. package/skills/ae-experiment-design/references/exposure-contract.md +91 -0
  208. package/skills/ae-experiment-design/references/hybrid-experiment-sdk.md +74 -0
  209. package/skills/ae-experiment-design/references/metric-readiness.md +143 -0
  210. package/skills/ae-experiment-design/references/platform-operations.md +99 -0
  211. package/skills/ae-experiment-design/references/sdk-index.md +76 -0
  212. package/skills/ae-experiment-design/references/sdk-integration.md +114 -0
  213. package/skills/ae-experiment-design/references/sdk-troubleshooting.md +139 -0
  214. package/skills/ae-experiment-design/references/server-experiment-sdk.md +78 -0
  215. package/skills/ae-experiment-design/scripts/calculate_experiment_plan.py +450 -0
  216. package/skills/ae-experiment-insight/SKILL.md +149 -0
  217. package/skills/ae-experiment-insight/agents/openai.yaml +4 -0
  218. package/skills/ae-experiment-insight/references/decision-framework.md +69 -0
  219. package/skills/ae-experiment-insight/references/diagnostic-playbook.md +225 -0
  220. package/skills/ae-experiment-insight/references/platform-operations.md +76 -0
  221. package/skills/ae-experiment-insight/scripts/analyze_experiment.py +478 -0
  222. package/skills/ae-generate-tracking-code/SKILL.md +2 -2
  223. package/skills/ae-metadata/SKILL.md +1 -1
  224. package/dist/config-BSSALXEN.js +0 -128
  225. package/dist/sync-QFP4XFN3.js +0 -485
@@ -0,0 +1,22 @@
1
+ # system smtp test
2
+
3
+ Use when the user needs to send one SMTP test using the saved configuration.
4
+
5
+ Do not use it outside the system smtp operation or with fields absent from the inspected capability schema.
6
+
7
+ Command:
8
+
9
+ ```bash
10
+ ae-cli system smtp test --company-id <company-id> --receiver <receiver>
11
+ ```
12
+
13
+ Capability id: `system.smtp.test`.
14
+
15
+ The response uses `ok`, `data`, and `meta`. Treat empty `data` as success when `ok=true`; preserve `request_id` and `invocation_id` when present.
16
+
17
+ ## Parameters
18
+
19
+ | Parameter | Required | Description |
20
+ |---|---|---|
21
+ | `--company-id` | Yes | Company ID. |
22
+ | `--receiver` | Yes | Test email receiver. |
@@ -0,0 +1,31 @@
1
+ # system smtp upsert
2
+
3
+ Use when the user needs to create or update company SMTP configuration using a protected password source.
4
+
5
+ Do not use it outside the system smtp operation or with fields absent from the inspected capability schema.
6
+
7
+ Command:
8
+
9
+ ```bash
10
+ ae-cli system smtp upsert --company-id <company-id> --server-host <server-host> --server-port <server-port> --sender-address <sender-address> --sender-name <sender-name> --password-file <chmod_600_file>
11
+ ```
12
+
13
+ Capability id: `system.smtp.upsert`.
14
+
15
+ Sensitive values are accepted only through a permission-protected file or stdin. Never put a secret value in argv, examples, logs, validation output, dry-run output, or the response.
16
+
17
+ The response uses `ok`, `data`, and `meta`. Treat empty `data` as success when `ok=true`; preserve `request_id` and `invocation_id` when present.
18
+
19
+ ## Parameters
20
+
21
+ | Parameter | Required | Description |
22
+ |---|---|---|
23
+ | `--company-id` | Yes | Company ID. |
24
+ | `--server-host` | Yes | SMTP server host. |
25
+ | `--server-port` | Yes | SMTP server port. |
26
+ | `--has-encrypt` | No | Encryption mode: 0, 1, or 2. |
27
+ | `--sender-address` | Yes | Sender email address. |
28
+ | `--sender-name` | Yes | Sender display name. |
29
+ | `--subject-prefix` | No | Optional subject prefix. |
30
+ | `--password-file` | No | SMTP password. Read from a local permission-protected file; one of file/stdin is required. |
31
+ | `--password-stdin` | No | SMTP password. Read from stdin; one of file/stdin is required. |
@@ -0,0 +1,25 @@
1
+ # system third-party-login disable
2
+
3
+ Use when the user needs to disable a third-party login provider.
4
+
5
+ Do not use it outside the system third-party-login operation or with fields absent from the inspected capability schema.
6
+
7
+ Command:
8
+
9
+ ```bash
10
+ ae-cli system third-party-login disable --dry-run --company-id <company-id> --login-type <login-type>
11
+ ae-cli system third-party-login disable --company-id <company-id> --login-type <login-type> --yes
12
+ ```
13
+
14
+ Capability id: `system.third_party_login.disable`.
15
+
16
+ Run `--dry-run` first, summarize the affected target and impact, then wait for explicit user confirmation before rerunning the unchanged command with global `--yes`.
17
+
18
+ The response uses `ok`, `data`, and `meta`. Treat empty `data` as success when `ok=true`; preserve `request_id` and `invocation_id` when present.
19
+
20
+ ## Parameters
21
+
22
+ | Parameter | Required | Description |
23
+ |---|---|---|
24
+ | `--company-id` | Yes | Company ID. |
25
+ | `--login-type` | Yes | Third-party login type. |
@@ -0,0 +1,21 @@
1
+ # system third-party-login list
2
+
3
+ Use when the user needs to list sanitized third-party login configurations.
4
+
5
+ Do not use it outside the system third-party-login operation or with fields absent from the inspected capability schema.
6
+
7
+ Command:
8
+
9
+ ```bash
10
+ ae-cli system third-party-login list --company-id <company-id>
11
+ ```
12
+
13
+ Capability id: `system.third_party_login.list`.
14
+
15
+ The response uses `ok`, `data`, and `meta`. Treat empty `data` as success when `ok=true`; preserve `request_id` and `invocation_id` when present.
16
+
17
+ ## Parameters
18
+
19
+ | Parameter | Required | Description |
20
+ |---|---|---|
21
+ | `--company-id` | Yes | Company ID. |
@@ -0,0 +1,33 @@
1
+ # system third-party-login upsert
2
+
3
+ Use when the user needs to create or update a third-party login configuration using protected secret sources.
4
+
5
+ Do not use it outside the system third-party-login operation or with fields absent from the inspected capability schema.
6
+
7
+ Command:
8
+
9
+ ```bash
10
+ ae-cli system third-party-login upsert --company-id <company_id> --login-type feishu --app-id <app_id> --app-secret-file <chmod_600_file>
11
+ ae-cli system third-party-login upsert --company-id <company_id> --login-type dingtalk --app-id <app_id> --corp-id <corp_id> --agent-id <agent_id> --dd-scan-app-id <scan_app_id> --app-secret-file <chmod_600_file> --dd-scan-app-secret-file <chmod_600_file>
12
+ ```
13
+
14
+ Capability id: `system.third_party_login.upsert`.
15
+
16
+ Sensitive values are accepted only through a permission-protected file or stdin. Never put a secret value in argv, examples, logs, validation output, dry-run output, or the response.
17
+
18
+ The response uses `ok`, `data`, and `meta`. Treat empty `data` as success when `ok=true`; preserve `request_id` and `invocation_id` when present.
19
+
20
+ ## Parameters
21
+
22
+ | Parameter | Required | Description |
23
+ |---|---|---|
24
+ | `--company-id` | Yes | Company ID. |
25
+ | `--login-type` | Yes | Third-party login type. |
26
+ | `--app-id` | Yes | Provider application ID. |
27
+ | `--corp-id` | No | Provider corporation ID. |
28
+ | `--agent-id` | No | Provider agent ID. |
29
+ | `--dd-scan-app-id` | No | DingTalk scan-login application ID. |
30
+ | `--app-secret-file` | No | Provider application secret. Read from a local permission-protected file; one of file/stdin is required. |
31
+ | `--app-secret-stdin` | No | Provider application secret. Read from stdin; one of file/stdin is required. |
32
+ | `--dd-scan-app-secret-file` | No | DingTalk scan-login application secret. Read from a local permission-protected file; the value is never accepted directly on argv. |
33
+ | `--dd-scan-app-secret-stdin` | No | DingTalk scan-login application secret. Read from stdin; do not combine with --dd-scan-app-secret-file. |
@@ -0,0 +1,21 @@
1
+ # system usage overview
2
+
3
+ Use when the user needs to get the current company system-usage summary.
4
+
5
+ Do not use it outside the system usage operation or with fields absent from the inspected capability schema.
6
+
7
+ Command:
8
+
9
+ ```bash
10
+ ae-cli system usage overview --company-id <company-id>
11
+ ```
12
+
13
+ Capability id: `system.usage.overview`.
14
+
15
+ The response uses `ok`, `data`, and `meta`. Treat empty `data` as success when `ok=true`; preserve `request_id` and `invocation_id` when present.
16
+
17
+ ## Parameters
18
+
19
+ | Parameter | Required | Description |
20
+ |---|---|---|
21
+ | `--company-id` | Yes | Company ID. |
@@ -0,0 +1,44 @@
1
+ # system usage-trend export
2
+
3
+ Use when the user needs the complete usage-trend result as a cancellable gzip JSONL artifact.
4
+
5
+ Do not use it for a small inline result; use `ae-cli system usage-trend query` instead.
6
+
7
+ Command:
8
+
9
+ ```bash
10
+ ae-cli system usage-trend export --company-id <company_id> --metric <metric> --start-time <yyyy-MM-dd> --end-time <yyyy-MM-dd> --time-granularity <day_or_week_or_month>
11
+ ```
12
+
13
+ Capability id: `system.usage_trend.export`.
14
+
15
+ The submit response returns the `run_id` for this exact export. Preserve it and poll:
16
+
17
+ ```bash
18
+ ae-cli analysis run inspect --run-id <run_id>
19
+ ```
20
+
21
+ When the run succeeds, preserve its `artifact_id` and download the same run-scoped artifact:
22
+
23
+ ```bash
24
+ ae-cli analysis artifact download --run-id <run_id> --artifact-id <artifact_id> --output <output_path>
25
+ ```
26
+
27
+ The artifact format is fixed gzip-compressed JSONL (`.jsonl.gz`); this command intentionally has no `--artifact-format`. Cancel an unfinished export with `ae-cli analysis query cancel --run-id <run_id>`.
28
+
29
+ The response uses `ok`, `data`, and `meta`. Empty exported data is success when `ok=true`; preserve `request_id` and `invocation_id`.
30
+
31
+ ## Parameters
32
+
33
+ | Parameter | Required | Description |
34
+ |---|---|---|
35
+ | `--company-id` | Yes | Company ID. |
36
+ | `--metric` | Yes | One supported usage metric; `apollo_token` is not implemented. |
37
+ | `--start-time` | Yes | Inclusive start date in `yyyy-MM-dd`. |
38
+ | `--end-time` | Yes | Inclusive end date in `yyyy-MM-dd`. |
39
+ | `--time-granularity` | Yes | `day`, `week`, or `month`. |
40
+ | `--scope` | No | `company` or `project`; project scope requires `--project-ids`. |
41
+ | `--project-ids` | No | Project ID JSON array. |
42
+ | `--data-type` | No | `all`, `event`, or `user` for project-scoped total event volume. |
43
+ | `--request-id` | No | Caller-supplied `cli_<32 lowercase hex>` lifecycle ID; generated when omitted. |
44
+ | `--timeout-seconds` | No | Maximum runtime, `1..21600`; default `21600`. |
@@ -0,0 +1,28 @@
1
+ # system usage-trend query
2
+
3
+ Use when the user needs to query a bounded company or project usage trend.
4
+
5
+ Do not use it outside the system usage-trend operation or with fields absent from the inspected capability schema.
6
+
7
+ Command:
8
+
9
+ ```bash
10
+ ae-cli system usage-trend query --company-id <company-id> --start-time <start-time> --end-time <end-time> --metric <metric> --time-granularity <time-granularity>
11
+ ```
12
+
13
+ Capability id: `system.usage_trend.query`.
14
+
15
+ The response uses `ok`, `data`, and `meta`. Treat empty `data` as success when `ok=true`; preserve `request_id` and `invocation_id` when present.
16
+
17
+ ## Parameters
18
+
19
+ | Parameter | Required | Description |
20
+ |---|---|---|
21
+ | `--company-id` | Yes | Company ID. |
22
+ | `--start-time` | Yes | Inclusive ISO date/time lower bound. |
23
+ | `--end-time` | Yes | Inclusive ISO date/time upper bound. |
24
+ | `--metric` | Yes | Supported usage metric; apollo_token is not available. |
25
+ | `--time-granularity` | Yes | Aggregation granularity. |
26
+ | `--scope` | No | Aggregation scope. |
27
+ | `--project-ids` | No | Project ID JSON array; required for project scope. |
28
+ | `--data-type` | No | Optional event-volume data type. |
@@ -89,7 +89,7 @@ You must understand the following key concepts before use, otherwise errors are
89
89
  ### Flow Lifecycle
90
90
 
91
91
  ```
92
- Create DEV Flow → Create/Update DEV SQL Tasks → Configure Dependencies/Schedule → Preview Release → Release to PROD → PROD Manual Execution / Operations Troubleshooting
92
+ Create DEV Flow → Create/Update DEV SQL, Integration, or Workflow Instance Check Tasks → Configure Dependencies/Schedule → Preview Release → Release to PROD → PROD Manual Execution / Operations Troubleshooting
93
93
  ```
94
94
 
95
95
  ### CRON Format (6 fields)
@@ -41,7 +41,7 @@ ae-cli dataops_flow +create_sql_task --spaceCode "${spaceCode}" \
41
41
  # Create task with upstream dependency
42
42
  ae-cli dataops_flow +create_sql_task --spaceCode "${spaceCode}" \
43
43
  --flowCode ${flowCode} --taskName "Export Results" \
44
- --preTaskCode ${upstreamTaskCode} \
44
+ --preTasks "[${upstreamTaskCode},${anotherUpstreamTaskCode}]" \
45
45
  --sql "INSERT INTO ads_user SELECT * FROM dwd_user"
46
46
  ```
47
47
 
@@ -63,23 +63,40 @@ ae-cli dataops_flow +update_integration_task --spaceCode "${spaceCode}" \
63
63
 
64
64
  Use `dataops_integration +list_sync_solutions` or `+get_sync_detail` to find the `syncId` first. These commands expose workflow `OFFLINE_SYNC` tasks only; app sync tasks are not part of this flow.
65
65
 
66
- ### Step 4: Modify SQL Task Content
66
+ ### Step 4: Create or Modify Workflow Instance Check Task
67
+
68
+ `checkItems` is a flat JSON array. Every item contains only `flowCode`, `left`, `right`, and `checkTimeUnit` (`DAY`, `HOUR`, or `MINUTE`). One `AND` or `OR` relation applies to the entire array; nested groups are not supported. For the current workflow, `left` and `right` are at least `1`; for another workflow they may be `0`; `right` must not exceed `left`.
69
+
70
+ ```bash
71
+ ae-cli dataops_flow +create_workflow_instance_check_task --spaceCode "${spaceCode}" \
72
+ --flowCode ${flowCode} --taskName "Wait for upstream workflows" \
73
+ --checkItems '[{"flowCode":10037355068544,"left":1,"right":1,"checkTimeUnit":"DAY"},{"flowCode":10037355068545,"left":2,"right":0,"checkTimeUnit":"HOUR"}]' \
74
+ --relation OR
75
+
76
+ ae-cli dataops_flow +update_workflow_instance_check_task --spaceCode "${spaceCode}" \
77
+ --flowCode ${flowCode} --taskCode ${taskCode} \
78
+ --checkItems '[{"flowCode":10037355068544,"left":1,"right":1,"checkTimeUnit":"DAY"}]'
79
+ ```
80
+
81
+ Create defaults are `relation=AND`, `checkInterval=5`, `checkTime=3`, `failRetryTimes=3`, `failRetryInterval=5`, and `failRetryUnit=MINUTE`. On update, omitted check scalars, dependencies, and retry fields keep their current values.
82
+
83
+ ### Step 5: Modify SQL Task Content
67
84
 
68
85
  ```bash
69
- # Update SQL task content without changing owner, remark, dependencies, retry, or timeout
86
+ # Update SQL task content and keep dependencies and retry policy
70
87
  ae-cli dataops_flow +update_sql_task --spaceCode "${spaceCode}" \
71
88
  --flowCode ${flowCode} --taskCode ${taskCode} \
72
89
  --sql "SELECT * FROM dwd_user"
73
90
  ```
74
91
 
75
- ### Step 5: Add Task Dependencies (DAG connections)
92
+ ### Step 6: Add Task Dependencies (DAG connections)
76
93
 
77
94
  ```bash
78
95
  ae-cli dataops_flow +add_task_relation --spaceCode "${spaceCode}" \
79
96
  --flowCode ${flowCode} --preTaskCode ${upstreamTaskCode} --taskCode ${downstreamTaskCode}
80
97
  ```
81
98
 
82
- ### Step 6: Configure Schedule
99
+ ### Step 7: Configure Schedule
83
100
 
84
101
  ```bash
85
102
  # CRON expression for scheduled execution
@@ -93,7 +110,7 @@ ae-cli dataops_flow +save_schedule_config --spaceCode "${spaceCode}" \
93
110
  - `0 0 */4 * * ?` — Every 4 hours
94
111
  - `0 30 8 * * 1-5` — Weekdays at 8:30
95
112
 
96
- ### Step 7: Preview Release
113
+ ### Step 8: Preview Release
97
114
 
98
115
  ```bash
99
116
  # Preview pending DEV-to-PROD release changes before publishing
@@ -101,7 +118,7 @@ ae-cli dataops_flow +preview_release_flow --spaceCode "${spaceCode}" \
101
118
  --flowCode ${flowCode}
102
119
  ```
103
120
 
104
- ### Step 8: Release to Production and Verify
121
+ ### Step 9: Release to Production and Verify
105
122
 
106
123
  ```bash
107
124
  ae-cli dataops_flow +release_flow --spaceCode "${spaceCode}" \
@@ -130,10 +147,12 @@ ae-cli dataops_operations +get_task_instance_detail --spaceCode "${spaceCode}" \
130
147
  | Command | Purpose | Key Flags |
131
148
  |---------|---------|-----------|
132
149
  | `+create_flow` | Create DEV flow | `--spaceCode` `--flowName` `[--remark]` |
133
- | `+create_sql_task` | Create DEV Trino SQL task and save SQL | `--spaceCode` `--flowCode` `--taskName` `--sql` `[--preSql]` `[--postSql]` `[--preTaskCode]` `[--remark]` |
134
- | `+update_sql_task` | Update DEV Trino SQL task content | `--spaceCode` `--flowCode` `--taskCode` `--sql` `[--preSql]` `[--postSql]` |
135
- | `+create_integration_task` | Create DEV integration sync task from an existing sync solution | `--spaceCode` `--flowCode` `--taskName` `--syncId` `[--preTaskCode]` `[--remark]` |
136
- | `+update_integration_task` | Rebind DEV integration sync task to a sync solution | `--spaceCode` `--flowCode` `--taskCode` `--syncId` |
150
+ | `+create_sql_task` | Create DEV Trino SQL task and save SQL | `--spaceCode` `--flowCode` `--taskName` `--sql` `[--preSql]` `[--postSql]` `[--preTasks]` `[--failRetryTimes]` `[--failRetryInterval]` `[--failRetryUnit]` `[--remark]` |
151
+ | `+update_sql_task` | Update DEV Trino SQL task content | `--spaceCode` `--flowCode` `--taskCode` `--sql` `[--preSql]` `[--postSql]` `[--preTasks]` `[--failRetryTimes]` `[--failRetryInterval]` `[--failRetryUnit]` |
152
+ | `+create_integration_task` | Create DEV integration sync task from an existing sync solution | `--spaceCode` `--flowCode` `--taskName` `--syncId` `[--preTasks]` `[--failRetryTimes]` `[--failRetryInterval]` `[--failRetryUnit]` `[--remark]` |
153
+ | `+update_integration_task` | Rebind DEV integration sync task to a sync solution | `--spaceCode` `--flowCode` `--taskCode` `--syncId` `[--preTasks]` `[--failRetryTimes]` `[--failRetryInterval]` `[--failRetryUnit]` |
154
+ | `+create_workflow_instance_check_task` | Create DEV workflow instance check task | `--spaceCode` `--flowCode` `--taskName` `--checkItems` `[--relation]` `[--checkInterval]` `[--checkTime]` `[--preTasks]` `[retry flags]` `[--remark]` |
155
+ | `+update_workflow_instance_check_task` | Update DEV workflow instance check task | `--spaceCode` `--flowCode` `--taskCode` `--checkItems` `[--relation]` `[--checkInterval]` `[--checkTime]` `[--preTasks]` `[retry flags]` |
137
156
  | `+add_task_relation` | Add DEV dependency | `--spaceCode` `--flowCode` `--preTaskCode` `--taskCode` |
138
157
  | `+save_schedule_config` | Save DEV schedule config | `--spaceCode` `--flowCode` `--enabled` `[--cron]` |
139
158
  | `+get_task_params` | View DEV task parameter list | `--spaceCode` `--flowCode` `--taskCode` |
@@ -150,17 +169,33 @@ ae-cli dataops_operations +get_task_instance_detail --spaceCode "${spaceCode}" \
150
169
  - **Schedule config**: `+save_schedule_config` requires `--spaceCode`, `--flowCode`, and `--enabled`. `--cron` is required only when `--enabled true`; omit it when disabling scheduling. It returns `action/result/status`; `result` includes `enabled`, `flow`, `message`, and `cron` only when enabled.
151
170
  - **Release preview**: `+preview_release_flow` requires `--spaceCode` and `--flowCode`; it has no optional flags. It returns `flowCode`, `releaseStatus`, `message`, and `changes`. Each change may include `scheduleConfigChange` and `tasks`; task entries may include `changed`, `contentCompare`, and `targetTable`.
152
171
  - **Release**: `+release_flow` requires `--spaceCode` and `--flowCode`; it has no optional flags. It returns `action/result/status`; `result` includes `flowCode`, `releaseStatus`, `message`, optional `packageCode`, and optional `changes`. Each change may include `scheduleConfigChange` and `tasks`; task entries include `changed`.
153
- - **SQL task creation**: `+create_sql_task` requires `--spaceCode`, `--flowCode`, `--taskName`, and `--sql`; `--preSql`, `--postSql`, `--preTaskCode`, and `--remark` are optional. It returns `action/result/status`; `result` includes `flowCode`, `taskCode`, `taskName`, `taskType=TRINO_SQL`, and `sqlSaved=true`.
154
- - **SQL task update**: `+update_sql_task` requires `--spaceCode`, `--flowCode`, `--taskCode`, and `--sql`; `--preSql` and `--postSql` are optional and keep existing values when omitted. It returns `action/result/status`; `result` includes `sqlSaved`, `flowCode`, `taskCode`, `taskType=TRINO_SQL`, and `task`.
172
+ - **Task dependencies**: `--preTasks` is a JSON array of upstream task codes on SQL, integration, and workflow instance check create/update commands. Omit `--preTasks` on update to preserve existing dependencies; pass `--preTasks '[]'` to clear them; pass a non-empty array to replace them.
173
+ - **Retry policy**: The three task types accept `--failRetryTimes`, `--failRetryInterval`, and `--failRetryUnit`. Create defaults to `3`, `5`, and `MINUTE`. Update preserves every omitted retry field. `MINUTE` is the only supported unit.
174
+ - **SQL task creation**: `+create_sql_task` requires `--spaceCode`, `--flowCode`, `--taskName`, and `--sql`; SQL hooks, dependencies, retry policy, and remark are optional. It returns `action/result/status`; `result` includes `flowCode`, `taskCode`, `taskName`, `taskType=TRINO_SQL`, and `sqlSaved=true`.
175
+ - **SQL task update**: `+update_sql_task` requires `--spaceCode`, `--flowCode`, `--taskCode`, and `--sql`; omitted SQL hooks, dependencies, and retry fields keep existing values. It returns `action/result/status`; `result` includes `sqlSaved`, `flowCode`, `taskCode`, `taskType=TRINO_SQL`, and `task`.
155
176
  - **Task dependency**: `+add_task_relation` requires `--spaceCode`, `--flowCode`, `--preTaskCode`, and `--taskCode`. `preTaskCode` is upstream and `taskCode` is downstream. It returns `action/result/status`; `result` includes `status`, `flowCode`, `preTaskCode`, `taskCode`, and `message`.
156
177
  - **Task parameters**: `+get_task_params` requires `--spaceCode`, `--flowCode`, and `--taskCode`; it has no optional flags. It queries DEV and returns `data` as an array. Items include fields such as `paramKey`, `paramType`, `paramDataType`, `paramFrom`, and built-in flags like `isBd`.
157
- - **Integration task creation**: `+create_integration_task` requires `--spaceCode`, `--flowCode`, `--taskName`, and `--syncId`; `--preTaskCode` and `--remark` are optional. It returns `action/result/status`; `result` includes `syncTaskSaved`, `flowCode`, `taskCode`, `taskName`, `taskType=OFFLINE_SYNC`, `syncId`, and `nextAction`.
158
- - **SQL task dependencies**: Use optional `--preTaskCode` to create one upstream dependency with the task. Use `+add_task_relation` for additional DAG dependencies.
178
+ - **Integration task creation**: `+create_integration_task` requires `--spaceCode`, `--flowCode`, `--taskName`, and `--syncId`; dependencies, retry policy, and remark are optional. It returns `action/result/status`; `result` includes `syncTaskSaved`, `flowCode`, `taskCode`, `taskName`, `taskType=OFFLINE_SYNC`, `syncId`, and `nextAction`.
179
+ - **Workflow instance check tasks**: `checkItems` is required and replaces the complete check item list. Create defaults `relation/checkInterval/checkTime` to `AND/5/3`; update preserves omitted scalar values. This command creates `FLOW_CHECK`, not task-instance `TASK_CHECK`.
180
+
181
+ ## Transport Status
182
+
183
+ Transition status: transitional
184
+
185
+ Owning module: gaia-mcp workflow
186
+
187
+ Current transport: DataOps CLI REST
188
+
189
+ Gateway target: TBD after DataOps workflow Gateway schema review
190
+
191
+ Review after: 2026-10-27
192
+
193
+ Exit condition: Migrate or remove these one-to-one commands after equivalent Capability Gateway actions are available.
159
194
 
160
195
  ## Important Notes
161
196
 
162
197
  1. **Getting flowCode**: Use `+list_flows` (see `dataops-flow-monitor` Skill)
163
- 2. **Getting taskCode**: Returned by `+create_sql_task` / `+create_integration_task` or query via `+get_flow_overview`
198
+ 2. **Getting taskCode**: Returned by a task create command or query via `+get_flow_overview`
164
199
  3. **Release Impact**: Submits current DEV changes to PROD; released schedule/config applies to future PROD runs
165
200
  4. **SQL Validation**: Recommended to validate before saving TRINO_SQL tasks
166
201
  5. **Cannot create circular dependencies**
@@ -52,9 +52,9 @@ When the user mentions a product term below (including common Chinese UI labels)
52
52
  | **Config center** | Engage scene management / config center overview | `engage-scene` | `references/scene-config-item.md` | `scene-config-param.md`, `scene-config-group.md`, `scene-preset-metric.md`, `scene-config-metric.md`, `scene-config-channel.md`, `channel-mgmt.md`, `scene-strategy.md`, `scene-template.md`; L3 reports: `config-item-trigger-report.md`, `config-item-analysis-report.md`, `config-item-strategy-comparison.md` |
53
53
  | **Scene config** | Same as config center; params, groups, metrics, channels, strategies, and templates under a config item | `engage-scene` | `references/scene-config-item.md` | Same as above; params/groups/metrics: `scene-config-param.md`, `scene-config-group.md`, `scene-preset-metric.md`, `scene-config-metric.md` |
54
54
  | **Config item** | A single config item in the config center | `engage-scene` | `references/scene-config-item.md` | `scene-config-param.md`, `scene-preset-metric.md`, `scene-config-metric.md`, `scene-strategy.md`, `scene-template.md` |
55
- | **Push channel** | Project-level message push channels (Webhook, FCM, APNS, etc.) | `engage-setting` | `references/channel-list.md` | `channel-detail.md`, `add-channel.md`, `update-channel-status.md`, `delete-channel.md`, `channel-update-config.md`, `channel-test-send.md`, `channel_touch_limits_list.md` |
55
+ | **Push channel** | Project-level message push channels (Webhook, FCM, APNS, etc.) | `engage-setting` | `references/channel-list.md` | `channel-detail.md`, `add-channel.md` (**Webhook vs Client differ**: `url` = HTTP vs scene key; custom params `user:` vs `user:`/`client:`), `update-channel-status.md`, `delete-channel.md`, `channel-update-config.md`, `channel-test-send.md`, `channel_touch_limits_list.md` |
56
56
  | **Config channel** | Config-center Webhook/client config channels (not the same as push channels) | `engage-scene` | `references/scene-config-channel.md` | `channel-mgmt.md` (create/enable-disable/copy/delete workflows). User params in `config.customsParamList` require `columnName` with `user:` prefix (e.g. `user:#account_id`); preflight names with ae-analysis `analysis-meta property list/get`. |
57
- | **Operation strategy** | Ops/delivery strategies under a config item | `engage-scene` | `references/scene-strategy.md` | Custom audience QP: [`scene-strategy-audience.md`](references/scene-strategy-audience.md) — **用户满足** `filts[0]` + **用户行为** `filts[1]` two-block mix QP; preflight props (stop + list if missing); examples A/B/C; template: `scene-template.md` |
57
+ | **Operation strategy** | Ops/delivery strategies under a config item | `engage-scene` | `references/scene-strategy.md` | Custom audience: [`scene-strategy-audience.md`](references/scene-strategy-audience.md) — semantic `definitionRequest` (Analysis condition shape); do not pass `targetClusterQp`/`qp`; preflight props (stop + list if missing); template: `scene-template.md` |
58
58
  | **Operation task** | Hermes push/engagement tasks (list, save, lifecycle, reports) | `engage-task` | `references/task-list.md` | `task-detail.md` (get), `save-task.md`, `build-task-save-guide.md`, `task-stats.md`, `task-delete.md`, `push-record-query.md`, `task-data-overview.md`, `task-data-detail.md`, `task-metric-detail.md`, `task-experiment-report.md` |
59
59
  | **Template** | Strategy templates under a config item | `engage-scene` | `references/scene-template.md` | `scene-config-param.md` (template fields reference `paramId`); enable via `template update` then `template update-status` before strategy create |
60
60
 
@@ -145,13 +145,13 @@ ae-cli engage-setting config-table delete --project-id <project_id> --info-id <i
145
145
 
146
146
  # Preset event list / update
147
147
  ae-cli engage-setting preset-event list --project-id <project_id>
148
- ae-cli engage-setting preset-event update --project-id <project_id> --add-event-desc <qp>
148
+ ae-cli engage-setting preset-event update --project-id <project_id> --add-event-definition '<semantic_event_json>'
149
149
 
150
150
  # Common metric list / get / create / update / delete
151
151
  ae-cli engage-setting common-metric list --project-id <project_id>
152
152
  ae-cli engage-setting common-metric get --project-id <project_id> --metric-name <name>
153
- ae-cli engage-setting common-metric create --project-id <project_id> --metric-type 1 --metric-name <name> --metric-qp '<qp_json>' --metric-window-num 1 --metric-window-time-unit day --display-name <display>
154
- ae-cli engage-setting common-metric update --project-id <project_id> --metric-type 1 --metric-name <name> --metric-qp '<qp_json>' --metric-window-num 1 --metric-window-time-unit day --display-name <display>
153
+ ae-cli engage-setting common-metric create --project-id <project_id> --metric-type 1 --metric-name <name> --metric-definition '<semantic_metric_json>' --metric-window-num 1 --metric-window-time-unit day --display-name <display>
154
+ ae-cli engage-setting common-metric update --project-id <project_id> --metric-type 1 --metric-name <name> --metric-definition '<semantic_metric_json>' --metric-window-num 1 --metric-window-time-unit day --display-name <display>
155
155
  ae-cli engage-setting common-metric delete --project-id <project_id> --metric-name <name> --yes
156
156
  ```
157
157
 
@@ -170,6 +170,9 @@ ae-cli engage-task task save --project-id 1 --req '{"baseInfo":{"taskName":"Demo
170
170
  # Query task details
171
171
  ae-cli engage-task task get --project-id 1 --task-id task_123
172
172
 
173
+ # Submit a saved draft task for approval
174
+ ae-cli engage-task task submit-approval --project-id 1 --task-id task_123
175
+
173
176
  ```
174
177
 
175
178
  For L3 task reports, read `references/task-data-overview.md`, `references/task-data-detail.md`,
@@ -210,6 +213,7 @@ ae-cli engage-task group list --project-id 1
210
213
  ae-cli engage-task metric list --project-id 1 --task-id task_id_123
211
214
  ae-cli engage-task channel-ref stats --project-id 1 --channel-id channel_123
212
215
  ae-cli engage-task task delete --project-id 1 --task-id task_id_123 --yes
216
+ ae-cli engage-task task submit-approval --project-id 1 --task-id task_id_123
213
217
 
214
218
  # Query the node schema
215
219
  ae-cli engage-flow node-config schema --project-id 1 --node-type message_push
@@ -241,7 +245,7 @@ ae-cli engage-scene config-group batch-delete --project-id <project_id> --group-
241
245
 
242
246
  # Preset metric get / set
243
247
  ae-cli engage-scene preset-metric get --project-id <project_id> --config-id <config_id>
244
- ae-cli engage-scene preset-metric set --project-id <project_id> --config-id <config_id> --impression-event-qp '<qp>'
248
+ ae-cli engage-scene preset-metric set --project-id <project_id> --config-id <config_id> --impression-event-definition '<semantic_event_json>'
245
249
 
246
250
  # Config metric list / get / batch-add / update-rule / batch-delete
247
251
  ae-cli engage-scene config-metric list --project-id <project_id> --config-id <config_id>
@@ -252,7 +256,7 @@ ae-cli engage-scene config-metric batch-delete --project-id <project_id> --confi
252
256
 
253
257
  # Config channel list / get / create / update / update-status / delete / query-log
254
258
  # User params: verify each customsParamList columnName via ae-analysis property list/get first; then use user:<prop_name>
255
- # Strategy custom audience: scene-strategy-audience.md — mix QP filts[0]=用户满足, filts[1]=用户行为; strategy predict for 预估人数
259
+ # Strategy custom audience: scene-strategy-audience.md — semantic definitionRequest; strategy predict for 预估人数
256
260
  # Workflows: references/channel-mgmt.md · schema: references/scene-config-channel.md
257
261
  ae-cli engage-scene config-channel list --project-id <project_id> [--channel-type 0|1]
258
262
  ae-cli engage-scene config-channel get --project-id <project_id> --channel-id <channel_id>
@@ -266,7 +270,7 @@ ae-cli engage-scene config-channel query-log --project-id <project_id> --channel
266
270
  ae-cli engage-scene strategy create --project-id <project_id> --payload '{"configId":"cfg-1","templateId":"tpl-1","strategyName":"s1"}'
267
271
  ae-cli engage-scene strategy update --project-id <project_id> --payload '{"strategyUuid":"uuid-1"}'
268
272
  ae-cli engage-scene strategy log --project-id <project_id> --strategy-uuid <uuid>
269
- ae-cli engage-scene strategy predict --project-id <project_id> --qp '<mix QP string>' --zone-offset 8 [--strategy-uuid <uuid>]
273
+ ae-cli engage-scene strategy predict --project-id <project_id> --definition-request '{"type":"condition","conditions":{...}}' --zone-offset 8 [--strategy-uuid <uuid>]
270
274
  ae-cli engage-scene strategy batch-copy --project-id <project_id> --config-id <config_id> --strategy-ids '["s1"]'
271
275
 
272
276
  # Template list / get / create / update / update-status / delete
@@ -282,6 +286,18 @@ ae-cli engage-scene template delete --project-id <project_id> --config-id <confi
282
286
 
283
287
  New capability-gateway command group `engage-activity` covers campaign activities: activities, approval workflow, topics, activity types, and standalone tasks. Complex DTOs are passed with `--payload` (native camelCase JSON).
284
288
 
289
+ ### Activity payload guardrails
290
+
291
+ Before generating any activity topic or standalone-task payload, enforce the same subset exposed by the Hermes activity UI:
292
+
293
+ - `triggerType` must be `0` (schedule single) or `1` (schedule repeat). Activity tasks do not support manual (`2`) or triggered (`3`-`6`) task types.
294
+ - Do not configure A/B or horse-race experiments. Omit `expConfig` or use only `{"enableExp":false}`, and provide exactly one non-experiment `groupContentList` group.
295
+ - Standalone activity tasks must use `triggerTimeStrategy: "fixed_time_zone"` and the parent activity `tzOffset`. Schedule times must remain inside the activity period.
296
+ - A topic root supports audience types `1` (custom) and `2` (existing cluster), not `3` (all users). A standalone activity task may use `1`, `2`, or `3`.
297
+ - Topic tasks inherit schedule, timezone, channel, frequency limits, channel touch limits, whitelist, and experiment settings from the topic. They may only add an inclusion-only custom `definitionRequest`; never generate task-level `clusterKey`, trigger rules, or shared-setting overrides. `topic get` may return the canonical task marker `targetClusterType=1`; preserve it for update if present, but never use another task-level value.
298
+ - Resolve the parent activity first and confirm it is editable (`mappingStatus` `0`, `2`, or `5`). Limits for topics, tasks, and languages are project configuration values; do not hardcode defaults.
299
+ - `approval submit` and `approval approve` validate every persisted activity task. Approval does not normalize unsupported task data. On `ACTIVITY_TASK_COMPATIBILITY_VIOLATION`, cancel/withdraw approval as needed, correct or recreate each reported task, and submit again.
300
+
285
301
  ```bash
286
302
  # Activity create / update / delete / list / get / pause / end / stats / info-list
287
303
  ae-cli engage-activity activity create --project-id <project_id> --payload '{"activityName":"a1","activityType":"other_type","tzOffset":8,"periodType":0}'
@@ -294,8 +310,8 @@ ae-cli engage-activity activity end --project-id <project_id> --activity-id <act
294
310
  ae-cli engage-activity activity stats --project-id <project_id>
295
311
  ae-cli engage-activity activity info-list --project-id <project_id> --activity-id <activity_id>
296
312
 
297
- # Approval approve / reject / cancel
298
- # Note: engage-activity.approval.submit is temporarily disabled (testing issues); do not call it.
313
+ # Approval submit / approve / reject / cancel
314
+ ae-cli engage-activity approval submit --project-id <project_id> --activity-id <activity_id> [--reason <reason>]
299
315
  ae-cli engage-activity approval approve --project-id <project_id> --activity-id <activity_id>
300
316
  ae-cli engage-activity approval reject --project-id <project_id> --activity-id <activity_id> --reason <reason>
301
317
  ae-cli engage-activity approval cancel --project-id <project_id> --activity-id <activity_id>
@@ -346,12 +362,9 @@ When the user wants to "create a flow / generate a flow canvas / save a flow", d
346
362
  - The touchpoint or delivery method
347
363
  - Whether branching is needed, and the branching conditions
348
364
  2. Do not jump directly from natural language to `--req`. You must first organize a stable intermediate intent structure, then map it to the final `req`.
349
- 3. Before building condition-related nodes, create the reusable audience directly from its semantic definition, then read back the server-authored definition only if the Engage schema explicitly needs QP-derived fields:
350
-
351
- ```bash
352
- ae-cli analysis user-cluster create --project-id <projectId> --cluster-name <condition_cluster_name> --display-name <display_name> --definition-request '<semantic-definition-json>'
353
- ae-cli analysis user-cluster get --project-id <projectId> --cluster-names '["<condition_cluster_name>"]'
354
- ```
365
+ 3. Build condition-related nodes with semantic `targetDefinitionRequest` and
366
+ `triggerDefinition` objects. Resolve real event and property names through Analysis metadata;
367
+ do not create an intermediate cluster merely to obtain persisted QP.
355
368
 
356
369
  4. Before building touchpoint nodes such as `message_push`, `wechat_push`, or `webhook_push`, you must call:
357
370
 
@@ -361,7 +374,7 @@ ae-cli engage-setting channel list --project-id <projectId>
361
374
 
362
375
  5. `engage-flow flow save` is **operation-based** (protocol v2). The `--req` object must carry an `operation` of `build`, `preview`, or `commit`. Do **not** use the old `nodeList` / `edgeList` field names — use `nodes` / `edges` with `operation=build`. A legacy `nodeList`/`edgeList` payload (or a missing `operation`) is rejected with `Unsupported save_flow operation: null`.
363
376
  6. Run the lifecycle: `build` (returns `data.result.status = ready_to_preview` or `need_input`) → resolve any `data.result.next_slot` → `preview` (re-issues response fields `data.result.draft_version` + `data.result.confirm_token`) → `commit` (maps those values to request fields `draftVersion` + `confirmToken`) → reads the final ID from `data.result.result.flow_uuid`.
364
- 7. `nodes[].config` / `edges[].config` may be a JSON object or a JSON string. If `targetClusterQp` appears inside a node `config`, its value is usually a `JSON.stringify`'d string, not a raw object.
377
+ 7. `nodes[].config` / `edges[].config` may be a JSON object or a JSON string. Custom audience nodes and branches use semantic `targetDefinitionRequest`; Hermes compiles it to the node's stored execution format.
365
378
  8. You must self-check before previewing/committing:
366
379
  - There is exactly one entry node
367
380
  - There is at least one `exit_flow`
@@ -437,13 +450,13 @@ More detailed single-command guidance is available in the business-oriented `ref
437
450
  - `references/scene-config-channel.md` (`engage-scene.config-channel.{list,get,create,update,update-status,delete,query-log}`)
438
451
  - `references/channel-mgmt.md` (config channel management workflows)
439
452
  - `references/scene-strategy.md` (`engage-scene.strategy.{list,get,create,update,log,predict,batch-copy,manage}`)
440
- - `references/scene-strategy-audience.md` (custom audience mix QP: 用户满足/用户行为 two-block layout, preflight, worked examples A/B/C)
453
+ - `references/scene-strategy-audience.md` (custom audience semantic `definitionRequest`, preflight, predict)
441
454
  - `references/scene-template.md` (`engage-scene.template.{list,get,copy,create,update,update-status,delete}`)
442
455
  - `references/config-item-trigger-report.md` (`engage-scene.report.config-item-trigger`, L3)
443
456
  - `references/config-item-analysis-report.md` (`engage-scene.report.config-item-analysis`, L3)
444
457
  - `references/config-item-strategy-comparison.md` (`engage-scene.report.strategy-comparison`, L3)
445
458
  - `references/activity-activity.md` (`engage-activity.activity.{create,update,delete,list,get,pause,end,stats,info-list}`)
446
- - `references/activity-approval.md` (`engage-activity.approval.{approve,reject,cancel}`; `submit` temporarily disabled)
459
+ - `references/activity-approval.md` (`engage-activity.approval.{submit,approve,reject,cancel}`)
447
460
  - `references/activity-topic.md` (`engage-activity.topic.{create,update,remove-task,delete,get,copy}`)
448
461
  - `references/activity-activity-type.md` (`engage-activity.activity-type.{list,batch-add,update,batch-delete}`)
449
462
  - `references/activity-task.md` (`engage-activity.task.{get,create,update,copy}`)
@@ -460,6 +473,7 @@ More detailed single-command guidance is available in the business-oriented `ref
460
473
  - `references/segment-list-query.md` (`engage-task.segment-list.query`)
461
474
  - `references/group-list.md` (`engage-task.group.list`)
462
475
  - `references/task-delete.md` (`engage-task.task.delete`)
476
+ - `references/task-submit-approval.md` (`engage-task.task.submit-approval`)
463
477
 
464
478
  This split documentation structure is easier to extend later, because commands with more complex object inputs can stay centralized in the `references/` root directory.
465
479
 
@@ -471,7 +485,7 @@ This split documentation structure is easier to extend later, because commands w
471
485
 
472
486
  ### task
473
487
 
474
- `operation-log query` / `push-record query` / `segment-list *` / `ops *` / `metric *` / `race release` / `channel-ref stats` / `group *` / `task delete` / `task modify-group` / `task get` / `task list` / `task stats` / `task build-save-guide` / `task save` / `task manage` (via `engage-task`), plus L3 capabilities `engage-task.task-data.{overview,detail,metric-detail,experiment-report}`
488
+ `operation-log query` / `push-record query` / `segment-list *` / `ops *` / `metric *` / `race release` / `channel-ref stats` / `group *` / `task delete` / `task modify-group` / `task submit-approval` / `task get` / `task list` / `task stats` / `task build-save-guide` / `task save` / `task manage` (via `engage-task`), plus L3 capabilities `engage-task.task-data.{overview,detail,metric-detail,experiment-report}`
475
489
 
476
490
  ### config
477
491
 
@@ -483,7 +497,7 @@ Legacy config MCP commands are migrated into the `scene` L2 group and the three
483
497
 
484
498
  ### activity
485
499
 
486
- `activity create` / `activity update` / `activity delete` / `activity list` / `activity get` / `activity pause` / `activity end` / `activity stats` / `activity info-list` / `approval approve` / `approval reject` / `approval cancel` / `topic create` / `topic update` / `topic remove-task` / `topic delete` / `topic get` / `topic copy` / `activity-type list` / `activity-type batch-add` / `activity-type update` / `activity-type batch-delete` / `task get` / `task create` / `task update` / `task copy` (via `engage-activity`), capability ids `engage-activity.activity.{create,update,delete,list,get,pause,end,stats,info-list}`, `engage-activity.approval.{approve,reject,cancel}`, `engage-activity.topic.{create,update,remove-task,delete,get,copy}`, `engage-activity.activity-type.{list,batch-add,update,batch-delete}`, `engage-activity.task.{get,create,update,copy}`
500
+ `activity create` / `activity update` / `activity delete` / `activity list` / `activity get` / `activity pause` / `activity end` / `activity stats` / `activity info-list` / `approval submit` / `approval approve` / `approval reject` / `approval cancel` / `topic create` / `topic update` / `topic remove-task` / `topic delete` / `topic get` / `topic copy` / `activity-type list` / `activity-type batch-add` / `activity-type update` / `activity-type batch-delete` / `task get` / `task create` / `task update` / `task copy` (via `engage-activity`), capability ids `engage-activity.activity.{create,update,delete,list,get,pause,end,stats,info-list}`, `engage-activity.approval.{submit,approve,reject,cancel}`, `engage-activity.topic.{create,update,remove-task,delete,get,copy}`, `engage-activity.activity-type.{list,batch-add,update,batch-delete}`, `engage-activity.task.{get,create,update,copy}`
487
501
 
488
502
  ### workbench
489
503
 
@@ -505,19 +519,35 @@ High-risk delete commands (`risk: high-risk-write`) require explicit user author
505
519
  - Config channels (config center channel management): `engage-scene config-channel create|update|update-status` (write), `engage-scene config-channel delete` (high-risk-write)
506
520
  - Strategies and config items: `engage-scene config-item delete` (high-risk-write), `engage-scene template copy` and `engage-scene strategy manage` (write)
507
521
  - Flows: `engage-flow flow update-remark` (write), `engage-flow flow save` (write), `engage-flow flow modify-base-info` (write), `engage-flow flow manage` (write), `engage-flow flow delete` (high-risk-write)
508
- - Tasks: `engage-task task save` (write), `engage-task task manage` (write)
522
+ - Tasks: `engage-task task save` (write), `engage-task task submit-approval` (write), `engage-task task manage` (write)
509
523
 
510
524
  For task draft creation or update, use this workflow:
511
525
 
512
526
  1. `ae-cli engage-setting channel list --project-id <projectId>`
513
527
  2. `ae-cli engage-task task build-save-guide --project-id <projectId> --req '{...}'`
514
- 3. If the guide says QP-derived fields are needed (`targetConfig.qp`, `triggerConfig.triggerRule`, `clientConfig.clientQp`, or `completionIndicatorDef.event`), call:
515
- `ae-cli engage-setting query cluster-qp-skill --project-id <projectId>`
516
- Use the returned skill text to build those fields. For existing-cluster audiences (`targetClusterType=2`), use `analysis user-cluster get` instead of hand-writing QP.
528
+ 3. For a custom audience, pass the Analysis semantic contract as
529
+ `targetConfig.definitionRequest`. Use semantic `triggerConfig.triggerDefinition` and
530
+ `completionIndicatorDef.completionIndicators[].eventDefinition`. Build shapes from
531
+ `ae-analysis` user-cluster / audience models. For existing-cluster audiences
532
+ (`targetClusterType=2`), use `analysis user-cluster get`. For event-triggered tasks, pass
533
+ `channelType`, `triggerType`, and `eventTriggerType` to `build-save-guide`, then use its
534
+ type-specific semantic event shape. Accumulated events are aggregate conditions, continuous
535
+ events use count/eq with a value of at least 2, ordered events use sequence-step envelopes,
536
+ and every-completion events use count/eq/1. Never construct persisted QP fields.
517
537
  4. `ae-cli engage-task task save --project-id <projectId> --req '{...}'`
538
+ 5. `ae-cli engage-task task submit-approval --project-id <projectId> --task-id <taskId>`
518
539
 
519
540
  `engage-task task build-save-guide` is a read-only helper. It returns scenario-specific required fields, channel content schema, unsupported combinations, examples, and a handoff template for `save_task`.
520
541
 
521
542
  `engage-task task save` creates or updates a task configuration. It does not submit approval, does not start sending, and does not trigger task execution. If `req.taskId` is omitted it creates a new draft; if `req.taskId` is present it updates an existing **draft or paused** task. Update mode rejects running/ended tasks with `invalid_status`. Omitted fields inherit from the existing task before validation (partial rename/update is supported).
522
543
 
523
- Audience creation is not a fixed preflight step. When the guide requires QP-derived fields (`targetConfig.qp`, `triggerConfig.triggerRule`, `clientConfig.clientQp`, `completionIndicatorDef.event`), call `ae-cli engage-setting query cluster-qp-skill --project-id <projectId>` first and follow the returned skill definition; do not assemble raw QP manually. For existing-cluster audiences, use `analysis user-cluster get` to copy server-authored definitions when appropriate.
544
+ `engage-task task submit-approval --task-id` is the recommended approval path after `task save`.
545
+ It submits the persisted draft without requiring the Agent to reconstruct internal `trigger_rule`.
546
+ The legacy `--request` mode remains available for compatibility; provide exactly one of
547
+ `--task-id` or `--request`.
548
+
549
+ Audience creation is not a fixed preflight step. For custom task audiences, use semantic
550
+ `targetConfig.definitionRequest`; `task get` returns the same contract as
551
+ `definition_request`. `clientConfig.clientQp` is server-authored and must be omitted from
552
+ Capability requests; partial updates preserve existing server state. Do not assemble raw QP
553
+ manually.
@@ -56,6 +56,9 @@ ae-cli engage-activity activity info-list --project-id <project_id> --activity-i
56
56
  - `get`: `data.activity`.
57
57
  - `stats`: `data.status_count`.
58
58
  - `info-list`: `data.info` with `taskList` (standalone tasks) and `topicList` (topics under the activity).
59
+ This summary intentionally omits stored QP-bearing detail fields such as `qp`,
60
+ `triggerRule`, `completionIndicatorDef`, and `clientQp`. Use the corresponding task
61
+ or topic detail command to obtain the semantic definitions before editing.
59
62
  - `delete` / `pause` / `end`: `data.success`.
60
63
 
61
64
  ## Timezone (`tzOffset`)