@thinkingai/ae-cli 6.1.4 → 6.1.6

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 (237) 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-QW4AVJHI.js → capability-AJC5CBRT.js} +49 -17
  6. package/dist/{capability-SCRFGODD.js → capability-TQ5KU5Q6.js} +49 -17
  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-7OLGDQQ2.js → chunk-6CHYBI64.js} +2 -2
  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-TBHBYKXZ.js → chunk-ISY6HMHM.js} +2 -2
  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 +506 -221
  29. package/dist/{metadata-BFDL6RUK.js → metadata-3M5F2AED.js} +14 -13
  30. package/dist/{metadata-FCLDBXX2.js → metadata-W2MEOI4Z.js} +14 -13
  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-PUVF5IF4.js → te-analysis-I73ZS4NK.js} +903 -33
  36. package/dist/{te-analysis-UJDOKPAN.js → te-analysis-Q7AZCDU4.js} +903 -33
  37. package/dist/{te-common-XLAGWNIV.js → te-common-ST3QPSXJ.js} +7 -6
  38. package/dist/{te-common-VUX3VOXZ.js → te-common-WSLIKKPC.js} +7 -6
  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-QBCCME22.js → te-engage-2FSDUOIZ.js} +973 -1585
  44. package/dist/{te-engage-K4AEUPK5.js → te-engage-BMJ6UOUU.js} +973 -1585
  45. package/dist/te-experiment-4JC7WUKW.js +590 -0
  46. package/dist/te-experiment-KYRWAUZY.js +590 -0
  47. package/dist/{te-kb-AYCODNU6.js → te-kb-E7NSCBRB.js} +74 -12
  48. package/dist/{te-meta-ARDIW3YI.js → te-meta-Q4L6EE3Q.js} +7 -6
  49. package/dist/{te-meta-UUROEODR.js → te-meta-VHCN4Q62.js} +7 -6
  50. package/dist/{te-team-OKCOX7OE.js → te-team-PDKKW7Q5.js} +7 -6
  51. package/dist/tracking/i18n/resources/cli/en.json +4 -3
  52. package/dist/tracking/i18n/resources/cli/ja.json +4 -3
  53. package/dist/tracking/i18n/resources/cli/ko.json +4 -3
  54. package/dist/tracking/i18n/resources/cli/zh.json +4 -3
  55. package/package.json +7 -3
  56. package/skills/ae-agent/SKILL.md +2 -1
  57. package/skills/ae-analysis/SKILL.md +12 -1
  58. package/skills/ae-analysis/references/adhoc_export.md +2 -0
  59. package/skills/ae-analysis/references/adhoc_run.md +2 -0
  60. package/skills/ae-analysis/references/alert_create.md +25 -0
  61. package/skills/ae-analysis/references/alert_definition_schema_get.md +24 -0
  62. package/skills/ae-analysis/references/alert_delete.md +26 -0
  63. package/skills/ae-analysis/references/alert_detail_list.md +27 -0
  64. package/skills/ae-analysis/references/alert_get.md +25 -0
  65. package/skills/ae-analysis/references/alert_job_list.md +24 -0
  66. package/skills/ae-analysis/references/alert_list.md +27 -0
  67. package/skills/ae-analysis/references/alert_notice_config_list.md +24 -0
  68. package/skills/ae-analysis/references/alert_start.md +25 -0
  69. package/skills/ae-analysis/references/alert_stop.md +25 -0
  70. package/skills/ae-analysis/references/alert_update.md +26 -0
  71. package/skills/ae-analysis/references/bi_panel_create.md +3 -3
  72. package/skills/ae-analysis/references/check_delete.md +27 -0
  73. package/skills/ae-analysis/references/check_export.md +27 -0
  74. package/skills/ae-analysis/references/check_get.md +27 -0
  75. package/skills/ae-analysis/references/check_list.md +24 -0
  76. package/skills/ae-analysis/references/check_retry.md +27 -0
  77. package/skills/ae-analysis/references/check_run.md +25 -0
  78. package/skills/ae-analysis/references/command_index.md +61 -27
  79. package/skills/ae-analysis/references/dashboard_create.md +3 -3
  80. package/skills/ae-analysis/references/dashboard_daily_report_send.md +1 -0
  81. package/skills/ae-analysis/references/dashboard_daily_report_update.md +2 -0
  82. package/skills/ae-analysis/references/dashboard_report_data_export.md +3 -3
  83. package/skills/ae-analysis/references/dashboard_report_data_run.md +3 -3
  84. package/skills/ae-analysis/references/event_blacklist_add.md +25 -0
  85. package/skills/ae-analysis/references/event_blacklist_list.md +24 -0
  86. package/skills/ae-analysis/references/event_blacklist_update.md +26 -0
  87. package/skills/ae-analysis/references/ingest_error_list.md +27 -0
  88. package/skills/ae-analysis/references/ingest_summary.md +26 -0
  89. package/skills/ae-analysis/references/live_data_export.md +27 -0
  90. package/skills/ae-analysis/references/live_data_list.md +27 -0
  91. package/skills/ae-analysis/references/plan_change_log_export.md +27 -0
  92. package/skills/ae-analysis/references/plan_change_log_list.md +24 -0
  93. package/skills/ae-analysis/references/plan_delete_items.md +30 -0
  94. package/skills/ae-analysis/references/plan_export.md +26 -0
  95. package/skills/ae-analysis/references/plan_generate.md +27 -0
  96. package/skills/ae-analysis/references/plan_get.md +24 -0
  97. package/skills/ae-analysis/references/plan_import_excel.md +26 -0
  98. package/skills/ae-analysis/references/plan_save_items.md +27 -0
  99. package/skills/ae-analysis/references/plan_sync_from_meta.md +24 -0
  100. package/skills/ae-analysis/references/project_role_delete.md +4 -3
  101. package/skills/ae-analysis/references/project_role_get.md +4 -3
  102. package/skills/ae-analysis/references/project_role_user_list.md +4 -3
  103. package/skills/ae-analysis/references/query_create_result_cluster.md +2 -1
  104. package/skills/ae-analysis/references/report_data_export.md +3 -1
  105. package/skills/ae-analysis/references/report_data_run.md +12 -2
  106. package/skills/ae-analysis/references/sdk_sample_generate.md +24 -0
  107. package/skills/ae-analysis/references/user_cluster_create.md +2 -0
  108. package/skills/ae-analysis/references/user_cluster_create_id.md +2 -0
  109. package/skills/ae-analysis/references/user_cluster_update.md +2 -0
  110. package/skills/ae-analysis/references/user_cluster_update_id.md +2 -0
  111. package/skills/ae-analysis/references/user_tag_create.md +2 -0
  112. package/skills/ae-analysis/references/user_tag_create_id.md +2 -0
  113. package/skills/ae-analysis/references/user_tag_update.md +2 -0
  114. package/skills/ae-analysis/references/user_tag_update_id.md +2 -0
  115. package/skills/ae-analysis-global/SKILL.md +2 -0
  116. package/skills/ae-capability/SKILL.md +7 -5
  117. package/skills/ae-community/SKILL.md +72 -8
  118. package/skills/ae-community/references/community-chat-analysis.md +341 -0
  119. package/skills/ae-community/references/community-data-report.md +301 -0
  120. package/skills/ae-dataops/SKILL.md +2 -1
  121. package/skills/ae-engage/SKILL.md +129 -105
  122. package/skills/ae-engage/references/activity-activity-type.md +1 -1
  123. package/skills/ae-engage/references/activity-activity.md +1 -1
  124. package/skills/ae-engage/references/activity-approval.md +5 -7
  125. package/skills/ae-engage/references/activity-task.md +12 -18
  126. package/skills/ae-engage/references/activity-topic.md +39 -22
  127. package/skills/ae-engage/references/add-approver.md +4 -4
  128. package/skills/ae-engage/references/add-channel.md +10 -5
  129. package/skills/ae-engage/references/approval-approver-delete.md +1 -1
  130. package/skills/ae-engage/references/approver-list.md +4 -4
  131. package/skills/ae-engage/references/build-task-save-guide.md +13 -13
  132. package/skills/ae-engage/references/cancel-query-by-request-id.md +7 -6
  133. package/skills/ae-engage/references/channel-detail.md +14 -9
  134. package/skills/ae-engage/references/channel-list.md +15 -10
  135. package/skills/ae-engage/references/channel-mgmt.md +109 -0
  136. package/skills/ae-engage/references/channel-test-send.md +1 -1
  137. package/skills/ae-engage/references/channel-update-config.md +1 -1
  138. package/skills/ae-engage/references/channel_touch_limits_list.md +1 -1
  139. package/skills/ae-engage/references/client-param.md +34 -16
  140. package/skills/ae-engage/references/common-metric.md +85 -18
  141. package/skills/ae-engage/references/config-item-analysis-report.md +8 -27
  142. package/skills/ae-engage/references/config-item-strategy-comparison.md +7 -18
  143. package/skills/ae-engage/references/config-item-trigger-report.md +8 -35
  144. package/skills/ae-engage/references/delete-channel.md +5 -5
  145. package/skills/ae-engage/references/delete-flow.md +5 -5
  146. package/skills/ae-engage/references/flow-ab-split-node-report.md +11 -45
  147. package/skills/ae-engage/references/flow-detail.md +15 -10
  148. package/skills/ae-engage/references/flow-list.md +9 -4
  149. package/skills/ae-engage/references/flow-node-config-schema.md +9 -8
  150. package/skills/ae-engage/references/flow-node-detail-report.md +11 -46
  151. package/skills/ae-engage/references/flow-node-overview-report.md +11 -43
  152. package/skills/ae-engage/references/flow-process-report.md +12 -50
  153. package/skills/ae-engage/references/flow-update-remark.md +19 -0
  154. package/skills/ae-engage/references/manage-flow.md +19 -19
  155. package/skills/ae-engage/references/manage-task.md +5 -5
  156. package/skills/ae-engage/references/modify-flow-base-info.md +8 -8
  157. package/skills/ae-engage/references/preset-event.md +1 -1
  158. package/skills/ae-engage/references/push-language.md +1 -1
  159. package/skills/ae-engage/references/save-flow.md +54 -52
  160. package/skills/ae-engage/references/save-task.md +23 -17
  161. package/skills/ae-engage/references/scene-config-channel.md +90 -10
  162. package/skills/ae-engage/references/scene-config-group.md +1 -1
  163. package/skills/ae-engage/references/scene-config-item.md +27 -4
  164. package/skills/ae-engage/references/scene-config-metric.md +1 -1
  165. package/skills/ae-engage/references/scene-config-param.md +2 -2
  166. package/skills/ae-engage/references/scene-preset-metric.md +1 -1
  167. package/skills/ae-engage/references/scene-strategy.md +19 -3
  168. package/skills/ae-engage/references/scene-template.md +10 -4
  169. package/skills/ae-engage/references/task-data-detail.md +5 -67
  170. package/skills/ae-engage/references/task-data-overview.md +5 -35
  171. package/skills/ae-engage/references/task-detail.md +5 -5
  172. package/skills/ae-engage/references/task-experiment-report.md +5 -38
  173. package/skills/ae-engage/references/task-list.md +4 -4
  174. package/skills/ae-engage/references/task-metric-detail.md +5 -43
  175. package/skills/ae-engage/references/task-stats.md +5 -5
  176. package/skills/ae-engage/references/update-channel-status.md +6 -6
  177. package/skills/ae-engage/references/validate-flow-node-config.md +12 -11
  178. package/skills/ae-engage/references/whitelist-list.md +4 -4
  179. package/skills/ae-engage/references/whitelist.md +1 -1
  180. package/skills/ae-engage/references/workbench-workbench.md +1 -1
  181. package/skills/ae-experiment/SKILL.md +30 -20
  182. package/skills/ae-experiment/references/batch_delete_experiment.md +4 -4
  183. package/skills/ae-experiment/references/batch_delete_feature.md +3 -3
  184. package/skills/ae-experiment/references/batch_delete_traffic_layer.md +4 -4
  185. package/skills/ae-experiment/references/cancel_experiment_query_by_request_id.md +5 -4
  186. package/skills/ae-experiment/references/check_experiment_ready.md +7 -5
  187. package/skills/ae-experiment/references/check_experiment_traffic_layer_conflict.md +37 -0
  188. package/skills/ae-experiment/references/delete_metric.md +4 -4
  189. package/skills/ae-experiment/references/manage_experiment.md +8 -6
  190. package/skills/ae-experiment/references/manage_feature_status.md +3 -3
  191. package/skills/ae-experiment/references/query_bucket_list.md +5 -3
  192. package/skills/ae-experiment/references/query_experiment_detail.md +6 -4
  193. package/skills/ae-experiment/references/query_experiment_list.md +12 -4
  194. package/skills/ae-experiment/references/query_experiment_list_archived.md +15 -0
  195. package/skills/ae-experiment/references/query_experiment_metric_trend.md +6 -10
  196. package/skills/ae-experiment/references/query_experiment_operation_log.md +17 -0
  197. package/skills/ae-experiment/references/query_experiment_report_summary.md +5 -6
  198. package/skills/ae-experiment/references/query_experiment_sample_size_report.md +6 -10
  199. package/skills/ae-experiment/references/query_feature_detail.md +6 -4
  200. package/skills/ae-experiment/references/query_feature_list.md +5 -3
  201. package/skills/ae-experiment/references/query_feature_operation_log.md +19 -0
  202. package/skills/ae-experiment/references/query_feature_version_list.md +20 -0
  203. package/skills/ae-experiment/references/query_metric_detail.md +6 -4
  204. package/skills/ae-experiment/references/query_metric_list.md +5 -3
  205. package/skills/ae-experiment/references/query_traffic_layer_detail.md +6 -4
  206. package/skills/ae-experiment/references/query_traffic_layer_list.md +5 -3
  207. package/skills/ae-experiment/references/save_experiment.md +148 -9
  208. package/skills/ae-experiment/references/save_feature.md +3 -3
  209. package/skills/ae-experiment/references/save_metric.md +3 -3
  210. package/skills/ae-experiment/references/save_submit_experiment.md +6 -6
  211. package/skills/ae-experiment/references/save_traffic_layer.md +3 -3
  212. package/skills/ae-experiment/references/update_experiment_group.md +20 -0
  213. package/skills/ae-generate-tracking-code/SKILL.md +4 -4
  214. package/skills/ae-generate-tracking-plan/SKILL.md +132 -11
  215. package/skills/ae-generate-tracking-plan/references/business-dimension-mapping.md +98 -33
  216. package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +16 -14
  217. package/skills/ae-kb/SKILL.md +11 -6
  218. package/skills/ae-metadata/SKILL.md +2 -1
  219. package/skills/ae-team/SKILL.md +2 -1
  220. package/dist/chunk-NOO24N7W.js +0 -11
  221. package/dist/chunk-TNW2CI4W.js +0 -129
  222. package/dist/te-community-PEZ2VEF7.js +0 -687
  223. package/dist/te-community-TSKJ652U.js +0 -687
  224. package/dist/te-experiment-JINSMHMW.js +0 -606
  225. package/dist/te-experiment-NWNQHJS5.js +0 -606
  226. package/skills/ae-engage/references/config-channel-detail.md +0 -31
  227. package/skills/ae-engage/references/config-channel-list.md +0 -26
  228. package/skills/ae-engage/references/config-item-detail.md +0 -29
  229. package/skills/ae-engage/references/config-item-list.md +0 -18
  230. package/skills/ae-engage/references/copy-config-template.md +0 -28
  231. package/skills/ae-engage/references/delete-config-channel.md +0 -23
  232. package/skills/ae-engage/references/delete-config-item.md +0 -24
  233. package/skills/ae-engage/references/engage-scene-config-item.md +0 -69
  234. package/skills/ae-engage/references/manage-strategy.md +0 -73
  235. package/skills/ae-engage/references/strategy-detail.md +0 -72
  236. package/skills/ae-engage/references/strategy-list.md +0 -20
  237. package/skills/ae-engage/references/update-config-channel-status.md +0 -31
