@thinkingai/ae-cli 6.0.18 → 6.0.22
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 +8 -10
- package/README.zh.md +9 -11
- package/dist/{auth-DYC2BGLM.js → auth-I2G7OAU2.js} +2 -4
- package/dist/{auth-GHBMJ5ZR.js → auth-RDN6D5HU.js} +32 -104
- package/dist/{chunk-5OC7CYCG.js → chunk-2W7HULUD.js} +14 -14
- package/dist/chunk-4EUZRJPO.js +163 -0
- package/dist/{chunk-DMMEPCST.js → chunk-5FBLRSMU.js} +25 -115
- package/dist/{chunk-BJX3GXWC.js → chunk-E34XH4GW.js} +2 -2
- package/dist/chunk-FPE5LGVU.js +105 -0
- package/dist/{chunk-I5CRVM2S.js → chunk-H52CSLJW.js} +44 -17
- package/dist/{chunk-RSHMZ3LG.js → chunk-U6QPKCN3.js} +6 -20
- package/dist/{chunk-6W4QOZAL.js → chunk-WPXHCP4A.js} +23 -13
- package/dist/{chunk-PN3OS34E.js → chunk-XE2PI5DS.js} +1 -1
- package/dist/{chunk-2DUEAXV3.js → chunk-YACCPUNQ.js} +1 -1
- package/dist/cli-token-6AGEDJF4.js +14 -0
- package/dist/{client-2UJ63MVQ.js → client-VTJMUZ4O.js} +3 -3
- package/dist/{config-NCUGK6NS.js → config-2SDTLGOC.js} +3 -3
- package/dist/index.js +314 -197
- package/dist/metadata-JZ2OTWBK.js +420 -0
- package/dist/{model-SJSOZTRS.js → model-ZYMRN4VS.js} +2 -2
- package/dist/{raw-7NVWSVJP.js → raw-NGYHAL3F.js} +4 -4
- package/dist/{sync-GRVO4K3U.js → sync-JVLX6TGW.js} +3 -3
- package/dist/{te-agent-KZRIEN4N.js → te-agent-QPZTLHPH.js} +545 -21
- package/dist/{te-analysis-VAR4KUOK.js → te-analysis-WWX3Z6RP.js} +352 -52
- package/dist/te-audience-UXGHUVBB.js +599 -0
- package/dist/{te-common-WNCZB7R7.js → te-common-7XXH73MF.js} +5 -4
- package/dist/{te-community-JEEFXPB3.js → te-community-QKE67HR2.js} +5 -4
- package/dist/te-dataops-6W7NNYST.js +1841 -0
- package/dist/{te-engage-4XHCTS6I.js → te-engage-NCFAQFX3.js} +5 -4
- package/dist/{te-kb-B62KFP2A.js → te-kb-K5BQYUCM.js} +50 -26
- package/dist/{te-meta-EPZGQN56.js → te-meta-LJZBOSMO.js} +48 -24
- package/dist/{te-team-YY24VORI.js → te-team-DHK5R7MV.js} +5 -6
- package/package.json +3 -2
- package/skills/ae-agent/SKILL.md +103 -4
- package/skills/ae-analysis/SKILL.md +75 -21
- package/skills/ae-analysis/references/build_attribution_analysis_qp.md +62 -0
- package/skills/ae-analysis/references/build_cluster_definition.md +62 -0
- package/skills/ae-analysis/references/build_distribution_analysis_qp.md +67 -0
- package/skills/ae-analysis/references/build_event_analysis_qp.md +2 -0
- package/skills/ae-analysis/references/build_funnel_analysis_qp.md +2 -0
- package/skills/ae-analysis/references/build_heat_map_analysis_qp.md +54 -0
- package/skills/ae-analysis/references/build_interval_analysis_qp.md +60 -0
- package/skills/ae-analysis/references/build_path_analysis_qp.md +53 -0
- package/skills/ae-analysis/references/build_prop_analysis_qp.md +2 -0
- package/skills/ae-analysis/references/build_rank_list_analysis_qp.md +63 -0
- package/skills/ae-analysis/references/build_retention_analysis_qp.md +2 -0
- package/skills/ae-analysis/references/build_tag_definition.md +65 -0
- package/skills/ae-analysis/references/cancel_query.md +2 -3
- package/skills/ae-analysis/references/copy_dashboard.md +33 -0
- package/skills/ae-analysis/references/create_id_cluster.md +40 -0
- package/skills/ae-analysis/references/create_id_tag.md +39 -0
- package/skills/ae-analysis/references/delete_alert.md +27 -0
- package/skills/ae-analysis/references/delete_cluster.md +27 -0
- package/skills/ae-analysis/references/delete_dashboard.md +30 -0
- package/skills/ae-analysis/references/delete_metric.md +27 -0
- package/skills/ae-analysis/references/delete_report.md +27 -0
- package/skills/ae-analysis/references/delete_tag.md +27 -0
- package/skills/ae-analysis/references/drilldown_user_events.md +4 -4
- package/skills/ae-analysis/references/drilldown_users.md +3 -3
- package/skills/ae-analysis/references/freeze_dashboards.md +29 -0
- package/skills/ae-analysis/references/get_table_columns.md +11 -12
- package/skills/ae-analysis/references/list_cluster_members.md +4 -4
- package/skills/ae-analysis/references/list_clusters.md +5 -3
- package/skills/ae-analysis/references/list_dashboards.md +3 -3
- package/skills/ae-analysis/references/list_entities.md +1 -1
- package/skills/ae-analysis/references/list_events.md +7 -4
- package/skills/ae-analysis/references/list_metrics.md +5 -3
- package/skills/ae-analysis/references/list_properties.md +6 -4
- package/skills/ae-analysis/references/list_reports.md +3 -3
- package/skills/ae-analysis/references/list_spaces.md +27 -0
- package/skills/ae-analysis/references/list_tag_members.md +4 -4
- package/skills/ae-analysis/references/list_tags.md +4 -2
- package/skills/ae-analysis/references/move_dashboard.md +33 -0
- package/skills/ae-analysis/references/query_adhoc.md +2 -2
- package/skills/ae-analysis/references/query_bi_panel_data.md +2 -2
- package/skills/ae-analysis/references/query_dashboard_report_data.md +4 -4
- package/skills/ae-analysis/references/query_entity_details.md +4 -4
- package/skills/ae-analysis/references/query_event_details.md +3 -3
- package/skills/ae-analysis/references/query_report_data.md +37 -3
- package/skills/ae-analysis/references/update_id_cluster.md +36 -0
- package/skills/ae-analysis/references/update_id_tag.md +37 -0
- package/skills/ae-analysis/references/update_report.md +35 -0
- package/skills/ae-analysis-intent/SKILL.md +1 -1
- package/skills/ae-dataops/SKILL.md +54 -522
- package/skills/ae-dataops/references/dataops-flow-create.md +78 -75
- package/skills/ae-dataops/references/dataops-flow-monitor.md +58 -51
- package/skills/ae-dataops/references/dataops-integration.md +80 -41
- package/skills/ae-dataops/references/dataops-query.md +54 -53
- package/skills/ae-dataops/references/dataops-table.md +28 -59
- package/skills/ae-generate-tracking-code/SKILL.md +68 -31
- package/skills/ae-generate-tracking-code/references/snippet-delivery.md +26 -1
- package/skills/ae-generate-tracking-code/references/te-api.md +47 -164
- package/skills/ae-generate-tracking-plan/SKILL.md +109 -32
- package/skills/ae-generate-tracking-plan/references/te-api.md +57 -27
- package/skills/ae-metadata/SKILL.md +90 -0
- package/skills/ae-metadata/references/metadata_data_table_csv_delete.md +15 -0
- package/skills/ae-metadata/references/metadata_data_table_csv_write.md +29 -0
- package/skills/ae-metadata/references/metadata_data_table_download.md +17 -0
- package/skills/ae-metadata/references/metadata_data_table_get.md +24 -0
- package/skills/ae-metadata/references/metadata_data_table_list.md +27 -0
- package/skills/ae-metadata/references/metadata_data_table_property_bindings_update.md +17 -0
- package/skills/ae-metadata/references/metadata_data_table_sql_delete.md +15 -0
- package/skills/ae-metadata/references/metadata_data_table_sql_write.md +31 -0
- package/skills/ae-metadata/references/metadata_event_get.md +52 -0
- package/skills/ae-metadata/references/metadata_input_file_upload.md +29 -0
- package/skills/ae-metadata/references/metadata_property_dimension_table_bind_existing.md +27 -0
- package/skills/ae-metadata/references/metadata_property_dimension_table_create_and_bind_csv.md +30 -0
- package/skills/ae-metadata/references/metadata_property_get.md +54 -0
- package/dist/te-audience-KMKYI2YJ.js +0 -400
- package/dist/te-dataops-GD3XBYCS.js +0 -1830
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# analysis +build_interval_analysis_qp (Build Interval Analysis QP)
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Follow the Global AE CLI Rules in [`../SKILL.md`](../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Domain: **Model Analysis**
|
|
6
|
+
|
|
7
|
+
## Use Cases
|
|
8
|
+
- Build a validated interval-analysis QP from structured interval intent.
|
|
9
|
+
- Interval analysis measures the time elapsed between an initial event and a return event per user.
|
|
10
|
+
- Use in the mandatory builder flow before `+query_adhoc --model_type interval`.
|
|
11
|
+
- This command builds QP only and does not execute the analysis query.
|
|
12
|
+
|
|
13
|
+
## JSON Rules
|
|
14
|
+
- CLI flags use snake_case, but JSON object keys use camelCase.
|
|
15
|
+
- `--interval` is a JSON object. Required fields: `initialEvent`, `returnEvent`, `window` (`{value, unit}`).
|
|
16
|
+
- `window.unit`: second / minute / hour / day / week / month.
|
|
17
|
+
- Wrap JSON in single quotes in shell commands.
|
|
18
|
+
- Do not call `list_events` or `list_properties` before this builder for normal ad-hoc analysis.
|
|
19
|
+
|
|
20
|
+
## Command Syntax
|
|
21
|
+
```bash
|
|
22
|
+
ae-cli analysis +build_interval_analysis_qp --project_id <project_id> --time_range '<time_range_json>' --interval '<interval_json>'
|
|
23
|
+
ae-cli analysis +build_interval_analysis_qp --project_id <project_id> --time_range '<time_range_json>' --interval '<interval_json>' --relation and --time_particle_size day
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Parameters
|
|
27
|
+
| Parameter | Required | Description |
|
|
28
|
+
|---|---|---|
|
|
29
|
+
| `--project_id` / `-p` | Yes | Project ID |
|
|
30
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the QP. Do not pass this flag to `+query_adhoc`. |
|
|
31
|
+
| `--time_range` | Yes | Time range JSON |
|
|
32
|
+
| `--interval` | Yes | Interval intent JSON |
|
|
33
|
+
| `--relation` | No | Filter relation for top-level filters. Values: and, or. Default: and. |
|
|
34
|
+
| `--time_particle_size` | No | Time granularity. Allowed values: day, week, month. Defaults to day. |
|
|
35
|
+
|
|
36
|
+
## JSON Shape
|
|
37
|
+
`--interval` object:
|
|
38
|
+
```json
|
|
39
|
+
{"initialEvent":"login","returnEvent":"purchase","window":{"value":7,"unit":"day"}}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Optional fields in `--interval`:
|
|
43
|
+
- `relationEventPropertyName`: shared relation property for both events
|
|
44
|
+
- `groups`: group-by dimensions array
|
|
45
|
+
- `filters`: global filters array
|
|
46
|
+
- `initialFilters` / `returnFilters`: event-level filters (event properties only)
|
|
47
|
+
- `initialFilterRelation` / `returnFilterRelation`: and / or
|
|
48
|
+
|
|
49
|
+
## Examples
|
|
50
|
+
```bash
|
|
51
|
+
ae-cli analysis +build_interval_analysis_qp --project_id 3137 --time_range '{"mode":"previous","unit":"day","value":7}' --interval '{"initialEvent":"login","returnEvent":"purchase","window":{"value":7,"unit":"day"}}'
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Decision Rules
|
|
55
|
+
- Use `--authenticated_only true` only when the user explicitly wants authenticated assets; do not add this flag to `+query_adhoc`.
|
|
56
|
+
- After successful build (`status=generated`), call `+query_adhoc --model_type interval --qp '<response.qp>'`.
|
|
57
|
+
- If non-generated status, stop and ask user to clarify.
|
|
58
|
+
|
|
59
|
+
## Recommended Chain
|
|
60
|
+
- `+build_interval_analysis_qp` -> if `status=generated` -> `+query_adhoc --model_type interval --qp '<response.qp>'`
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# analysis +build_path_analysis_qp (Build Path Analysis QP)
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Follow the Global AE CLI Rules in [`../SKILL.md`](../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Domain: **Model Analysis**
|
|
6
|
+
|
|
7
|
+
## Use Cases
|
|
8
|
+
- Build a validated path-analysis QP from structured path intent.
|
|
9
|
+
- Path analysis visualizes user navigation flows between events within a session.
|
|
10
|
+
- Use in the mandatory builder flow before `+query_adhoc --model_type path`.
|
|
11
|
+
- This command builds QP only and does not execute the analysis query.
|
|
12
|
+
|
|
13
|
+
## JSON Rules
|
|
14
|
+
- CLI flags use snake_case, but JSON object keys use camelCase.
|
|
15
|
+
- `--path` is a JSON object. Required fields: `sourceEvent`, `eventNames` (array), `sessionInterval`, `sessionUnit`.
|
|
16
|
+
- `sessionUnit`: second / minute / hour.
|
|
17
|
+
- `sourceType`: 0=forward path (after source event, default), 1=backward path (before source event).
|
|
18
|
+
- Wrap JSON in single quotes in shell commands.
|
|
19
|
+
|
|
20
|
+
## Command Syntax
|
|
21
|
+
```bash
|
|
22
|
+
ae-cli analysis +build_path_analysis_qp --project_id <project_id> --time_range '<time_range_json>' --path '<path_json>'
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Parameters
|
|
26
|
+
| Parameter | Required | Description |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| `--project_id` / `-p` | Yes | Project ID |
|
|
29
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the QP. Do not pass this flag to `+query_adhoc`. |
|
|
30
|
+
| `--time_range` | Yes | Time range JSON |
|
|
31
|
+
| `--path` | Yes | Path intent JSON |
|
|
32
|
+
|
|
33
|
+
## JSON Shape
|
|
34
|
+
`--path` object:
|
|
35
|
+
```json
|
|
36
|
+
{"sourceEvent":"login","eventNames":["login","view_product","purchase"],"sessionInterval":30,"sessionUnit":"minute"}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Optional fields in `--path`:
|
|
40
|
+
- `sourceType`: 0=forward (default), 1=backward
|
|
41
|
+
|
|
42
|
+
## Examples
|
|
43
|
+
```bash
|
|
44
|
+
ae-cli analysis +build_path_analysis_qp --project_id 3137 --time_range '{"mode":"previous","unit":"day","value":7}' --path '{"sourceEvent":"login","eventNames":["login","view_product","purchase"],"sessionInterval":30,"sessionUnit":"minute"}'
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Decision Rules
|
|
48
|
+
- Use `--authenticated_only true` only when the user explicitly wants authenticated assets; do not add this flag to `+query_adhoc`.
|
|
49
|
+
- After successful build (`status=generated`), call `+query_adhoc --model_type path --qp '<response.qp>'`.
|
|
50
|
+
- If non-generated status, stop and ask user to clarify.
|
|
51
|
+
|
|
52
|
+
## Recommended Chain
|
|
53
|
+
- `+build_path_analysis_qp` -> if `status=generated` -> `+query_adhoc --model_type path --qp '<response.qp>'`
|
|
@@ -32,6 +32,7 @@ ae-cli analysis +build_prop_analysis_qp --project_id <project_id> --prop_analysi
|
|
|
32
32
|
| Parameter | Required | Description |
|
|
33
33
|
|---|---|---|
|
|
34
34
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
35
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the QP. Do not pass this flag to `+query_adhoc`. |
|
|
35
36
|
| `--prop_analysis` | Yes | User property analysis intent JSON |
|
|
36
37
|
|
|
37
38
|
## JSON Shape
|
|
@@ -110,6 +111,7 @@ ae-cli analysis +build_prop_analysis_qp --project_id 3137 --prop_analysis '{"met
|
|
|
110
111
|
```
|
|
111
112
|
|
|
112
113
|
## Decision Rules
|
|
114
|
+
- Use `--authenticated_only true` only when the user explicitly wants authenticated assets; do not add this flag to `+query_adhoc`.
|
|
113
115
|
- After successful build, call `+query_adhoc --model_type prop_analysis --qp '<response.qp>'`.
|
|
114
116
|
- If build returns non-generated status, stop and ask user to clarify; do not call `+query_adhoc`.
|
|
115
117
|
- Wrap JSON parameters in single quotes to avoid shell escaping issues.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# analysis +build_rank_list_analysis_qp (Build Rank List Analysis QP)
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Follow the Global AE CLI Rules in [`../SKILL.md`](../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Domain: **Model Analysis**
|
|
6
|
+
|
|
7
|
+
## Use Cases
|
|
8
|
+
- Build a validated rank-list-analysis QP from structured rank list intent.
|
|
9
|
+
- Rank list analysis ranks entities (users, items, etc.) by a metric value.
|
|
10
|
+
- Use in the mandatory builder flow before `+query_adhoc --model_type rank_list`.
|
|
11
|
+
- This command builds QP only and does not execute the analysis query.
|
|
12
|
+
|
|
13
|
+
## JSON Rules
|
|
14
|
+
- CLI flags use snake_case, but JSON object keys use camelCase.
|
|
15
|
+
- `--rank_list` is a JSON object. Required fields: `rankDimension` (with `field`), `rankEvent`, `rankAggregation`.
|
|
16
|
+
- `rankType` values: `rank`=standard (1,2,2,4), `dense_rank`=dense (1,2,2,3), `row_rank`=unique (1,2,3,4). Defaults to `row_rank`.
|
|
17
|
+
- `orderBy`: `DESC`=highest first (default), `ASC`=lowest first.
|
|
18
|
+
- Wrap JSON in single quotes in shell commands.
|
|
19
|
+
|
|
20
|
+
## Command Syntax
|
|
21
|
+
```bash
|
|
22
|
+
ae-cli analysis +build_rank_list_analysis_qp --project_id <project_id> --time_range '<time_range_json>' --rank_list '<rank_list_json>'
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Parameters
|
|
26
|
+
| Parameter | Required | Description |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| `--project_id` / `-p` | Yes | Project ID |
|
|
29
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the QP. Do not pass this flag to `+query_adhoc`. |
|
|
30
|
+
| `--time_range` | Yes | Time range JSON |
|
|
31
|
+
| `--rank_list` | Yes | Rank list intent JSON |
|
|
32
|
+
|
|
33
|
+
## JSON Shape
|
|
34
|
+
`--rank_list` object:
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"rankDimension": {"field": {"name": "#account_id", "type": "user_property"}},
|
|
38
|
+
"rankEvent": "purchase",
|
|
39
|
+
"rankAggregation": "A103",
|
|
40
|
+
"rankProperty": "amount",
|
|
41
|
+
"orderBy": "DESC"
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Optional fields in `--rank_list`:
|
|
46
|
+
- `rankProperty`: required when rankAggregation is property-based (A103/A104/A106/A107/A108 etc.)
|
|
47
|
+
- `rankType`: rank / dense_rank / row_rank (default)
|
|
48
|
+
- `orderBy`: DESC (default) / ASC
|
|
49
|
+
- `filters`: global filters array
|
|
50
|
+
- `relation`: filter relation (and / or)
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
```bash
|
|
54
|
+
ae-cli analysis +build_rank_list_analysis_qp --project_id 3137 --time_range '{"mode":"previous","unit":"day","value":7}' --rank_list '{"rankDimension":{"field":{"name":"#account_id","type":"user_property"}},"rankEvent":"purchase","rankAggregation":"A101","orderBy":"DESC"}'
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Decision Rules
|
|
58
|
+
- Use `--authenticated_only true` only when the user explicitly wants authenticated assets; do not add this flag to `+query_adhoc`.
|
|
59
|
+
- After successful build (`status=generated`), call `+query_adhoc --model_type rank_list --qp '<response.qp>'`.
|
|
60
|
+
- If non-generated status, stop and ask user to clarify.
|
|
61
|
+
|
|
62
|
+
## Recommended Chain
|
|
63
|
+
- `+build_rank_list_analysis_qp` -> if `status=generated` -> `+query_adhoc --model_type rank_list --qp '<response.qp>'`
|
|
@@ -33,6 +33,7 @@ ae-cli analysis +build_retention_analysis_qp --project_id <project_id> --time_ra
|
|
|
33
33
|
| Parameter | Required | Description |
|
|
34
34
|
|---|---|---|
|
|
35
35
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
36
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the QP. Do not pass this flag to `+query_adhoc`. |
|
|
36
37
|
| `--time_range` | Yes | Retention analysis time range JSON |
|
|
37
38
|
| `--retention` | Yes | Retention intent JSON |
|
|
38
39
|
| `--relation` | No | Top-level retention filter relation. Supported values: and, or. Default: and |
|
|
@@ -129,6 +130,7 @@ ae-cli analysis +build_retention_analysis_qp --project_id 3137 --time_range '{"m
|
|
|
129
130
|
```
|
|
130
131
|
|
|
131
132
|
## Decision Rules
|
|
133
|
+
- Use `--authenticated_only true` only when the user explicitly wants authenticated assets; do not add this flag to `+query_adhoc`.
|
|
132
134
|
- After successful build, call `+query_adhoc --model_type retention --qp '<response.qp>'`.
|
|
133
135
|
- If build returns non-generated status, stop and ask user to clarify; do not call `+query_adhoc`.
|
|
134
136
|
- Wrap JSON parameters in single quotes to avoid shell escaping issues.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# analysis_audience +build_tag_definition (Build Tag Definition)
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Follow the Global AE CLI Rules in [`../SKILL.md`](../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Domain: **Tag Management**
|
|
6
|
+
|
|
7
|
+
## Use Cases
|
|
8
|
+
|
|
9
|
+
- Build a tag definition JSON from structured intent. Call this before `+create_tag` or `+update_tag` to generate the `definition` field.
|
|
10
|
+
- Supported types: `condition` (multi-value), `metric` (event metric), `first_last` (first/last occurrence), `sql`.
|
|
11
|
+
- For condition/metric/first_last types, event and property names are resolved from project metadata — do not guess.
|
|
12
|
+
- On success, pass the returned definition to `+create_tag` or `+update_tag`.
|
|
13
|
+
|
|
14
|
+
## Required Prerequisites (MUST)
|
|
15
|
+
|
|
16
|
+
- Before calling this command, you must first read and follow these reference docs:
|
|
17
|
+
- [`./get_tag_definition_schema.md`](./get_tag_definition_schema.md)
|
|
18
|
+
- [`./list_events.md`](./list_events.md)
|
|
19
|
+
- [`./list_properties.md`](./list_properties.md)
|
|
20
|
+
- Do not construct `--condition_values` / `--metric` / `--first_last` until the schema has been read and metadata has been verified for the same `project_id`.
|
|
21
|
+
|
|
22
|
+
## Commands
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
ae-cli analysis_audience +build_tag_definition --project_id <project_id> --type condition --condition_values '[]'
|
|
26
|
+
ae-cli analysis_audience +build_tag_definition --project_id <project_id> --type metric --metric '{}'
|
|
27
|
+
ae-cli analysis_audience +build_tag_definition --project_id <project_id> --type first_last --first_last '{}'
|
|
28
|
+
ae-cli analysis_audience +build_tag_definition --project_id <project_id> --type sql --sql 'SELECT "#user_id", tag_value FROM ...'
|
|
29
|
+
ae-cli analysis_audience +build_tag_definition --dry-run
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Parameters
|
|
33
|
+
|
|
34
|
+
| Parameter | Required | Description |
|
|
35
|
+
| --------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
36
|
+
| `--project_id` / `-p` | Yes | Project ID |
|
|
37
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the definition. |
|
|
38
|
+
| `--type` | Yes | Tag type. Supported values: `condition`, `metric`, `first_last`, `sql` |
|
|
39
|
+
| `--condition_values` | No | For type=condition: list of tag value definitions JSON array. Each item defines a segment label and its conditions. See `+get_tag_definition_schema` for the structure. |
|
|
40
|
+
| `--metric` | No | For type=metric: metric definition JSON. Fields: `eventName`, `analysis`, `quota` (property name), `recentDay`/`startTime`/`endTime`. |
|
|
41
|
+
| `--first_last` | No | For type=first_last: first/last occurrence definition JSON. Fields: `eventName`, `firstEvent` (true=first, false=last), `calcPropType`, `property`, `recentDay`/`startTime`/`endTime`. |
|
|
42
|
+
| `--sql` | No | For type=sql: SQL query returning two columns: `#user_id` and the tag value. |
|
|
43
|
+
|
|
44
|
+
## Decision Rules
|
|
45
|
+
- Use `--authenticated_only true` when the definition should only resolve authenticated events/properties/metrics/clusters/tags.
|
|
46
|
+
|
|
47
|
+
- Determine `--type` first, then pass only the corresponding parameter.
|
|
48
|
+
- For type=condition, `--condition_values` is effectively required.
|
|
49
|
+
- For type=metric, `--metric` is effectively required.
|
|
50
|
+
- For type=first_last, `--first_last` is effectively required.
|
|
51
|
+
- For type=sql, only `--sql` is needed; other type-specific parameters are ignored.
|
|
52
|
+
- Event and property names must come from session-verified metadata (`analysis_meta +list_events` / `+list_properties` for the same `project_id`).
|
|
53
|
+
- Do not guess event or property names — always verify against real metadata first.
|
|
54
|
+
- Wrap JSON parameters in single quotes (e.g. `--condition_values '[]'`) to avoid shell escaping issues.
|
|
55
|
+
- Run `--dry-run` first to inspect the request mapping before making the actual call.
|
|
56
|
+
|
|
57
|
+
## Next Step on Failure
|
|
58
|
+
|
|
59
|
+
- If required parameters are missing, check that `--project_id` and `--type` are provided.
|
|
60
|
+
- If the returned definition is rejected by `+create_tag` or `+update_tag`, re-read `+get_tag_definition_schema` with `--response_mode examples` and verify metadata names again.
|
|
61
|
+
|
|
62
|
+
## Recommended Chain
|
|
63
|
+
|
|
64
|
+
- `+get_tag_definition_schema` → (first build/update in session or refresh) `analysis_meta +list_events` → `analysis_meta +list_properties` → `+build_tag_definition` → `+create_tag`
|
|
65
|
+
- `+get_tag_definition_schema` → (first build/update in session or refresh) `analysis_meta +list_events` → `analysis_meta +list_properties` → `+build_tag_definition` → `+update_tag`
|
|
@@ -10,7 +10,7 @@ Domain: **Query lifecycle**
|
|
|
10
10
|
- Cancel a query by the same `requestId` that was supplied to or returned by a previous query command.
|
|
11
11
|
- For proactive cancellation, pass `requestId` to the query tool before starting it, then call `cancel_query` with the same value if you stop waiting.
|
|
12
12
|
- If a query returns `fetch failed`, hits an HTTP timeout, or the caller stops waiting, the backend query may still be running; call `+cancel_query --request_id <same value>` with the preset `requestId`.
|
|
13
|
-
-
|
|
13
|
+
- MCP query tools require caller-supplied `requestId`; generate and pass it before starting any cancelable query, then reuse the same value if cleanup is needed.
|
|
14
14
|
|
|
15
15
|
## Command
|
|
16
16
|
```bash
|
|
@@ -30,9 +30,8 @@ ae-cli analysis +cancel_query --request_id mcp_0123456789abcdef0123456789abcdef
|
|
|
30
30
|
- The request must belong to the current MCP user. Otherwise the service returns `REQUEST_NOT_FOUND_OR_NOT_OWNED`.
|
|
31
31
|
- Do not invent a request ID. Use the ID from the query response or the ID explicitly supplied to the original query.
|
|
32
32
|
- This command cancels by request ID only. It does not cancel by SQL text, report ID, dashboard ID, BI panel ID, run ID, or tool call ID.
|
|
33
|
-
- For query commands that expose `--request_id`,
|
|
33
|
+
- For query commands that expose `--request_id`, supplying a stable ID before execution is required. Use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`, so proactive cancellation does not depend on waiting for the response metadata.
|
|
34
34
|
- For query commands that may exceed the CLI/MCP HTTP timeout, preset `--request_id`; if `fetch failed`, HTTP timeout, or caller timeout happens, immediately call `+cancel_query --request_id <same value> --yes`.
|
|
35
|
-
- For commands that do not expose caller-supplied `request_id`, cancel only if the response includes a request ID.
|
|
36
35
|
|
|
37
36
|
## Next Steps on Failure
|
|
38
37
|
- If `REQUEST_NOT_FOUND_OR_NOT_OWNED` appears, verify the request ID, user identity, host, and whether the original query already finished.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# analysis +copy_dashboard (Copy Dashboard)
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Follow the Global AE CLI Rules in [`../SKILL.md`](../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Domain: **Dashboard Management**
|
|
6
|
+
|
|
7
|
+
## Use Cases
|
|
8
|
+
- Copy a dashboard to a new dashboard, optionally copying its associated reports.
|
|
9
|
+
- To place the copy in a specific space or folder, provide `--to_space_id` or `--to_folder_id`. Use `+list_spaces` to resolve these IDs.
|
|
10
|
+
|
|
11
|
+
## Commands
|
|
12
|
+
```bash
|
|
13
|
+
ae-cli analysis_audience +copy_dashboard --project_id <project_id> --dashboard_id <dashboard_id> --dashboard_name "Copy of Dashboard"
|
|
14
|
+
ae-cli analysis_audience +copy_dashboard --project_id <project_id> --dashboard_id <dashboard_id> --dashboard_name "Copy of Dashboard" --report_copy true --to_space_id <space_id>
|
|
15
|
+
ae-cli analysis_audience +copy_dashboard --dry-run
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Parameters
|
|
19
|
+
| Parameter | Required | Description |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| `--project_id` / `-p` | Yes | Project ID |
|
|
22
|
+
| `--dashboard_id` | Yes | Source dashboard ID to copy |
|
|
23
|
+
| `--dashboard_name` | Yes | Name for the new copied dashboard |
|
|
24
|
+
| `--report_copy` | No | Whether to also copy associated reports. Defaults to false. |
|
|
25
|
+
| `--to_space_id` | No | Target space ID. Omit to use the default location. |
|
|
26
|
+
| `--to_folder_id` | No | Target folder ID inside the target space. Omit to place at the space root. |
|
|
27
|
+
|
|
28
|
+
## Decision Rules
|
|
29
|
+
- Call `+list_spaces` first when the user wants to place the copy in a specific space or folder.
|
|
30
|
+
- Returns the new dashboard ID and name on success.
|
|
31
|
+
|
|
32
|
+
## Recommended Chain
|
|
33
|
+
- `+list_dashboards` -> `+list_spaces` -> `+copy_dashboard` -> `analysis_common +get_resource_url`
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# analysis_audience +create_id_cluster (Create ID Cluster)
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Follow the Global AE CLI Rules in [`../SKILL.md`](../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Domain: **Cluster Management**
|
|
6
|
+
|
|
7
|
+
## Use Cases
|
|
8
|
+
- Create a new ID cluster by uploading a CSV of user IDs as plain text.
|
|
9
|
+
- The CSV should contain a single column of user IDs (no header row required).
|
|
10
|
+
- The operation is asynchronous — the cluster enters computing state after creation.
|
|
11
|
+
|
|
12
|
+
## Commands
|
|
13
|
+
```bash
|
|
14
|
+
ae-cli analysis_audience +create_id_cluster --project_id <project_id> --display_name "My ID Cluster" --file_content "user_001
|
|
15
|
+
user_002
|
|
16
|
+
user_003" --entity_id <entity_id>
|
|
17
|
+
ae-cli analysis_audience +create_id_cluster --project_id <project_id> --display_name "My ID Cluster" --file_content "user_001" --entity_id <entity_id> --cluster_name my_id_cluster --remarks "Created by script"
|
|
18
|
+
ae-cli analysis_audience +create_id_cluster --dry-run
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Parameters
|
|
22
|
+
| Parameter | Required | Description |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| `--project_id` / `-p` | Yes | Project ID |
|
|
25
|
+
| `--display_name` | Yes | Cluster display name (1-80 characters) |
|
|
26
|
+
| `--file_content` | Yes | CSV file content as plain text. No header row, UTF-8 encoding. Each row contains one user ID. Max 100MB. |
|
|
27
|
+
| `--entity_id` | Yes | Entity ID to associate the cluster with. Use `analysis_meta +list_entities` to query. |
|
|
28
|
+
| `--cluster_name` | No | Cluster name (lowercase letters, digits, underscores, starts with a letter, max 80 chars). Auto-generated if omitted. |
|
|
29
|
+
| `--remarks` | No | Optional remarks (max 200 characters) |
|
|
30
|
+
| `--main_column_name` | No | Optional main column name for ID matching |
|
|
31
|
+
|
|
32
|
+
## Return Value
|
|
33
|
+
Returns `clusterId`, `uploadNum` (rows uploaded), `userNum` (matched users), `unmatchedNum` (unmatched rows), and `clusterName`.
|
|
34
|
+
|
|
35
|
+
## Decision Rules
|
|
36
|
+
- Call `analysis_meta +list_entities` to resolve `entity_id` before creating.
|
|
37
|
+
- If file size exceeds 100MB, inform the user to upload directly via the web interface.
|
|
38
|
+
|
|
39
|
+
## Recommended Chain
|
|
40
|
+
- `analysis_meta +list_entities` -> `+create_id_cluster` -> `+refresh_cluster`
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# analysis_audience +create_id_tag (Create ID Tag)
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Follow the Global AE CLI Rules in [`../SKILL.md`](../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Domain: **Tag Management**
|
|
6
|
+
|
|
7
|
+
## Use Cases
|
|
8
|
+
- Create a new ID tag by uploading a CSV of user IDs and tag values as plain text.
|
|
9
|
+
- The CSV should contain two columns: user ID and tag value (tag value is optional).
|
|
10
|
+
- The operation is asynchronous — the tag enters computing state after creation.
|
|
11
|
+
|
|
12
|
+
## Commands
|
|
13
|
+
```bash
|
|
14
|
+
ae-cli analysis_audience +create_id_tag --project_id <project_id> --display_name "VIP Tag" --file_content "user_001,gold
|
|
15
|
+
user_002,silver" --entity_id <entity_id>
|
|
16
|
+
ae-cli analysis_audience +create_id_tag --project_id <project_id> --display_name "VIP Tag" --file_content "user_001,gold" --entity_id <entity_id> --tag_name vip_tag --remarks "ID-based tag"
|
|
17
|
+
ae-cli analysis_audience +create_id_tag --dry-run
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Parameters
|
|
21
|
+
| Parameter | Required | Description |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `--project_id` / `-p` | Yes | Project ID |
|
|
24
|
+
| `--display_name` | Yes | Tag display name (1-80 characters) |
|
|
25
|
+
| `--file_content` | Yes | CSV file content as plain text. No header row, UTF-8 encoding. Column 1: user ID. Column 2: tag value (optional). Example: user_001,gold_member. Max 100MB. |
|
|
26
|
+
| `--entity_id` | Yes | Entity ID to associate the tag with. Use `analysis_meta +list_entities` to query. |
|
|
27
|
+
| `--tag_name` | No | Tag name (letters/digits/underscores, starts with a letter, max 80 chars). Auto-generated if omitted. |
|
|
28
|
+
| `--remarks` | No | Optional remarks (max 200 characters) |
|
|
29
|
+
| `--main_column_name` | No | Optional main column name for ID matching |
|
|
30
|
+
|
|
31
|
+
## Return Value
|
|
32
|
+
Returns `clusterId`, `uploadNum` (rows uploaded), `userNum` (matched users), `unmatchedNum` (unmatched rows), and `clusterName` (tag name).
|
|
33
|
+
|
|
34
|
+
## Decision Rules
|
|
35
|
+
- Call `analysis_meta +list_entities` to resolve `entity_id` before creating.
|
|
36
|
+
- If file size exceeds 100MB, inform the user to upload directly via the web interface.
|
|
37
|
+
|
|
38
|
+
## Recommended Chain
|
|
39
|
+
- `analysis_meta +list_entities` -> `+create_id_tag` -> `+refresh_tag`
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# analysis +delete_alert (Delete Alert)
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Follow the Global AE CLI Rules in [`../SKILL.md`](../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Domain: **Alert Management**
|
|
6
|
+
|
|
7
|
+
## Use Cases
|
|
8
|
+
- Permanently delete an alert by its ID.
|
|
9
|
+
|
|
10
|
+
## Commands
|
|
11
|
+
```bash
|
|
12
|
+
ae-cli analysis +delete_alert --project_id <project_id> --alert_id <alert_id>
|
|
13
|
+
ae-cli analysis +delete_alert --dry-run
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Parameters
|
|
17
|
+
| Parameter | Required | Description |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| `--project_id` / `-p` | Yes | Project ID |
|
|
20
|
+
| `--alert_id` | Yes | Alert ID to delete |
|
|
21
|
+
|
|
22
|
+
## Decision Rules
|
|
23
|
+
- Use `+list_alerts` first to confirm the alert ID before deleting.
|
|
24
|
+
- This is a destructive operation; keep the confirmation prompt unless automation is explicitly required.
|
|
25
|
+
|
|
26
|
+
## Recommended Chain
|
|
27
|
+
- `+list_alerts` -> `+delete_alert`
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# analysis_audience +delete_cluster (Delete Cluster)
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Follow the Global AE CLI Rules in [`../SKILL.md`](../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Domain: **Cluster Management**
|
|
6
|
+
|
|
7
|
+
## Use Cases
|
|
8
|
+
- Permanently delete a cluster by its name.
|
|
9
|
+
|
|
10
|
+
## Commands
|
|
11
|
+
```bash
|
|
12
|
+
ae-cli analysis_audience +delete_cluster --project_id <project_id> --cluster_name my_cluster
|
|
13
|
+
ae-cli analysis_audience +delete_cluster --dry-run
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Parameters
|
|
17
|
+
| Parameter | Required | Description |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| `--project_id` / `-p` | Yes | Project ID |
|
|
20
|
+
| `--cluster_name` | Yes | Cluster name to delete |
|
|
21
|
+
|
|
22
|
+
## Decision Rules
|
|
23
|
+
- Use `+list_clusters` first to confirm the cluster name before deleting.
|
|
24
|
+
- This is a destructive operation; keep the confirmation prompt unless automation is explicitly required.
|
|
25
|
+
|
|
26
|
+
## Recommended Chain
|
|
27
|
+
- `+list_clusters` -> `+delete_cluster`
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# analysis +delete_dashboard (Delete Dashboard)
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Follow the Global AE CLI Rules in [`../SKILL.md`](../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Domain: **Dashboard Management**
|
|
6
|
+
|
|
7
|
+
## Use Cases
|
|
8
|
+
- Permanently delete a dashboard by its ID.
|
|
9
|
+
|
|
10
|
+
## Commands
|
|
11
|
+
```bash
|
|
12
|
+
ae-cli analysis +delete_dashboard --project_id <project_id> --dashboard_id <dashboard_id>
|
|
13
|
+
ae-cli analysis +delete_dashboard --dry-run
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Parameters
|
|
17
|
+
| Parameter | Required | Description |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| `--project_id` / `-p` | Yes | Project ID |
|
|
20
|
+
| `--dashboard_id` | Yes | Dashboard ID to delete |
|
|
21
|
+
|
|
22
|
+
## Decision Rules
|
|
23
|
+
- Use `+list_dashboards` first to confirm the dashboard ID before deleting.
|
|
24
|
+
- This is a destructive operation; keep the confirmation prompt unless automation is explicitly required.
|
|
25
|
+
|
|
26
|
+
## Next Step on Failure
|
|
27
|
+
- If the dashboard is not found, use `+list_dashboards` to verify the ID.
|
|
28
|
+
|
|
29
|
+
## Recommended Chain
|
|
30
|
+
- `+list_dashboards` -> `+delete_dashboard`
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# analysis_meta +delete_metric (Delete Metric)
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Follow the Global AE CLI Rules in [`../SKILL.md`](../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Domain: **Metric Management**
|
|
6
|
+
|
|
7
|
+
## Use Cases
|
|
8
|
+
- Permanently delete a metric by its ID.
|
|
9
|
+
|
|
10
|
+
## Commands
|
|
11
|
+
```bash
|
|
12
|
+
ae-cli analysis_meta +delete_metric --project_id <project_id> --metric_id <metric_id>
|
|
13
|
+
ae-cli analysis_meta +delete_metric --dry-run
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Parameters
|
|
17
|
+
| Parameter | Required | Description |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| `--project_id` / `-p` | Yes | Project ID |
|
|
20
|
+
| `--metric_id` | Yes | Metric ID to delete |
|
|
21
|
+
|
|
22
|
+
## Decision Rules
|
|
23
|
+
- Use `+list_metrics` first to confirm the metric ID before deleting.
|
|
24
|
+
- This is a destructive operation; keep the confirmation prompt unless automation is explicitly required.
|
|
25
|
+
|
|
26
|
+
## Recommended Chain
|
|
27
|
+
- `+list_metrics` -> `+delete_metric`
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# analysis +delete_report (Delete Report)
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Follow the Global AE CLI Rules in [`../SKILL.md`](../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Domain: **Report Management**
|
|
6
|
+
|
|
7
|
+
## Use Cases
|
|
8
|
+
- Permanently delete a report by its ID.
|
|
9
|
+
|
|
10
|
+
## Commands
|
|
11
|
+
```bash
|
|
12
|
+
ae-cli analysis +delete_report --project_id <project_id> --report_id <report_id>
|
|
13
|
+
ae-cli analysis +delete_report --dry-run
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Parameters
|
|
17
|
+
| Parameter | Required | Description |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| `--project_id` / `-p` | Yes | Project ID |
|
|
20
|
+
| `--report_id` | Yes | Report ID to delete |
|
|
21
|
+
|
|
22
|
+
## Decision Rules
|
|
23
|
+
- Use `+list_reports` first to confirm the report ID before deleting.
|
|
24
|
+
- This is a destructive operation; keep the confirmation prompt unless automation is explicitly required.
|
|
25
|
+
|
|
26
|
+
## Recommended Chain
|
|
27
|
+
- `+list_reports` -> `+delete_report`
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# analysis_audience +delete_tag (Delete Tag)
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Follow the Global AE CLI Rules in [`../SKILL.md`](../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Domain: **Tag Management**
|
|
6
|
+
|
|
7
|
+
## Use Cases
|
|
8
|
+
- Permanently delete a tag by its name.
|
|
9
|
+
|
|
10
|
+
## Commands
|
|
11
|
+
```bash
|
|
12
|
+
ae-cli analysis_audience +delete_tag --project_id <project_id> --tag_name my_tag
|
|
13
|
+
ae-cli analysis_audience +delete_tag --dry-run
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Parameters
|
|
17
|
+
| Parameter | Required | Description |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| `--project_id` / `-p` | Yes | Project ID |
|
|
20
|
+
| `--tag_name` | Yes | Tag name to delete |
|
|
21
|
+
|
|
22
|
+
## Decision Rules
|
|
23
|
+
- Use `+list_tags` first to confirm the tag name before deleting.
|
|
24
|
+
- This is a destructive operation; keep the confirmation prompt unless automation is explicitly required.
|
|
25
|
+
|
|
26
|
+
## Recommended Chain
|
|
27
|
+
- `+list_tags` -> `+delete_tag`
|
|
@@ -56,18 +56,18 @@ ae-cli analysis +drilldown_user_events --dry-run
|
|
|
56
56
|
| `--use_cache` | No | Whether to use cache. Default: true |
|
|
57
57
|
| `--page_num` | No | Start page number, default 1 |
|
|
58
58
|
| `--page_size` | No | Page size. Default: 1000, maximum: 10000 |
|
|
59
|
-
| `--request_id` |
|
|
59
|
+
| `--request_id` | Yes | Required unique request ID used for tracking and cancellation. Generate it before starting the query. It must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`. Provide this before starting the query so it can be cancelled later with `+cancel_query --request_id <same value>`, even if the caller stops waiting before the tool returns. If `fetch failed`, HTTP timeout, or caller timeout happens, the backend query may still be running. `requestId` is not auto-generated for MCP query tools because the caller must know it before the response for proactive cleanup. If omitted or blank, the backend returns `REQUEST_ID_REQUIRED`; invalid format returns `INVALID_REQUEST_ID`. The response `metadata.requestId` echoes the supplied requestId and can also be passed to `cancel_query(requestId)` when the query is no longer needed. |
|
|
60
60
|
| `--timeout_minutes` | No | Query timeout in minutes |
|
|
61
61
|
|
|
62
62
|
## Decision Rules
|
|
63
63
|
- `user_id` / `event_names` / `target_dates` must come from the previous step result and must not be constructed out of thin air.
|
|
64
|
-
- On the first run,
|
|
64
|
+
- On the first run, include all required parameters (`--project_id`,`--user_id`,`--event_names`,`--target_dates`,`--request_id`), and add optional parameters after confirming the path works.
|
|
65
65
|
- Wrap JSON parameters in single quotes (for example `--event_names '[]'`, `--target_dates '[]'`) to avoid shell escaping issues.
|
|
66
|
-
-
|
|
66
|
+
- Generate and pass `--request_id` before starting any cancelable query; it is required. If `fetch failed`, HTTP timeout, or caller timeout happens, the backend query may still be running; call `+cancel_query --request_id <same value>` with the preset ID. The value must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`. Omitted or blank IDs return `REQUEST_ID_REQUIRED`; invalid format returns `INVALID_REQUEST_ID`.
|
|
67
67
|
- For cross-project troubleshooting, first confirm whether `--project_id` matches the current permissions and target environment.
|
|
68
68
|
|
|
69
69
|
## Next Steps on Failure
|
|
70
|
-
- If required parameters are missing, fall back to the smallest runnable command and fill them in first (focus on `--project_id`, `--user_id`, `--event_names`, `--target_dates`).
|
|
70
|
+
- If required parameters are missing, fall back to the smallest runnable command and fill them in first (focus on `--project_id`, `--user_id`, `--event_names`, `--target_dates`, `--request_id`).
|
|
71
71
|
- If `Invalid JSON` appears, first verify the array structure, then compare it with the previous drilldown result to confirm the values are complete and valid.
|
|
72
72
|
|
|
73
73
|
## Recommended chaining
|
|
@@ -57,15 +57,15 @@ ae-cli analysis +drilldown_users --dry-run
|
|
|
57
57
|
| `--use_cache` | No | Whether to use cache. Default: true |
|
|
58
58
|
| `--limit` | No | Optional limit. Default: 1000, maximum: 10000. |
|
|
59
59
|
| `--offset` | No | Optional offset. Default: 0. |
|
|
60
|
-
| `--request_id` |
|
|
60
|
+
| `--request_id` | Yes | Required unique request ID used for tracking and cancellation. Generate it before starting the query. It must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`. Provide this before starting the query so it can be cancelled later with `+cancel_query --request_id <same value>`, even if the caller stops waiting before the tool returns. If `fetch failed`, HTTP timeout, or caller timeout happens, the backend query may still be running. `requestId` is not auto-generated for MCP query tools because the caller must know it before the response for proactive cleanup. If omitted or blank, the backend returns `REQUEST_ID_REQUIRED`; invalid format returns `INVALID_REQUEST_ID`. The response `metadata.requestId` echoes the supplied requestId and can also be passed to `cancel_query(requestId)` when the query is no longer needed. |
|
|
61
61
|
| `--timeout_minutes` | No | Query timeout in minutes. If the query exceeds this time, it will be cancelled automatically. |
|
|
62
62
|
|
|
63
63
|
## Decision Rules
|
|
64
64
|
- Drilldown positioning parameters must come from upstream analysis results and must not be fabricated.
|
|
65
65
|
- `qp` must not be rewritten or "simplified"; it should remain consistent with the source analysis.
|
|
66
66
|
- For pagination, use `--limit` and `--offset` together. Default limit is 1000, maximum 100000.
|
|
67
|
-
-
|
|
68
|
-
- For the first run,
|
|
67
|
+
- Generate and pass `--request_id` before starting any cancelable query; it is required. If `fetch failed`, HTTP timeout, or caller timeout happens, the backend query may still be running; call `+cancel_query --request_id <same value>` with the preset ID. The value must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`. Omitted or blank IDs return `REQUEST_ID_REQUIRED`; invalid format returns `INVALID_REQUEST_ID`.
|
|
68
|
+
- For the first run, include all required parameters (`--project_id`, `--model_type`, `--qp`, `--request_id`) and add optional parameters after confirming the chain works.
|
|
69
69
|
- Wrap JSON parameters in single quotes (for example `--qp '{}'`, `--drilldown_groups '{}'`) to avoid shell escaping issues.
|
|
70
70
|
- When dates/time ranges are involved, validate with a short range first and then expand gradually.
|
|
71
71
|
- For cross-project troubleshooting, first confirm whether `--project_id` matches the current permissions and target environment.
|