@thinkingai/ae-cli 6.0.18 → 6.0.20

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 (64) hide show
  1. package/README.md +7 -6
  2. package/README.zh.md +8 -7
  3. package/dist/index.js +11 -6
  4. package/dist/{te-agent-KZRIEN4N.js → te-agent-CYZUC4US.js} +543 -19
  5. package/dist/{te-analysis-VAR4KUOK.js → te-analysis-HJ22TUAA.js} +318 -40
  6. package/dist/te-audience-MYDE5WEH.js +590 -0
  7. package/dist/te-dataops-ZTS7XMXM.js +1842 -0
  8. package/dist/{te-kb-B62KFP2A.js → te-kb-OWM3RQRH.js} +46 -21
  9. package/dist/{te-meta-EPZGQN56.js → te-meta-JVO4QJBH.js} +28 -11
  10. package/package.json +1 -1
  11. package/skills/ae-agent/SKILL.md +103 -4
  12. package/skills/ae-analysis/SKILL.md +66 -19
  13. package/skills/ae-analysis/references/build_attribution_analysis_qp.md +60 -0
  14. package/skills/ae-analysis/references/build_cluster_definition.md +60 -0
  15. package/skills/ae-analysis/references/build_distribution_analysis_qp.md +65 -0
  16. package/skills/ae-analysis/references/build_heat_map_analysis_qp.md +52 -0
  17. package/skills/ae-analysis/references/build_interval_analysis_qp.md +58 -0
  18. package/skills/ae-analysis/references/build_path_analysis_qp.md +51 -0
  19. package/skills/ae-analysis/references/build_rank_list_analysis_qp.md +61 -0
  20. package/skills/ae-analysis/references/build_tag_definition.md +63 -0
  21. package/skills/ae-analysis/references/cancel_query.md +2 -3
  22. package/skills/ae-analysis/references/copy_dashboard.md +33 -0
  23. package/skills/ae-analysis/references/create_id_cluster.md +40 -0
  24. package/skills/ae-analysis/references/create_id_tag.md +39 -0
  25. package/skills/ae-analysis/references/delete_alert.md +27 -0
  26. package/skills/ae-analysis/references/delete_cluster.md +27 -0
  27. package/skills/ae-analysis/references/delete_dashboard.md +30 -0
  28. package/skills/ae-analysis/references/delete_metric.md +27 -0
  29. package/skills/ae-analysis/references/delete_report.md +27 -0
  30. package/skills/ae-analysis/references/delete_tag.md +27 -0
  31. package/skills/ae-analysis/references/drilldown_user_events.md +4 -4
  32. package/skills/ae-analysis/references/drilldown_users.md +3 -3
  33. package/skills/ae-analysis/references/freeze_dashboards.md +29 -0
  34. package/skills/ae-analysis/references/get_table_columns.md +11 -12
  35. package/skills/ae-analysis/references/list_cluster_members.md +4 -4
  36. package/skills/ae-analysis/references/list_clusters.md +3 -3
  37. package/skills/ae-analysis/references/list_dashboards.md +3 -3
  38. package/skills/ae-analysis/references/list_entities.md +1 -1
  39. package/skills/ae-analysis/references/list_events.md +3 -3
  40. package/skills/ae-analysis/references/list_metrics.md +2 -2
  41. package/skills/ae-analysis/references/list_properties.md +3 -3
  42. package/skills/ae-analysis/references/list_reports.md +3 -3
  43. package/skills/ae-analysis/references/list_spaces.md +27 -0
  44. package/skills/ae-analysis/references/list_tag_members.md +4 -4
  45. package/skills/ae-analysis/references/list_tags.md +2 -2
  46. package/skills/ae-analysis/references/move_dashboard.md +33 -0
  47. package/skills/ae-analysis/references/query_adhoc.md +2 -2
  48. package/skills/ae-analysis/references/query_bi_panel_data.md +2 -2
  49. package/skills/ae-analysis/references/query_dashboard_report_data.md +4 -4
  50. package/skills/ae-analysis/references/query_entity_details.md +4 -4
  51. package/skills/ae-analysis/references/query_event_details.md +3 -3
  52. package/skills/ae-analysis/references/query_report_data.md +37 -3
  53. package/skills/ae-analysis/references/update_id_cluster.md +36 -0
  54. package/skills/ae-analysis/references/update_id_tag.md +37 -0
  55. package/skills/ae-analysis/references/update_report.md +35 -0
  56. package/skills/ae-analysis-intent/SKILL.md +1 -1
  57. package/skills/ae-dataops/SKILL.md +54 -522
  58. package/skills/ae-dataops/references/dataops-flow-create.md +78 -75
  59. package/skills/ae-dataops/references/dataops-flow-monitor.md +58 -51
  60. package/skills/ae-dataops/references/dataops-integration.md +80 -41
  61. package/skills/ae-dataops/references/dataops-query.md +54 -53
  62. package/skills/ae-dataops/references/dataops-table.md +28 -59
  63. package/dist/te-audience-KMKYI2YJ.js +0 -400
  64. package/dist/te-dataops-GD3XBYCS.js +0 -1830
@@ -18,7 +18,7 @@ Domain: **Dashboard management**
18
18
  ```bash
19
19
  ae-cli analysis +list_dashboards --project_id <project_id>
20
20
  ae-cli analysis +list_dashboards --project_id <project_id> --query demo
21
- ae-cli analysis +list_dashboards --project_id <project_id> --fields '["dashboardId","dashboardName"]' --limit 20 --offset 0
21
+ ae-cli analysis +list_dashboards --project_id <project_id> --fields '["dashboardId","dashboardName","remark"]' --limit 20 --offset 0
22
22
  ae-cli analysis +list_dashboards --dry-run
23
23
  ```
24
24
 
@@ -26,8 +26,8 @@ ae-cli analysis +list_dashboards --dry-run
26
26
  | Parameter | Required | Description |
27
27
  |---|---|---|
28
28
  | `--project_id` / `-p` | Yes | Project ID |