@@ -1,54 +1,19 @@
1
- # ae-engage +flow_node_detail_report
1
+ # engage-flow.report.node-detail
2
2
 
3
+ Query one flow node detail report through the L3 Capability Gateway.
3
4
 
4
- Query the detailed report for a single flow node.
5
+ Mapped command: `ae-cli capability run engage-flow.report.node-detail --input '<json>'`
5
6
 
6
- Mapped command: `ae-cli engage +flow_node_detail_report`
7
+ ## Input
7
8
 
8
- ## Flags
9
+ - Required: `project_id`, `node_uuid`, `start_time`, `end_time`.
10
+ - Provide at least one of `flow_id` or `flow_uuid`.
11
+ - Optional: `request_id`, `push_language_code`, `branch_id`, `indicator_name`, `data_dim_type`, `show_time_zone`.
12
+ - Dates use `yyyy-MM-dd`; `data_dim_type` is `uv` or `pv`.
9
13
 
10
- | Flag | Type | Required | Description |
11
- |------|------|------|------|
12
- | `--project_id` / `-p` | number | Yes | Project ID |
13
- | `--node_uuid` | string | Yes | node UUID |
14
- | `--start_time` | string | Yes | Start date |
15
- | `--end_time` | string | Yes | End date |
16
- | `--flow_id` | string | No | Flow ID |
17
- | `--flow_uuid` | string | No | Flow UUID |
18
- | `--request_id` | string | No | Query requestId |
19
- | `--push_language_code` | string | No | push language code |
20
- | `--branch_id` | string | No | branch ID |
21
- | `--indicator_name` | string | No | indicator name |
22
- | `--data_dim_type` | string | No | data dimension type |
23
- | `--show_time_zone` | string | No | display timezone offset |
24
-
25
- ## Enum Notes
26
-
27
- ### `--data_dim_type`
28
-
29
- - `uv`: count by unique users
30
- - `pv`: count by events/occurrences
31
-
32
- ### `--push_language_code`
33
-
34
- Common values include:
35
-
36
- - `default`
37
- - `en`
38
- - `zh-Hans`
39
- - `zh-Hant`
40
- - `ja`
41
- - `ko`
42
-
43
- ## Parameter Constraints
44
-
45
- - `--flow_id` and `--flow_uuid`, at least one must be provided.
46
- - `--start_time`、`--end_time` use `yyyy-MM-dd`.
47
-
48
- ## Examples
14
+ ## Example
49
15
 
