@thinkingai/ae-cli 6.1.12 → 6.1.14

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 (154) 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-DRLGDVS4.js → capability-TAMDRZYV.js} +18 -8
  6. package/dist/{capability-P6GK3AQH.js → capability-U7TDEEEG.js} +18 -8
  7. package/dist/{chunk-GJJA4CQZ.js → chunk-3FY3RJ26.js} +0 -4
  8. package/dist/{chunk-GS2P7LFD.js → chunk-5XUSIK27.js} +2 -2
  9. package/dist/{chunk-7KQWSBSL.js → chunk-753BUTNZ.js} +3 -3
  10. package/dist/{chunk-VTXHDCBW.js → chunk-AFXA7BRK.js} +2 -2
  11. package/dist/chunk-IBH3LDAH.js +556 -0
  12. package/dist/{chunk-RBNKI5ZW.js → chunk-JUW4AJXN.js} +2 -2
  13. package/dist/{chunk-TS6BUGUY.js → chunk-QATA32VR.js} +3 -3
  14. package/dist/{chunk-Z3OXWCIA.js → chunk-S5NTSDBS.js} +2 -2
  15. package/dist/chunk-UIHQJK5E.js +556 -0
  16. package/dist/{chunk-VKD5WQKN.js → chunk-VLWOLBGZ.js} +142 -24
  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 +25 -38
  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-ZRN2GHPN.js → metadata-5MIMNIMT.js} +33 -20
  26. package/dist/{metadata-YGTHR2XJ.js → metadata-LERKDJN6.js} +33 -20
  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-FCHRTNIY.js} +1267 -492
  31. package/dist/{te-analysis-N2BRDJZ5.js → te-analysis-QG7UKGDA.js} +1267 -492
  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-D6EG3NOR.js} +951 -17
  37. package/dist/{te-engage-QWM4GFS7.js → te-engage-ZSMIJLUW.js} +951 -17
  38. package/dist/{te-experiment-2T2HEZML.js → te-experiment-K5US7RMG.js} +6 -6
  39. package/dist/{te-experiment-PVEY7AEZ.js → te-experiment-WA7TFMEL.js} +6 -6
  40. package/dist/{te-kb-VRMEY3D4.js → te-kb-OIH3T6CS.js} +4 -4
  41. package/dist/{te-system-XGS5EQIQ.js → te-system-AZ3URMUO.js} +515 -11
  42. package/dist/{te-team-BZRDV2CM.js → te-team-GZPU6UWA.js} +5 -5
  43. package/dist/{update-HEDXGOJH.js → update-TOBFXF2V.js} +4 -4
  44. package/package.json +5 -5
  45. package/skills/ae-agent/SKILL.md +3 -3
  46. package/skills/ae-agent/references/list-skill-references.md +4 -4
  47. package/skills/ae-agent/references/read-skill-reference.md +10 -7
  48. package/skills/ae-agent/references/upload-skill-reference.md +11 -9
  49. package/skills/ae-analysis/SKILL.md +15 -12
  50. package/skills/ae-analysis/metadata_resolution.md +150 -0
  51. package/skills/ae-analysis/references/adhoc_export.md +17 -2
  52. package/skills/ae-analysis/references/adhoc_run.md +12 -8
  53. package/skills/ae-analysis/references/ai_models.md +35 -6
  54. package/skills/ae-analysis/references/alert_list.md +2 -3
  55. package/skills/ae-analysis/references/analysis_data_retrieval.md +104 -16
  56. package/skills/ae-analysis/references/analysis_drilldown_contract.md +4 -4
  57. package/skills/ae-analysis/references/analysis_gateway_assets.md +17 -15
  58. package/skills/ae-analysis/references/artifact_download.md +4 -3
  59. package/skills/ae-analysis/references/asset_abnormal_list.md +5 -3
  60. package/skills/ae-analysis/references/asset_authentication_list.md +5 -3
  61. package/skills/ae-analysis/references/asset_search.md +5 -3
  62. package/skills/ae-analysis/references/bi_panel_list.md +2 -2
  63. package/skills/ae-analysis/references/bi_panel_page_data_export.md +1 -1
  64. package/skills/ae-analysis/references/bi_panel_page_data_run.md +4 -4
  65. package/skills/ae-analysis/references/catalog_export.md +28 -0
  66. package/skills/ae-analysis/references/catalog_list.md +44 -0
  67. package/skills/ae-analysis/references/command_index.md +78 -69
  68. package/skills/ae-analysis/references/dashboard_list.md +2 -2
  69. package/skills/ae-analysis/references/dashboard_report_data_run.md +11 -4
  70. package/skills/ae-analysis/references/datatable_version_list.md +5 -3
  71. package/skills/ae-analysis/references/drilldown_entities_run.md +4 -4
  72. package/skills/ae-analysis/references/drilldown_events_run.md +2 -2
  73. package/skills/ae-analysis/references/drilldown_user_events_export.md +1 -1
  74. package/skills/ae-analysis/references/drilldown_user_events_run.md +2 -2
  75. package/skills/ae-analysis/references/entity_detail_run.md +4 -4
  76. package/skills/ae-analysis/references/entity_id_import_options.md +1 -1
  77. package/skills/ae-analysis/references/event_detail_run.md +4 -4
  78. package/skills/ae-analysis/references/event_export.md +21 -0
  79. package/skills/ae-analysis/references/event_list.md +7 -6
  80. package/skills/ae-analysis/references/exchange_rule_list.md +5 -3
  81. package/skills/ae-analysis/references/favorite_add.md +2 -2
  82. package/skills/ae-analysis/references/favorite_remove.md +2 -2
  83. package/skills/ae-analysis/references/history_tag_data_drilldown_export.md +4 -2
  84. package/skills/ae-analysis/references/history_tag_data_drilldown_run.md +2 -2
  85. package/skills/ae-analysis/references/history_tag_data_run.md +2 -2
  86. package/skills/ae-analysis/references/metric_create.md +7 -8
  87. package/skills/ae-analysis/references/metric_export.md +21 -0
  88. package/skills/ae-analysis/references/metric_list.md +8 -7
  89. package/skills/ae-analysis/references/project_space_list.md +2 -2
  90. package/skills/ae-analysis/references/property_export.md +21 -0
  91. package/skills/ae-analysis/references/property_list.md +9 -8
  92. package/skills/ae-analysis/references/public_link_list.md +2 -2
  93. package/skills/ae-analysis/references/query_context_get.md +20 -0
  94. package/skills/ae-analysis/references/query_create_result_cluster.md +1 -1
  95. package/skills/ae-analysis/references/report_change_log_list.md +1 -1
  96. package/skills/ae-analysis/references/report_create.md +3 -3
  97. package/skills/ae-analysis/references/report_data_run.md +8 -8
  98. package/skills/ae-analysis/references/report_list.md +3 -3
  99. package/skills/ae-analysis/references/report_list_export.md +2 -2
  100. package/skills/ae-analysis/references/report_update.md +3 -3
  101. package/skills/ae-analysis/references/report_version_rollback.md +1 -1
  102. package/skills/ae-analysis/references/rule_list.md +6 -4
  103. package/skills/ae-analysis/references/run_inspect.md +8 -5
  104. package/skills/ae-analysis/references/run_wait.md +37 -0
  105. package/skills/ae-analysis/references/sql_table_list.md +3 -2
  106. package/skills/ae-analysis/references/user_cluster_export.md +13 -0
  107. package/skills/ae-analysis/references/user_cluster_list.md +6 -2
  108. package/skills/ae-analysis/references/user_cluster_member_export.md +5 -3
  109. package/skills/ae-analysis/references/user_cluster_member_list.md +4 -4
  110. package/skills/ae-analysis/references/user_cluster_update.md +4 -2
  111. package/skills/ae-analysis/references/user_tag_export.md +13 -0
  112. package/skills/ae-analysis/references/user_tag_list.md +6 -2
  113. package/skills/ae-analysis/references/user_tag_member_export.md +5 -3
  114. package/skills/ae-analysis/references/user_tag_member_list.md +4 -4
  115. package/skills/ae-analysis/references/user_tag_update.md +4 -2
  116. package/skills/ae-analysis/references/virtual_property_create.md +2 -2
  117. package/skills/ae-analysis/references/virtual_property_sql_rule_update.md +3 -3
  118. package/skills/ae-community/SKILL.md +2 -2
  119. package/skills/ae-dataops/SKILL.md +4 -3
  120. package/skills/ae-dataops/references/dataops-flow-create.md +47 -3
  121. package/skills/ae-engage/SKILL.md +55 -7
  122. package/skills/ae-engage/references/build-task-save-guide.md +12 -0
  123. package/skills/ae-engage/references/cancel-query-run.md +31 -0
  124. package/skills/ae-engage/references/config-item-analysis-report.md +14 -1
  125. package/skills/ae-engage/references/config-item-strategy-comparison.md +11 -1
  126. package/skills/ae-engage/references/config-item-trigger-report.md +15 -1
  127. package/skills/ae-engage/references/flow-metric-detail-report.md +134 -0
  128. package/skills/ae-engage/references/flow-metric-update.md +77 -0
  129. package/skills/ae-engage/references/flow-metric-user.md +119 -0
  130. package/skills/ae-engage/references/flow-node-metric-user.md +123 -0
  131. package/skills/ae-engage/references/flow-node-user.md +123 -0
  132. package/skills/ae-engage/references/push-record-query.md +32 -1
  133. package/skills/ae-engage/references/save-task.md +9 -0
  134. package/skills/ae-engage/references/task-data-detail.md +9 -2
  135. package/skills/ae-engage/references/task-indicator-user.md +104 -0
  136. package/skills/ae-engage/references/task-metric-detail.md +9 -2
  137. package/skills/ae-engage/references/task-submit-approval.md +3 -0
  138. package/skills/ae-engage/references/task-user-detail-export.md +31 -0
  139. package/skills/ae-experiment/references/save_experiment.md +4 -0
  140. package/skills/ae-experiment-design/SKILL.md +1 -1
  141. package/skills/ae-experiment-design/references/platform-operations.md +1 -1
  142. package/skills/ae-experiment-insight/references/platform-operations.md +1 -1
  143. package/skills/ae-metadata/SKILL.md +2 -1
  144. package/skills/ae-metadata/references/metadata_data_table_download.md +10 -2
  145. package/skills/ae-metadata/references/metadata_data_table_list.md +5 -2
  146. package/skills/ae-metadata/references/metadata_property_dimension_table_bind_existing.md +1 -1
  147. package/skills/ae-system/SKILL.md +66 -3
  148. package/dist/chunk-DT6Y3TD7.js +0 -232
  149. package/dist/chunk-MVDZ7DBQ.js +0 -231
  150. package/dist/chunk-NBPKWKRA.js +0 -51
  151. package/dist/client-DAIPF7XN.js +0 -23
  152. package/dist/raw-52B4UKO4.js +0 -71
  153. package/dist/te-meta-53BVXPFI.js +0 -95
  154. package/dist/te-meta-TOCBPBXI.js +0 -95