29
- | `--query` / `-q` | No | Optional keyword filter. Performs fuzzy matching against dashboard names and AI remarks; if omitted, all accessible dashboards are returned. |
30
- | `--fields` / `-f` | No | Optional fields to return (JSON array). Supported fields: `dashboardId`, `dashboardName`, `aiRemark`. |
29
+ | `--query` / `-q` | No | Optional keyword filter. Performs fuzzy matching against dashboard names and remarks; if omitted, all accessible dashboards are returned. |
30
+ | `--fields` / `-f` | No | Optional fields to return (JSON array). Supported fields: `dashboardId`, `dashboardName`, `remark`. Default fields when omitted: `dashboardId`, `dashboardName`, `remark`. Dashboard metadata exposes `remark` but no separate desc field. |
31
31
  | `--limit` / `-l` | No | Optional page size. Default: 20, maximum: 10000. |
32
32
  | `--offset` / `-o` | No | Optional page offset. Default: 0. |
33
33
 
@@ -23,7 +23,7 @@ ae-cli analysis_meta +list_entities --dry-run
23
23
  | `--project_id` / `-p` | Yes | Project ID |
24
24
  | `--event_name` | No | Optional event name filter |
25
25
  | `--query` / `-q` | No | Optional keyword filter. Fuzzy match is applied to entityName, columnName, and columnDesc; if omitted, all accessible dashboards are returned. |
26
- | `--fields` / `-f` | No | Optional fields to return (JSON array). Supported fields: `entityId`, `entityName`, `columnName`, `columnDesc`, `selectType`. |
26
+ | `--fields` / `-f` | No | Optional fields to return (JSON array). Supported fields: `entityId`, `entityName`, `columnName`, `columnDesc`, `selectType`, `tableType`, `entityType`. Default fields when omitted: `entityId`, `entityName`, `columnName`, `columnDesc`, `selectType`. Entity metadata exposes `columnDesc` as the description field; no remark field is available in this list response. |
27
27
  | `--limit` / `-l` | No | Optional page size. Default: 20, maximum: 10000. |
28
28
  | `--offset` / `-o` | No | Optional page offset. Default: 0. |
29
29
 
@@ -18,7 +18,7 @@ Domain: **Metadata Query**
18
18
  ```bash
19
19
  ae-cli analysis_meta +list_events --project_id <project_id>
20
20
  ae-cli analysis_meta +list_events --project_id <project_id> --query demo
21
- ae-cli analysis_meta +list_events --project_id <project_id> --query demo --fields '["eventName", "eventDesc"]' --limit 20 --offset 0
21
+ ae-cli analysis_meta +list_events --project_id <project_id> --query demo --fields '["eventId", "eventName", "eventDesc", "remark"]' --limit 20 --offset 0
22
22
  ae-cli analysis_meta +list_events --dry-run
23
23
  ```
24
24
 
@@ -26,8 +26,8 @@ ae-cli analysis_meta +list_events --dry-run
26
26
  | Parameter | Required | Description |
27
27
  |---|---|---|
28
28
  | `--project_id` / `-p` | Yes | Project ID |
29
- | `--query` / `-q` | No | Optional keyword filter. Performs fuzzy matching against eventName, eventDesc, and aiRemark; if omitted, all events are returned. |
30
- | `--fields` / `-f` | No | Optional fields to return (JSON array). Supported fields: `eventName`, `eventDesc`, `aiRemark`, `eventTag`, `remark`. |
29
+ | `--query` / `-q` | No | Optional keyword filter. Performs fuzzy matching against eventName, eventDesc, and remark; if omitted, all events are returned. |
30
+ | `--fields` / `-f` | No | Optional fields to return (JSON array). Supported fields: `eventId`, `eventName`, `eventDesc`, `remark`, `eventTag`. Default fields when omitted: `eventId`, `eventName`, `eventDesc`, `remark`. |
31
31
  | `--limit` / `-l` | No | Optional page size. Default: 20, maximum: 10000. |
32
32
  | `--offset` / `-o` | No | Optional page offset. Default: 0. |
33
33
  ## Decision Rules
@@ -20,7 +20,7 @@ Domain: **Metadata Query**
20
20
  ```bash
21
21
  ae-cli analysis_meta +list_metrics --project_id <project_id>
22
22
  ae-cli analysis_meta +list_metrics --project_id <project_id> --query demo
23
- ae-cli analysis_meta +list_metrics --project_id <project_id> --query demo --fields '["metricId","metricName"]' --limit 10 --offset 0
23
+ ae-cli analysis_meta +list_metrics --project_id <project_id> --query demo --fields '["metricId","metricName","metricDesc","metricRemark","metricMode"]' --limit 10 --offset 0
24
24
  ae-cli analysis_meta +list_metrics --dry-run
25
25
  ```
26
26
 
@@ -29,7 +29,7 @@ ae-cli analysis_meta +list_metrics --dry-run
29
29
  |---|---|---|
30
30
  | `--project_id` / `-p` | Yes | Project ID |
31
31
  | `--query` / `-q` | No | Optional keyword filter. Fuzzy match on metricName, metricDesc, metricRemark. |
32
- | `--fields` | No | Optional fields to return. Supported: metricId, metricName, metricDesc, metricRemark, metricMode, openId, creator, creatorLoginName, updateOpenId, updateCreator, updateLoginName, createTime, updateTime. Invalid fields cause INVALID_FIELDS error. |
32
+ | `--fields` | No | Optional fields to return. Supported: metricId, metricName, metricDesc, metricRemark, metricMode, openId, creator, creatorLoginName, updateOpenId, updateCreator, updateLoginName, createTime, updateTime. Default fields when omitted: metricId, metricName, metricDesc, metricRemark, metricMode. Invalid fields cause INVALID_FIELDS error. |
33
33
  | `--limit` | No | Optional limit. Default: 20, maximum: 10000. |
34
34
  | `--offset` | No | Optional offset. Default: 0. |
35
35
 
@@ -16,7 +16,7 @@ Domain: **Metadata Query**
16
16
  ```bash
17
17
  ae-cli analysis_meta +list_properties --project_id <project_id>
18
18
  ae-cli analysis_meta +list_properties --project_id <project_id> --scope event --event_name purchase --query demo
19
- ae-cli analysis_meta +list_properties --project_id <project_id> --query demo --fields '["propName", "propDesc"]' --limit 20 --offset 0
19
+ ae-cli analysis_meta +list_properties --project_id <project_id> --query demo --fields '["propId", "propName", "propDesc", "remark", "selectType", "tableType"]' --limit 20 --offset 0
20
20
  ae-cli analysis_meta +list_properties --dry-run
21
21
  ```