50
16
  ```bash
51
- ae-cli engage +flow_node_detail_report \
52
- --project_id 1 --flow_uuid flow_uuid_123 --node_uuid node_123 \
53
- --start_time 2026-04-01 --end_time 2026-04-07
17
+ ae-cli capability run engage-flow.report.node-detail --input \
18
+ '{"project_id":1,"flow_uuid":"flow_uuid_123","node_uuid":"node_123","start_time":"2026-04-01","end_time":"2026-04-07"}'
54
19
  ```
@@ -1,51 +1,19 @@
1
- # ae-engage +flow_node_overview_report
1
+ # engage-flow.report.node-overview
2
2
 
3
+ Query the overview report for all nodes in a flow through the L3 Capability Gateway.
3
4
 
4
- Query the overview report for all nodes in a flow.
5
+ Mapped command: `ae-cli capability run engage-flow.report.node-overview --input '<json>'`
5
6
 
6
- Mapped command: `ae-cli engage +flow_node_overview_report`
7
+ ## Input
7
8
 
8
- ## Flags
9
+ - Required: `project_id`, `start_time`, `end_time`.
10
+ - Provide at least one of `flow_id` or `flow_uuid`.
11
+ - Optional: `request_id`, `push_language_code`, `data_dim_type`, `show_time_zone`.
12
+ - Dates use `yyyy-MM-dd`; `data_dim_type` is `uv` or `pv`.
9
13
 
10
- | Flag | Type | Required | Description |
11
- |------|------|------|------|
12
- | `--project_id` / `-p` | number | Yes | Project ID |
13
- | `--start_time` | string | Yes | Start date |
14
- | `--end_time` | string | Yes | End date |
15
- | `--flow_id` | string | No | Flow ID |
16
- | `--flow_uuid` | string | No | Flow UUID |
17
- | `--request_id` | string | No | Query requestId |
18
- | `--push_language_code` | string | No | push language code |
19
- | `--data_dim_type` | string | No | data dimension type |
20
- | `--show_time_zone` | string | No | display timezone offset |
21
-
22
- ## Enum Notes
23
-
24
- ### `--data_dim_type`
25
-
26
- - `uv`: count by unique users
27
- - `pv`: count by events/occurrences
28
-
29
- ### `--push_language_code`
30
-
31
- Common values include:
32
-
33
- - `default`
34
- - `en`
35
- - `zh-Hans`
36
- - `zh-Hant`
37
- - `ja`
38
- - `ko`
39
-
40
- ## Parameter Constraints
41
-
42
- - `--flow_id` and `--flow_uuid`, at least one must be provided.
43
- - `--start_time`、`--end_time` use `yyyy-MM-dd`.
44
-
45
- ## Examples
14
+ ## Example
46
15
 
47
16
  ```bash
48
- ae-cli engage +flow_node_overview_report \
49
- --project_id 1 --flow_uuid flow_uuid_123 \
50
- --start_time 2026-04-01 --end_time 2026-04-07
17
+ ae-cli capability run engage-flow.report.node-overview --input \
18
+ '{"project_id":1,"flow_uuid":"flow_uuid_123","start_time":"2026-04-01","end_time":"2026-04-07"}'
51
19
  ```