@@ -0,0 +1,119 @@
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 with `#user_id`, `#account_id`, and `#distinct_id`.
113
+ - For cross-user data sources, `#account_id` and `#distinct_id` are empty strings.
114
+
115
+ ## Common mistakes
116
+
117
+ - Do not pass `--node-uuid` unless the process-level report segment actually needs branch/node context; for normal node cells use `node-user`.
118
+ - Use `--data-view-type`, not the report-only `--data-dim-type`, when selecting users without `--cluster-def`.
119
+ - If `cluster_def` is missing the date pair implied by `isSummary`, Hermes rejects it before SQL execution.
@@ -0,0 +1,123 @@
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 with `#user_id`, `#account_id`, and `#distinct_id`.
117
+ - For cross-user data sources, `#account_id` and `#distinct_id` are empty strings.
118
+
119
+ ## Common mistakes
120
+
121
+ - `--node-uuid` is required and must be the canvas node UUID.
122
+ - Do not use this for node data cells; use `node-user` so Hermes routes to the non-metric SQL builder.
123
+ - Use `--data-view-type`, not the report-only `--data-dim-type`, when selecting users without `--cluster-def`.
@@ -0,0 +1,123 @@
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 with `#user_id`, `#account_id`, and `#distinct_id`.
117
+ - For cross-user data sources, `#account_id` and `#distinct_id` are empty strings.
118
+
119
+ ## Common mistakes
120
+
121
+ - `--node-uuid` is required and must be the canvas node UUID.
122
+ - Do not use this for node metric cells; use `node-metric-user` so Hermes routes to the metric SQL builder.
123
+ - Use `--data-view-type`, not the report-only `--data-dim-type`, when selecting users without `--cluster-def`.
@@ -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. Records include available trigger, planned-send, actual-send, success, channel-exception, status, and failure-reason fields.
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.
@@ -221,6 +221,13 @@ Rules:
221
221
  - do not guess template IDs