22
22
 
@@ -26,8 +26,8 @@ ae-cli analysis_meta +list_properties --dry-run
26
26
  | `--project_id` / `-p` | Yes | Project ID |
27
27
  | `--scope` | No | Optional property scope. event means event properties, user means user properties. If omitted, all scopes are queried. |
28
28
  | `--event_name` | No | Optional event name. If provided, only event properties available for that event are returned. |
29
- | `--query` / `-q` | No | Optional keyword filter. Fuzzy match is applied to propName, propDesc, and aiRemark; if omitted, all matched properties are returned. |
30
- | `--fields` / `-f` | No | Optional fields to return (JSON array). Supported fields: `propName`, `propDesc`, `aiRemark`, `selectType`, `tableType`, `subTableType`. |
29
+ | `--query` / `-q` | No | Optional keyword filter. Fuzzy match is applied to propName, propDesc, and remark; if omitted, all matched properties are returned. |
30
+ | `--fields` / `-f` | No | Optional fields to return (JSON array). Supported fields: `propId`, `propName`, `propDesc`, `remark`, `selectType`, `tableType`, `subTableType`. Default fields when omitted: `propId`, `propName`, `propDesc`, `remark`, `selectType`, `tableType`. |
31
31
  | `--limit` / `-l` | No | Optional page size. Default: 20, maximum: 10000. |
32
32
  | `--offset` / `-o` | No | Optional page offset. Default: 0. |
33
33
 
@@ -18,7 +18,7 @@ Domain: **Report management**
18
18
  ```bash
19
19
  ae-cli analysis +list_reports --project_id <project_id>
20
20
  ae-cli analysis +list_reports --project_id <project_id> --query demo
21
- ae-cli analysis +list_reports --project_id <project_id> --fields '["reportId","reportName","reportModel"]' --limit 20 --offset 0
21
+ ae-cli analysis +list_reports --project_id <project_id> --fields '["reportId","reportName","reportDesc","remark","reportModel"]' --limit 20 --offset 0
22
22
  ae-cli analysis +list_reports --dry-run
23
23
  ```
24
24
 
@@ -26,8 +26,8 @@ ae-cli analysis +list_reports --dry-run
26
26
  | Parameter | Required | Description |
27
27
  |---|---|---|
28
28
  | `--project_id` / `-p` | Yes | Project ID |
29
- | `--query` / `-q` | No | Optional keyword filter. Performs fuzzy matching against report names, descriptions, and AI remarks; if omitted, all accessible reports are returned. |
30
- | `--fields` / `-f` | No | Optional fields to return (JSON array). Supported fields: `reportId`, `reportName`, `reportDesc`, `reportModel`, `aiRemark`. |
29
+ | `--query` / `-q` | No | Optional keyword filter. Performs fuzzy matching against reportName, reportDesc, and remark; if omitted, all accessible reports are returned. |
30
+ | `--fields` / `-f` | No | Optional fields to return (JSON array). Supported fields: `reportId`, `reportName`, `reportDesc`, `remark`, `reportModel`. Default fields when omitted: `reportId`, `reportName`, `reportDesc`, `remark`, `reportModel`. |
31
31
  | `--limit` / `-l` | No | Optional page size. Default: 20, maximum: 10000. |
32
32
  | `--offset` / `-o` | No | Optional page offset. Default: 0. |
33
33
 
@@ -0,0 +1,27 @@
1
+ # analysis +list_spaces (List Spaces)
2
+
3
+ > **Prerequisite:** Follow the Global AE CLI Rules in [`../SKILL.md`](../SKILL.md).
4
+
5
+ Domain: **Dashboard Management**
6
+
7
+ ## Use Cases
8
+ - List all spaces and folders accessible to the current user as a recursive tree.
9
+ - Returns two parts: (1) project spaces with spaceId, name, spaceDesc, and children (folders/dashboards); (2) personal-space folders (My Space / Shared with me / Ungrouped) with their children.
10
+ - Use to resolve `spaceId` for `+create_dashboard` / `+copy_dashboard`, and `toSpaceId` / `toFolderId` / `fromSpaceId` / `fromFolderId` for `+move_dashboard` and `+copy_dashboard`.
11
+
12
+ ## Commands
13
+ ```bash
14
+ ae-cli analysis_audience +list_spaces --project_id <project_id>
15
+ ae-cli analysis_audience +list_spaces --dry-run
16
+ ```
17
+
18
+ ## Parameters
19
+ | Parameter | Required | Description |
20
+ |---|---|---|
21
+ | `--project_id` / `-p` | Yes | Project ID |
22
+
23
+ ## Decision Rules
24
+ - Call this before `+copy_dashboard` or `+move_dashboard` whenever the user specifies a target space or folder by name.
25
+
26
+ ## Recommended Chain
27
+ - `+list_spaces` -> `+copy_dashboard` / `+move_dashboard` / `+create_dashboard`
@@ -29,17 +29,17 @@ ae-cli analysis_audience +list_tag_members --dry-run
29
29
  | `--fields` | No | Optional return field list (JSON array). Invalid fields will fail with `INVALID_FIELDS`. |
30
30
  | `--limit` | No | Optional page size. Default: 20, max: 50. |
31
31
  | `--offset` | No | Optional page offset. Default: 0. |
32
- | `--request_id` | No | Optional unique request ID used for tracking and cancellation. If provided, it must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`. For long-running or cancelable queries, 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. The auto-generated requestId is not available when the HTTP request fails before a response, so preset `requestId` is required for proactive cleanup. Generated automatically if omitted. The response `metadata.requestId` can also be passed to `cancel_query` when the query is no longer needed. |
32
+ | `--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. |
33
33
  | `--timeout_minutes` | No | Query timeout in minutes. If omitted, 30 minutes is used. |
34
34
 
35
35
  ## Decision Rules
36
- - For the first execution, it is recommended to pass only the required parameters (`--project_id`, `--tag_name`) and add optional parameters after confirming the path works.
36
+ - For the first execution, include all required parameters (`--project_id`, `--tag_name`, `--request_id`) and add optional parameters after confirming the path works.
37
37
  - `--property_names` must be passed as a JSON array (e.g. `--property_names '["#user_id"]'`).