@@ -1,58 +1,20 @@
1
- # ae-engage +flow_process_report
1
+ # engage-flow.report.process
2
2
 
3
+ Query a process-level flow report through the L3 Capability Gateway.
3
4
 
4
- Query the process-level report for a flow.
5
+ Mapped command: `ae-cli capability run engage-flow.report.process --input '<json>'`
5
6
 
6
- Mapped command: `ae-cli engage +flow_process_report`
7
+ ## Input
7
8
 
8
- ## Flags
9
+ - Required: `project_id`, `report_type`.
10
+ - Provide at least one of `flow_id` or `flow_uuid`.
11
+ - `report_type`: `overview`, `detail`, `exit_detail`, or `push_detail`.
12
+ - Optional: `request_id`, `push_language_code`, `data_dim_type`, `start_time`, `end_time`, `show_time_zone`.
13
+ - Detail report types require both dates; overview accepts no dates or a complete date pair.
9
14
 
10
- | Flag | Type | Required | Description |
11
- |------|------|------|------|
12
- | `--project_id` / `-p` | number | Yes | Project ID |
13
- | `--report_type` | string | Yes | report type |
14
- | `--flow_id` | string | No | Flow ID |
15
- | `--flow_uuid` | string | No | Flow UUID |
16
- | `--request_id` | string | No | Query requestId |
17
- | `--push_language_code` | string | No | push language code |
18
- | `--data_dim_type` | string | No | data dimension type |
19
- | `--start_time` | string | No | Start date |
20
- | `--end_time` | string | No | End date |
21
- | `--show_time_zone` | string | No | display timezone offset |
22
-
23
- ## Enum Notes
24
-
25
- ### `--report_type`
26
-
27
- - `overview`: flow overview
28
- - `detail`: flow detail
29
- - `exit_detail`: exit detail
30
- - `push_detail`: push detail
31
-
32
- ### `--data_dim_type`
33
-
34
- - `uv`: count by unique users
35
- - `pv`: count by events/occurrences
36
-
37
- ### `--push_language_code`
38
-
39
- Common values include:
40
-
41
- - `default`
42
- - `en`
43
- - `zh-Hans`
44
- - `zh-Hant`
45
- - `ja`
46
- - `ko`
47
-
48
- ## Parameter Constraints
49
-
50
- - `--flow_id` At least one of `--flow_id` and `--flow_uuid` must be provided.
51
- - When `--report_type` is `detail`, `exit_detail`, or `push_detail`, both `--start_time` and `--end_time` are required.
52
- - When `--report_type` is `overview`, you may omit time or provide `--start_time` and `--end_time` as a pair.
53
-
54
- ## Examples
15
+ ## Example
55
16
 
56
17
  ```bash
57
- ae-cli engage +flow_process_report --project_id 1 --flow_uuid flow_uuid_123 --report_type overview
18
+ ae-cli capability run engage-flow.report.process --input \
19
+ '{"project_id":1,"flow_uuid":"flow_uuid_123","report_type":"overview"}'
58
20
  ```
@@ -0,0 +1,19 @@
1
+ # engage-flow flow update-remark
2
+
3
+ Update a flow version remark.
4
+
5
+ > Capability id: `engage-flow.version.update-remark` · Domain: `engage`.
6
+
7
+ ```bash
8
+ ae-cli engage-flow flow update-remark --project-id <project-id> --flow-uuid <flow-uuid> --flow-version-desc <remark>
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ - `--project-id`, `-p`: Numeric project ID.
14
+ - `--flow-uuid`: Flow version UUID whose remark should be updated.
15
+ - `--flow-version-desc`: Updated flow version remark. Pass an empty string to clear it.
16
+
17
+ ## Output
18
+
19
+ Returns `success`, `flow_uuid`, and `flow_version_desc`.
@@ -1,35 +1,35 @@
1
- # ae-engage +manage_flow
1
+ # ae-cli engage-flow flow manage
2
2
 
3
3
 
4
4
  Batch manage flow status or review actions.
5
5
 
6
- Mapped command: `ae-cli engage +manage_flow`
6
+ Mapped command: `ae-cli engage-flow flow manage`
7
7
 
8
8
  ## Flags
9
9
 
10
10
  | Flag | Type | Required | Description |
11
11
  |------|------|------|------|
12
- | `--project_id` / `-p` | number | Yes | Project ID |
12
+ | `--project-id` / `-p` | number | Yes | Project ID |
13
13
  | `--action` | string | Yes | action type |
14
- | `--flow_list` | json | No | Review list JSON array |
15
- | `--pause_flow_list` | json | No | pause list JSON array |
16
- | `--flow_id_list` | json | No | Flow ID JSON array |
14
+ | `--flow-list` | json | No | Review list JSON array |
15
+ | `--pause-flow-list` | json | No | pause list JSON array |
16
+ | `--flow-id-list` | json | No | Flow ID JSON array |
17
17
  | `--reason` | string | No | review reason |
18
18
 
19
19
  ## Enum Notes
20
20
 
21
21
  ### `--action`
22
22
 
23
- - `approve`: review approved, requires `--flow_list`
24
- - `deny`: review denied, requires `--flow_list`
25
- - `cancel`: cancel review, requires `--flow_list`
26
- - `pause`: pause flow, requires `--pause_flow_list`
27
- - `recover`: resume flow, requires `--flow_id_list`
28
- - `end`: end flow, requires `--flow_id_list`
23
+ - `approve`: review approved, requires `--flow-list`
24
+ - `deny`: review denied, requires `--flow-list`
25
+ - `cancel`: cancel review, requires `--flow-list`
26
+ - `pause`: pause flow, requires `--pause-flow-list`
27
+ - `recover`: resume flow, requires `--flow-id-list`
28
+ - `end`: end flow, requires `--flow-id-list`
29
29
 
30
30
  ## JSON Parameter Notes
31
31
 
32
- ### `--flow_list`
32
+ ### `--flow-list`
33
33
 
34
34
  Used for review actions such as `approve`, `deny`, and `cancel`. Each array item is an object:
35
35
 
@@ -46,7 +46,7 @@ Examples:
46
46
  ]
47
47
  ```
48
48
 
49
- ### `--pause_flow_list`
49
+ ### `--pause-flow-list`
50
50
 
51
51
  Used for the `pause` action. Each array item is an object:
52
52
 
@@ -68,7 +68,7 @@ Examples:
68
68
  ]
69
69
  ```
70
70
 
71
- ### `--flow_id_list`
71
+ ### `--flow-id-list`
72
72
 
73
73
  Used for batch operations by ID such as `recover` and `end`:
74
74
 
@@ -82,12 +82,12 @@ This command is a **write operation** and changes the flow status.
82
82
 
83
83
  Different `action` values require different parameters:
84
84
 
85
- - `approve` / `deny` / `cancel`: must include `--flow_list`
86
- - `pause`: must include `--pause_flow_list`
87
- - `recover` / `end`: must include `--flow_id_list`
85
+ - `approve` / `deny` / `cancel`: must include `--flow-list`
86
+ - `pause`: must include `--pause-flow-list`
87
+ - `recover` / `end`: must include `--flow-id-list`
88
88
 
89
89
  ## Examples
90
90
 
91
91
  ```bash