222
222
  - `groupContentList` maximum size is `5`
223
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
224
231
 
225
232
  Content guidance:
226
233
 
@@ -257,6 +264,8 @@ Rules:
257
264
  - if `triggerDefinition` is needed, build it from semantic event definitions and resolve real
258
265
  event/property names through Analysis metadata
259
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
260
269
  - Hermes compiles the semantic event and then validates the final persisted trigger-rule envelope
261
270
  - for semantic event-trigger tasks, Hermes backfills missing task-level `startDate` / `endDate`
262
271
  from the A rule's `periodStart` / `periodEnd`; explicit task-level dates remain authoritative
@@ -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 capability run engage-task.task-data.detail --input '<json>'`
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 capability run engage-task.task-data.detail --input '{"project_id":1,"task_id":"task_123","detail_type":"time","start_time":"2026-04-01","end_time":"2026-04-07"}'
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
  ```
@@ -0,0 +1,104 @@
1
+ # engage-task indicator-user
2
+
3
+ Build SQL, query inline users, or export the users behind an engagement-task report indicator.
4
+
5
+ > Capability ids: `engage-task.indicator-user.sql`, `engage-task.indicator-user.run`, and `engage-task.indicator-user.export` · Domain: `engage` · Risk: read-only.
6
+
7
+ ## Commands
8
+
9
+ ```bash
10
+ # Build and validate SQL without executing it
11
+ ae-cli engage-task indicator-user sql \
12
+ --project-id 1 \
13
+ --task-id task_123 \
14
+ --indicator main \
15
+ --start-time 2026-04-01 \
16
+ --end-time 2026-04-07
17
+
18
+ # Query a bounded inline user list
19
+ ae-cli engage-task indicator-user run \
20
+ --project-id 1 \
21
+ --task-id task_123 \
22
+ --indicator secondary \
23
+ --secondary-index 2 \
24
+ --start-time 2026-04-01 \
25
+ --end-time 2026-04-07 \
26
+ --limit 100
27
+
28
+ # Export a custom metric's users
29
+ ae-cli engage-task indicator-user export \
30
+ --project-id 1 \
31
+ --task-id task_123 \
32
+ --indicator metric \
33
+ --metric-id metric_1 \
34
+ --start-time 2026-04-01 \
35
+ --end-time 2026-04-07 \
36
+ --artifact-format csv
37
+ ```
38
+
39
+ Use `sql` to obtain the generated user-detail SQL, `run` for a small inline result, and `export` for a downloadable full result.
40
+
41
+ ## Required input
42
+
43
+ All commands require `--project-id`, `--task-id`, `--indicator`, `--start-time`, and `--end-time`.
44
+
45
+ Dates use `yyyy-MM-dd`, and the start date must not be later than the end date. The task must exist under the specified project.
46
+
47
+ `--indicator` maps to the report population as follows:
48
+
49
+ | Value | Report population | Usage note |
50
+ |---|---|---|
51
+ | `original_trigger` | Original triggered users | Triggered tasks only |
52
+ | `plan` | Planned-delivery users | Task delivery funnel |
53
+ | `actual_trigger` | Actual-trigger/actual-delivery users | Task delivery funnel |
54
+ | `trigger_success` | Successfully triggered/delivered users | Task delivery funnel |
55
+ | `view` | Users who produced the configured view event | Requires view-event data |
56
+ | `click` | Users who produced the configured click event | Requires click-event data |
57
+ | `main` | Main conversion-indicator users | Combine with `--retention-type` for converted/lost users |
58
+ | `secondary` | Nth secondary conversion-indicator users | Requires `--secondary-index` |
59
+ | `metric` | Users behind a configured custom metric | Requires `--metric-id` |
60
+ | `click_activate` | Click activation users | Used in experiment activation reports |
61
+ | `main_activate` | Main-indicator activation users | Used in experiment activation reports |
62
+ | `secondary_activate` | Nth secondary-indicator activation users | Requires `--secondary-index`; used in experiment activation reports |
63
+
64
+ ## Conditional input
65
+
66
+ - `secondary` and `secondary_activate` require `--secondary-index 1..10`. Other indicators reject this flag.
67
+ - `metric` requires `--metric-id`; obtain the ID with `ae-cli engage-task metric list`. Other indicators reject this flag.
68
+ - `main`, `secondary`, `main_activate`, and `secondary_activate` must reference a conversion indicator configured on the task.
69
+ - `click_activate`, `main_activate`, and `secondary_activate` use `source=experiment` and `group-by=experiment`; explicitly supplied values must also be `experiment`. The task must have an activation event configured. `click_activate` additionally requires a click-event experiment.
70
+ - Non-metric indicators grouped by experiment use `source=experiment`, and the task must be an experiment task. Metric indicators continue to use `source=metric`.
71
+ - Explicit `--source experiment` always requires an experiment task, even with date, batch, or trigger grouping.
72
+ - `--group-by experiment --is-summary false` requires `--exp-group-id`. The `plan` indicator never accepts `--exp-group-id`; when grouped by experiment, it supports summary queries only.
73
+ - `--group-by batch` is supported only by non-triggered tasks. A non-summary batch segment requires `--task-instance-id`.
74
+ - `--group-by trigger` and `original_trigger` are supported only by triggered tasks.
75
+ - `--retention-type lost` supports `actual_trigger`, `trigger_success`, `view`, `click`, `main`, and `secondary`; it also supports `plan` for triggered tasks. It is rejected for `original_trigger`, `metric`, all activate indicators, and `plan` on non-triggered tasks.
76
+
77
+ ## Optional report context
78
+
79
+ - `--group-by` selects `batch`, `date`, `trigger`, or `experiment`; it defaults to `experiment` for activate indicators and `date` otherwise.
80
+ - `--is-summary` defaults to `true`. Set it to `false` when reproducing a drilled-down batch or experiment row.
81
+ - `--retention-type` selects `retention` or `lost`; the default is `retention`. See the supported combinations above.
82
+ - `--source` selects `task`, `experiment`, or `metric`. It defaults to `metric` for metric indicators, `experiment` for activate indicators or experiment grouping, and `task` otherwise.
83
+ - `--task-instance-id` narrows a non-triggered task to one execution instance.
84
+ - `--exp-group-id` narrows an experiment report to one group.
85
+ - `--push-language-code`, `--user-time-zone`, and `--show-time-zone` reproduce the corresponding task-report filters. Copy their values from the report context when needed.
86
+ - `--push-language-code` accepts `all`, `default`, `ar`, `az`, `bs`, `ca`, `zh-Hans`, `zh-Hant`, `hr`, `cs`, `da`, `nl`, `en`, `et`, `fi`, `fr`, `ka`, `bg`, `de`, `el`, `hi`, `he`, `hu`, `id`, `it`, `ja`, `ko`, `lv`, `lt`, `ms`, `nb`, `fa`, `pl`, `pt`, `pa`, `ro`, `ru`, `sr`, `sk`, `es`, `sv`, `th`, `tr`, `uk`, or `vi`.
87
+ - `--user-time-zone` accepts `all` or a decimal offset from `-12` through `14` that exists in the task's execution details. An unavailable value is rejected instead of falling back to all users.
88
+ - `--show-time-zone` accepts offsets from `-12` through `14`. Omit it or pass `99` to use the backend server's default time zone.
89
+
90
+ ## Execution input and output
91
+
92
+ - `sql` returns `sql` and `indicator` and does not execute the query.
93
+ - `run` accepts `--request-id`, `--limit`, and `--timeout-seconds`. The default limit is `100` and the maximum is `1000`; the default timeout is `120` seconds and the maximum is `180` seconds. It returns `#user_id`, `#account_id`, and `#distinct_id` for each user.
94
+ - `export` accepts `--request-id`, `--artifact-format jsonl|csv`, and `--timeout-seconds`. The default format is `jsonl`; the maximum timeout is six hours. It returns `run_id` and `artifact_id`.
95
+ - For cross-user data sources, `#account_id` and `#distinct_id` are empty strings.
96
+
97
+ Use the query lifecycle commands to inspect and download an export:
98
+
99
+ ```bash
100
+ ae-cli engage-query run inspect --run-id <run_id>
101
+ ae-cli engage-query artifact download --artifact-id <artifact_id> --output ./task-indicator-users.csv.gz
102
+ ```
103
+
104
+ `--artifact-format` controls the exported file. The global `--format json|table` only controls CLI display output.
@@ -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 capability run engage-task.task-data.metric-detail --input '<json>'`
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 capability run engage-task.task-data.metric-detail --input '{"project_id":1,"task_id":"task_123","start_time":"2026-04-01","end_time":"2026-04-07"}'
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
  ```