38
- - For long-running or cancelable member queries, supply your own `--request_id` before starting so `analysis +cancel_query` can cancel by the same ID if the caller or user stops waiting. 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 auto-generated requestId is not available when the HTTP request fails before a response. The value must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`.
38
+ - 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`.
39
39
  - When troubleshooting across projects, first confirm whether `--project_id` matches the current permissions and target environment.
40
40
 
41
41
  ## Next Step on Failure
42
- - If required parameters are missing, fall back to the smallest runnable command and fill the gap (focus on `--project_id`, `--tag_name`).
42
+ - If required parameters are missing, fall back to the smallest runnable command and fill the gap (focus on `--project_id`, `--tag_name`, `--request_id`).
43
43
  - If the result is empty, first confirm the project ID/keyword, then try broadening the filter conditions.
44
44
 
45
45
  ## Recommended Chain
@@ -17,7 +17,7 @@ Domain: **Tag Management**
17
17
  ```bash
18
18
  ae-cli analysis_audience +list_tags --project_id <project_id>
19
19
  ae-cli analysis_audience +list_tags --project_id <project_id> --query demo
20
- ae-cli analysis_audience +list_tags --project_id <project_id> --fields '["id","clusterName","usersNum"]' --limit 20 --offset 0
20
+ ae-cli analysis_audience +list_tags --project_id <project_id> --fields '["id","clusterName","displayName","remarks","clusterType","subConditionTabType","progress","usersNum"]' --limit 20 --offset 0
21
21
  ae-cli analysis_audience +list_tags --dry-run
22
22
  ```
23
23
 
@@ -26,7 +26,7 @@ ae-cli analysis_audience +list_tags --dry-run
26
26
  |---|---|---|
27
27
  | `--project_id` / `-p` | Yes | Project ID |
28
28
  | `--query` / `-q` | No | Optional keyword filter. Performs fuzzy matching against tag names, display names, and remarks; if omitted, all tags are returned. |
29
- | `--fields` | No | Optional return field list (JSON array). Invalid fields will fail with `INVALID_FIELDS`. |
29
+ | `--fields` | No | Optional return field list (JSON array). Supported fields: `id`, `clusterName`, `displayName`, `clusterType`, `subConditionTabType`, `progress`, `usersNum`, `remarks`. Default fields when omitted: `id`, `clusterName`, `displayName`, `remarks`, `clusterType`, `subConditionTabType`, `progress`, `usersNum`. Invalid fields will fail with `INVALID_FIELDS`. |
30
30
  | `--limit` | No | Optional page size. Default: 20, max: 50. |
31
31
  | `--offset` | No | Optional page offset. Default: 0. |
32
32
 
@@ -0,0 +1,33 @@
1
+ # analysis +move_dashboard (Move 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
+ - Move a dashboard to a different space or folder.
9
+ - Provide `--to_space_id` to move to a space root, or both `--to_space_id` and `--to_folder_id` to move into a folder within that space.
10
+ - `--from_space_id` and `--from_folder_id` are optional; provide them when the dashboard exists in multiple spaces to disambiguate the source path.
11
+
12
+ ## Commands
13
+ ```bash
14
+ ae-cli analysis_audience +move_dashboard --project_id <project_id> --dashboard_id <dashboard_id> --to_space_id <space_id>
15
+ ae-cli analysis_audience +move_dashboard --project_id <project_id> --dashboard_id <dashboard_id> --to_space_id <space_id> --to_folder_id <folder_id>
16
+ ae-cli analysis_audience +move_dashboard --dry-run
17
+ ```
18
+
19
+ ## Parameters
20
+ | Parameter | Required | Description |
21
+ |---|---|---|
22
+ | `--project_id` / `-p` | Yes | Project ID |
23
+ | `--dashboard_id` | Yes | Dashboard ID to move |
24
+ | `--to_space_id` | Yes | Target space ID |
25
+ | `--to_folder_id` | No | Target folder ID within the target space. Omit to place at the space root. |
26
+ | `--from_space_id` | No | Source space ID. Omit if unknown. |
27
+ | `--from_folder_id` | No | Source folder ID. Omit if unknown. |
28
+
29
+ ## Decision Rules
30
+ - Call `+list_spaces` first to resolve `to_space_id` and `to_folder_id`.
31
+
32
+ ## Recommended Chain
33
+ - `+list_spaces` -> `+move_dashboard`
@@ -89,7 +89,7 @@ ae-cli analysis +query_adhoc --project_id <project_id> --model_type <model_type>
89
89
  | `--project_id` / `-p` | Yes | Project ID used to identify the analysis project |
90
90
  | `--model_type` | Yes | Model type. Supported values: event, retention, funnel, distribution, attribution, heat_map, interval, path, rank_list, prop_analysis, sql. |
91
91
  | `--qp` | Yes | Query parameter JSON. For `event`/`retention`/`funnel`/`prop_analysis`, pass QP returned by the matching builder tool. For non-builder models, construct QP through the legacy schema/metadata path. |
92
- | `--request_id` | No | Optional unique request ID used for tracking and cancellation. If provided, it must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`. For long-running or cancelable queries, 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. The auto-generated requestId is not available when the HTTP request fails before a response, so preset `requestId` is required for proactive cleanup. Generated automatically if omitted. The response `metadata.requestId` can also be passed to `cancel_query` when the query is no longer needed. |
92
+ | `--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. |
93
93
  | `--use_cache` | No | Whether to use result cache. Default: true |
94
94
  | `--zone_offset` | No | Time zone offset in hours. For example, UTC+8 is 8 and UTC-5 is -5 |
95
95
  | `--is_sort_by_columns` | No | Whether to sort query results by columns. Default: false |
@@ -100,7 +100,7 @@ ae-cli analysis +query_adhoc --project_id <project_id> --model_type <model_type>
100
100
  | `--timeout_minutes` | No | Query timeout in minutes. If the query exceeds this time, it will be cancelled automatically. |
101
101
 
102
102
  ## Decision Rules