92
- ae-cli engage +manage_flow --project_id 1 --action end --flow_id_list '["flow_id_1"]'
92
+ ae-cli engage-flow flow manage --project-id 1 --action end --flow-id-list '["flow_id_1"]'
93
93
  ```
@@ -1,16 +1,16 @@
1
- # ae-engage +manage_task
1
+ # ae-cli engage-task task manage
2
2
 
3
3
 
4
4
  Perform task lifecycle actions such as send, pause, end, or review.
5
5
 
6
- Mapped command: `ae-cli engage +manage_task`
6
+ Mapped command: `ae-cli engage-task task manage`
7
7
 
8
8
  ## Flags
9
9
 
10
10
  | Flag | Type | Required | Description |
11
11
  |------|------|------|------|
12
- | `--project_id` / `-p` | number | Yes | Project ID |
13
- | `--task_id` | string | Yes | task ID |
12
+ | `--project-id` / `-p` | number | Yes | Project ID |
13
+ | `--task-id` | string | Yes | task ID |
14
14
  | `--action` | string | Yes | action type |
15
15
  | `--reason` | string | No | reason for review actions |
16
16
 
@@ -32,5 +32,5 @@ This command is a **write operation** and and changes the task status.
32
32
  ## Examples
33
33
 
34
34
  ```bash
35
- ae-cli engage +manage_task --project_id 1 --task_id task_123 --action pause
35
+ ae-cli engage-task task manage --project-id 1 --task-id task_123 --action pause
36
36
  ```
@@ -1,19 +1,19 @@
1
- # ae-engage +modify_flow_base_info
1
+ # ae-cli engage-flow flow modify-base-info
2
2
 
3
3
 
4
4
  Modify the basic information of a flow canvas.
5
5
 
6
- Mapped command: `ae-cli engage +modify_flow_base_info`
6
+ Mapped command: `ae-cli engage-flow flow modify-base-info`
7
7
 
8
8
  ## Flags
9
9
 
10
10
  | Flag | Type | Required | Description |
11
11
  |------|------|------|------|
12
- | `--project_id` / `-p` | number | Yes | Project ID |
13
- | `--flow_uuid` | string | Yes | Flow UUID |
14
- | `--flow_name` | string | No | new flow name |
15
- | `--flow_desc` | string | No | new flow description |
16
- | `--group_id` | number | No | new group ID |
12
+ | `--project-id` / `-p` | number | Yes | Project ID |
13
+ | `--flow-uuid` | string | Yes | Flow UUID |
14
+ | `--flow-name` | string | No | new flow name |
15
+ | `--flow-desc` | string | No | new flow description |
16
+ | `--group-id` | number | No | new group ID |
17
17
 
18
18
  ## Safety Constraints
19
19
 
@@ -22,5 +22,5 @@ This command is a **write operation** and modifies the basic information of a fl
22
22
  ## Examples
23
23
 
24
24
  ```bash
25
- ae-cli engage +modify_flow_base_info --project_id 1 --flow_uuid flow_uuid_123 --flow_name "New Name"
25
+ ae-cli engage-flow flow modify-base-info --project-id 1 --flow-uuid flow_uuid_123 --flow-name "New Name"
26
26
  ```
@@ -38,5 +38,5 @@ At least one `*-event-desc` must be provided for `update`.
38
38
 
39
39
  ## Decision Rules
40
40
 
41
- - Use these commands when the user asks to query or configure preset events (预置事件) for the analysis workbench.
41
+ - Use these commands when the user asks to query or configure preset events for the analysis workbench.
42
42
  - `update` replaces the provided desc fields; omitting a field clears it. Before clearing a field that is in use, the backend rejects the update if metrics still depend on it.
@@ -34,6 +34,6 @@ ae-cli engage-setting push-language set --project-id <project_id> --push-languag
34
34
 
35
35
  ## Decision Rules
36
36
 
37
- - Use these commands when the user asks to query or configure the project push-language (本地化) property field.
37
+ - Use these commands when the user asks to query or configure the project push-language (localization) property field.
38
38
  - `--push-language-column` must be a real user property code; discover available properties via the analysis metadata commands first.
39
39
  - `set` is `write`; ordinary update, no confirmation gate.
@@ -1,32 +1,32 @@
1
- # ae-engage `+save_flow`
1
+ # ae-cli `engage-flow flow save`
2
2
 
3
3
  Create, edit, preview, or commit a flow canvas draft.
4
4
 
5
- Mapped command: `ae-cli engage +save_flow --project_id <projectId> --req '<req-json>'`
5
+ Mapped command: `ae-cli engage-flow flow save --project-id <projectId> --req '<req-json>'`
6
6
 
7
7
  > **Protocol v2 (current).** `save_flow` is now **operation-based**. The `--req` object must carry an `operation` of `build`, `preview`, or `commit`. Do **not** use the old `nodeList` / `edgeList` field names -- send `nodes` / `edges` instead. Posting a legacy `nodeList`/`edgeList` payload (or omitting `operation`) makes the backend reject the call with `Unsupported save_flow operation: null`.
8
8
 
9
- The CLI injects `projectId` and rejects missing/unsupported `operation` values, legacy `nodeList`/`edgeList` fields, and the removed `sourceFlowUuid` clone mode; otherwise it passes your `--req` through to the backend. So everything in this document is about building the correct `req` object.
9
+ The outer Capability input uses `project_id` and `req`; fields inside `req` keep the native camelCase DTO shape documented below. Hermes uses the outer `--project-id` as authoritative. The CLI rejects missing/unsupported `operation` values, legacy `nodeList`/`edgeList` fields, and the removed `sourceFlowUuid` clone mode; otherwise it passes `req` through to Hermes.
10
10
 
11
11
  ---
12
12
 
13
13
  ## 1. General Principles
14
14
 
15
- `+save_flow` does not accept natural language or vague business descriptions directly. It accepts a **flow canvas request whose `req.operation` drives a three-step lifecycle**:
15
+ `engage-flow flow save` does not accept natural language or vague business descriptions directly. It accepts a **flow canvas request whose `req.operation` drives a three-step lifecycle**:
16
16
 
17
17
  ```text
18
- build ──► status = ready_to_preview ──► preview ──► commit ──► flowUuid
18
+ build ──► status = ready_to_preview ──► preview ──► commit ──► flow_uuid
19
19
  │ │