@@ -27,6 +27,8 @@ Provide exactly one of `--task-id` or `--request`.
27
27
 
28
28
  - Prefer `task save` followed by `submit-approval --task-id`. The server loads the persisted draft, validates its
29
29
  trigger rule, and reuses the existing save-and-submit approval workflow.
30
+ - Never put `taskId` or `task_id` inside `--request`. Existing drafts must use `--task-id`; embedded task IDs fail
31
+ with `REQUEST_TASK_ID_NOT_ALLOWED` so request fields are never silently discarded.
30
32
  - Do not reconstruct or pass `trigger_rule`. It is an internal persisted field.
31
33
  - The legacy `--request` mode remains available for existing callers.
32
34
  - Required body fields (server validates): `task_name`, `channel_type`, `channel_id`, `group_content_list`, `target_cluster_type`, `trigger_type`, `completion_indicator_def`, `frequency_limits`, `enable_channel_touch_limits`, `group_id`, `trigger_time_strategy`.
@@ -41,5 +43,6 @@ Provide exactly one of `--task-id` or `--request`.
41
43
  |---|---|
42
44
  | `APPROVAL_INPUT_INVALID` | neither or both of `task_id` and `request` supplied |
43
45
  | `REQUEST_REQUIRED` | `--request` missing or not an object |