103
- - On the first run, start with only the required parameters (`--project_id`,`--model_type`,`--qp`) only when the query is clearly small. For any query that may exceed the CLI/MCP HTTP timeout, include a preset `--request_id` from the first run.
103
+ - On the first run, include all required parameters (`--project_id`,`--model_type`,`--qp`,`--request_id`). Generate `--request_id` before starting the query so cancellation can use the same value if the caller stops waiting.
104
104
  - Do not call this command with placeholder QP such as `{}`. For builder-supported models, wait for builder `status=generated`; for non-builder models, build QP from verified schema/metadata first.
105
105
  - For builder-supported models, do not run metadata/schema lookup to "help" the builder. The builder is the metadata resolver.
106
106
  - For pagination, use `--limit` and `--offset` together. Default limit is 1000, maximum 100000.
@@ -28,7 +28,7 @@ ae-cli analysis +query_bi_panel_data --project_id <project_id> --panel_id <panel
28
28
  | `--panel_id` | Yes | BI panel ID returned by `+list_bi_panels` |
29
29
  | `--page_key` | Yes | Page key returned by `+get_bi_panel_detail` |
30
30
  | `--result_type` | Yes | `charts` or `summary` |
31
- | `--request_id` | No | Optional unique request ID used for tracking and cancellation. If provided, it must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`. For long-running or cancelable queries, 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. The auto-generated requestId is not available when the HTTP request fails before a response, so preset `requestId` is required for proactive cleanup. Generated automatically if omitted. The response `metadata.requestId` can also be passed to `cancel_query` when the query is no longer needed. |
31
+ | `--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. |
32
32
  | `--chart_ids` | No | JSON array of chart IDs when `result_type=charts`. If omitted, all queryable charts on the page are queried. |
33
33
  | `--parameter_controls` | No | JSON array of dashboard-level parameter control overrides. Each item has `controlId` and one scalar `value`. |
34
34
  | `--permission_controls` | No | JSON array of dashboard-level permission control values. Each item has `controlId` and `value`; `value` may be one scalar or an array. |
@@ -52,7 +52,7 @@ ae-cli analysis +query_bi_panel_data --project_id <project_id> --panel_id <panel
52
52
  - For charts, omit `--chart_ids` on the first run to query all queryable charts on the page.
53
53
  - Explicitly querying a non-queryable filter component returns a chart-level unsupported result.
54
54
  - Use `--columns`, `--row_limit`, and `--row_offset` to reduce response size.
55
- - For long-running or cancelable queries, supply your own `--request_id` before starting so `+cancel_query` can cancel by the same ID if the caller or user stops waiting. 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 auto-generated requestId is not available when the HTTP request fails before a response. The value must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`.
55
+ - 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`.
56
56
 
57
57
  ## Recommended Chaining
58
58
  - `+list_bi_panels` -> `+get_bi_panel_detail` -> `+query_bi_panel_data`
@@ -41,20 +41,20 @@ ae-cli analysis +query_dashboard_report_data --dry-run
41
41
  | `--time_granularity` | No | Optional time granularity used to override the report default. Supported values: minute, minute5, minute10, hour, day, week, month, quarter, year, total. |
42
42
  | `--use_cache` | No | Whether to use cache. Default: true |
43
43
  | `--report_ids` | No | Optional list of report IDs. If omitted, all reports in the dashboard are queried. |
44
- | `--request_id` | No | Optional unique request ID used for tracking and cancellation. If provided, it must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`. For long-running or cancelable queries, 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. The auto-generated requestId is not available when the HTTP request fails before a response, so preset `requestId` is required for proactive cleanup. Generated automatically if omitted. The response `metadata.requestId` can also be passed to `cancel_query` when the query is no longer needed. |
44
+ | `--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. |
45
45
  | `--timeout_minutes` | No | Query timeout in minutes. If omitted, 30 minutes is used. |
46
46
 
47
47
  ## Decision Rules
48
48
  - `filters` cannot be written from experience alone: it must satisfy both the filter schema and the project metadata constraints.
49
49
  - Before calling `list_events` / `list_properties`, you must first study the corresponding reference documents.
50
- - On the first run, start with only the required parameters (`--project_id`, `--dashboard_id`) and add optional parameters after confirming the path works.
50
+ - On the first run, include all required parameters (`--project_id`, `--dashboard_id`, `--request_id`) and add optional parameters after confirming the path works.
51
51
  - Wrap JSON parameters in single quotes (for example `--filters '{}'`, `--report_ids '[]'`) to avoid shell escaping issues.
52
52
  - When dates/time ranges are involved, first verify with a short range, then gradually expand the range.
53
- - For long-running or cancelable queries, supply your own `--request_id` before starting so `+cancel_query` can cancel by the same ID if the caller or user stops waiting. 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 auto-generated requestId is not available when the HTTP request fails before a response. The value must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`.
53
+ - 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`.
54
54
  - For cross-project troubleshooting, first confirm whether `--project_id` matches the current permissions and target environment.
55
55
 
56
56
  ## Next Steps on Failure
57
- - If required parameters are missing, fall back to the smallest runnable command and fill them in first (focus on `--project_id`, `--dashboard_id`).
57
+ - If required parameters are missing, fall back to the smallest runnable command and fill them in first (focus on `--project_id`, `--dashboard_id`, `--request_id`).
58
58
  - If `Invalid JSON` appears, first check the filter schema required fields, then verify whether the event/property names come from metadata query results for the same `project_id`.
59
59
  - If the query times out or results are abnormal, first narrow the time range / grouping dimensions, then split the subqueries to locate the issue.
60
60
 
@@ -42,19 +42,19 @@ ae-cli analysis +query_entity_details --dry-run
42
42
  | `--limit` | No | Optional result limit. Default: 1000, maximum: 10000 |
43
43
  | `--zone_offset` | No | Time zone offset. For example, UTC+8 is 8 |
44
44
  | `--use_cache` | No | Whether to use cache. Default: true |
45
- | `--request_id` | No | Optional unique request ID used for tracking and cancellation. If provided, it must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`. For long-running or cancelable queries, 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. The auto-generated requestId is not available when the HTTP request fails before a response, so preset `requestId` is required for proactive cleanup. Generated automatically if omitted. The response `metadata.requestId` can also be passed to `cancel_query` when the query is no longer needed. |
45
+ | `--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. |
46
46
  | `--timeout_minutes` | No | Query timeout in minutes. If omitted, 30 minutes is used. |