20
- └──► status = need_input ──► (answer slot, build again) └──► +flow_detail (verify)
20
+ └──► status = need_input ──► (answer slot, build again) └──► engage-flow flow get (verify)
21
21
  ```
22
22
 
23
23
  You still organize user requirements into an intermediate intent first, then map the intent to `nodes` / `edges`, then run the lifecycle.
24
24
 
25
- - `build`: assemble/edit a draft from `nodes` + `edges` (or topology-only `dsl`). Returns `ready_to_preview` (with `draftId`, `draftVersion`, `confirmToken`, `preview.mainPath`) or `need_input` (one more slot required).
26
- - `preview`: validate the draft; **re-issues** a fresh `draftVersion` + `confirmToken`.
27
- - `commit`: finalize the draft into a flow version using the **preview** `draftVersion` + `confirmToken`; returns the final `flowUuid`.
28
- - Always verify with `ae-cli engage +flow_detail --project_id <projectId> --flow_uuid <flowUuid>`.
29
- - To copy an existing flow, first call `+flow_detail`, convert the returned `nodeList` / `edgeList` into compact `nodes` / `edges`, then call `operation=build` as normal creation input. Do not pass `sourceFlowUuid`.
25
+ - `build`: assemble/edit a draft from `nodes` + `edges` (or topology-only `dsl`). `data.result` returns `ready_to_preview` with `draft_id`, `draft_version`, `confirm_token`, and `preview.main_path`, or `need_input` with one more slot required.
26
+ - `preview`: validate the draft; **re-issues** fresh `data.result.draft_version` and `data.result.confirm_token` values.
27
+ - `commit`: finalize the draft using preview's returned values, mapped back to request fields `draftVersion` and `confirmToken`; the final ID is `data.result.result.flow_uuid`.
28
+ - Always verify with `ae-cli engage-flow flow get --project-id <projectId> --flow-uuid <flow_uuid>`.
29
+ - To copy an existing flow, first call `engage-flow flow get`, convert `data.flow.node_list` / `data.flow.edge_list` into compact request fields `nodes` / `edges`, then call `operation=build` as normal creation input. Do not pass `sourceFlowUuid`.
30
30
 
31
31
  ---
32
32
 
@@ -34,10 +34,10 @@ You still organize user requirements into an intermediate intent first, then map
34
34
 
35
35
  1. Identify the flow intent from the user input and produce a unified intent JSON.
36
36
  2. Build a semantic condition request from `ae-analysis/references/user_cluster_models.md`, create the audience directly with `analysis user-cluster create`, and prefer its `cluster_name`/`clusterKey`. Read the saved server-authored definition with `analysis user-cluster get` only when an Engage node schema explicitly requires QP-derived fields; never assemble raw QP.
37
- 3. Run `ae-cli engage +channel_list --project_id <projectId>` to get the available channels and match real `channelId` values for touchpoint nodes. For `webhook_push`, also run `ae-cli engage +channel_detail` and use `data.config.paramsList` to build `contentList`.
38
- 4. Query `ae-cli engage +flow_node_config_schema --node_type <type>` before constructing each non-trivial node config, then run `ae-cli engage +validate_flow_node_config --node_type <type> --operation_mode save_flow --config '<config-json-string>'` before placing the config into `nodes` or `nodeConfigs`.
37
+ 3. Run `ae-cli engage-setting channel list --project-id <projectId>` to get the available channels and match real `channel_id` values for touchpoint nodes. For `webhook_push`, also run `ae-cli engage-setting channel get` and use `data.item.config.params_list` to build request field `contentList`.
38
+ 4. Query `ae-cli engage-flow node-config schema --project-id <project_id> --node-type <type>` before constructing each non-trivial node config, then run `ae-cli engage-flow node-config validate --project-id <project_id> --node-type <type> --operation-mode save_flow --config '<config-json-string>'` before placing the config into `nodes` or `nodeConfigs`.
39
39
  5. Map the intent JSON to `nodes` and `edges` (compact form, see §7 / §8).
40
- 6. `build` → resolve any `need_input` slot → `preview` → `commit`, then verify with `+flow_detail`.
40
+ 6. `build` → resolve any `need_input` slot → `preview` → `commit`, then verify with `engage-flow flow get`.
41
41
 
42
42
  ---
43
43
 
@@ -70,22 +70,24 @@ You still organize user requirements into an intermediate intent first, then map
70
70
 
71
71
  `flowUuid` and `parentFlowUuid` are mutually exclusive; when creating a brand-new draft, provide neither.
72
72
 
73
- ### Response Fields
73
+ ### Response shape
74
74
 
75
- Common response fields include:
75
+ The Capability envelope is `data.result`, and every key below it is recursively snake_case. When
76
+ feeding a returned value into the next `req`, map it back to the camelCase request field shown in §3.
77
+ Common response paths include:
76
78
 
77
79
  | Field | Meaning |
78
80
  |---|---|
79
- | `status` | Draft state, such as `need_input`, `ready_to_preview`, `previewed`, or `committed` |
80
- | `draftId` / `draftVersion` | Server draft identity and version |
81
- | `selectedMode` | Server-selected authoring mode, such as structured build, wizard, or draft edit |
82
- | `confidence` / `reason` | Router confidence and explanation for the selected mode |
83
- | `nextSlot` | One missing slot to answer when `status=need_input` |
84
- | `preview` | Human-readable preview; use it for user confirmation |
85
- | `confirmToken` | Token returned by `preview`; required for `commit` |
86
- | `warnings` / `errors` | Soft warnings and hard validation failures |
87
- | `supportedOperations` | Server-advertised `build`, `preview`, and `commit` contract |
88
- | `result` | Commit result, including the final `flowUuid` when committed |
81
+ | `data.result.status` | Draft state, such as `need_input`, `ready_to_preview`, `previewed`, or `committed` |
82
+ | `data.result.draft_id` / `data.result.draft_version` | Server draft identity and version; use as request `draftId` / `draftVersion` |
83
+ | `data.result.selected_mode` | Server-selected authoring mode, such as structured build, wizard, or draft edit |
84
+ | `data.result.confidence` / `data.result.reason` | Router confidence and explanation for the selected mode |
85
+ | `data.result.next_slot` | One missing slot to answer when `status=need_input`; use as request `slotAnswer` |
86
+ | `data.result.preview` | Human-readable preview; use it for user confirmation |
87
+ | `data.result.confirm_token` | Token returned by preview; use as request `confirmToken` for commit |
88
+ | `data.result.warnings` / `data.result.errors` | Soft warnings and hard validation failures |
89
+ | `data.result.supported_operations` | Server-advertised `build`, `preview`, and `commit` contract |
90
+ | `data.result.result.flow_uuid` | Final flow UUID after commit |
89
91
 
90
92
  ### Compact node (`nodes[]`)
91
93
 
@@ -179,12 +181,12 @@ Prefer the created cluster reference. Only when the node schema requires `target
179
181
  ### 5.2 Project Channels
180
182
 
181
183
  ```bash
182
- ae-cli engage +channel_list --project_id <projectId>
184
+ ae-cli engage-setting channel list --project-id <projectId>
183
185
  ```
184
186
 
185
- Match a real `channelId` for touchpoint nodes (priority: exact name match → keyword match → fallback by node/channel type). For `webhook_push`, also call `ae-cli engage +channel_detail` and drive `contentList` from `data.config.paramsList`.
187
+ Match a real `channel_id` for touchpoint nodes (priority: exact name match → keyword match → fallback by node/channel type), then place it in request field `channelId`. For `webhook_push`, also call `ae-cli engage-setting channel get` and drive request field `contentList` from `data.item.config.params_list`.
186
188
 
