@thinkingai/ae-cli 6.0.39 → 6.0.41
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 +0 -2
- package/README.zh.md +0 -2
- package/dist/{auth-NN55553T.js → auth-GBMV6TEJ.js} +2 -2
- package/dist/{auth-GDV3H5I4.js → auth-NDSXE54J.js} +4 -4
- package/dist/{capability-TPORIKRQ.js → capability-CETVHGXF.js} +25 -15
- package/dist/{capability-VQNC5CF7.js → capability-ZSQBMNOE.js} +25 -15
- package/dist/{chunk-GJJA4CQZ.js → chunk-3FY3RJ26.js} +0 -4
- package/dist/chunk-4E3DB4MM.js +556 -0
- package/dist/{chunk-GS2P7LFD.js → chunk-5XUSIK27.js} +2 -2
- package/dist/{chunk-VTXHDCBW.js → chunk-AFXA7BRK.js} +2 -2
- package/dist/{chunk-7KQWSBSL.js → chunk-FNZA5RZA.js} +8 -8
- package/dist/{chunk-TS6BUGUY.js → chunk-J2N4PB56.js} +8 -8
- package/dist/{chunk-RBNKI5ZW.js → chunk-JUW4AJXN.js} +2 -2
- package/dist/{chunk-Z3OXWCIA.js → chunk-S5NTSDBS.js} +2 -2
- package/dist/{chunk-VKD5WQKN.js → chunk-VLWOLBGZ.js} +142 -24
- package/dist/chunk-WANVG6SY.js +556 -0
- package/dist/{chunk-YTG6Q75E.js → chunk-WZRX4KOH.js} +25 -3
- package/dist/{chunk-YV52FB5G.js → chunk-ZQKDZXDO.js} +1 -1
- package/dist/{cli-token-GL5MS5FK.js → cli-token-4UPER74P.js} +3 -3
- package/dist/{chunk-6A2FUCIS.js → client-L2YDMHQ6.js} +5 -6
- package/dist/{config-4VZNLBKF.js → config-OL2LWGBV.js} +4 -33
- package/dist/index.js +31 -44
- package/dist/{memory-RWJW4XFO.js → memory-MUP7PPL7.js} +4 -4
- package/dist/{memory-VO2ZJCRT.js → memory-U4O5PMXH.js} +4 -4
- package/dist/{metadata-YGTHR2XJ.js → metadata-UKZDNLLQ.js} +21 -11
- package/dist/{metadata-ZRN2GHPN.js → metadata-XXMJFN2M.js} +21 -11
- package/dist/{model-CLUIK3K5.js → model-JTUEO5M4.js} +2 -2
- package/dist/{sync-3REDHGY6.js → sync-MOSFNBVR.js} +5 -5
- package/dist/{te-agent-XNPELAKX.js → te-agent-IFKZDHZI.js} +25 -18
- package/dist/{te-analysis-GJI5FZUL.js → te-analysis-3QLLS35K.js} +1231 -456
- package/dist/{te-analysis-N2BRDJZ5.js → te-analysis-YSK2DBVL.js} +1231 -456
- package/dist/{te-community-SQXKE5OO.js → te-community-HNKVTERD.js} +207 -12
- package/dist/{te-community-TYSNU3NQ.js → te-community-IWE5B7W6.js} +208 -12
- package/dist/{te-dataops-OWIADNSM.js → te-dataops-KQPYNAE3.js} +262 -145
- package/dist/{te-dataops-5TM7WZDI.js → te-dataops-KXCEB4CS.js} +262 -145
- package/dist/{te-engage-F7V55KVW.js → te-engage-6RNGK5GH.js} +961 -42
- package/dist/{te-engage-FMYAYCNV.js → te-engage-IRMHTSQK.js} +961 -42
- package/dist/{te-kb-VRMEY3D4.js → te-kb-OIH3T6CS.js} +4 -4
- package/dist/{te-system-XGS5EQIQ.js → te-system-AZ3URMUO.js} +515 -11
- package/dist/{te-team-BZRDV2CM.js → te-team-GZPU6UWA.js} +5 -5
- package/dist/{update-HEDXGOJH.js → update-TOBFXF2V.js} +4 -4
- package/package.json +6 -6
- package/skills/ae-agent/SKILL.md +3 -3
- package/skills/ae-agent/references/list-skill-references.md +4 -4
- package/skills/ae-agent/references/read-skill-reference.md +10 -7
- package/skills/ae-agent/references/upload-skill-reference.md +11 -9
- package/skills/ae-analysis/SKILL.md +15 -12
- package/skills/ae-analysis/metadata_resolution.md +150 -0
- package/skills/ae-analysis/references/adhoc_export.md +17 -2
- package/skills/ae-analysis/references/adhoc_run.md +12 -8
- package/skills/ae-analysis/references/ai_models.md +31 -5
- package/skills/ae-analysis/references/analysis_data_retrieval.md +104 -16
- package/skills/ae-analysis/references/analysis_drilldown_contract.md +4 -4
- package/skills/ae-analysis/references/analysis_gateway_assets.md +12 -10
- package/skills/ae-analysis/references/artifact_download.md +4 -3
- package/skills/ae-analysis/references/asset_abnormal_list.md +5 -3
- package/skills/ae-analysis/references/asset_authentication_list.md +5 -3
- package/skills/ae-analysis/references/asset_search.md +5 -3
- package/skills/ae-analysis/references/bi_panel_page_data_export.md +1 -1
- package/skills/ae-analysis/references/bi_panel_page_data_run.md +4 -4
- package/skills/ae-analysis/references/catalog_export.md +28 -0
- package/skills/ae-analysis/references/catalog_list.md +44 -0
- package/skills/ae-analysis/references/command_index.md +72 -63
- package/skills/ae-analysis/references/dashboard_report_data_run.md +11 -4
- package/skills/ae-analysis/references/datatable_version_list.md +5 -3
- package/skills/ae-analysis/references/drilldown_entities_run.md +4 -4
- package/skills/ae-analysis/references/drilldown_events_run.md +2 -2
- package/skills/ae-analysis/references/drilldown_user_events_export.md +1 -1
- package/skills/ae-analysis/references/drilldown_user_events_run.md +2 -2
- package/skills/ae-analysis/references/entity_detail_run.md +4 -4
- package/skills/ae-analysis/references/entity_id_import_options.md +1 -1
- package/skills/ae-analysis/references/event_detail_run.md +4 -4
- package/skills/ae-analysis/references/event_export.md +21 -0
- package/skills/ae-analysis/references/event_list.md +7 -6
- package/skills/ae-analysis/references/exchange_rule_list.md +5 -3
- package/skills/ae-analysis/references/history_tag_data_drilldown_export.md +4 -2
- package/skills/ae-analysis/references/history_tag_data_drilldown_run.md +2 -2
- package/skills/ae-analysis/references/history_tag_data_run.md +2 -2
- package/skills/ae-analysis/references/metric_export.md +21 -0
- package/skills/ae-analysis/references/metric_list.md +8 -7
- package/skills/ae-analysis/references/property_export.md +21 -0
- package/skills/ae-analysis/references/property_list.md +9 -8
- package/skills/ae-analysis/references/query_context_get.md +20 -0
- package/skills/ae-analysis/references/query_create_result_cluster.md +1 -1
- package/skills/ae-analysis/references/report_change_log_list.md +1 -1
- package/skills/ae-analysis/references/report_create.md +3 -3
- package/skills/ae-analysis/references/report_data_run.md +8 -8
- package/skills/ae-analysis/references/report_update.md +3 -3
- package/skills/ae-analysis/references/report_version_rollback.md +1 -1
- package/skills/ae-analysis/references/rule_list.md +6 -4
- package/skills/ae-analysis/references/run_inspect.md +8 -5
- package/skills/ae-analysis/references/run_wait.md +37 -0
- package/skills/ae-analysis/references/user_cluster_export.md +13 -0
- package/skills/ae-analysis/references/user_cluster_list.md +6 -2
- package/skills/ae-analysis/references/user_cluster_member_export.md +5 -3
- package/skills/ae-analysis/references/user_cluster_member_list.md +4 -4
- package/skills/ae-analysis/references/user_tag_export.md +13 -0
- package/skills/ae-analysis/references/user_tag_list.md +6 -2
- package/skills/ae-analysis/references/user_tag_member_export.md +5 -3
- package/skills/ae-analysis/references/user_tag_member_list.md +4 -4
- package/skills/ae-analysis/references/virtual_property_create.md +2 -2
- package/skills/ae-community/SKILL.md +2 -2
- package/skills/ae-dataops/SKILL.md +4 -3
- package/skills/ae-dataops/references/dataops-flow-create.md +47 -3
- package/skills/ae-engage/SKILL.md +57 -7
- package/skills/ae-engage/references/activity-data-detail.md +61 -0
- package/skills/ae-engage/references/build-task-save-guide.md +37 -1
- package/skills/ae-engage/references/cancel-query-run.md +31 -0
- package/skills/ae-engage/references/common-metric.md +45 -0
- package/skills/ae-engage/references/config-item-analysis-report.md +14 -1
- package/skills/ae-engage/references/config-item-strategy-comparison.md +11 -1
- package/skills/ae-engage/references/config-item-trigger-report.md +15 -1
- package/skills/ae-engage/references/flow-metric-detail-report.md +134 -0
- package/skills/ae-engage/references/flow-metric-update.md +77 -0
- package/skills/ae-engage/references/flow-metric-user.md +118 -0
- package/skills/ae-engage/references/flow-node-metric-user.md +122 -0
- package/skills/ae-engage/references/flow-node-user.md +122 -0
- package/skills/ae-engage/references/preset-event.md +2 -0
- package/skills/ae-engage/references/push-record-query.md +32 -1
- package/skills/ae-engage/references/save-flow.md +14 -0
- package/skills/ae-engage/references/save-task.md +44 -0
- package/skills/ae-engage/references/scene-strategy-audience.md +12 -7
- package/skills/ae-engage/references/task-data-detail.md +9 -2
- package/skills/ae-engage/references/task-metric-detail.md +9 -2
- package/skills/ae-engage/references/task-submit-approval.md +3 -0
- package/skills/ae-metadata/SKILL.md +2 -1
- package/skills/ae-metadata/references/metadata_data_table_download.md +10 -2
- package/skills/ae-metadata/references/metadata_data_table_list.md +5 -2
- package/skills/ae-system/SKILL.md +66 -3
- package/dist/chunk-DT6Y3TD7.js +0 -232
- package/dist/chunk-MVDZ7DBQ.js +0 -231
- package/dist/chunk-NBPKWKRA.js +0 -51
- package/dist/client-DAIPF7XN.js +0 -23
- package/dist/raw-52B4UKO4.js +0 -71
- package/dist/te-meta-53BVXPFI.js +0 -95
- package/dist/te-meta-TOCBPBXI.js +0 -95
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Flow metric update
|
|
2
|
+
|
|
3
|
+
Use this reference when the user asks to configure, replace, or save effect metric settings for a flow canvas.
|
|
4
|
+
|
|
5
|
+
Mapped CLI command:
|
|
6
|
+
|
|
7
|
+
- `ae-cli engage-flow metric update`
|
|
8
|
+
|
|
9
|
+
Mapped capability:
|
|
10
|
+
|
|
11
|
+
- `engage-flow.metric.update`
|
|
12
|
+
|
|
13
|
+
## Safety
|
|
14
|
+
|
|
15
|
+
This is a write command. Only run it when the user explicitly asks to change a flow's metric configuration. Use `--dry-run` first when the final `metric_map` was assembled by an agent.
|
|
16
|
+
|
|
17
|
+
The backend uses a clean-and-insert update model: omitted existing metric settings may be deleted. Treat `metric_map` as the complete desired metric configuration for the flow, not a partial patch.
|
|
18
|
+
|
|
19
|
+
## Required input
|
|
20
|
+
|
|
21
|
+
- `--project-id`
|
|
22
|
+
- `--flow-id`
|
|
23
|
+
- `--metric-map '<metric_map_json>'`
|
|
24
|
+
|
|
25
|
+
## Parameter guidance
|
|
26
|
+
|
|
27
|
+
- `flow_id` is the logical flow ID used by the flow canvas APIs.
|
|
28
|
+
- `metric_map` is a JSON object keyed by metric target-user group. Valid first-level keys are exactly:
|
|
29
|
+
- `trigger`
|
|
30
|
+
- `view`
|
|
31
|
+
- `click`
|
|
32
|
+
- `ab_test`
|
|
33
|
+
- Preserve first-level group keys exactly. Do not convert `ab_test` to `abTest`.
|
|
34
|
+
- Each group value is an array of Hermes metric DTO objects.
|
|
35
|
+
- Use DTO field names from `HermesMetricReqDTO`: `metricSettingId`, `metricType`, `metricName`, `metricQp`, `metricWindowNum`, `metricWindowTimeUnit`, `displayName`, `orderId`, `note`, and `metricParams`.
|
|
36
|
+
- The CLI boundary accepts snake_case nested DTO fields too, but prefer the native camelCase names above in examples and generated payloads.
|
|
37
|
+
- For existing bindings, include `metricSettingId` so Hermes updates that binding instead of treating it as a new binding.
|
|
38
|
+
- For preset metrics, use `metricType: 1` and a real `metricName` discovered from `engage-setting common-metric list/get`.
|
|
39
|
+
- For custom metrics, use `metricType: 2` plus a complete `metricQp`, `metricWindowNum`, `metricWindowTimeUnit`, and `displayName`; Hermes creates the custom metric name.
|
|
40
|
+
- Do not invent metric names, event names, property names, QP structures, or metric-setting IDs. Read the existing flow detail and available metric definitions first, then update the complete desired metric map.
|
|
41
|
+
|
|
42
|
+
## Examples
|
|
43
|
+
|
|
44
|
+
Dry-run updating an existing binding:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
ae-cli --dry-run engage-flow metric update \
|
|
48
|
+
--project-id 1 \
|
|
49
|
+
--flow-id flow_id_123 \
|
|
50
|
+
--metric-map '{"trigger":[{"metricSettingId":"setting_1","metricType":1,"metricName":"purchase_count","displayName":"Purchase count","orderId":1}]}'
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Apply the same update:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
ae-cli engage-flow metric update \
|
|
57
|
+
--project-id 1 \
|
|
58
|
+
--flow-id flow_id_123 \
|
|
59
|
+
--metric-map '{"trigger":[{"metricSettingId":"setting_1","metricType":1,"metricName":"purchase_count","displayName":"Purchase count","orderId":1}]}'
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Add a custom metric to the `view` group:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
ae-cli engage-flow metric update \
|
|
66
|
+
--project-id 1 \
|
|
67
|
+
--flow-id flow_id_123 \
|
|
68
|
+
--metric-map '{"view":[{"metricType":2,"metricQp":"{\"type\":0,\"eventName\":\"purchase\",\"analysis\":\"A100\",\"filts\":[]}","metricWindowNum":1,"metricWindowTimeUnit":"day","displayName":"Purchase after view","orderId":1}]}'
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Common mistakes
|
|
72
|
+
|
|
73
|
+
- Do not pass `flow_uuid`; this command requires `flow_id`.
|
|
74
|
+
- Do not pass `metricId`; `HermesMetricReqDTO` has no `metricId` field. Use `metricSettingId` for an existing binding or `metricName` for a preset metric.
|
|
75
|
+
- Do not use arbitrary first-level keys such as `custom`, `ACTION`, or `channel`; use only `trigger`, `view`, `click`, or `ab_test`.
|
|
76
|
+
- Do not submit only the group you want to change unless deleting omitted groups is intended.
|
|
77
|
+
- Do not use this command to query report data. For report metric details, use `references/flow-metric-detail-report.md`.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Flow metric-user
|
|
2
|
+
|
|
3
|
+
Use this reference when the user asks for users behind a process-level flow metric segment, such as a cell in the flow process report.
|
|
4
|
+
|
|
5
|
+
Mapped CLI commands:
|
|
6
|
+
|
|
7
|
+
- `ae-cli engage-flow metric-user run`
|
|
8
|
+
- `ae-cli engage-flow metric-user export`
|
|
9
|
+
|
|
10
|
+
Mapped capabilities:
|
|
11
|
+
|
|
12
|
+
- `engage-flow.metric-user.run`
|
|
13
|
+
- `engage-flow.metric-user.export`
|
|
14
|
+
|
|
15
|
+
Hermes SQL source: `FlowReportDataService#buildClusterUserSql`.
|
|
16
|
+
|
|
17
|
+
## Choose the command
|
|
18
|
+
|
|
19
|
+
- Use `run` for a bounded inline preview of matched users.
|
|
20
|
+
- Use `export` for the full user-detail artifact.
|
|
21
|
+
- This command does not require `--node-uuid`; use `node-user` or `node-metric-user` for node-level cells.
|
|
22
|
+
|
|
23
|
+
## Required input
|
|
24
|
+
|
|
25
|
+
- `--project-id`
|
|
26
|
+
- one of `--flow-id` or `--flow-uuid`
|
|
27
|
+
- either `--cluster-def '<cluster_def_json>'` or all of `--indicator-name`, `--start-time`, and `--end-time`
|
|
28
|
+
|
|
29
|
+
## Optional input
|
|
30
|
+
|
|
31
|
+
- `--branch-id`
|
|
32
|
+
- `--request-id`
|
|
33
|
+
- `--data-view-type` (default: `2`)
|
|
34
|
+
- `--is-summary`
|
|
35
|
+
- `--push-language-code`
|
|
36
|
+
- `--user-time-zone`
|
|
37
|
+
- `--show-time-zone`
|
|
38
|
+
- `run` only: `--limit`
|
|
39
|
+
- `export` only: `--artifact-format csv|jsonl` (default: `jsonl`)
|
|
40
|
+
- `--timeout-seconds`
|
|
41
|
+
|
|
42
|
+
Only pass fields listed above. Hermes rejects extra top-level fields for this capability.
|
|
43
|
+
|
|
44
|
+
## Segment selector contract
|
|
45
|
+
|
|
46
|
+
Prefer the explicit report fields. Set `--indicator-name` to the metric key returned by the process report and reuse the report date range. Hermes builds the internal cluster definition.
|
|
47
|
+
|
|
48
|
+
`--cluster-def` remains available for compatibility. When used, it must come from the selected report segment; do not invent or hand-minify partial JSON.
|
|
49
|
+
|
|
50
|
+
Required keys:
|
|
51
|
+
|
|
52
|
+
- `indicatorName`
|
|
53
|
+
- `dataViewType`
|
|
54
|
+
- `isSummary`
|
|
55
|
+
|
|
56
|
+
Date keys depend on `isSummary`:
|
|
57
|
+
|
|
58
|
+
- `isSummary=true`: require `filterStartDate` and `filterEndDate`
|
|
59
|
+
- `isSummary=false`: require `startDate` and `endDate`
|
|
60
|
+
|
|
61
|
+
Dates must use `yyyy-MM-dd`, and start must be earlier than or equal to end.
|
|
62
|
+
|
|
63
|
+
## Examples
|
|
64
|
+
|
|
65
|
+
Inline preview:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
ae-cli engage-flow metric-user run \
|
|
69
|
+
--project-id 1 \
|
|
70
|
+
--flow-id flow_id_123 \
|
|
71
|
+
--indicator-name entry \
|
|
72
|
+
--start-time 2026-04-01 \
|
|
73
|
+
--end-time 2026-04-07 \
|
|
74
|
+
--limit 100 \
|
|
75
|
+
--timeout-seconds 120
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Export all matched users:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
ae-cli engage-flow metric-user export \
|
|
82
|
+
--project-id 1 \
|
|
83
|
+
--flow-id flow_id_123 \
|
|
84
|
+
--indicator-name entry \
|
|
85
|
+
--start-time 2026-04-01 \
|
|
86
|
+
--end-time 2026-04-07 \
|
|
87
|
+
--artifact-format csv \
|
|
88
|
+
--timeout-seconds 21600
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Export lifecycle
|
|
92
|
+
|
|
93
|
+
`export` returns `run_id` and `artifact_id`. Poll and download with:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
ae-cli engage-query run inspect --run-id <run_id>
|
|
97
|
+
ae-cli engage-query artifact download \
|
|
98
|
+
--run-id <run_id> \
|
|
99
|
+
--artifact-id <artifact_id> \
|
|
100
|
+
--output ./flow-metric-users.csv.gz
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Downloaded artifacts are gzip-compressed; keep the `.gz` suffix. Cancel running async work with:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
ae-cli engage-query query cancel --run-id <run_id>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Output shape
|
|
110
|
+
|
|
111
|
+
- `run` returns `rows`, `total`, and `column_meta`.
|
|
112
|
+
- `export` writes one row per matched user. The primary column is usually `#user_id`.
|
|
113
|
+
|
|
114
|
+
## Common mistakes
|
|
115
|
+
|
|
116
|
+
- Do not pass `--node-uuid` unless the process-level report segment actually needs branch/node context; for normal node cells use `node-user`.
|
|
117
|
+
- Use `--data-view-type`, not the report-only `--data-dim-type`, when selecting users without `--cluster-def`.
|
|
118
|
+
- If `cluster_def` is missing the date pair implied by `isSummary`, Hermes rejects it before SQL execution.
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Flow node-metric-user
|
|
2
|
+
|
|
3
|
+
Use this reference when the user asks for users behind a node-level metric segment on the flow canvas.
|
|
4
|
+
|
|
5
|
+
Mapped CLI commands:
|
|
6
|
+
|
|
7
|
+
- `ae-cli engage-flow node-metric-user run`
|
|
8
|
+
- `ae-cli engage-flow node-metric-user export`
|
|
9
|
+
|
|
10
|
+
Mapped capabilities:
|
|
11
|
+
|
|
12
|
+
- `engage-flow.node-metric-user.run`
|
|
13
|
+
- `engage-flow.node-metric-user.export`
|
|
14
|
+
|
|
15
|
+
Hermes SQL source: `FlowNodeReportDataService#buildMetricClusterUserSql`.
|
|
16
|
+
|
|
17
|
+
## Choose the command
|
|
18
|
+
|
|
19
|
+
- Use `run` for a bounded inline preview of users behind the selected node metric segment.
|
|
20
|
+
- Use `export` for the full user-detail artifact.
|
|
21
|
+
- Use `node-user` for node data segments that are not metric-detail segments.
|
|
22
|
+
- Use `metric-user` for process-level flow metric cells.
|
|
23
|
+
|
|
24
|
+
## Required input
|
|
25
|
+
|
|
26
|
+
- `--project-id`
|
|
27
|
+
- one of `--flow-id` or `--flow-uuid`
|
|
28
|
+
- `--node-uuid`
|
|
29
|
+
- either `--cluster-def '<cluster_def_json>'` or all of `--indicator-name`, `--start-time`, and `--end-time`
|
|
30
|
+
|
|
31
|
+
## Optional input
|
|
32
|
+
|
|
33
|
+
- `--branch-id`
|
|
34
|
+
- `--request-id`
|
|
35
|
+
- `--data-view-type` (default: `2`)
|
|
36
|
+
- `--is-summary`
|
|
37
|
+
- `--push-language-code`
|
|
38
|
+
- `--user-time-zone`
|
|
39
|
+
- `--show-time-zone`
|
|
40
|
+
- `run` only: `--limit`
|
|
41
|
+
- `export` only: `--artifact-format csv|jsonl` (default: `jsonl`)
|
|
42
|
+
- `--timeout-seconds`
|
|
43
|
+
|
|
44
|
+
Only pass fields listed above. Hermes rejects extra top-level fields for this capability.
|
|
45
|
+
|
|
46
|
+
## Segment selector contract
|
|
47
|
+
|
|
48
|
+
Prefer the explicit report fields. Set `--indicator-name` to the metric key returned by the node metric report and reuse the report date range. Hermes builds the internal cluster definition.
|
|
49
|
+
|
|
50
|
+
`--cluster-def` remains available for compatibility. When used, it must come from the selected node metric report segment; do not invent it.
|
|
51
|
+
|
|
52
|
+
Required keys:
|
|
53
|
+
|
|
54
|
+
- `indicatorName`
|
|
55
|
+
- `dataViewType`
|
|
56
|
+
- `isSummary`
|
|
57
|
+
|
|
58
|
+
Date keys depend on `isSummary`:
|
|
59
|
+
|
|
60
|
+
- `isSummary=true`: require `filterStartDate` and `filterEndDate`
|
|
61
|
+
- `isSummary=false`: require `startDate` and `endDate`
|
|
62
|
+
|
|
63
|
+
Dates must use `yyyy-MM-dd`, and start must be earlier than or equal to end.
|
|
64
|
+
|
|
65
|
+
## Examples
|
|
66
|
+
|
|
67
|
+
Inline preview:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
ae-cli engage-flow node-metric-user run \
|
|
71
|
+
--project-id 1 \
|
|
72
|
+
--flow-id flow_id_123 \
|
|
73
|
+
--node-uuid node_uuid_123 \
|
|
74
|
+
--indicator-name metric_setting_id_123 \
|
|
75
|
+
--start-time 2026-04-01 \
|
|
76
|
+
--end-time 2026-04-07 \
|
|
77
|
+
--limit 100 \
|
|
78
|
+
--timeout-seconds 120
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Export all matched users:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
ae-cli engage-flow node-metric-user export \
|
|
85
|
+
--project-id 1 \
|
|
86
|
+
--flow-id flow_id_123 \
|
|
87
|
+
--node-uuid node_uuid_123 \
|
|
88
|
+
--indicator-name metric_setting_id_123 \
|
|
89
|
+
--start-time 2026-04-01 \
|
|
90
|
+
--end-time 2026-04-07 \
|
|
91
|
+
--artifact-format csv \
|
|
92
|
+
--timeout-seconds 21600
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Export lifecycle
|
|
96
|
+
|
|
97
|
+
`export` returns `run_id` and `artifact_id`. Poll and download with:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
ae-cli engage-query run inspect --run-id <run_id>
|
|
101
|
+
ae-cli engage-query artifact download \
|
|
102
|
+
--run-id <run_id> \
|
|
103
|
+
--artifact-id <artifact_id> \
|
|
104
|
+
--output ./flow-node-metric-users.csv.gz
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Downloaded artifacts are gzip-compressed; keep the `.gz` suffix. Cancel running async work with:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
ae-cli engage-query query cancel --run-id <run_id>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Output shape
|
|
114
|
+
|
|
115
|
+
- `run` returns `rows`, `total`, and `column_meta`.
|
|
116
|
+
- `export` writes one row per matched user. The primary column is usually `#user_id`.
|
|
117
|
+
|
|
118
|
+
## Common mistakes
|
|
119
|
+
|
|
120
|
+
- `--node-uuid` is required and must be the canvas node UUID.
|
|
121
|
+
- Do not use this for node data cells; use `node-user` so Hermes routes to the non-metric SQL builder.
|
|
122
|
+
- Use `--data-view-type`, not the report-only `--data-dim-type`, when selecting users without `--cluster-def`.
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Flow node-user
|
|
2
|
+
|
|
3
|
+
Use this reference when the user asks for users behind a node-level data segment on the flow canvas.
|
|
4
|
+
|
|
5
|
+
Mapped CLI commands:
|
|
6
|
+
|
|
7
|
+
- `ae-cli engage-flow node-user run`
|
|
8
|
+
- `ae-cli engage-flow node-user export`
|
|
9
|
+
|
|
10
|
+
Mapped capabilities:
|
|
11
|
+
|
|
12
|
+
- `engage-flow.node-user.run`
|
|
13
|
+
- `engage-flow.node-user.export`
|
|
14
|
+
|
|
15
|
+
Hermes SQL source: `FlowNodeReportDataService#buildClusterUserSql`.
|
|
16
|
+
|
|
17
|
+
## Choose the command
|
|
18
|
+
|
|
19
|
+
- Use `run` for a bounded inline preview of users in the selected node data segment.
|
|
20
|
+
- Use `export` for the full user-detail artifact.
|
|
21
|
+
- Use `metric-user` for process-level flow metric cells.
|
|
22
|
+
- Use `node-metric-user` for node metric cells.
|
|
23
|
+
|
|
24
|
+
## Required input
|
|
25
|
+
|
|
26
|
+
- `--project-id`
|
|
27
|
+
- one of `--flow-id` or `--flow-uuid`
|
|
28
|
+
- `--node-uuid`
|
|
29
|
+
- either `--cluster-def '<cluster_def_json>'` or all of `--indicator-name`, `--start-time`, and `--end-time`
|
|
30
|
+
|
|
31
|
+
## Optional input
|
|
32
|
+
|
|
33
|
+
- `--branch-id`
|
|
34
|
+
- `--request-id`
|
|
35
|
+
- `--data-view-type` (default: `2`)
|
|
36
|
+
- `--is-summary`
|
|
37
|
+
- `--push-language-code`
|
|
38
|
+
- `--user-time-zone`
|
|
39
|
+
- `--show-time-zone`
|
|
40
|
+
- `run` only: `--limit`
|
|
41
|
+
- `export` only: `--artifact-format csv|jsonl` (default: `jsonl`)
|
|
42
|
+
- `--timeout-seconds`
|
|
43
|
+
|
|
44
|
+
Only pass fields listed above. Hermes rejects extra top-level fields for this capability.
|
|
45
|
+
|
|
46
|
+
## Segment selector contract
|
|
47
|
+
|
|
48
|
+
Prefer the explicit report fields. Set `--indicator-name` to the metric key returned by the node report and reuse the report date range. Hermes builds the internal cluster definition.
|
|
49
|
+
|
|
50
|
+
`--cluster-def` remains available for compatibility. When used, it must come from the selected node report segment; do not invent it.
|
|
51
|
+
|
|
52
|
+
Required keys:
|
|
53
|
+
|
|
54
|
+
- `indicatorName`
|
|
55
|
+
- `dataViewType`
|
|
56
|
+
- `isSummary`
|
|
57
|
+
|
|
58
|
+
Date keys depend on `isSummary`:
|
|
59
|
+
|
|
60
|
+
- `isSummary=true`: require `filterStartDate` and `filterEndDate`
|
|
61
|
+
- `isSummary=false`: require `startDate` and `endDate`
|
|
62
|
+
|
|
63
|
+
Dates must use `yyyy-MM-dd`, and start must be earlier than or equal to end.
|
|
64
|
+
|
|
65
|
+
## Examples
|
|
66
|
+
|
|
67
|
+
Inline preview:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
ae-cli engage-flow node-user run \
|
|
71
|
+
--project-id 1 \
|
|
72
|
+
--flow-id flow_id_123 \
|
|
73
|
+
--node-uuid node_uuid_123 \
|
|
74
|
+
--indicator-name entry \
|
|
75
|
+
--start-time 2026-04-01 \
|
|
76
|
+
--end-time 2026-04-07 \
|
|
77
|
+
--limit 100 \
|
|
78
|
+
--timeout-seconds 120
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Export all matched users:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
ae-cli engage-flow node-user export \
|
|
85
|
+
--project-id 1 \
|
|
86
|
+
--flow-id flow_id_123 \
|
|
87
|
+
--node-uuid node_uuid_123 \
|
|
88
|
+
--indicator-name entry \
|
|
89
|
+
--start-time 2026-04-01 \
|
|
90
|
+
--end-time 2026-04-07 \
|
|
91
|
+
--artifact-format csv \
|
|
92
|
+
--timeout-seconds 21600
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Export lifecycle
|
|
96
|
+
|
|
97
|
+
`export` returns `run_id` and `artifact_id`. Poll and download with:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
ae-cli engage-query run inspect --run-id <run_id>
|
|
101
|
+
ae-cli engage-query artifact download \
|
|
102
|
+
--run-id <run_id> \
|
|
103
|
+
--artifact-id <artifact_id> \
|
|
104
|
+
--output ./flow-node-users.csv.gz
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Downloaded artifacts are gzip-compressed; keep the `.gz` suffix. Cancel running async work with:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
ae-cli engage-query query cancel --run-id <run_id>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Output shape
|
|
114
|
+
|
|
115
|
+
- `run` returns `rows`, `total`, and `column_meta`.
|
|
116
|
+
- `export` writes one row per matched user. The primary column is usually `#user_id`.
|
|
117
|
+
|
|
118
|
+
## Common mistakes
|
|
119
|
+
|
|
120
|
+
- `--node-uuid` is required and must be the canvas node UUID.
|
|
121
|
+
- Do not use this for node metric cells; use `node-metric-user` so Hermes routes to the metric SQL builder.
|
|
122
|
+
- Use `--data-view-type`, not the report-only `--data-dim-type`, when selecting users without `--cluster-def`.
|
|
@@ -12,6 +12,8 @@ ae-cli engage-setting preset-event update --project-id <project_id> \
|
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
At least one definition is required for update. Event filters use semantic `field`, `operator`, `values`, and `and`/`or`; Hermes resolves project metadata and compiles the stored event object.
|
|
15
|
+
`field` accepts a technical-name string or `{"name":"...","type":"event_property"}`. Unknown
|
|
16
|
+
semantic fields, unsupported relations/operators, and invalid time ranges are rejected.
|
|
15
17
|
|
|
16
18
|
List hides the stored event QP and returns each semantic field plus its conversion status:
|
|
17
19
|
|
|
@@ -23,4 +23,35 @@ ae-cli engage-task push-record query \
|
|
|
23
23
|
|
|
24
24
|
## Output
|
|
25
25
|
|
|
26
|
-
Returns `record_type`, `items`, `total`, and pagination metadata when the selected backend record type is paginated.
|
|
26
|
+
Returns `record_type`, `items`, `total`, and pagination metadata when the selected backend record type is paginated.
|
|
27
|
+
|
|
28
|
+
The count fields depend on `record_type`:
|
|
29
|
+
|
|
30
|
+
| `record_type` | Actual push field | Successful push field |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| `scheduled` | `actual_trigger_num` | `trigger_num` |
|
|
33
|
+
| `user_time_zone` | `actual_trigger_num` | `trigger_num` |
|
|
34
|
+
| `triggered` | `actual_push_num` | `push_success_num` |
|
|
35
|
+
|
|
36
|
+
Scheduled records and nested user-time-zone execution records use stable English `status_name`
|
|
37
|
+
values:
|
|
38
|
+
|
|
39
|
+
| `status` | `status_name` |
|
|
40
|
+
| --- | --- |
|
|
41
|
+
| `0` | `Waiting` |
|
|
42
|
+
| `1` | `Ready` |
|
|
43
|
+
| `2` | `Pushing` |
|
|
44
|
+
| `3` | `Sent` |
|
|
45
|
+
| `4` | `Retrying` |
|
|
46
|
+
| `5` | `Failed` |
|
|
47
|
+
|
|
48
|
+
Top-level user-time-zone task instances use a separate status enum:
|
|
49
|
+
|
|
50
|
+
| `status` | `status_name` |
|
|
51
|
+
| --- | --- |
|
|
52
|
+
| `0` | `Sending` |
|
|
53
|
+
| `1` | `Sent` |
|
|
54
|
+
| `2` | `Finished` |
|
|
55
|
+
|
|
56
|
+
Use `status` and the count fields for automated assertions. `status_name` never returns an internal
|
|
57
|
+
`hermes.*` localization key.
|
|
@@ -177,6 +177,14 @@ ae-cli analysis user-cluster get --project-id <projectId> --cluster-names '["<co
|
|
|
177
177
|
```
|
|
178
178
|
|
|
179
179
|
Prefer the created cluster reference for an existing-cluster audience. For a custom audience, pass the semantic definition as `targetDefinitionRequest`; do not copy or construct stored execution QP.
|
|
180
|
+
Use only the documented semantic fields. Unknown fields are rejected, and property `field` values
|
|
181
|
+
may be technical-name strings or `{name,type}` references.
|
|
182
|
+
|
|
183
|
+
Custom flow audiences support `behavior_sequence`. When `flow get` returns relation-preserving
|
|
184
|
+
top-level `compound` nodes, retain them unchanged in subsequent saves; they preserve distinct
|
|
185
|
+
member-group, event-group, and outer relations.
|
|
186
|
+
For the second sequence step, omit `relative_to_first` or set it to `false`; use `true` only
|
|
187
|
+
from the third step onward when its window must be measured from step 1.
|
|
180
188
|
|
|
181
189
|
### 5.2 Project Channels
|
|
182
190
|
|
|
@@ -239,6 +247,12 @@ Inside action nodes: `channel_name` → real `channelId`; `content` → `content
|
|
|
239
247
|
3. Every path must eventually end at `exit_flow`.
|
|
240
248
|
4. `config` may be a JSON object or a JSON string. `targetDefinitionRequest` itself is a JSON object.
|
|
241
249
|
5. Hermes compiles `targetDefinitionRequest` and Flow-specific `triggerDefinition` fields (including branch definitions) on `nodes[]`, `nodeConfigs[]`, and `slotAnswer.nodeConfig.config` before legacy node validation. `node-config validate` uses the same compile path. Other compatible input normalization remains unchanged.
|
|
250
|
+
6. Never send `targetClusterQp`; it is a server-authored execution field. Every `event` and
|
|
251
|
+
`behavior_sequence` inside `targetDefinitionRequest` must include its own `time_range`.
|
|
252
|
+
Entry-node `startDate` / `endDate` values do not provide an audience-event time range.
|
|
253
|
+
7. Audience fields must resolve through the current Flow editor metadata scope. If Hermes
|
|
254
|
+
rejects a field, choose another property returned for the same project, timezone, and user
|
|
255
|
+
entity instead of constructing persisted metadata manually.
|
|
242
256
|
|
|
243
257
|
### 7.2 Common Node Types
|
|
244
258
|
|
|
@@ -120,6 +120,39 @@ Task aggregate and completion event definitions support:
|
|
|
120
120
|
- `aggregation`: `count`, `sum`, or `distinct_count`
|
|
121
121
|
- `operator`: `gt`, `gte`, or `eq`
|
|
122
122
|
|
|
123
|
+
Completion target and experiment main-goal event filters must not use properties whose metadata
|
|
124
|
+
`select_type` is `datetime`. The supported filter-property select types are `string`, `number`,
|
|
125
|
+
`bool`, `bool-s`, `date`, `array`, `array_string`, `row`, and `array_row`. This restriction applies
|
|
126
|
+
to `completionIndicatorDef.completionIndicators[].eventDefinition.filters`; it does not apply to
|
|
127
|
+
trigger-event filters.
|
|
128
|
+
|
|
129
|
+
For an event property whose metadata `select_type` is `array_row`, never submit it as a flat
|
|
130
|
+
property filter. Use an object-group filter and place only that parent's child properties inside
|
|
131
|
+
`conditions`:
|
|
132
|
+
|
|
133
|
+
```json
|
|
134
|
+
{
|
|
135
|
+
"type": "object_group",
|
|
136
|
+
"field": "equipment_list",
|
|
137
|
+
"operator": "any_satisfy",
|
|
138
|
+
"conditions": {
|
|
139
|
+
"relation": "and",
|
|
140
|
+
"items": [
|
|
141
|
+
{
|
|
142
|
+
"field": "equipment_list.item_level",
|
|
143
|
+
"operator": "gte",
|
|
144
|
+
"values": [10]
|
|
145
|
+
}
|
|
146
|
+
]
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Object-group operators are `any_satisfy`, `none_satisfy`, and `all_satisfy`. Resolve the parent
|
|
152
|
+
and child fields from current metadata. Hermes validates the metadata type, child-parent
|
|
153
|
+
relationship, and supported operators before saving, so do not flatten `array_row` or invent child
|
|
154
|
+
field names.
|
|
155
|
+
|
|
123
156
|
Trigger events have an additional envelope contract selected by `eventTriggerType`. Do not apply
|
|
124
157
|
one aggregate event shape to every trigger type. Use the matrix and examples in section 4.4.
|
|
125
158
|
|
|
@@ -188,6 +221,13 @@ Rules:
|
|
|
188
221
|
- do not guess template IDs
|
|
189
222
|
- `groupContentList` maximum size is `5`
|
|
190
223
|
- `occasionKeys` are parsed from content automatically and are not accepted as input
|
|
224
|
+
- when `expConfig.enableExp=true`, each `groupContentList` item must include
|
|
225
|
+
`expGroupName`, `expGroupType`, `percentageInExperiment`, and `order`, and the list must
|
|
226
|
+
mirror `expConfig.expGroupList` one-to-one by `expGroupName`
|
|
227
|
+
- capability `engage-task.task.save` rejects misaligned experiment `groupContentList`
|
|
228
|
+
(`TASK_EXPERIMENT_GROUP_CONTENT_INVALID`) before the inner save service runs
|
|
229
|
+
- do not submit experiment content as content-only objects such as
|
|
230
|
+
`{"contentList":[...]}` without the group association fields
|
|
191
231
|
|
|
192
232
|
Content guidance:
|
|
193
233
|
|
|
@@ -224,6 +264,8 @@ Rules:
|
|
|
224
264
|
- if `triggerDefinition` is needed, build it from semantic event definitions and resolve real
|
|
225
265
|
event/property names through Analysis metadata
|
|
226
266
|
- always set the A rule's `eventTriggerType` explicitly
|
|
267
|
+
- always set the A rule's `periodTimeSymbol` to `TS01`, `TS02`, `TS03`, or `TS04`; it is
|
|
268
|
+
required even when `periodStart` and `periodEnd` are present
|
|
227
269
|
- Hermes compiles the semantic event and then validates the final persisted trigger-rule envelope
|
|
228
270
|
- for semantic event-trigger tasks, Hermes backfills missing task-level `startDate` / `endDate`
|
|
229
271
|
from the A rule's `periodStart` / `periodEnd`; explicit task-level dates remain authoritative
|
|
@@ -381,6 +423,8 @@ Minimum required field:
|
|
|
381
423
|
|
|
382
424
|
When the guide points to event-based completion or experiment-driven main-goal rules, build
|
|
383
425
|
`completionIndicatorDef.completionIndicators[].eventDefinition` from the semantic event contract.
|
|
426
|
+
Read `fieldRules.blocks.controlConfig.completionIndicatorDef.filterPropertySelectTypes` and exclude
|
|
427
|
+
every property type listed under `excluded` before constructing its `filters`.
|
|
384
428
|
|
|
385
429
|
Important constraints that still apply:
|
|
386
430
|
|
|
@@ -25,19 +25,19 @@ Use the same condition definition accepted by Analysis user-cluster commands:
|
|
|
25
25
|
"relation": "and",
|
|
26
26
|
"items": [
|
|
27
27
|
{
|
|
28
|
-
"type": "
|
|
29
|
-
"
|
|
28
|
+
"type": "user",
|
|
29
|
+
"field": "vip_level",
|
|
30
30
|
"operator": "eq",
|
|
31
|
-
"
|
|
31
|
+
"values": ["gold"]
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
|
-
"type": "
|
|
34
|
+
"type": "event",
|
|
35
35
|
"event": "purchase",
|
|
36
36
|
"aggregation": "count",
|
|
37
37
|
"operator": "gte",
|
|
38
38
|
"value": 2,
|
|
39
|
-
"
|
|
40
|
-
"
|
|
39
|
+
"time_range": {
|
|
40
|
+
"mode": "recent",
|
|
41
41
|
"unit": "day",
|
|
42
42
|
"value": 7
|
|
43
43
|
}
|
|
@@ -48,8 +48,13 @@ Use the same condition definition accepted by Analysis user-cluster commands:
|
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
Before writing, resolve real event and property names through Analysis metadata commands. Never invent names or copy internal calculation codes from historical output.
|
|
51
|
+
Use only the documented semantic fields. Unknown fields are rejected; property `field` accepts a
|
|
52
|
+
technical-name string or a `{name,type}` reference.
|
|
51
53
|
|
|
52
|
-
Nested `and`/`or`, user properties, event behavior, include/exclude existing
|
|
54
|
+
Nested `and`/`or`, user properties, event behavior, `behavior_sequence`, include/exclude existing
|
|
55
|
+
clusters, relative time, and custom time use the Analysis semantic shape documented by
|
|
56
|
+
`ae-analysis`. A `get` response may contain top-level `compound` nodes when stored member,
|
|
57
|
+
event, and outer relations differ. Preserve those compounds when updating the strategy.
|
|
53
58
|
|
|
54
59
|
## Create or update
|
|
55
60
|
|
|
@@ -2,10 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Query a task detail report through the L3 Capability Gateway.
|
|
4
4
|
|
|
5
|
-
Mapped command: `ae-cli
|
|
5
|
+
Mapped command: `ae-cli engage-task data-detail query`
|
|
6
|
+
|
|
7
|
+
Capability ID: `engage-task.task-data.detail`
|
|
6
8
|
|
|
7
9
|
Required input: `project_id`, `task_id`, `detail_type`, `start_time`, `end_time`. `detail_type` is `time`, `instance`, or `instance_daily`; the last form also requires `task_instance_id`.
|
|
8
10
|
|
|
9
11
|
```bash
|
|
10
|
-
ae-cli
|
|
12
|
+
ae-cli engage-task data-detail query \
|
|
13
|
+
--project-id 1 \
|
|
14
|
+
--task-id task_123 \
|
|
15
|
+
--detail-type time \
|
|
16
|
+
--start-time 2026-04-01 \
|
|
17
|
+
--end-time 2026-04-07
|
|
11
18
|
```
|
|
@@ -2,10 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Query a task metric detail report through the L3 Capability Gateway.
|
|
4
4
|
|
|
5
|
-
Mapped command: `ae-cli
|
|
5
|
+
Mapped command: `ae-cli engage-task effect query`
|
|
6
|
+
|
|
7
|
+
Capability ID: `engage-task.task-data.metric-detail`
|
|
6
8
|
|
|
7
9
|
Required input: `project_id`, `task_id`, `start_time`, `end_time`. Optional input includes `request_id`, `push_language_code`, `metric_id_list`, `group_type`, and `show_time_zone`.
|
|
8
10
|
|
|
9
11
|
```bash
|
|
10
|
-
ae-cli
|
|
12
|
+
ae-cli engage-task effect query \
|
|
13
|
+
--project-id 1 \
|
|
14
|
+
--task-id task_123 \
|
|
15
|
+
--start-time 2026-04-01 \
|
|
16
|
+
--end-time 2026-04-07 \
|
|
17
|
+
--metric-id-list '["metric_1"]'
|
|
11
18
|
```
|