@thinkingai/ae-cli 6.0.40 → 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.
Files changed (131) hide show
  1. package/README.md +0 -2
  2. package/README.zh.md +0 -2
  3. package/dist/{auth-NN55553T.js → auth-GBMV6TEJ.js} +2 -2
  4. package/dist/{auth-GDV3H5I4.js → auth-NDSXE54J.js} +4 -4
  5. package/dist/{capability-TPORIKRQ.js → capability-CETVHGXF.js} +25 -15
  6. package/dist/{capability-VQNC5CF7.js → capability-ZSQBMNOE.js} +25 -15
  7. package/dist/{chunk-GJJA4CQZ.js → chunk-3FY3RJ26.js} +0 -4
  8. package/dist/chunk-4E3DB4MM.js +556 -0
  9. package/dist/{chunk-GS2P7LFD.js → chunk-5XUSIK27.js} +2 -2
  10. package/dist/{chunk-VTXHDCBW.js → chunk-AFXA7BRK.js} +2 -2
  11. package/dist/{chunk-7KQWSBSL.js → chunk-FNZA5RZA.js} +8 -8
  12. package/dist/{chunk-TS6BUGUY.js → chunk-J2N4PB56.js} +8 -8
  13. package/dist/{chunk-RBNKI5ZW.js → chunk-JUW4AJXN.js} +2 -2
  14. package/dist/{chunk-Z3OXWCIA.js → chunk-S5NTSDBS.js} +2 -2
  15. package/dist/{chunk-VKD5WQKN.js → chunk-VLWOLBGZ.js} +142 -24
  16. package/dist/chunk-WANVG6SY.js +556 -0
  17. package/dist/{chunk-YTG6Q75E.js → chunk-WZRX4KOH.js} +25 -3
  18. package/dist/{chunk-YV52FB5G.js → chunk-ZQKDZXDO.js} +1 -1
  19. package/dist/{cli-token-GL5MS5FK.js → cli-token-4UPER74P.js} +3 -3
  20. package/dist/{chunk-6A2FUCIS.js → client-L2YDMHQ6.js} +5 -6
  21. package/dist/{config-4VZNLBKF.js → config-OL2LWGBV.js} +4 -33
  22. package/dist/index.js +31 -44
  23. package/dist/{memory-RWJW4XFO.js → memory-MUP7PPL7.js} +4 -4
  24. package/dist/{memory-VO2ZJCRT.js → memory-U4O5PMXH.js} +4 -4
  25. package/dist/{metadata-YGTHR2XJ.js → metadata-UKZDNLLQ.js} +21 -11
  26. package/dist/{metadata-ZRN2GHPN.js → metadata-XXMJFN2M.js} +21 -11
  27. package/dist/{model-CLUIK3K5.js → model-JTUEO5M4.js} +2 -2
  28. package/dist/{sync-3REDHGY6.js → sync-MOSFNBVR.js} +5 -5
  29. package/dist/{te-agent-XNPELAKX.js → te-agent-IFKZDHZI.js} +25 -18
  30. package/dist/{te-analysis-GJI5FZUL.js → te-analysis-3QLLS35K.js} +1231 -456
  31. package/dist/{te-analysis-N2BRDJZ5.js → te-analysis-YSK2DBVL.js} +1231 -456
  32. package/dist/{te-community-SQXKE5OO.js → te-community-HNKVTERD.js} +207 -12
  33. package/dist/{te-community-TYSNU3NQ.js → te-community-IWE5B7W6.js} +208 -12
  34. package/dist/{te-dataops-OWIADNSM.js → te-dataops-KQPYNAE3.js} +262 -145
  35. package/dist/{te-dataops-5TM7WZDI.js → te-dataops-KXCEB4CS.js} +262 -145
  36. package/dist/{te-engage-L72HWRGO.js → te-engage-6RNGK5GH.js} +566 -17
  37. package/dist/{te-engage-QWM4GFS7.js → te-engage-IRMHTSQK.js} +566 -17
  38. package/dist/{te-kb-VRMEY3D4.js → te-kb-OIH3T6CS.js} +4 -4
  39. package/dist/{te-system-XGS5EQIQ.js → te-system-AZ3URMUO.js} +515 -11
  40. package/dist/{te-team-BZRDV2CM.js → te-team-GZPU6UWA.js} +5 -5
  41. package/dist/{update-HEDXGOJH.js → update-TOBFXF2V.js} +4 -4
  42. package/package.json +5 -5
  43. package/skills/ae-agent/SKILL.md +3 -3
  44. package/skills/ae-agent/references/list-skill-references.md +4 -4
  45. package/skills/ae-agent/references/read-skill-reference.md +10 -7
  46. package/skills/ae-agent/references/upload-skill-reference.md +11 -9
  47. package/skills/ae-analysis/SKILL.md +15 -12
  48. package/skills/ae-analysis/metadata_resolution.md +150 -0
  49. package/skills/ae-analysis/references/adhoc_export.md +17 -2
  50. package/skills/ae-analysis/references/adhoc_run.md +12 -8
  51. package/skills/ae-analysis/references/ai_models.md +31 -5
  52. package/skills/ae-analysis/references/analysis_data_retrieval.md +104 -16
  53. package/skills/ae-analysis/references/analysis_drilldown_contract.md +4 -4
  54. package/skills/ae-analysis/references/analysis_gateway_assets.md +12 -10
  55. package/skills/ae-analysis/references/artifact_download.md +4 -3
  56. package/skills/ae-analysis/references/asset_abnormal_list.md +5 -3
  57. package/skills/ae-analysis/references/asset_authentication_list.md +5 -3
  58. package/skills/ae-analysis/references/asset_search.md +5 -3
  59. package/skills/ae-analysis/references/bi_panel_page_data_export.md +1 -1
  60. package/skills/ae-analysis/references/bi_panel_page_data_run.md +4 -4
  61. package/skills/ae-analysis/references/catalog_export.md +28 -0
  62. package/skills/ae-analysis/references/catalog_list.md +44 -0
  63. package/skills/ae-analysis/references/command_index.md +72 -63
  64. package/skills/ae-analysis/references/dashboard_report_data_run.md +11 -4
  65. package/skills/ae-analysis/references/datatable_version_list.md +5 -3
  66. package/skills/ae-analysis/references/drilldown_entities_run.md +4 -4
  67. package/skills/ae-analysis/references/drilldown_events_run.md +2 -2
  68. package/skills/ae-analysis/references/drilldown_user_events_export.md +1 -1
  69. package/skills/ae-analysis/references/drilldown_user_events_run.md +2 -2
  70. package/skills/ae-analysis/references/entity_detail_run.md +4 -4
  71. package/skills/ae-analysis/references/entity_id_import_options.md +1 -1
  72. package/skills/ae-analysis/references/event_detail_run.md +4 -4
  73. package/skills/ae-analysis/references/event_export.md +21 -0
  74. package/skills/ae-analysis/references/event_list.md +7 -6
  75. package/skills/ae-analysis/references/exchange_rule_list.md +5 -3
  76. package/skills/ae-analysis/references/history_tag_data_drilldown_export.md +4 -2
  77. package/skills/ae-analysis/references/history_tag_data_drilldown_run.md +2 -2
  78. package/skills/ae-analysis/references/history_tag_data_run.md +2 -2
  79. package/skills/ae-analysis/references/metric_export.md +21 -0
  80. package/skills/ae-analysis/references/metric_list.md +8 -7
  81. package/skills/ae-analysis/references/property_export.md +21 -0
  82. package/skills/ae-analysis/references/property_list.md +9 -8
  83. package/skills/ae-analysis/references/query_context_get.md +20 -0
  84. package/skills/ae-analysis/references/query_create_result_cluster.md +1 -1
  85. package/skills/ae-analysis/references/report_change_log_list.md +1 -1
  86. package/skills/ae-analysis/references/report_create.md +3 -3
  87. package/skills/ae-analysis/references/report_data_run.md +8 -8
  88. package/skills/ae-analysis/references/report_update.md +3 -3
  89. package/skills/ae-analysis/references/report_version_rollback.md +1 -1
  90. package/skills/ae-analysis/references/rule_list.md +6 -4
  91. package/skills/ae-analysis/references/run_inspect.md +8 -5
  92. package/skills/ae-analysis/references/run_wait.md +37 -0
  93. package/skills/ae-analysis/references/user_cluster_export.md +13 -0
  94. package/skills/ae-analysis/references/user_cluster_list.md +6 -2
  95. package/skills/ae-analysis/references/user_cluster_member_export.md +5 -3
  96. package/skills/ae-analysis/references/user_cluster_member_list.md +4 -4
  97. package/skills/ae-analysis/references/user_tag_export.md +13 -0
  98. package/skills/ae-analysis/references/user_tag_list.md +6 -2
  99. package/skills/ae-analysis/references/user_tag_member_export.md +5 -3
  100. package/skills/ae-analysis/references/user_tag_member_list.md +4 -4
  101. package/skills/ae-analysis/references/virtual_property_create.md +2 -2
  102. package/skills/ae-community/SKILL.md +2 -2
  103. package/skills/ae-dataops/SKILL.md +4 -3
  104. package/skills/ae-dataops/references/dataops-flow-create.md +47 -3
  105. package/skills/ae-engage/SKILL.md +46 -6
  106. package/skills/ae-engage/references/build-task-save-guide.md +12 -0
  107. package/skills/ae-engage/references/cancel-query-run.md +31 -0
  108. package/skills/ae-engage/references/config-item-analysis-report.md +14 -1
  109. package/skills/ae-engage/references/config-item-strategy-comparison.md +11 -1
  110. package/skills/ae-engage/references/config-item-trigger-report.md +15 -1
  111. package/skills/ae-engage/references/flow-metric-detail-report.md +134 -0
  112. package/skills/ae-engage/references/flow-metric-update.md +77 -0
  113. package/skills/ae-engage/references/flow-metric-user.md +118 -0
  114. package/skills/ae-engage/references/flow-node-metric-user.md +122 -0
  115. package/skills/ae-engage/references/flow-node-user.md +122 -0
  116. package/skills/ae-engage/references/push-record-query.md +32 -1
  117. package/skills/ae-engage/references/save-task.md +9 -0
  118. package/skills/ae-engage/references/task-data-detail.md +9 -2
  119. package/skills/ae-engage/references/task-metric-detail.md +9 -2
  120. package/skills/ae-engage/references/task-submit-approval.md +3 -0
  121. package/skills/ae-metadata/SKILL.md +2 -1
  122. package/skills/ae-metadata/references/metadata_data_table_download.md +10 -2
  123. package/skills/ae-metadata/references/metadata_data_table_list.md +5 -2
  124. package/skills/ae-system/SKILL.md +66 -3
  125. package/dist/chunk-DT6Y3TD7.js +0 -232
  126. package/dist/chunk-MVDZ7DBQ.js +0 -231
  127. package/dist/chunk-NBPKWKRA.js +0 -51
  128. package/dist/client-DAIPF7XN.js +0 -23
  129. package/dist/raw-52B4UKO4.js +0 -71
  130. package/dist/te-meta-53BVXPFI.js +0 -95
  131. package/dist/te-meta-TOCBPBXI.js +0 -95