47
47
 
48
48
  ## Decision Rules
49
49
  - `definition` / `properties` cannot be written by hand based on experience alone: they must satisfy both the schema structure and the project's real metadata.
50
50
  - `list_events` / `list_properties` must be learned from the corresponding reference docs before calling them.
51
- - For the first run, it is recommended to pass only the required parameters (`--project_id`, `--definition`) and add optional parameters after confirming the chain works.
51
+ - For the first run, include all required parameters (`--project_id`, `--definition`, `--request_id`) and add optional parameters after confirming the chain works.
52
52
  - Wrap JSON parameters in single quotes (for example `--definition '{}'`, `--properties '{}'`) to avoid shell escaping issues.
53
- - For long-running or cancelable queries, supply your own `--request_id` before starting so `+cancel_query` can cancel by the same ID if the caller or user stops waiting. 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 auto-generated requestId is not available when the HTTP request fails before a response. The value must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`.
53
+ - 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`.
54
54
  - For cross-project troubleshooting, first confirm whether `--project_id` matches the current permissions and target environment.
55
55
 
56
56
  ## Next Step After Failure
57
- - If required parameters are missing, fall back to the smallest runnable command and fill them in (focus on `--project_id`, `--definition`).
57
+ - If required parameters are missing, fall back to the smallest runnable command and fill them in (focus on `--project_id`, `--definition`, `--request_id`).
58
58
  - If `Invalid JSON` appears, first check the required schema fields, then verify that the event name/property name comes from metadata queried in the same `project_id`.
59
59
  - If the query times out or the result is abnormal, first reduce the time range/grouping dimensions, then split the query to locate the issue.
60
60
 
@@ -44,16 +44,16 @@ ae-cli analysis +query_event_details --dry-run
44
44
  | `--limit` | No | Optional result limit. Default: 1000 |
45
45
  | `--zone_offset` | No | Time zone offset. For example, UTC+8 is 8 |
46
46
  | `--use_cache` | No | Whether to use cache. Default: true |
47
- | `--request_id` | No | Optional unique request ID used for tracking and cancellation. If provided, it must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`. For long-running or cancelable queries, 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. The auto-generated requestId is not available when the HTTP request fails before a response, so preset `requestId` is required for proactive cleanup. Generated automatically if omitted. The response `metadata.requestId` can also be passed to `cancel_query` when the query is no longer needed. |
47
+ | `--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. |
48
48
  | `--timeout_minutes` | No | Query timeout in minutes. If omitted, 30 minutes is used. |
49
49
 
50
50
  ## Decision Rules
51
51
  - `filters` / `properties` cannot be written from experience alone: they must satisfy both the schema structure and the project metadata constraints.
52
52
  - Before calling `list_events` / `list_properties`, you must first study the corresponding reference documents.
53
- - On the first run, start with only the required parameters (`--project_id`, `--event_name`) and add optional parameters after confirming the path works.
53
+ - On the first run, include all required parameters (`--project_id`, `--event_name`, `--request_id`) and add optional parameters after confirming the path works.
54
54
  - Wrap JSON parameters in single quotes (for example `--filters '{}'`, `--properties '{}'`) to avoid shell escaping issues.
55
55
  - When dates/time ranges are involved, first verify with a short range, then gradually expand the range.
56
- - For long-running or cancelable queries, supply your own `--request_id` before starting so `+cancel_query` can cancel by the same ID if the caller or user stops waiting. 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 auto-generated requestId is not available when the HTTP request fails before a response. The value must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`.
56
+ - 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`.
57
57
  - For cross-project troubleshooting, first confirm whether `--project_id` matches the current permissions and target environment.
58
58
 
59
59
  ## Next Steps on Failure
@@ -30,6 +30,8 @@ Domain: **Report Management**
30
30
  ```bash
31
31
  ae-cli analysis +query_report_data --project_id <project_id> --report_ids '[1001]'
32
32
  ae-cli analysis +query_report_data --project_id <project_id> --report_ids '[1001]' --filters '{}' --group_by '[]' --request_id mcp_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --use_cache true --start_date 2026-04-08 --end_date 2026-04-08 --time_granularity day --timeout_minutes 8
33
+ # SQL-model report: override its dynamic parameters (${Selector}/${Time}/${Text}) by paramName
34
+ ae-cli analysis +query_report_data --project_id <project_id> --report_ids '[1001]' --sql_params '[{"paramName":"selector1","paramExpress":"<selectorName>"},{"paramName":"time2","startTime":"2026-01-01 00:00:00","endTime":"2026-06-30 23:59:59"}]'
33
35
  ae-cli analysis +query_report_data --dry-run
34
36
  ```
35
37
 
@@ -40,26 +42,58 @@ ae-cli analysis +query_report_data --dry-run
40
42
  | `--report_ids` | Yes | List of report IDs |
41
43
  | `--filters` | No | Optional filter JSON. If provided, MUST follow `+get_filter_schema`, and referenced fields must come from `analysis_meta +list_properties` in the same `project_id`. |
42
44
  | `--group_by` | No | Optional group-by JSON array. If provided, MUST follow `+get_groupby_schema`, and referenced fields must come from `analysis_meta +list_properties` in the same `project_id`. |