46
+ | `REQUEST_TASK_ID_NOT_ALLOWED` | `request.taskId` or `request.task_id` supplied; use `--task-id` |
44
47
  | `REQUEST_FIELDS_REQUIRED` | required body fields absent/blank |
45
48
  | `CAPABILITY_EXECUTION_FAILED` | unmapped domain failure; check `invocation_id` / Hermes logs |
@@ -0,0 +1,31 @@
1
+ # engage-task user-detail export
2
+
3
+ Export user details for one execution instance of a non-triggered engagement task.
4
+
5
+ > Capability id: `engage-task.user-detail.export` · Domain: `engage` · Output: asynchronous artifact.
6
+
7
+ ```bash
8
+ ae-cli engage-task user-detail export \
9
+ --project-id <project-id> \
10
+ --task-id <task-id> \
11
+ --task-instance-id <task-instance-id> \
12
+ --user-status fail \
13
+ --artifact-format csv
14
+ ```
15
+
16
+ `--user-status` accepts English values only. The statuses below follow the task funnel from audience filtering to the final delivery result:
17
+
18
+ 1. `deduplicate` — users removed because the configured push ID is duplicated.
19
+ 2. `frequency_control` — users removed by the task-level frequency-control rules.
20
+ 3. `sample` — users excluded by experiment-layer sampling before planned delivery.
21
+ 4. `push_plan` — users retained in the planned-delivery population after deduplication, frequency control, and sampling.
22
+ 5. `fatigue_control` — planned users removed by channel-level fatigue-control rules.
23
+ 6. `push_actual` — users retained in the actual-delivery population after fatigue control.
24
+ 7. `exp_skip_push` — actual-delivery users intentionally not sent because their experiment control group is configured to skip delivery.
25
+ 8. `success` — users for whom delivery completed successfully.
26
+ 9. `fail` — users for whom delivery was attempted but failed. This is the default value.
27
+
28
+ Use `--task-exec-detail-id` to narrow an instance to one execution detail. Triggered tasks are not supported in this version.
29
+ Each artifact contains at most 1,000,000 rows, matching the Hermes task export safety boundary.
30
+
31
+ The command returns `run_id` and `artifact_id`. Use `ae-cli engage-query run inspect` to inspect progress and `ae-cli engage-query artifact download` to download the completed artifact.
@@ -110,6 +110,10 @@ ae-cli experiment experiment save --project-id 1 --req '{"expId":"exp_123","allo
110
110
  `targeting.definitionRequest`. Do not submit the internal `targeting.targetConfig`