@@ -224,6 +224,12 @@ Use it to understand what must appear in:
224
224
  - `controlConfig`
225
225
  - `expConfig` when experiment mode is enabled
226
226
 
227
+ When experiment mode is enabled (`context.enableExp=true` or draft `expConfig.enableExp=true`):
228
+
229
+ - capability `engage-task.task.build-save-guide` enriches `handoff.reqTemplate.channelConfig.groupContentList`
230
+ so each entry carries `expGroupName`, `expGroupType`, `percentageInExperiment`, `order`, and `contentList`
231
+ - do not drop those association fields when filling content; they must stay aligned with `expConfig.expGroupList`
232
+
227
233
  ### 4.8 `fieldRules`
228
234
 
229
235
  This is the most important construction section.
@@ -274,6 +280,10 @@ The guide treats the A rule as a discriminated envelope:
274
280
  - `eventTriggerType=2`: at least two ordered steps with `eventDefinition` and `hasDone`
275
281
  - `eventTriggerType=3`: client-side count/eq/1 events with `eventTriggerCaliberType`
276
282
 
283
+ Every event-triggered task A rule must include `periodTimeSymbol`. Use `TS01` for daily,
284
+ `TS02` for the complete configured period, `TS03` for weekly, or `TS04` for monthly.
285
+ Do not omit this field even when `periodStart` and `periodEnd` are present.
286
+
277
287
  Do not copy the accumulated example and only change `eventTriggerType`. Hermes rejects a final QP