43
- | `--request_id` | No | Optional unique request ID used for tracking and cancellation. If provided, it must use `mcp_<32 lowercase hex UUID>`, for example `mcp_0123456789abcdef0123456789abcdef`. For long-running or cancelable queries, 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. The auto-generated requestId is not available when the HTTP request fails before a response, so preset `requestId` is required for proactive cleanup. Generated automatically if omitted. The response `metadata.requestId` can also be passed to `cancel_query` when the query is no longer needed. |
45
+ | `--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. |
44
46
  | `--use_cache` | No | Whether to use cache. Default: true |
45
47
  | `--start_date` | No | Optional start date in yyyy-MM-dd format |
46
48
  | `--end_date` | No | Optional end date in yyyy-MM-dd format |
47
49
  | `--time_granularity` | No | Optional time granularity used to override the report default. Supported values: minute, minute5, minute10, hour, day, week, month, quarter, year, total. |
48
50
  | `--timeout_minutes` | No | Query timeout in minutes. If the query exceeds this time, it will be cancelled automatically. 30 minutes if omitted. |
51
+ | `--sql_params` | No | Optional override for a SQL-model report's dynamic parameters (the `${...}` placeholders embedded in the report SQL). JSON array of params matched by `paramName`. Only listed params are overridden; omitted params keep the report's saved defaults. Ignored for non-SQL reports. Different from `--filters`: see the SQL report dynamic parameters section below. |
52
+
53
+ ## SQL report dynamic parameters (`--sql_params`)
54
+ - Applies ONLY to SQL-model reports (`reportModel: sql` in `+get_report_definition`). Such reports may embed `${...}` placeholders of 6 paramTypes — `Variable`, `PartDate`, `Time`, `Number`, `Text`, `Selector` — whose default values are saved in the report's `eventView.sqlViewParams`.
55
+ - `--sql_params` overrides those values by `paramName`; the backend merges them into the report's `sqlViewParams` before running the SQL. Omitting `--sql_params` keeps the report defaults (backward compatible).
56
+ - `--sql_params` is NOT the same as `--filters`: `--filters` adds a post-query WHERE filter on the SQL result columns (using real field names), while `--sql_params` changes the report's own dynamic parameters before the SQL runs. To adjust a report's selectors/time parameters, use `--sql_params`, not `--filters`.
57
+ - Workflow: `+get_report_definition` -> read `events.sqlVoParams` (each param's `paramName`, `paramType`, and for Selector the allowed `selectorItems` names) -> build the override array -> `+query_report_data --sql_params '[...]'`.
58
+ - Override shape by `paramType` (read each param's current `quota`/`paramExpress`/`startTime`/`endTime` and the VO's `variableType`/`selectorItems` from `+get_report_definition`):
59
+ - `Selector` — `{"paramName":"selector1","paramExpress":"<selectorName>"}`; `<selectorName>` must be one of the VO's `selectorItems`. No `quota`.
60
+ - `Variable` — no `quota`; override `paramExpress` only. Quoting depends on the VO's `variableType`: a custom (`Normal`) variable is substituted verbatim, so include the quotes exactly as shown in the definition (e.g. `"paramExpress":"'2025-12-31'"`); a `TimeSelect` variable takes a bare value (the backend quotes it). `variableType` itself is a report-design property in `events.sqlVoParams` and is NOT changed by `--sql_params` (only the value is); the resulting SQL is the same regardless of `variableType` as long as the value is supplied with the right quoting.
61
+ - `Text` — `quota` (operator) + `paramExpress`; supports all 12 operators in the table below. Setting only `paramExpress` while leaving the no-value default `quota` (e.g. `C04`) does NOT filter.
62
+ - `Number` — `quota` (operator) + `paramExpress`; 9 numeric operators: `C00` IN / `C01` NOT IN / `C06` BETWEEN (array); `C02` < / `C03` > / `C020` <= / `C030` >= (single, numeric string); `C04` IS NOT NULL / `C05` IS NULL (no value). No LIKE/CONTAIN for numbers. E.g. `{"paramName":"num1","quota":"C06","paramExpress":["10","20"]}`.
63
+ - `Time` — `quota` (operator) + time fields (NOT recentDay): `C020` <= (uses `endTime`) / `C030` >= (uses `startTime`) / `C06` BETWEEN by datetime (`startTime`+`endTime`) / `C060` BETWEEN by date (`startTime`+`endTime`) / `C04` IS NOT NULL / `C05` IS NULL (no value). To only change the range keep the report's range `quota` and set `startTime`+`endTime`; to change the operator also set `quota`.
64
+ - `PartDate` — a date range; set `startTime`+`endTime`: `{"paramName":"date1","startTime":"yyyy-MM-dd HH:mm:ss","endTime":"yyyy-MM-dd HH:mm:ss"}`.
65
+
66
+ `quota` operators (Text = all; Number = the non-LIKE subset; Time = comparison/range/null subset using time fields):
67
+
68
+ | quota | operator | value |
69
+ |---|---|---|
70
+ | `C00` | IN | array `paramExpress` |
71
+ | `C01` | NOT IN | array `paramExpress` |
72
+ | `C06` | BETWEEN / 区间 | array `[min,max]` (Time: `startTime`+`endTime`) |
73
+ | `C060` | BETWEEN by date / 日期区间 (Time only) | `startTime`+`endTime` |
74
+ | `C02` / `C03` | `<` / `>` | single `paramExpress` |
75
+ | `C020` / `C030` | `<=` / `>=` | single `paramExpress` (Time: `endTime` / `startTime`) |
76
+ | `C30` / `C31` | LIKE / NOT LIKE (Text only) | single `paramExpress` |
77
+ | `C300` | CONTAIN (`LIKE '%v%'`, Text only) | single `paramExpress` |
78
+ | `C04` / `C05` | IS NOT NULL / IS NULL | no value (`C04` empty default = no filter) |
79
+
80
+ - An unknown `paramName` (not present in the report) or malformed JSON returns an error.
49
81
 
50
82
  ## Decision Rules
51
83
  - `filters` / `group_by` cannot be written by hand based on experience alone: they must satisfy both the schema structure and the project's real metadata.
52
84
  - `list_events` / `list_properties` must be learned from the corresponding reference docs before calling them.
53
- - For the first run, it is recommended to pass only the required parameters (`--project_id`, `--report_ids`) and add optional parameters after confirming the chain works.
85
+ - For the first run, include all required parameters (`--project_id`, `--report_ids`, `--request_id`) and add optional parameters after confirming the chain works.
86
+ - 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`.
54
87
  - Wrap JSON parameters in single quotes (for example `--report_ids '{}'`, `--filters '{}'`) to avoid shell escaping issues.
55
88
  - When dates/time ranges are involved, validate with a short range first and then expand gradually.
56
89
  - For cross-project troubleshooting, first confirm whether `--project_id` matches the current permissions and target environment.
57
90
 
58
91
  ## Next Step After Failure
59
- - If required parameters are missing, fall back to the smallest runnable command and fill them in (focus on `--project_id`, `--report_ids`).
92
+ - If required parameters are missing, fall back to the smallest runnable command and fill them in (focus on `--project_id`, `--report_ids`, `--request_id`).
60
93
  - If `Invalid JSON` appears, first check the required schema fields, then verify that the event name/property name comes from metadata queried in the same `project_id`.