187
- **The channel must be enabled.** A node referencing a disabled channel (`channelStatus = 2`) fails with `disabled_channel: channelId must reference an enabled channel`, and `build` stalls on a `need_input` channel slot. Enable it first via `ae-cli engage +update_channel_status --status 1` (write op — requires explicit user intent).
189
+ **The channel must be enabled.** A node referencing a disabled channel (`channel_status = 0`) fails with `disabled_channel: channelId must reference an enabled channel`, and `build` stalls on a `need_input` channel slot. Enable it first via `ae-cli engage-setting channel update-status --status 1` (write op — requires explicit user intent).
188
190
 
189
191
  ---
190
192
 
@@ -242,7 +244,7 @@ Inside action nodes: `channel_name` → real `channelId`; `content` → `content
242
244
 
243
245
  `single_trigger`, `repeat_trigger`, `event_trigger`, `event_split_flow`, `feature_split_flow`, `ab_split_flow`, `event_judge`, `feature_judge`, `message_push`, `wechat_push`, `webhook_push`, `time_control`, `exit_flow`.
244
246
 
245
- Before writing any config below, call `+flow_node_config_schema` for the exact node type. The backend schema is the source of truth for required fields, defaults, allowed enum values, submit-time requirements, and examples.
247
+ Before writing any config below, call `engage-flow node-config schema` for the exact node type. The backend schema is the source of truth for required fields, defaults, allowed enum values, submit-time requirements, and examples.
246
248
 
247
249
  ### 7.3 Common `config` Templates
248
250
 
@@ -312,7 +314,7 @@ Fallback branch keeps only `branchId` + `branchType: 2`.
312
314
  { "channelId": "<matched channelId>", "channelType": "<matched channelType>", "contentList": [ { "pushLanguageCode": "default", "content": [] } ] }
313
315
  ```
314
316
 
315
- `channel_name` → real `channelId`; `content` → the param that best matches body text. `processType` defaults to `1`, `enableChannelTouchLimits` defaults to `0`, and `isOccasionUp` defaults to `false`. `enableChannelTouchLimits` may be supplied as a boolean for compatibility, but `normalizedConfigObject` will convert it to `1` or `0`. When the param `type = TEXT`, also add `{ "config": "[{\"type\":\"paragraph\",\"children\":[{\"text\":\"<same as value>\"}]}]" }`. `contentList[].content` should be a JSON array; validation also accepts a JSON-stringified array for compatibility. When the param `type = OBJ_ARRAY`, `value` must be a JSON array, and the item must copy the complete child field definition from `query_channel_detail data.config.paramsList[].objArray`. First `contentList` entry must use `"pushLanguageCode": "default"`; generate extra languages per `languages`.
317
+ `channel_name` → real response `channel_id` → request `channelId`; `content` → the param that best matches body text. `processType` defaults to `1`, `enableChannelTouchLimits` defaults to `0`, and `isOccasionUp` defaults to `false`. `enableChannelTouchLimits` may be supplied as a boolean for compatibility, but `normalizedConfigObject` will convert it to `1` or `0`. When the param `type = TEXT`, also add `{ "config": "[{\"type\":\"paragraph\",\"children\":[{\"text\":\"<same as value>\"}]}]" }`. `contentList[].content` should be a JSON array; validation also accepts a JSON-stringified array for compatibility. When the param `type = OBJ_ARRAY`, `value` must be a JSON array, and the item must copy the complete child field definition from `data.item.config.params_list[].obj_array`. First `contentList` entry must use `"pushLanguageCode": "default"`; generate extra languages per `languages`.
316
318
 
317
319
  #### `wechat_push`
318
320
 
@@ -413,11 +415,11 @@ A working event-condition leaf (used inside `triggerRule[].events[]` for `event_
413
415
  "conditionType": "event",
414
416
  "eventCondition": {
415
417
  "eventName": "ta@active_user",
416
- "eventDesc": "用户活跃",
418
+ "eventDesc": "User active",
417
419
  "eventType": "event",
418
420
  "uceCalcuSymbol": "C030",
419
421
  "num": "1",
420
- "taPropQuota": { "analysis": "A200", "analysisDesc": "次数", "quota": "", "quotaDesc": "", "analysisParams": "" },
422
+ "taPropQuota": { "analysis": "A200", "analysisDesc": "Count", "quota": "", "quotaDesc": "", "analysisParams": "" },
421
423
  "recentDay": "0-30",
422
424
  "startTime": "",
423
425
  "endTime": "",
@@ -449,7 +451,7 @@ Before `preview`/`commit`, self-check:
449
451
 
450
452
  | Flag | Type | Required | Description |
451
453
  |---|---|---|---|
452
- | `--project_id` / `-p` | number | Yes | Project ID |
454
+ | `--project-id` / `-p` | number | Yes | Project ID |
453
455
  | `--req` | json | Yes | operation-based request object |
454
456
 
455
457
  The CLI injects `projectId` into both the top level and `req`; you do not write `req.projectId` yourself.
@@ -458,14 +460,14 @@ The CLI injects `projectId` into both the top level and `req`; you do not write
458
460
 
459
461
  `need_input` is a **soft prompt**, not a hard error:
460
462
 
461
- - **`errors` empty + `nextSlot` present** → server needs one more node config (trigger / channel / targetCluster). Answer with `operation=build` + `draftId` + `expectedVersion` + `slotAnswer`. If `nextSlot.targetNodeId` is present, `slotAnswer.nodeConfig` may contain only `config`; otherwise include `nodeId` or `id`.
462
- - **`errors` non-empty** → hard validation failure. Fix `nodes`/`edges` and `build` again (a new `draftId` is issued; the stale draft is cleaned by TTL).
463
+ - **`data.result.errors` empty + `data.result.next_slot` present** → server needs one more node config (trigger / channel / targetCluster). Answer with request fields `operation=build` + `draftId` + `expectedVersion` + `slotAnswer`. If response `next_slot.target_node_id` is present, request `slotAnswer.nodeConfig` may contain only `config`; otherwise include `nodeId` or `id`.
464
+ - **`data.result.errors` non-empty** → hard validation failure. Fix `nodes`/`edges` and `build` again (a new `data.result.draft_id` is issued; the stale draft is cleaned by TTL).
463
465
 
464
466
  ### 11.3 Minimal Working Example
465
467
 
466
468
  ```bash
467
469
  # 1) build
468
- ae-cli engage +save_flow --project_id 1 --req '{
470
+ ae-cli engage-flow flow save --project-id 1 --req '{
469
471
  "operation": "build",
470
472
  "flowName": "Welcome Flow",
471
473
  "flowDesc": "New user welcome flow",
@@ -476,24 +478,24 @@ ae-cli engage +save_flow --project_id 1 --req '{
476
478
  ],
477
479
  "edges": [ { "source": "n1", "target": "n2" } ]
478
480
  }'
479
- # → status = ready_to_preview, draftId = D, draftVersion = V0, confirmToken = T0
481
+ # → data.result: status = ready_to_preview, draft_id = D, draft_version = V0, confirm_token = T0
480
482
 
481
- # 2) preview (re-issues draftVersion V1 + confirmToken T1)
482
- ae-cli engage +save_flow --project_id 1 --req '{ "operation": "preview", "draftId": "D", "expectedVersion": 0 }'
483
+ # 2) preview (response re-issues draft_version V1 + confirm_token T1)
484
+ ae-cli engage-flow flow save --project-id 1 --req '{ "operation": "preview", "draftId": "D", "expectedVersion": 0 }'
483
485
 