278
288
  whose event structure does not match its envelope.
279
289
 
@@ -299,6 +309,8 @@ Important fields:
299
309
  - `reqTemplate`
300
310
  - a scenario-aware grouped request template
301
311
  - use it as a starting point, not as unquestioned final truth
312
+ - for experiment tasks, keep `groupContentList` association fields from the template;
313
+ only replace `contentList[].content` with real channel content
302
314
  - `readyToSubmit`
303
315
  - `true` means the current scenario or draft has no blocking placeholders
304
316
  - `blockingPlaceholders`
@@ -0,0 +1,31 @@
1
+ # Cancel a running Engage query or export
2
+
3
+ Cancel asynchronous Engage work by the Capability Gateway run ID.
4
+
5
+ Mapped command:
6
+
7
+ ```bash
8
+ ae-cli engage-query query cancel --run-id <run_id>
9
+ ```
10
+
11
+ Mapped capability: `engage-query.query.cancel`
12
+
13
+ ## Input
14
+
15
+ | Field | Type | Required | Description |
16
+ |------|------|------|------|
17
+ | `run_id` | string | Yes | Run ID returned by an asynchronous query or export capability |
18
+ | `reason` | string | No | Optional cancellation reason |
19
+
20
+ ## Safety Constraints
21
+
22
+ This command is a **write operation**. Use only the `run_id` returned by the asynchronous
23
+ query/export lifecycle; a report `request_id` is not accepted.
24
+
25
+ ## Example
26
+
27
+ ```bash
28
+ ae-cli engage-query query cancel \
29
+ --run-id run_123 \
30
+ --reason "No longer needed"
31
+ ```
@@ -8,7 +8,20 @@ Required input: `project_id`, `config_id`, `start_time`, `end_time`. Optional in
8
8
  `template_id_list`, `strategy_id_list`, `show_time_zone`. `template_id_list` and `strategy_id_list`