61
94
  - If the query times out or the result is abnormal, first reduce the time range/grouping dimensions, then split the query to locate the issue.
62
95
 
63
96
  ## Recommended Chaining
64
97
  - +get_filter_schema -> +get_groupby_schema -> analysis_meta +list_events -> analysis_meta +list_properties -> +query_report_data
98
+ - (SQL-model report, override dynamic params) +get_report_definition -> +query_report_data --sql_params '[...]'
65
99
  - +list_reports -> +get_report_definition -> +query_report_data
@@ -0,0 +1,36 @@
1
+ # analysis_audience +update_id_cluster (Update 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
+ - Update an existing ID cluster by re-uploading CSV file content as plain text.
9
+ - The cluster is identified by `cluster_name`. The operation is asynchronous.
10
+
11
+ ## Commands
12
+ ```bash
13
+ ae-cli analysis_audience +update_id_cluster --project_id <project_id> --cluster_name my_id_cluster --file_content "user_001
14
+ user_002"
15
+ ae-cli analysis_audience +update_id_cluster --dry-run
16
+ ```
17
+
18
+ ## Parameters
19
+ | Parameter | Required | Description |
20
+ |---|---|---|
21
+ | `--project_id` / `-p` | Yes | Project ID |
22
+ | `--cluster_name` | Yes | Cluster name to update |
23
+ | `--file_content` | Yes | New CSV file content as plain text. No header row, UTF-8 encoding. Each row contains one user ID. Max 100MB. |
24
+ | `--display_name` | No | Optional new display name |
25
+ | `--remarks` | No | Optional new remarks (max 200 characters) |
26
+ | `--main_column_name` | No | Optional new main column name for ID matching |
27
+
28
+ ## Return Value
29
+ Returns `clusterId`, `uploadNum`, `userNum`, `unmatchedNum`, and `clusterName`.
30
+
31
+ ## Decision Rules
32
+ - Use `+list_clusters` to confirm the cluster name before updating.
33
+ - If file size exceeds 100MB, inform the user to upload directly via the web interface.
34
+
35
+ ## Recommended Chain
36
+ - `+list_clusters` -> `+update_id_cluster`
@@ -0,0 +1,37 @@
1
+ # analysis_audience +update_id_tag (Update 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
+ - Update an existing ID tag by re-uploading CSV file content as plain text.
9
+ - The tag is identified by `tag_name`. The operation is asynchronous.
10
+
11
+ ## Commands
12
+ ```bash
13
+ ae-cli analysis_audience +update_id_tag --project_id <project_id> --tag_name vip_tag --file_content "user_001,gold
14
+ user_002,silver"
15
+ ae-cli analysis_audience +update_id_tag --dry-run
16
+ ```
17
+
18
+ ## Parameters
19
+ | Parameter | Required | Description |
20
+ |---|---|---|
21
+ | `--project_id` / `-p` | Yes | Project ID |
22
+ | `--tag_name` | Yes | Tag name to update |
23
+ | `--file_content` | Yes | New 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. |
24
+ | `--display_name` | No | Optional new display name |
25
+ | `--remarks` | No | Optional new remarks (max 200 characters) |
26
+ | `--entity_id` | No | Entity ID to associate the tag with |
27
+ | `--main_column_name` | No | Optional new main column name for ID matching |
28
+
29
+ ## Return Value
30
+ Returns `clusterId`, `uploadNum`, `userNum`, `unmatchedNum`, and `clusterName` (tag name).
31
+
32
+ ## Decision Rules
33
+ - Use `+list_tags` to confirm the tag name before updating.
34
+ - If file size exceeds 100MB, inform the user to upload directly via the web interface.
35
+
36
+ ## Recommended Chain
37
+ - `+list_tags` -> `+update_id_tag`
@@ -0,0 +1,35 @@
1
+ # analysis +update_report (Update 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
+ - Update an existing report's name, description, or QP (query parameter JSON).
9
+ - At least one of `--report_name`, `--report_desc`, or `--qp` must be provided.
10
+ - When updating `--qp`, also provide `--report_model` for QP validation.
11
+
12
+ ## Commands
13
+ ```bash
14
+ ae-cli analysis +update_report --project_id <project_id> --report_id <report_id> --version <version> --report_name "New Name"
15
+ ae-cli analysis +update_report --project_id <project_id> --report_id <report_id> --version <version> --qp '<qp_json>' --report_model 1
16
+ ae-cli analysis +update_report --dry-run
17
+ ```
18
+
19
+ ## Parameters
20
+ | Parameter | Required | Description |
21
+ |---|---|---|
22
+ | `--project_id` / `-p` | Yes | Project ID |
23
+ | `--report_id` | Yes | Report ID to update |
24
+ | `--version` | Yes | Current report version number. Retrieve via `+get_report_definition`. |
25
+ | `--report_name` | No | New report name. Omit to keep existing. |
26
+ | `--report_desc` | No | New report description. Omit to keep existing. |
27
+ | `--qp` | No | New QP JSON string. Omit to keep existing. When provided, also supply `--report_model`. |
28
+ | `--report_model` | No | Analysis model type integer (e.g. 1=event, 2=retention). Required when `--qp` is provided. |
29
+
30
+ ## Decision Rules
31
+ - Always call `+get_report_definition` first to retrieve the current `version` number before updating.
32
+ - Omitting all of `report_name`, `report_desc`, and `qp` will cause an error.
33
+
34
+ ## Recommended Chain
35
+ - `+list_reports` -> `+get_report_definition` (to get version) -> `+update_report`
@@ -71,7 +71,7 @@ ae-cli <service> +<command> [options]
71
71
  - Event list: `ae-cli analysis_meta +list_events -p <project_id>`
72
72
  - Property list: `ae-cli analysis_meta +list_properties -p <project_id>`
73
73
  - Metric list: `ae-cli analysis_meta +list_metrics -p <project_id>`
74
- - Table columns: `ae-cli analysis +get_table_columns -p <project_id> --catalog hive --schema ta --table <table>`
74
+ - Table columns: `ae-cli analysis +get_table_columns -p <project_id> --table_ref <hive.schema.table|schema.table|table>`
75
75
 
76
76
  ### Report/dashboard queries
77
77