@thinkingai/ae-cli 6.0.32 → 6.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/README.zh.md +3 -2
- package/dist/{auth-MEJ642P4.js → auth-ENM3FE6L.js} +3 -2
- package/dist/{auth-7H3HAAJ3.js → auth-UPGUOKTW.js} +13 -6
- package/dist/{capability-QW4AVJHI.js → capability-AJC5CBRT.js} +49 -17
- package/dist/{capability-SCRFGODD.js → capability-TQ5KU5Q6.js} +49 -17
- package/dist/chunk-24BAVOX3.js +51 -0
- package/dist/{chunk-MDJGDI6K.js → chunk-3KI3RRXX.js} +5 -5
- package/dist/{chunk-PKRD2IEM.js → chunk-3P3562ZX.js} +9 -7
- package/dist/{chunk-R77JT7XD.js → chunk-4Q5TNP4Q.js} +4 -4
- package/dist/{chunk-7OLGDQQ2.js → chunk-6CHYBI64.js} +2 -2
- package/dist/{chunk-6LEYLOV3.js → chunk-CPVTECJ3.js} +9 -7
- package/dist/{chunk-KCA6BA5D.js → chunk-DB4Q3ANU.js} +5 -3
- package/dist/{chunk-2NDGFQHW.js → chunk-E7UXXHO3.js} +11 -3
- package/dist/{chunk-I4A62X3N.js → chunk-HQ2A7ITL.js} +23 -14
- package/dist/chunk-IMMGMU54.js +674 -0
- package/dist/{chunk-AJTH7LT3.js → chunk-IR4ZLVPW.js} +4 -2
- package/dist/{chunk-TBHBYKXZ.js → chunk-ISY6HMHM.js} +2 -2
- package/dist/{chunk-KGJQCYVC.js → chunk-LCXU3AAT.js} +4 -2
- package/dist/chunk-LYVNONC4.js +86 -0
- package/dist/{chunk-DYOS6YY7.js → chunk-RGXCNC4N.js} +23 -14
- package/dist/{chunk-YCLVYFK7.js → chunk-V6FR6WTW.js} +45 -87
- package/dist/chunk-VTWMIC5L.js +27 -0
- package/dist/{cli-token-TVQRSE46.js → cli-token-4SBMXAUK.js} +6 -3
- package/dist/{client-2643Z5AG.js → client-PP5FETMW.js} +4 -3
- package/dist/community-report-client-KK2QBANO.js +145 -0
- package/dist/{config-7UZWDE74.js → config-RCCGHHYA.js} +6 -3
- package/dist/index.js +505 -220
- package/dist/{metadata-BFDL6RUK.js → metadata-3M5F2AED.js} +14 -13
- package/dist/{metadata-FCLDBXX2.js → metadata-W2MEOI4Z.js} +14 -13
- package/dist/{model-T3KZJWLW.js → model-OYQLXCQY.js} +3 -2
- package/dist/{raw-CN542NGT.js → raw-TPB7KSZO.js} +6 -4
- package/dist/{sync-ERNHDPB5.js → sync-EFJKFZK2.js} +6 -3
- package/dist/{te-agent-FCCWUDTJ.js → te-agent-K2OWMZXT.js} +3 -2
- package/dist/{te-analysis-PUVF5IF4.js → te-analysis-I73ZS4NK.js} +903 -33
- package/dist/{te-analysis-UJDOKPAN.js → te-analysis-Q7AZCDU4.js} +903 -33
- package/dist/{te-common-XLAGWNIV.js → te-common-ST3QPSXJ.js} +7 -6
- package/dist/{te-common-VUX3VOXZ.js → te-common-WSLIKKPC.js} +7 -6
- package/dist/te-community-WXGB6IOX.js +1659 -0
- package/dist/te-community-X2AHXGCA.js +1659 -0
- package/dist/{te-dataops-ZNJBQ6VT.js → te-dataops-MJV54MNY.js} +10 -8
- package/dist/{te-dataops-F36T656A.js → te-dataops-OA7I6HBG.js} +10 -8
- package/dist/{te-engage-QBCCME22.js → te-engage-2FSDUOIZ.js} +973 -1585
- package/dist/{te-engage-K4AEUPK5.js → te-engage-BMJ6UOUU.js} +973 -1585
- package/dist/{te-kb-AYCODNU6.js → te-kb-E7NSCBRB.js} +74 -12
- package/dist/{te-meta-UUROEODR.js → te-meta-Q4L6EE3Q.js} +7 -6
- package/dist/{te-meta-ARDIW3YI.js → te-meta-VHCN4Q62.js} +7 -6
- package/dist/{te-team-OKCOX7OE.js → te-team-PDKKW7Q5.js} +7 -6
- package/dist/tracking/i18n/resources/cli/en.json +4 -3
- package/dist/tracking/i18n/resources/cli/ja.json +4 -3
- package/dist/tracking/i18n/resources/cli/ko.json +4 -3
- package/dist/tracking/i18n/resources/cli/zh.json +4 -3
- package/package.json +6 -2
- package/skills/ae-agent/SKILL.md +2 -1
- package/skills/ae-analysis/SKILL.md +12 -1
- package/skills/ae-analysis/references/adhoc_export.md +2 -0
- package/skills/ae-analysis/references/adhoc_run.md +2 -0
- package/skills/ae-analysis/references/alert_create.md +25 -0
- package/skills/ae-analysis/references/alert_definition_schema_get.md +24 -0
- package/skills/ae-analysis/references/alert_delete.md +26 -0
- package/skills/ae-analysis/references/alert_detail_list.md +27 -0
- package/skills/ae-analysis/references/alert_get.md +25 -0
- package/skills/ae-analysis/references/alert_job_list.md +24 -0
- package/skills/ae-analysis/references/alert_list.md +27 -0
- package/skills/ae-analysis/references/alert_notice_config_list.md +24 -0
- package/skills/ae-analysis/references/alert_start.md +25 -0
- package/skills/ae-analysis/references/alert_stop.md +25 -0
- package/skills/ae-analysis/references/alert_update.md +26 -0
- package/skills/ae-analysis/references/bi_panel_create.md +3 -3
- package/skills/ae-analysis/references/check_delete.md +27 -0
- package/skills/ae-analysis/references/check_export.md +27 -0
- package/skills/ae-analysis/references/check_get.md +27 -0
- package/skills/ae-analysis/references/check_list.md +24 -0
- package/skills/ae-analysis/references/check_retry.md +27 -0
- package/skills/ae-analysis/references/check_run.md +25 -0
- package/skills/ae-analysis/references/command_index.md +61 -27
- package/skills/ae-analysis/references/dashboard_create.md +3 -3
- package/skills/ae-analysis/references/dashboard_daily_report_send.md +1 -0
- package/skills/ae-analysis/references/dashboard_daily_report_update.md +2 -0
- package/skills/ae-analysis/references/dashboard_report_data_export.md +3 -3
- package/skills/ae-analysis/references/dashboard_report_data_run.md +3 -3
- package/skills/ae-analysis/references/event_blacklist_add.md +25 -0
- package/skills/ae-analysis/references/event_blacklist_list.md +24 -0
- package/skills/ae-analysis/references/event_blacklist_update.md +26 -0
- package/skills/ae-analysis/references/ingest_error_list.md +27 -0
- package/skills/ae-analysis/references/ingest_summary.md +26 -0
- package/skills/ae-analysis/references/live_data_export.md +27 -0
- package/skills/ae-analysis/references/live_data_list.md +27 -0
- package/skills/ae-analysis/references/plan_change_log_export.md +27 -0
- package/skills/ae-analysis/references/plan_change_log_list.md +24 -0
- package/skills/ae-analysis/references/plan_delete_items.md +30 -0
- package/skills/ae-analysis/references/plan_export.md +26 -0
- package/skills/ae-analysis/references/plan_generate.md +27 -0
- package/skills/ae-analysis/references/plan_get.md +24 -0
- package/skills/ae-analysis/references/plan_import_excel.md +26 -0
- package/skills/ae-analysis/references/plan_save_items.md +27 -0
- package/skills/ae-analysis/references/plan_sync_from_meta.md +24 -0
- package/skills/ae-analysis/references/project_role_delete.md +4 -3
- package/skills/ae-analysis/references/project_role_get.md +4 -3
- package/skills/ae-analysis/references/project_role_user_list.md +4 -3
- package/skills/ae-analysis/references/query_create_result_cluster.md +2 -1
- package/skills/ae-analysis/references/report_data_export.md +3 -1
- package/skills/ae-analysis/references/report_data_run.md +12 -2
- package/skills/ae-analysis/references/sdk_sample_generate.md +24 -0
- package/skills/ae-analysis/references/user_cluster_create.md +2 -0
- package/skills/ae-analysis/references/user_cluster_create_id.md +2 -0
- package/skills/ae-analysis/references/user_cluster_update.md +2 -0
- package/skills/ae-analysis/references/user_cluster_update_id.md +2 -0
- package/skills/ae-analysis/references/user_tag_create.md +2 -0
- package/skills/ae-analysis/references/user_tag_create_id.md +2 -0
- package/skills/ae-analysis/references/user_tag_update.md +2 -0
- package/skills/ae-analysis/references/user_tag_update_id.md +2 -0
- package/skills/ae-analysis-global/SKILL.md +2 -0
- package/skills/ae-capability/SKILL.md +7 -5
- package/skills/ae-community/SKILL.md +72 -8
- package/skills/ae-community/references/community-chat-analysis.md +341 -0
- package/skills/ae-community/references/community-data-report.md +301 -0
- package/skills/ae-dataops/SKILL.md +2 -1
- package/skills/ae-engage/SKILL.md +129 -105
- package/skills/ae-engage/references/activity-activity-type.md +1 -1
- package/skills/ae-engage/references/activity-activity.md +1 -1
- package/skills/ae-engage/references/activity-approval.md +5 -7
- package/skills/ae-engage/references/activity-task.md +12 -18
- package/skills/ae-engage/references/activity-topic.md +39 -22
- package/skills/ae-engage/references/add-approver.md +4 -4
- package/skills/ae-engage/references/add-channel.md +10 -5
- package/skills/ae-engage/references/approval-approver-delete.md +1 -1
- package/skills/ae-engage/references/approver-list.md +4 -4
- package/skills/ae-engage/references/build-task-save-guide.md +13 -13
- package/skills/ae-engage/references/cancel-query-by-request-id.md +7 -6
- package/skills/ae-engage/references/channel-detail.md +14 -9
- package/skills/ae-engage/references/channel-list.md +15 -10
- package/skills/ae-engage/references/channel-mgmt.md +109 -0
- package/skills/ae-engage/references/channel-test-send.md +1 -1
- package/skills/ae-engage/references/channel-update-config.md +1 -1
- package/skills/ae-engage/references/channel_touch_limits_list.md +1 -1
- package/skills/ae-engage/references/client-param.md +34 -16
- package/skills/ae-engage/references/common-metric.md +85 -18
- package/skills/ae-engage/references/config-item-analysis-report.md +8 -27
- package/skills/ae-engage/references/config-item-strategy-comparison.md +7 -18
- package/skills/ae-engage/references/config-item-trigger-report.md +8 -35
- package/skills/ae-engage/references/delete-channel.md +5 -5
- package/skills/ae-engage/references/delete-flow.md +5 -5
- package/skills/ae-engage/references/flow-ab-split-node-report.md +11 -45
- package/skills/ae-engage/references/flow-detail.md +15 -10
- package/skills/ae-engage/references/flow-list.md +9 -4
- package/skills/ae-engage/references/flow-node-config-schema.md +9 -8
- package/skills/ae-engage/references/flow-node-detail-report.md +11 -46
- package/skills/ae-engage/references/flow-node-overview-report.md +11 -43
- package/skills/ae-engage/references/flow-process-report.md +12 -50
- package/skills/ae-engage/references/flow-update-remark.md +19 -0
- package/skills/ae-engage/references/manage-flow.md +19 -19
- package/skills/ae-engage/references/manage-task.md +5 -5
- package/skills/ae-engage/references/modify-flow-base-info.md +8 -8
- package/skills/ae-engage/references/preset-event.md +1 -1
- package/skills/ae-engage/references/push-language.md +1 -1
- package/skills/ae-engage/references/save-flow.md +54 -52
- package/skills/ae-engage/references/save-task.md +23 -17
- package/skills/ae-engage/references/scene-config-channel.md +90 -10
- package/skills/ae-engage/references/scene-config-group.md +1 -1
- package/skills/ae-engage/references/scene-config-item.md +27 -4
- package/skills/ae-engage/references/scene-config-metric.md +1 -1
- package/skills/ae-engage/references/scene-config-param.md +2 -2
- package/skills/ae-engage/references/scene-preset-metric.md +1 -1
- package/skills/ae-engage/references/scene-strategy.md +19 -3
- package/skills/ae-engage/references/scene-template.md +10 -4
- package/skills/ae-engage/references/task-data-detail.md +5 -67
- package/skills/ae-engage/references/task-data-overview.md +5 -35
- package/skills/ae-engage/references/task-detail.md +5 -5
- package/skills/ae-engage/references/task-experiment-report.md +5 -38
- package/skills/ae-engage/references/task-list.md +4 -4
- package/skills/ae-engage/references/task-metric-detail.md +5 -43
- package/skills/ae-engage/references/task-stats.md +5 -5
- package/skills/ae-engage/references/update-channel-status.md +6 -6
- package/skills/ae-engage/references/validate-flow-node-config.md +12 -11
- package/skills/ae-engage/references/whitelist-list.md +4 -4
- package/skills/ae-engage/references/whitelist.md +1 -1
- package/skills/ae-engage/references/workbench-workbench.md +1 -1
- package/skills/ae-generate-tracking-code/SKILL.md +4 -4
- package/skills/ae-generate-tracking-plan/SKILL.md +132 -11
- package/skills/ae-generate-tracking-plan/references/business-dimension-mapping.md +98 -33
- package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +16 -14
- package/skills/ae-kb/SKILL.md +11 -6
- package/skills/ae-metadata/SKILL.md +2 -1
- package/skills/ae-team/SKILL.md +2 -1
- package/dist/chunk-NOO24N7W.js +0 -11
- package/dist/chunk-TNW2CI4W.js +0 -129
- package/dist/te-community-PEZ2VEF7.js +0 -687
- package/dist/te-community-TSKJ652U.js +0 -687
- package/skills/ae-engage/references/config-channel-detail.md +0 -31
- package/skills/ae-engage/references/config-channel-list.md +0 -26
- package/skills/ae-engage/references/config-item-detail.md +0 -29
- package/skills/ae-engage/references/config-item-list.md +0 -18
- package/skills/ae-engage/references/copy-config-template.md +0 -28
- package/skills/ae-engage/references/delete-config-channel.md +0 -23
- package/skills/ae-engage/references/delete-config-item.md +0 -24
- package/skills/ae-engage/references/engage-scene-config-item.md +0 -69
- package/skills/ae-engage/references/manage-strategy.md +0 -73
- package/skills/ae-engage/references/strategy-detail.md +0 -72
- package/skills/ae-engage/references/strategy-list.md +0 -20
- package/skills/ae-engage/references/update-config-channel-status.md +0 -31
|
@@ -1,54 +1,19 @@
|
|
|
1
|
-
#
|
|
1
|
+
# engage-flow.report.node-detail
|
|
2
2
|
|
|
3
|
+
Query one flow node detail report through the L3 Capability Gateway.
|
|
3
4
|
|
|
4
|
-
|
|
5
|
+
Mapped command: `ae-cli capability run engage-flow.report.node-detail --input '<json>'`
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
## Input
|
|
7
8
|
|
|
8
|
-
|
|
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
|
-
|
|
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
|
|
52
|
-
|
|
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
|
-
#
|
|
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
|
-
|
|
5
|
+
Mapped command: `ae-cli capability run engage-flow.report.node-overview --input '<json>'`
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
## Input
|
|
7
8
|
|
|
8
|
-
|
|
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
|
-
|
|
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
|
|
49
|
-
|
|
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
|
-
#
|
|
1
|
+
# engage-flow.report.process
|
|
2
2
|
|
|
3
|
+
Query a process-level flow report through the L3 Capability Gateway.
|
|
3
4
|
|
|
4
|
-
|
|
5
|
+
Mapped command: `ae-cli capability run engage-flow.report.process --input '<json>'`
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
## Input
|
|
7
8
|
|
|
8
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
| `--
|
|
12
|
+
| `--project-id` / `-p` | number | Yes | Project ID |
|
|
13
13
|
| `--action` | string | Yes | action type |
|
|
14
|
-
| `--
|
|
15
|
-
| `--
|
|
16
|
-
| `--
|
|
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 `--
|
|
24
|
-
- `deny`: review denied, requires `--
|
|
25
|
-
- `cancel`: cancel review, requires `--
|
|
26
|
-
- `pause`: pause flow, requires `--
|
|
27
|
-
- `recover`: resume flow, requires `--
|
|
28
|
-
- `end`: end flow, requires `--
|
|
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
|
-
### `--
|
|
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
|
-
### `--
|
|
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
|
-
### `--
|
|
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 `--
|
|
86
|
-
- `pause`: must include `--
|
|
87
|
-
- `recover` / `end`: must include `--
|
|
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
|
|
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
|
|
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
|
|
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
|
-
| `--
|
|
13
|
-
| `--
|
|
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
|
|
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
|
|
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
|
|
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
|
-
| `--
|
|
13
|
-
| `--
|
|
14
|
-
| `--
|
|
15
|
-
| `--
|
|
16
|
-
| `--
|
|
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
|
|
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
|
|
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 (
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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 ──►
|
|
18
|
+
build ──► status = ready_to_preview ──► preview ──► commit ──► flow_uuid
|
|
19
19
|
│ │
|
|
20
|
-
└──► status = need_input ──► (answer slot, build again) └──►
|
|
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`).
|
|
26
|
-
- `preview`: validate the draft; **re-issues**
|
|
27
|
-
- `commit`: finalize the draft
|
|
28
|
-
- Always verify with `ae-cli engage
|
|
29
|
-
- To copy an existing flow, first call
|
|
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
|
|
38
|
-
4. Query `ae-cli engage
|
|
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
|
|
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
|
|
73
|
+
### Response shape
|
|
74
74
|
|
|
75
|
-
|
|
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
|
-
| `
|
|
81
|
-
| `
|
|
82
|
-
| `confidence` / `reason` | Router confidence and explanation for the selected mode |
|
|
83
|
-
| `
|
|
84
|
-
| `preview` | Human-readable preview; use it for user confirmation |
|
|
85
|
-
| `
|
|
86
|
-
| `warnings` / `errors` | Soft warnings and hard validation failures |
|
|
87
|
-
| `
|
|
88
|
-
| `result` |
|
|
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
|
|
184
|
+
ae-cli engage-setting channel list --project-id <projectId>
|
|
183
185
|
```
|
|
184
186
|
|
|
185
|
-
Match a real `
|
|
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 (`
|
|
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
|
|
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 `
|
|
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": "
|
|
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
|
-
| `--
|
|
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 + `
|
|
462
|
-
- **`errors` non-empty** → hard validation failure. Fix `nodes`/`edges` and `build` again (a new `
|
|
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
|
|
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,
|
|
481
|
+
# → data.result: status = ready_to_preview, draft_id = D, draft_version = V0, confirm_token = T0
|
|
480
482
|
|
|
481
|
-
# 2) preview (re-issues
|
|
482
|
-
ae-cli engage
|
|
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 (
|
|
485
|
-
ae-cli engage
|
|
486
|
-
# → status = committed, result =
|
|
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
|
|
491
|
+
ae-cli engage-flow flow get --project-id 1 --flow-uuid <flow_uuid>
|
|
490
492
|
```
|
|
491
493
|
|
|
492
|
-
> ⚠️ `commit` must
|
|
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
|
|
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
|
|
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` |
|
|
529
|
-
| commit token/version mismatch | Used build's `
|
|
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
|
|
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
|
|
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
|
|
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.
|