9
9
  are mutually exclusive.
10
10
 
11
+ ## Input contract
12
+
13
+ | Field | JSON type | Required | Rules |
14
+ | --- | --- | --- | --- |
15
+ | `project_id` | integer | Yes | Positive project ID. |
16
+ | `config_id` | string | Yes | Config item ID. |
17
+ | `start_time` | string | Yes | Date in `yyyy-MM-dd` format. |
18
+ | `end_time` | string | Yes | Date in `yyyy-MM-dd` format; must not be earlier than `start_time`. |
19
+ | `request_id` | string | No | Request identifier for continuation or cancellation. |
20
+ | `template_id_list` | array of strings | No | Cannot be used together with `strategy_id_list`. |
21
+ | `strategy_id_list` | array of strings | No | Cannot be used together with `template_id_list`. |
22
+ | `show_time_zone` | number | No | Hour offset from `-12.0` through `14.0`; use `8`, not the string `"8"`. |
23
+
11
24
  ```bash
12
25
  ae-cli capability run engage-scene.report.config-item-analysis \
13
- --input '{"project_id":1,"config_id":"cfg_123","start_time":"2026-04-01","end_time":"2026-04-07"}'
26
+ --input '{"project_id":1,"config_id":"cfg_123","start_time":"2026-04-01","end_time":"2026-04-07","show_time_zone":8}'
14
27
  ```