484
- # 3) commit (use the preview draftVersion + confirmToken)
485
- ae-cli engage +save_flow --project_id 1 --req '{ "operation": "commit", "draftId": "D", "draftVersion": 1, "confirmToken": "T1" }'
486
- # → status = committed, result = flowUuid
486
+ # 3) commit (map preview draft_version/confirm_token to request draftVersion/confirmToken)
487
+ ae-cli engage-flow flow save --project-id 1 --req '{ "operation": "commit", "draftId": "D", "draftVersion": 1, "confirmToken": "T1" }'
488
+ # → data.result.status = committed, data.result.result.flow_uuid = <flow_uuid>
487
489
 
488
490
  # 4) verify
489
- ae-cli engage +flow_detail --project_id 1 --flow_uuid <flowUuid>
491
+ ae-cli engage-flow flow get --project-id 1 --flow-uuid <flow_uuid>
490
492
  ```
491
493
 
492
- > ⚠️ `commit` must use the `draftVersion` **and** `confirmToken` returned by **preview**, not by build. Build's values cause a token/version mismatch.
494
+ > ⚠️ `commit` must map preview's `data.result.draft_version` and `data.result.confirm_token` to request fields `draftVersion` and `confirmToken`. Build's values cause a token/version mismatch.
493
495
 
494
496
  ### 11.4 Output After Successful Commit
495
497
 
496
- The committed flow has `status = 0` (draft) — `commit` only freezes the draft into a flow version, it does **not** start delivery. To actually run it, enable it separately via `ae-cli engage +manage_flow` (with explicit user intent).
498
+ The committed flow has `status = 0` (draft) — `commit` only freezes the draft into a flow version, it does **not** start delivery. To actually run it, enable it separately via `ae-cli engage-flow flow manage` (with explicit user intent).
497
499
 
498
500
  Show the user the canvas name and a **clickable Markdown link**:
499
501
 
@@ -518,15 +520,15 @@ Output the complete `req` JSON for debugging plus a clear failure reason.
518
520
  | Symptom | Cause | Fix |
519
521
  |---|---|---|
520
522
  | `Unsupported save_flow operation: null` | Legacy `nodeList`/`edgeList` payload, or `operation` missing | Put `operation` = `build`/`preview`/`commit` in `req`, use `nodes`/`edges` |
521
- | `Flag --req.sourceFlowUuid is no longer supported` | Removed clone mode from an older protocol | Call `+flow_detail`, convert detail `nodeList`/`edgeList` into compact `nodes`/`edges`, then create with `operation=build` |
523
+ | `Flag --req.sourceFlowUuid is no longer supported` | Removed clone mode from an older protocol | Call `engage-flow flow get`, convert `data.flow.node_list`/`data.flow.edge_list` into compact request `nodes`/`edges`, then create with `operation=build` |
522
524
  | operation rejected (`SAVE`/`DRAFT`/`SUBMIT`/`mode`/`action`…) | Wrong field or wrong enum | `operation` is at `req.operation`; enum is only `build`/`preview`/`commit` |
523
525
  | `invalid_qp_relation: QP relation must be number 0 or 1` | `relation` sent as string | Use integer `0`/`1` |
524
526
  | `invalid_qp_leaf: QP property leaf must contain columnType/columnDesc` | userCondition leaf missing fields | Add `columnType` + `columnDesc` |
525
527
  | `required_by_minimal_valid` | `taPropQuota` missing fields | Add `quotaDesc` + `quota` + `analysisParams` |
526
528
  | `invalid_preset_count_expression` | Event count condition (`A200`) with empty quota uses wrong operator/num | Use `uceCalcuSymbol = C030` + `num = "1"` (see §9.2) |
527
529
  | `... branch must use its own dedicated exit ...` | Multiple paths share one `exit_flow` | Give every terminal branch its own `exit_flow` node (see §10.4) |
528
- | `disabled_channel: channelId must reference an enabled channel` | Channel status = 2 | `+update_channel_status --status 1` first |
529
- | commit token/version mismatch | Used build's `confirmToken`/`draftVersion` | Use the values returned by **preview** |
530
+ | `disabled_channel: channelId must reference an enabled channel` | Response `channel_status = 0` | `engage-setting channel update-status --status 1` first |
531
+ | commit token/version mismatch | Used build's `confirm_token`/`draft_version` | Use the values returned by **preview** |
530
532
  | `flowDesc` rejected | Over 200 chars | Trim to ≤ 200 |
531
533
  | `config` rejected as object where string expected | Wrong shape for `targetClusterQp` / TEXT rich-text | `JSON.stringify` those inner values |
532
534
 
@@ -535,9 +537,9 @@ Output the complete `req` JSON for debugging plus a clear failure reason.
535
537
  ## 13. Most Common Mistakes
536
538
 
537
539
  1. **Legacy `nodeList`/`edgeList`** — use `nodes`/`edges` with `operation=build`.
538
- 2. **Removed clone mode** — do not pass `sourceFlowUuid`; copy flows via `+flow_detail` and a fresh `operation=build` request.
540
+ 2. **Removed clone mode** — do not pass `sourceFlowUuid`; copy flows via `engage-flow flow get` and a fresh `operation=build` request.
539
541
  3. **Time units must be lowercase** — `day`, `hour`, `minute`, `week`, `month` (not `DAY`/`HOUR`).
540
- 4. **Do not invent `channelId`** — get it from `ae-cli engage +channel_list`.
542
+ 4. **Do not invent `channelId`** — get it from `ae-cli engage-setting channel list`.
541
543
  5. **Define branch IDs before referencing them** — `edge.sourceBranchId` must already exist in the upstream node `config`; for two-edge push action nodes, use `meetBranchId` and `notMeetBranchId`.
542
544
  6. **`targetClusterQp` is usually a string** — `JSON.stringify` the QP object.
543
545
  7. **TEXT rich-text `config` must also be a string** — not an object.
@@ -548,4 +550,4 @@ Output the complete `req` JSON for debugging plus a clear failure reason.
548
550
 
549
551
  ## 14. One-Sentence Summary
550
552
 
551
- Drive `+save_flow` as a state machine — `build` (`nodes`/`edges`, not `nodeList`/`edgeList` or `sourceFlowUuid`) → resolve any `need_input` slots → `preview` (take its fresh `draftVersion` + `confirmToken`) → `commit` → verify with `+flow_detail`; keep QP `relation` integer, fill `columnType`/`columnDesc` on userCondition leaves and `quotaDesc`/`quota`/`analysisParams` on `taPropQuota`, and ensure touchpoint channels are enabled before referencing them.
553
+ Drive `engage-flow flow save` as a state machine — `build` (`nodes`/`edges`, not `nodeList`/`edgeList` or `sourceFlowUuid`) → resolve any `need_input` slots → `preview` (map response `draft_version` + `confirm_token` to request `draftVersion` + `confirmToken`) → `commit` → verify with `engage-flow flow get`; keep QP `relation` integer, fill `columnType`/`columnDesc` on userCondition leaves and `quotaDesc`/`quota`/`analysisParams` on `taPropQuota`, and ensure touchpoint channels are enabled before referencing them.