111
111
  JSON or any `Cxx`/`Axxx` code. Resolve event and property names with Analysis
112
112
  metadata first.
113
+ - Avoid redundant adjacent `compound` groups with the same `relation`. Hermes
114
+ safely flattens those groups when an Atlas experiment is saved or submitted so
115
+ the generated cluster QP stays within the backend layer limit. Different
116
+ relations are always preserved.
113
117
 
114
118
  Semantic audience example:
115
119
 
@@ -9,7 +9,7 @@ Turn a business objective into an evidence-backed experiment design, an implemen
9
9
 
10
10
  ## Hard boundaries
11
11
 
12
- - Use `ae-cli` for every AE/TE platform interaction. Do not substitute raw HTTP, browser automation, direct database queries, MCP tools, or application SDKs.
12
+ - Use `ae-cli` for every AE/TE platform interaction. Do not substitute raw HTTP, browser automation, direct database queries, or application SDKs.
13
13
  - Do not infer an SDK request from the fact that an experiment needs implementation. Load SDK references only when the user explicitly asks about an A/B experiment SDK or client SDK integration.
14
14
  - Do not copy general tracking SDK documentation into this Skill. Route generic initialization, event reporting, `track`, user identity, user properties, data upload, LogBus, and REST questions to `ae-data-integration-helper` when that Skill is available.
15
15
  - Use only the event-metric calculation contracts defined in
@@ -4,7 +4,7 @@ Read this reference before any AE/TE platform interaction.
4
4
 
5
5
  ## Hard boundary
6
6
 
7
- All platform operations must use `ae-cli`. Do not call raw APIs, use browser automation, query a database, invoke te-mcp, or fabricate a platform result.
7
+ Use `ae-cli` for all platform operations. Do not call raw APIs, use browser automation, query a database, or fabricate a platform result.
8
8
 
9
9
  Use curated commands when their contract is known. Use the Capability Gateway for experiment capabilities that do not yet have a curated command:
10
10
 
@@ -4,7 +4,7 @@ Read this reference before retrieving any AE/TE experiment evidence.
4
4
 
5
5
  ## Hard boundary
6
6
 
7
- All platform discovery and reads must use `ae-cli`. Do not call raw APIs, use browser automation, query a database, invoke te-mcp, or invent report values.
7
+ Use `ae-cli` for all platform discovery and reads. Do not call raw APIs, use browser automation, query a database, or invent report values.
8
8
 
9
9
  Use the Capability Gateway when no curated experiment command exists:
10
10