@@ -7,7 +7,17 @@ Mapped command: `ae-cli capability run engage-scene.report.strategy-comparison -
7
7
  Required input: `project_id`, `config_id`, `strategy_id_list` with at least two IDs. Optional input:
8
8
  `request_id`, `show_time_zone`.
9
9
 
10
+ ## Input contract
11
+
12
+ | Field | JSON type | Required | Rules |
13
+ | --- | --- | --- | --- |
14
+ | `project_id` | integer | Yes | Positive project ID. |
15
+ | `config_id` | string | Yes | Config item ID. |
16
+ | `strategy_id_list` | array of strings | Yes | Must contain at least two strategy IDs. |
17
+ | `request_id` | string | No | Request identifier for continuation or cancellation. |
18
+ | `show_time_zone` | number | No | Hour offset from `-12.0` through `14.0`; use `8`, not the string `"8"`. |
19
+
10
20
  ```bash
11
21
  ae-cli capability run engage-scene.report.strategy-comparison \
12
- --input '{"project_id":1,"config_id":"cfg_123","strategy_id_list":["strategy_a","strategy_b"]}'
22
+ --input '{"project_id":1,"config_id":"cfg_123","strategy_id_list":["strategy_a","strategy_b"],"show_time_zone":8}'
13
23
  ```
@@ -8,7 +8,21 @@ Required input: `project_id`, `config_id`, `start_time`, `end_time`. Optional in
8
8
  `template_id_list`, `strategy_id_list`, `show_time_zone`, `analyze_report_internal_query`.
9
9
  `template_id_list` and `strategy_id_list` are mutually exclusive.
10
10
 
11
+ ## Input contract
12
+
13
+ | Field | JSON type | Required | Rules |
14
+ | --- | --- | --- | --- |
15
+ | `project_id` | integer | Yes | Positive project ID. |
16
+ | `config_id` | string | Yes | Config item ID. |
17
+ | `start_time` | string | Yes | Date in `yyyy-MM-dd` format. |
18
+ | `end_time` | string | Yes | Date in `yyyy-MM-dd` format; must not be earlier than `start_time`. |
19
+ | `request_id` | string | No | Request identifier for continuation or cancellation. |
20
+ | `template_id_list` | array of strings | No | Cannot be used together with `strategy_id_list`. |
21
+ | `strategy_id_list` | array of strings | No | Cannot be used together with `template_id_list`. |
22
+ | `show_time_zone` | number | No | Hour offset from `-12.0` through `14.0`; use `8`, not the string `"8"`. |
23
+ | `analyze_report_internal_query` | boolean | No | Use `true` or `false`, not a quoted string. |
24
+
11
25
  ```bash
12
26
  ae-cli capability run engage-scene.report.config-item-trigger \
13
- --input '{"project_id":1,"config_id":"cfg_123","start_time":"2026-04-01","end_time":"2026-04-07"}'
27
+ --input '{"project_id":1,"config_id":"cfg_123","start_time":"2026-04-01","end_time":"2026-04-07","show_time_zone":8}'
14
28
  ```
@@ -0,0 +1,134 @@
1
+ # Flow metric-detail report
2
+
3
+ Use this reference when the user asks for a flow node metric-detail report, or wants to export the detailed metric table behind a node on the flow canvas.
4
+
5
+ Mapped CLI commands:
6
+
7
+ - `ae-cli engage-flow report metric-detail run`
8
+ - `ae-cli engage-flow report metric-detail export`
9
+
10
+ Mapped capabilities:
11
+
12
+ - `engage-flow.report.metric-detail.run`
13
+ - `engage-flow.report.metric-detail.export`
14
+
15
+ ## Choose the command
16
+
17
+ - Use `run` for quick inline inspection. It returns the original Hermes report object under `report`.
18
+ - Use `export` when the user needs a downloadable, flattened artifact.
19
+ - Use `--report-mode node` or omit it for normal nodes.
20
+ - Use `--report-mode ab` for AB split node metric details.
21
+
22
+ Do not use the older generic capability form unless the structured command is unavailable.
23
+
24
+ ## Required input
25
+
26
+ - `--project-id`
27
+ - one of `--flow-id` or `--flow-uuid`
28
+ - `--node-uuid`
29
+ - `--start-time yyyy-MM-dd`
30
+ - `--end-time yyyy-MM-dd`
31
+
32
+ ## Optional input
33
+
34
+ - `--report-mode node|ab` (default: `node`)
35
+ - `--branch-id`
36
+ - `--indicator-name` for normal node metric selection
37
+ - `--indicators-uuid` for AB metric selection
38
+ - `--data-dim-type uv|pv`
39
+ - `--push-language-code`
40
+ - `--show-time-zone`
41
+ - `--request-id`
42
+ - `--timeout-seconds`
43
+ - `run` only: `--limit` is accepted for command consistency, but metric-detail reports are not row-limited by Hermes
44
+ - `export` only: `--artifact-format csv|jsonl` (default: `jsonl`)
45
+
46
+ ## Parameter guidance
47
+
48
+ - Prefer `flow_uuid` when the user is talking about a specific flow version; prefer `flow_id` when they mean the current logical flow.
49
+ - `node_uuid` must be the canvas node UUID, not the node type.
50
+ - Dates are inclusive report dates and must be in `yyyy-MM-dd`.
51
+ - For AB mode, pass the AB node UUID and usually `--indicators-uuid`; `--branch-id` is optional and only use it when the selected report cell is branch-specific.
52
+ - If both `flow-id` and `flow-uuid` are supplied, Hermes checks they match.
53
+
54
+ ## Examples
55
+
56
+ Inline normal node metric detail:
57
+
58
+ ```bash
59
+ ae-cli engage-flow report metric-detail run \
60
+ --project-id 1 \
61
+ --flow-id flow_id_123 \
62
+ --node-uuid node_uuid_123 \
63
+ --start-time 2026-04-01 \
64
+ --end-time 2026-04-07 \
65
+ --timeout-seconds 120
66
+ ```
67
+
68
+ Export normal node metric detail as CSV:
69
+
70
+ ```bash
71
+ ae-cli engage-flow report metric-detail export \
72
+ --project-id 1 \
73
+ --flow-id flow_id_123 \
74
+ --node-uuid node_uuid_123 \
75
+ --start-time 2026-04-01 \
76
+ --end-time 2026-04-07 \
77
+ --artifact-format csv \
78
+ --timeout-seconds 21600
79
+ ```
80
+
81
+ Inline AB node metric detail:
82
+
83
+ ```bash
84
+ ae-cli engage-flow report metric-detail run \
85
+ --project-id 1 \
86
+ --flow-id flow_id_123 \
87
+ --node-uuid ab_node_uuid_123 \
88
+ --report-mode ab \
89
+ --indicators-uuid indicator_uuid_123 \
90
+ --start-time 2026-04-01 \
91
+ --end-time 2026-04-07
92
+ ```
93
+
94
+ ## Export lifecycle
95
+
96
+ `export` returns `run_id` and `artifact_id`. Poll and download with:
97
+
98
+ ```bash
99
+ ae-cli engage-query run inspect --run-id <run_id>
100
+ ae-cli engage-query artifact download \
101
+ --run-id <run_id> \
102
+ --artifact-id <artifact_id> \
103
+ --output ./flow-metric-detail.csv.gz
104
+ ```
105
+
106
+ Downloaded artifacts are gzip-compressed; keep the `.gz` suffix. Cancel running async work with:
107
+
108
+ ```bash
109
+ ae-cli engage-query query cancel --run-id <run_id>
110
+ ```
111
+
112
+ ## Output rows
113
+
114
+ Normal node export rows:
115
+
116
+ - `time`
117
+ - `indicator`
118
+ - `value_index`
119
+ - `value`
120
+
121
+ AB node export rows:
122
+
123
+ - `time`
124
+ - `branch_id`
125
+ - `branch_name`
126
+ - `indicator`
127
+ - `value`
128
+ - `total`
129
+
130
+ ## Common mistakes
131
+
132
+ - Do not pass `report-mode ab` for a normal node; Hermes will call the AB report backend.
133
+ - Do not use `indicator_name` and `indicators_uuid` interchangeably: normal node uses `indicator_name`, AB mode usually uses `indicators_uuid`.
134
+ - Do not save a gzip artifact as `.csv` or `.jsonl`; use `.csv.gz` or `.jsonl.gz`.
@@ -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`.