@thinkingai/ae-cli 6.1.12 → 6.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/README.md +0 -2
  2. package/README.zh.md +0 -2
  3. package/dist/{auth-NN55553T.js → auth-GBMV6TEJ.js} +2 -2
  4. package/dist/{auth-GDV3H5I4.js → auth-NDSXE54J.js} +4 -4
  5. package/dist/{capability-DRLGDVS4.js → capability-TAMDRZYV.js} +18 -8
  6. package/dist/{capability-P6GK3AQH.js → capability-U7TDEEEG.js} +18 -8
  7. package/dist/{chunk-GJJA4CQZ.js → chunk-3FY3RJ26.js} +0 -4
  8. package/dist/{chunk-GS2P7LFD.js → chunk-5XUSIK27.js} +2 -2
  9. package/dist/{chunk-7KQWSBSL.js → chunk-753BUTNZ.js} +3 -3
  10. package/dist/{chunk-VTXHDCBW.js → chunk-AFXA7BRK.js} +2 -2
  11. package/dist/chunk-IBH3LDAH.js +556 -0
  12. package/dist/{chunk-RBNKI5ZW.js → chunk-JUW4AJXN.js} +2 -2
  13. package/dist/{chunk-TS6BUGUY.js → chunk-QATA32VR.js} +3 -3
  14. package/dist/{chunk-Z3OXWCIA.js → chunk-S5NTSDBS.js} +2 -2
  15. package/dist/chunk-UIHQJK5E.js +556 -0
  16. package/dist/{chunk-VKD5WQKN.js → chunk-VLWOLBGZ.js} +142 -24
  17. package/dist/{chunk-YTG6Q75E.js → chunk-WZRX4KOH.js} +25 -3
  18. package/dist/{chunk-YV52FB5G.js → chunk-ZQKDZXDO.js} +1 -1
  19. package/dist/{cli-token-GL5MS5FK.js → cli-token-4UPER74P.js} +3 -3
  20. package/dist/{chunk-6A2FUCIS.js → client-L2YDMHQ6.js} +5 -6
  21. package/dist/{config-4VZNLBKF.js → config-OL2LWGBV.js} +4 -33
  22. package/dist/index.js +25 -38
  23. package/dist/{memory-RWJW4XFO.js → memory-MUP7PPL7.js} +4 -4
  24. package/dist/{memory-VO2ZJCRT.js → memory-U4O5PMXH.js} +4 -4
  25. package/dist/{metadata-ZRN2GHPN.js → metadata-5MIMNIMT.js} +33 -20
  26. package/dist/{metadata-YGTHR2XJ.js → metadata-LERKDJN6.js} +33 -20
  27. package/dist/{model-CLUIK3K5.js → model-JTUEO5M4.js} +2 -2
  28. package/dist/{sync-3REDHGY6.js → sync-MOSFNBVR.js} +5 -5
  29. package/dist/{te-agent-XNPELAKX.js → te-agent-IFKZDHZI.js} +25 -18
  30. package/dist/{te-analysis-GJI5FZUL.js → te-analysis-FCHRTNIY.js} +1267 -492
  31. package/dist/{te-analysis-N2BRDJZ5.js → te-analysis-QG7UKGDA.js} +1267 -492
  32. package/dist/{te-community-SQXKE5OO.js → te-community-HNKVTERD.js} +207 -12
  33. package/dist/{te-community-TYSNU3NQ.js → te-community-IWE5B7W6.js} +208 -12
  34. package/dist/{te-dataops-OWIADNSM.js → te-dataops-KQPYNAE3.js} +262 -145
  35. package/dist/{te-dataops-5TM7WZDI.js → te-dataops-KXCEB4CS.js} +262 -145
  36. package/dist/{te-engage-L72HWRGO.js → te-engage-D6EG3NOR.js} +951 -17
  37. package/dist/{te-engage-QWM4GFS7.js → te-engage-ZSMIJLUW.js} +951 -17
  38. package/dist/{te-experiment-2T2HEZML.js → te-experiment-K5US7RMG.js} +6 -6
  39. package/dist/{te-experiment-PVEY7AEZ.js → te-experiment-WA7TFMEL.js} +6 -6
  40. package/dist/{te-kb-VRMEY3D4.js → te-kb-OIH3T6CS.js} +4 -4
  41. package/dist/{te-system-XGS5EQIQ.js → te-system-AZ3URMUO.js} +515 -11
  42. package/dist/{te-team-BZRDV2CM.js → te-team-GZPU6UWA.js} +5 -5
  43. package/dist/{update-HEDXGOJH.js → update-TOBFXF2V.js} +4 -4
  44. package/package.json +5 -5
  45. package/skills/ae-agent/SKILL.md +3 -3
  46. package/skills/ae-agent/references/list-skill-references.md +4 -4
  47. package/skills/ae-agent/references/read-skill-reference.md +10 -7
  48. package/skills/ae-agent/references/upload-skill-reference.md +11 -9
  49. package/skills/ae-analysis/SKILL.md +15 -12
  50. package/skills/ae-analysis/metadata_resolution.md +150 -0
  51. package/skills/ae-analysis/references/adhoc_export.md +17 -2
  52. package/skills/ae-analysis/references/adhoc_run.md +12 -8
  53. package/skills/ae-analysis/references/ai_models.md +35 -6
  54. package/skills/ae-analysis/references/alert_list.md +2 -3
  55. package/skills/ae-analysis/references/analysis_data_retrieval.md +104 -16
  56. package/skills/ae-analysis/references/analysis_drilldown_contract.md +4 -4
  57. package/skills/ae-analysis/references/analysis_gateway_assets.md +17 -15
  58. package/skills/ae-analysis/references/artifact_download.md +4 -3
  59. package/skills/ae-analysis/references/asset_abnormal_list.md +5 -3
  60. package/skills/ae-analysis/references/asset_authentication_list.md +5 -3
  61. package/skills/ae-analysis/references/asset_search.md +5 -3
  62. package/skills/ae-analysis/references/bi_panel_list.md +2 -2
  63. package/skills/ae-analysis/references/bi_panel_page_data_export.md +1 -1
  64. package/skills/ae-analysis/references/bi_panel_page_data_run.md +4 -4
  65. package/skills/ae-analysis/references/catalog_export.md +28 -0
  66. package/skills/ae-analysis/references/catalog_list.md +44 -0
  67. package/skills/ae-analysis/references/command_index.md +78 -69
  68. package/skills/ae-analysis/references/dashboard_list.md +2 -2
  69. package/skills/ae-analysis/references/dashboard_report_data_run.md +11 -4
  70. package/skills/ae-analysis/references/datatable_version_list.md +5 -3
  71. package/skills/ae-analysis/references/drilldown_entities_run.md +4 -4
  72. package/skills/ae-analysis/references/drilldown_events_run.md +2 -2
  73. package/skills/ae-analysis/references/drilldown_user_events_export.md +1 -1
  74. package/skills/ae-analysis/references/drilldown_user_events_run.md +2 -2
  75. package/skills/ae-analysis/references/entity_detail_run.md +4 -4
  76. package/skills/ae-analysis/references/entity_id_import_options.md +1 -1
  77. package/skills/ae-analysis/references/event_detail_run.md +4 -4
  78. package/skills/ae-analysis/references/event_export.md +21 -0
  79. package/skills/ae-analysis/references/event_list.md +7 -6
  80. package/skills/ae-analysis/references/exchange_rule_list.md +5 -3
  81. package/skills/ae-analysis/references/favorite_add.md +2 -2
  82. package/skills/ae-analysis/references/favorite_remove.md +2 -2
  83. package/skills/ae-analysis/references/history_tag_data_drilldown_export.md +4 -2
  84. package/skills/ae-analysis/references/history_tag_data_drilldown_run.md +2 -2
  85. package/skills/ae-analysis/references/history_tag_data_run.md +2 -2
  86. package/skills/ae-analysis/references/metric_create.md +7 -8
  87. package/skills/ae-analysis/references/metric_export.md +21 -0
  88. package/skills/ae-analysis/references/metric_list.md +8 -7
  89. package/skills/ae-analysis/references/project_space_list.md +2 -2
  90. package/skills/ae-analysis/references/property_export.md +21 -0
  91. package/skills/ae-analysis/references/property_list.md +9 -8
  92. package/skills/ae-analysis/references/public_link_list.md +2 -2
  93. package/skills/ae-analysis/references/query_context_get.md +20 -0
  94. package/skills/ae-analysis/references/query_create_result_cluster.md +1 -1
  95. package/skills/ae-analysis/references/report_change_log_list.md +1 -1
  96. package/skills/ae-analysis/references/report_create.md +3 -3
  97. package/skills/ae-analysis/references/report_data_run.md +8 -8
  98. package/skills/ae-analysis/references/report_list.md +3 -3
  99. package/skills/ae-analysis/references/report_list_export.md +2 -2
  100. package/skills/ae-analysis/references/report_update.md +3 -3
  101. package/skills/ae-analysis/references/report_version_rollback.md +1 -1
  102. package/skills/ae-analysis/references/rule_list.md +6 -4
  103. package/skills/ae-analysis/references/run_inspect.md +8 -5
  104. package/skills/ae-analysis/references/run_wait.md +37 -0
  105. package/skills/ae-analysis/references/sql_table_list.md +3 -2
  106. package/skills/ae-analysis/references/user_cluster_export.md +13 -0
  107. package/skills/ae-analysis/references/user_cluster_list.md +6 -2
  108. package/skills/ae-analysis/references/user_cluster_member_export.md +5 -3
  109. package/skills/ae-analysis/references/user_cluster_member_list.md +4 -4
  110. package/skills/ae-analysis/references/user_cluster_update.md +4 -2
  111. package/skills/ae-analysis/references/user_tag_export.md +13 -0
  112. package/skills/ae-analysis/references/user_tag_list.md +6 -2
  113. package/skills/ae-analysis/references/user_tag_member_export.md +5 -3
  114. package/skills/ae-analysis/references/user_tag_member_list.md +4 -4
  115. package/skills/ae-analysis/references/user_tag_update.md +4 -2
  116. package/skills/ae-analysis/references/virtual_property_create.md +2 -2
  117. package/skills/ae-analysis/references/virtual_property_sql_rule_update.md +3 -3
  118. package/skills/ae-community/SKILL.md +2 -2
  119. package/skills/ae-dataops/SKILL.md +4 -3
  120. package/skills/ae-dataops/references/dataops-flow-create.md +47 -3
  121. package/skills/ae-engage/SKILL.md +55 -7
  122. package/skills/ae-engage/references/build-task-save-guide.md +12 -0
  123. package/skills/ae-engage/references/cancel-query-run.md +31 -0
  124. package/skills/ae-engage/references/config-item-analysis-report.md +14 -1
  125. package/skills/ae-engage/references/config-item-strategy-comparison.md +11 -1
  126. package/skills/ae-engage/references/config-item-trigger-report.md +15 -1
  127. package/skills/ae-engage/references/flow-metric-detail-report.md +134 -0
  128. package/skills/ae-engage/references/flow-metric-update.md +77 -0
  129. package/skills/ae-engage/references/flow-metric-user.md +119 -0
  130. package/skills/ae-engage/references/flow-node-metric-user.md +123 -0
  131. package/skills/ae-engage/references/flow-node-user.md +123 -0
  132. package/skills/ae-engage/references/push-record-query.md +32 -1
  133. package/skills/ae-engage/references/save-task.md +9 -0
  134. package/skills/ae-engage/references/task-data-detail.md +9 -2
  135. package/skills/ae-engage/references/task-indicator-user.md +104 -0
  136. package/skills/ae-engage/references/task-metric-detail.md +9 -2
  137. package/skills/ae-engage/references/task-submit-approval.md +3 -0
  138. package/skills/ae-engage/references/task-user-detail-export.md +31 -0
  139. package/skills/ae-experiment/references/save_experiment.md +4 -0
  140. package/skills/ae-experiment-design/SKILL.md +1 -1
  141. package/skills/ae-experiment-design/references/platform-operations.md +1 -1
  142. package/skills/ae-experiment-insight/references/platform-operations.md +1 -1
  143. package/skills/ae-metadata/SKILL.md +2 -1
  144. package/skills/ae-metadata/references/metadata_data_table_download.md +10 -2
  145. package/skills/ae-metadata/references/metadata_data_table_list.md +5 -2
  146. package/skills/ae-metadata/references/metadata_property_dimension_table_bind_existing.md +1 -1
  147. package/skills/ae-system/SKILL.md +66 -3
  148. package/dist/chunk-DT6Y3TD7.js +0 -232
  149. package/dist/chunk-MVDZ7DBQ.js +0 -231
  150. package/dist/chunk-NBPKWKRA.js +0 -51
  151. package/dist/client-DAIPF7XN.js +0 -23
  152. package/dist/raw-52B4UKO4.js +0 -71
  153. package/dist/te-meta-53BVXPFI.js +0 -95
  154. package/dist/te-meta-TOCBPBXI.js +0 -95
@@ -0,0 +1,20 @@
1
+ # analysis query-context get
2
+
3
+ Read the full selectable coordinate options for one source from a bounded synchronous analysis preview.
4
+
5
+ The primary `adhoc run`, `report-data run`, or `dashboard-report-data run` response intentionally returns only a compact `sources[]` summary. Call this command only when that response contains `query_context_id`, `query_context_options_capability_id=analysis.query.context_get`, and an advertised follow-up action.
6
+
7
+ ## Command
8
+
9
+ ```bash
10
+ ae-cli analysis query-context get \
11
+ --project-id <project_id> \
12
+ --query-context-id <query_context_id> \
13
+ [--source '{"report_id":1001}']
14
+ ```
15
+
16
+ `--project-id` must match the project stored by the context. For a context with multiple sources, copy exactly one `report_id` or `chart_id` selector from the compact primary response. Omit `--source` only when the context contains one source.
17
+
18
+ The returned `source.drilldown` contains the complete `row_options`, `column_options`, and `metric_options` for the original synchronous preview. Select options and shallow-merge only their `coordinate` fragments as described in [`analysis_drilldown_contract.md`](analysis_drilldown_contract.md). The command never reruns or expands the query and never makes export rows selectable.
19
+
20
+ If the context is missing, expired, owned by another user, belongs to another project, or the caller no longer has source permission, the command fails. Do not reconstruct coordinates from display text.
@@ -22,7 +22,7 @@ ae-cli analysis query create-result-cluster \
22
22
 
23
23
  - `--project-id` must be the project used by the synchronous preview and must match the project stored by `query_context_id`.
24
24
  - `--query-context-id`, `--source`, and all coordinate fragments must come from the same synchronous `adhoc run`, `report-data run`, or `dashboard-report-data run` response.
25
- - Match the desired visible row and column in `source.drilldown.row_options`/`column_options`, select the correct metric option, and shallow-merge only their `coordinate` fragments.
25
+ - Call `analysis query-context get`, match the desired visible row and column in its `source.drilldown.row_options`/`column_options`, select the correct metric option, and shallow-merge only their `coordinate` fragments.
26
26
  - Never pass `target_id`, raw QP, display-only dates, option presentation fields, or data from an export/download. Exports do not create query contexts.
27
27
  - `--cluster-name` must be unique in the project, start with a lowercase letter, contain only lowercase letters, digits, and underscores, and be at most 24 characters. This legacy result-cluster path is stricter than ordinary cluster creation.
28
28
  - `--display-name`, when provided, must be at most 80 characters.
@@ -12,4 +12,4 @@ ae-cli analysis report-change-log list --project-id <project_id> --report-id <re
12
12
 
13
13
  Input sends `project_id` and `report_id`.
14
14
 
15
- Output is the gateway envelope. `data` contains change log summaries and `total`. Raw report QP fields are not returned in the list.
15
+ Output is the gateway envelope. `data` contains change log summaries and `total`. Only items with `can_rollback=true` are valid rollback sources; pass that item's `target_version` to `report-version rollback --target-version`. Create and unpack records are not rollbackable. Raw report QP fields are not returned in the list.
@@ -9,14 +9,14 @@ Read [`ai_models.md`](ai_models.md) for the single AI-facing model registry. Rep
9
9
  Command:
10
10
 
11
11
  ```bash
12
- ae-cli analysis report create --project-id <project_id> --report-name "Demo" --model-type event --definition '{...}' [--report-desc "..."] [--dashboard-ids "[1001]"]
12
+ ae-cli analysis report create --project-id <project_id> --report-name "Demo" --model-type event --definition '{...}' [--resolutions '<confirmed_resolution_json>'] [--report-desc "..."] [--dashboard-ids "[1001]"]
13
13
  ```
14
14
 
15
- Input sends `project_id`, `report_name`, `model_type`, `definition`, optional `report_desc`, `cache_seconds`, `query_duration_ms`, and `dashboard_ids`.
15
+ Input sends `project_id`, `report_name`, `model_type`, `definition`, optional user-confirmed `resolutions`, `report_desc`, `cache_seconds`, `query_duration_ms`, and `dashboard_ids`. `--resolutions` is not supported with `--model-type tag`.
16
16
 
17
17
  Output is the gateway envelope. `data` contains the created `report_id`, creation status, normalized `model_type`, AI QP `definition`, and optional resolution warnings.
18
18
 
19
- Report creation and its `--validate` / `--dry-run` paths use the same compiler contract. `AI_QP_COMPILE_FAILED` preserves `meta.compile_status`, full `meta.errors[]` (including `code`, `candidates`, and `suggestions`), `meta.resolved`, and `meta.warnings`. No report is created on this failure; select an exact returned candidate or ask the user before retrying.
19
+ Report creation and its `--validate` / `--dry-run` paths use the same compiler contract. `AI_QP_COMPILE_FAILED` preserves the full structured error array. No report is created on this failure; follow [`../metadata_resolution.md`](../metadata_resolution.md), keep the definition unchanged, and pass `--resolutions` only after user confirmation.
20
20
 
21
21
  ## SQL dynamic parameter shortest path
22
22
 
@@ -6,7 +6,7 @@ Typical closed loop: discover a saved report -> verify its definition -> resolve
6
6
 
7
7
  Routing: read [`analysis_data_retrieval.md`](analysis_data_retrieval.md) before choosing this `run` command instead of `report-data export`.
8
8
 
9
- Do not use this command for full, unknown-size, larger than 1000-row, or long-running report data; use `report-data export`.
9
+ Do not use this command for full, unknown-size, larger than the current runtime synchronous maximum, or long-running report data; use `report-data export`.
10
10
 
11
11
  This gateway report-data capability executes saved reports with model-specific overrides. It covers the 12 analysis report models from `ai_models.md` plus tag report data; tags are report-data only and are not ad-hoc `model_type` values.
12
12
 
@@ -22,19 +22,19 @@ Command:
22
22
 
23
23
  ```bash
24
24
  # Non-SQL analysis report
25
- ae-cli analysis report-data run --project-id <project_id> --report-ids '[1001]' --filters '{"relation":"and","items":[{"field":{"name":"country","type":"user_property"},"operator":"eq","values":["US"]}]}' --start-time 2026-07-01 --end-time 2026-07-09 --limit 20
25
+ ae-cli analysis report-data run --project-id <project_id> --report-ids '[1001]' --filters '{"relation":"and","items":[{"field":{"name":"country","type":"user_property"},"operator":"eq","values":["US"]}]}' --start-time 2026-07-01 --end-time 2026-07-09 --preview-rows 20
26
26
 
27
27
  # SQL report, after analysis report get confirms definition.params contains platform
28
- ae-cli analysis report-data run --project-id <project_id> --report-ids '[2001]' --sql-params '[{"name":"platform","value":"ios"}]' --limit 20
28
+ ae-cli analysis report-data run --project-id <project_id> --report-ids '[2001]' --sql-params '[{"name":"platform","value":"ios"}]' --preview-rows 20
29
29
 
30
30
  # Explicit local-time mode (not UTC+99)
31
- ae-cli analysis report-data run --project-id <project_id> --report-ids '[1001]' --zone-offset 99 --limit 20
31
+ ae-cli analysis report-data run --project-id <project_id> --report-ids '[1001]' --zone-offset 99 --preview-rows 20
32
32
 
33
33
  # One physical slave query cluster
34
- ae-cli analysis report-data run --project-id <project_id> --report-ids '[1001]' --cluster-query-scope SLAVE --slave-cluster-id jp --limit 20
34
+ ae-cli analysis report-data run --project-id <project_id> --report-ids '[1001]' --cluster-query-scope SLAVE --slave-cluster-id jp --preview-rows 20
35
35
  ```
36
36
 
37
- Input also accepts optional `cluster_query_scope` and conditional `slave_cluster_id`. Omit both for current-self data. Use `GLOBAL` only for explicit cross-cluster aggregation; use `SLAVE` with exactly one ID returned by `analysis query-cluster list`. SQL reports reject `GLOBAL`. Control defaults: `--limit` default 100 / max 1000, `--timeout-seconds` default 120 / max 180.
37
+ Input also accepts optional `cluster_query_scope` and conditional `slave_cluster_id`. Omit both for current-self data. Use `GLOBAL` only for explicit cross-cluster aggregation; use `SLAVE` with exactly one ID returned by `analysis query-cluster list`. SQL reports reject `GLOBAL`. Omit `--preview-rows` to use each report model's current cluster synchronous limit; explicit values must not exceed the runtime model limit. Agents should normally pass 100. `--timeout-seconds` defaults to 120 and has a maximum of 180.
38
38
 
39
39
  Timezone contract:
40
40
 
@@ -53,8 +53,8 @@ A homogeneous SQL request that includes `filters`, `group_by`, `start_time`, `en
53
53
 
54
54
  For a newly created or updated dynamic SQL report, omit `--sql-params` to execute the saved default first. After that succeeds, then make one second call with `--sql-params` to change only the requested value. This separates a broken saved default from a broken override and avoids repeating the same query.
55
55
 
56
- Output is the gateway envelope. `data` contains bounded inline report result items plus `query_context_id` and `sources[]`. Each source includes `effective_zone_offset`, the timezone value actually used for that query. When `zone_offset` is omitted, this is the resolved current-user timezone when available, otherwise the project default; when `zone_offset` is explicit, this is its resolved effective value. `sources[].drilldown` is present when the returned preview exposes follow-up actions. Each source is evaluated independently; SQL and other unsupported models have no actions.
56
+ Output is the gateway envelope. When at least one report exposes a follow-up action, `data` contains bounded inline report result items plus `query_context_id` and compact `sources[]` summaries. Each source includes `effective_zone_offset`, the timezone value actually used for that query. When `zone_offset` is omitted, this is the resolved current-user timezone when available, otherwise the project default; when `zone_offset` is explicit, this is its resolved effective value. SQL-only and otherwise non-drillable results omit query context entirely. Use `analysis query-context get` to read the selected source's full coordinate options.
57
57
 
58
58
  `meta.actual_cluster_query_scope`, optional `meta.actual_slave_cluster_id`, and `meta.cluster_query_scope_source` describe the actual physical route. Verify them before comparing or drilling down. An empty batch or report result with no rows is a successful query: it means the requested time range has no data. The command fails only when every returned report entry contains an explicit execution error.
59
59
 
60
- Read [`analysis_drilldown_contract.md`](analysis_drilldown_contract.md). Select only returned row/column/metric options and call only the advertised event, entity, or result-cluster action. Do not pass raw QP.
60
+ Read [`analysis_drilldown_contract.md`](analysis_drilldown_contract.md). Call `analysis query-context get`, select only its returned row/column/metric options, and call only the advertised event, entity, or result-cluster action. Do not pass raw QP.
@@ -7,11 +7,11 @@ Do not use for report data execution or report definition writes. Use `report-da
7
7
  Command:
8
8
 
9
9
  ```bash
10
- ae-cli analysis report list --project-id <project_id> [--query <keyword>] [--model-types '["event","sql","tag","revenue"]'] [--fields '["report_id","report_name","report_desc","report_model","version"]'] [--limit 50] [--offset 0]
10
+ ae-cli analysis report list --project-id <project_id> [--queries '["growth","retention"]'] [--model-types '["event","sql","tag","revenue"]'] [--fields '["report_id","report_name","report_desc","report_model","version"]'] [--limit 50] [--offset 0]
11
11
  ```
12
12
 
13
- Input sends `project_id`, optional `query`, `model_types`, `fields`, `limit`, and `offset` as snake_case gateway input. `limit` defaults to 50 and must be 1..200; out-of-range values are rejected rather than silently clamped.
13
+ Input sends `project_id`, optional `queries`, `model_types`, `fields`, `limit`, and `offset` as snake_case gateway input. `queries` is a JSON array of 1 to 20 non-empty strings with OR semantics; matching rows include `matched_queries` and `matched_fields`. The legacy singular `query` is not accepted. `limit` defaults to 50 and must be 1..200; out-of-range values are rejected rather than silently clamped.
14
14
 
15
15
  Output is the gateway envelope. `data` contains report summaries, `total`, effective `limit`, `offset`, `has_more`, and nullable `next_offset`. When `has_more` is true, use exactly `next_offset` for the next call; stop when it is false. Include `version` in `--fields` when the next step is `analysis report update`.
16
16
 
17
- When locating one report, narrow with `--query` or `--model-types` before paging and stop when the required report is found; do not enumerate every report page when the server-side filters can identify the target.
17
+ When locating reports, group known names into one `--queries` call or narrow with `--model-types` before paging. Stop when the required reports are found; do not issue one list call per name.
@@ -7,9 +7,9 @@ Do not use for report data values. Use `report-data export` when the output shou
7
7
  Command:
8
8
 
9
9
  ```bash
10
- ae-cli analysis report list-export --project-id <project_id> [--query <keyword>] [--model-types '["event","sql","tag","revenue"]'] [--fields '["report_id","report_name"]'] [--artifact-format jsonl] [--request-id cli_0123456789abcdef0123456789abcdef] [--timeout-seconds 21600]
10
+ ae-cli analysis report list-export --project-id <project_id> [--queries '["growth","retention"]'] [--model-types '["event","sql","tag","revenue"]'] [--fields '["report_id","report_name"]'] [--artifact-format jsonl] [--request-id cli_0123456789abcdef0123456789abcdef] [--timeout-seconds 21600]
11
11
  ```
12
12
 
13
- Input sends `project_id`, optional `query`, semantic `model_types`, `fields`, lifecycle `request_id`, artifact `format`, and `timeout_seconds`. ae-cli generates and announces `request_id` before dispatch when it is omitted.
13
+ Input sends `project_id`, optional `queries`, semantic `model_types`, `fields`, lifecycle `request_id`, artifact `format`, and `timeout_seconds`. `queries` accepts 1 to 20 non-empty strings with OR semantics; the singular `query` is not accepted. ae-cli generates and announces `request_id` before dispatch when it is omitted.
14
14
 
15
15
  Output is the gateway envelope. `data` contains an async artifact descriptor including `run_id`, `artifact_id`, status, and expiration fields. Inspect and download through the dedicated CLI commands using those opaque IDs.
@@ -10,14 +10,14 @@ Command:
10
10
 
11
11
  ```bash
12
12
  ae-cli analysis report update --project-id <project_id> --report-id <report_id> --report-version <version> --report-name "New name"
13
- ae-cli analysis report update --project-id <project_id> --report-id <report_id> --report-version <version> --model-type event --definition '{...}'
13
+ ae-cli analysis report update --project-id <project_id> --report-id <report_id> --report-version <version> --model-type event --definition '{...}' [--resolutions '<confirmed_resolution_json>']
14
14
  ```
15
15
 
16
- Input sends `project_id`, `report_id`, `version` from CLI `--report-version`, and at least one of `report_name`, `report_desc`, or `definition`. Read `version` from `analysis report get` before updating. `model_type` is required when `definition` is provided.
16
+ Input sends `project_id`, `report_id`, `version` from CLI `--report-version`, and at least one of `report_name`, `report_desc`, or `definition`. Read `version` from `analysis report get` before updating. `model_type` is required when `definition` is provided; `resolutions` is allowed only with that unchanged definition and is not supported with `model_type=tag`.
17
17
 
18
18
  Output is the gateway envelope. `data` contains update status, `report_id`, and the normalized AI QP definition when a definition was updated.
19
19
 
20
- When a definition is supplied, update and its `--validate` / `--dry-run` paths use the same compiler contract. `AI_QP_COMPILE_FAILED` preserves `meta.compile_status`, full `meta.errors[]` (including `code`, `candidates`, and `suggestions`), `meta.resolved`, and `meta.warnings`. The report is not changed on this failure; resolve the ambiguity before retrying.
20
+ When a definition is supplied, update and its `--validate` / `--dry-run` paths use the same compiler contract. `AI_QP_COMPILE_FAILED` preserves the full structured error array. The report is not changed on this failure; follow [`../metadata_resolution.md`](../metadata_resolution.md), keep the definition unchanged, and retry with `--resolutions` only after confirmation.
21
21
 
22
22
  For the shortest safe update, read the current `version` exactly once with `analysis report get` immediately before the write; do not reuse a version from an older list or conversation turn. If a SQL dynamic parameter definition changed, query the saved default before applying an override so default persistence and override behavior are verified separately.
23
23
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Use when the user explicitly wants to rollback one report to a previous history version.
4
4
 
5
- Do not use without first identifying the target version from `report-change-log list` or an exact user-provided version.
5
+ Do not use without first choosing an item with `can_rollback=true` from `report-change-log list` or receiving an exact user-provided version. Pass the selected item's `target_version`; do not infer it from `version` or `original_version`.
6
6
 
7
7
  Command:
8
8
 
@@ -7,18 +7,20 @@ Do not use it to discover rule field syntax; use `rule-schema` for construction
7
7
  Command:
8
8
 
9
9
  ```bash
10
- ae-cli analysis-governance rule list --project-id <project_id>
10
+ ae-cli analysis-governance rule list --project-id <project_id> --limit 50 --offset 0
11
11
  ae-cli analysis-governance rule list --dry-run --project-id <project_id>
12
12
  ```
13
13
 
14
- Capability id: analysis_meta.asset_rule.list.
14
+ Capability id: `governance.rule.list`.
15
15
 
16
- Input sends project_id, payload. Payload keys must follow the common-service snake_case input schema; do not send camelCase aliases.
16
+ Input sends `project_id`, optional `payload`, `limit`, and `offset`. Payload keys must follow the common-service snake_case input schema; do not send camelCase aliases.
17
17
 
18
- Output `data` is the saved governance rule collection for the project. Resolve a real `rule_id` from this result before update or delete.
18
+ Output always uses the directory envelope: `data.items[]`, `total`, `limit`, `offset`, `has_more`, and `next_offset`. Resolve a real `rule_id` from `items` before update or delete.
19
19
 
20
20
  ## Parameters
21
21
  | Parameter | Required | Description |
22
22
  |---|---|---|
23
23
  | --project-id | Yes | Numeric project ID. |
24
24
  | --payload | No | Optional snake_case object carrying the same fields. Use this for complex governance filters or backend-shaped payloads. |
25
+ | `--limit` / `-l` | No | Page size. Default: 50, maximum: 200. |
26
+ | `--offset` / `-o` | No | Zero-based page offset. Default: 0. |
@@ -4,7 +4,7 @@ Inspect an async analysis capability-gateway run returned by export commands.
4
4
 
5
5
  Use for `analysis adhoc export`, `analysis report-data export`, `analysis dashboard-report-data export`, `analysis bi-panel-page-data export`, and other analysis exports that return `run_id`.
6
6
 
7
- Do not use this for MCP `request_id` cancellation or status. MCP query lifecycle uses the specific MCP command contract.
7
+ Legacy transport `request_id` values are outside this skill's execution path. This command accepts only the capability-gateway `run_id`; if the caller has only a legacy request ID, report that it cannot be inspected or canceled here.
8
8
 
9
9
  Input:
10
10
 
@@ -20,9 +20,12 @@ Input sends `run_id`.
20
20
 
21
21
  Output is the gateway run descriptor with run status, artifact status, and error fields when the run failed. Keep the `run_id` from the same export result; do not invent or reuse it across artifacts.
22
22
 
23
- Polling rule:
23
+ State interpretation:
24
24
 
25
- - Continue polling while status is running or pending.
26
- - Treat `COMPLETED` or `SUCCEEDED` as success.
27
- - Treat `FAILED`, `CANCELED`, or `CANCELLED` as terminal failure.
25
+ - Continue only while run or artifact status is `RUNNING`.
26
+ - Treat only run `SUCCEEDED` plus artifact `COMPLETED` as downloadable success.
27
+ - Treat run or artifact `FAILED`/`CANCELED` as terminal failure.
28
28
  - After success, download with `ae-cli analysis artifact download --run-id <run_id> --artifact-id <artifact_id> --output <file>`.
29
+
30
+ For managed polling and resumability, use `ae-cli analysis run wait --run-id
31
+ <run_id> [--output <file>]` instead of scripting an unbounded inspect loop.
@@ -0,0 +1,37 @@
1
+ # analysis run wait
2
+
3
+ Resume client-side waiting for an asynchronous run and optionally download its
4
+ completed artifact.
5
+
6
+ Use this after an export was submitted without `--wait`, or when a previous
7
+ wait was interrupted, detached, reached its client or server deadline, or
8
+ stopped after persistent transient network failures. Do not use it for
9
+ synchronous `run` results, and do not treat it as a cancellation command.
10
+
11
+ ```bash
12
+ ae-cli analysis run wait --run-id <run_id> [--wait-timeout-seconds <n>] [--output <file>] [--force]
13
+ ```
14
+
15
+ Input:
16
+
17
+ - `--run-id`: exact run ID returned by the original async export.
18
+ - `--wait-timeout-seconds`: optional local wait bound, `1..21600`; default
19
+ `600`. Expiry does not cancel the remote run.
20
+ - `--output`: optional destination. When present, download begins only after
21
+ run `SUCCEEDED` and artifact `COMPLETED`.
22
+ - `--force`: optional atomic replacement of an existing `--output`; invalid
23
+ without `--output`.
24
+
25
+ The command polls with repeated short inspect requests and internal adaptive
26
+ backoff. Local waiting stops at the earlier of `--wait-timeout-seconds` and the
27
+ server lifecycle deadline, with a short artifact-materialization grace. Ctrl-C
28
+ or a local wait failure never cancels the remote run. The error returns the
29
+ latest lifecycle state plus `remote_run_canceled=false` and `resume_command`.
30
+ Use `analysis query cancel --run-id <run_id>` only when cancellation is
31
+ explicitly intended.
32
+
33
+ Without `--output`, the response is the successful terminal run descriptor.
34
+ With `--output`, success additionally guarantees a complete atomically
35
+ published local file and returns `output_path`, `bytes`, and content headers.
36
+ Run/artifact failure, unknown protocol states, 404, or authorization failure
37
+ returns a non-zero structured error; do not turn those outcomes into success.
@@ -7,7 +7,7 @@ List the server-authoritative SQL table references that the current user may que
7
7
  ```bash
8
8
  ae-cli analysis sql-table list \
9
9
  --project-id <project_id> \
10
- [--query <keyword>] \
10
+ [--queries '["user","event"]'] \
11
11
  [--limit <1-200>] \
12
12
  [--offset <next_offset>] \
13
13
  [--usage analysis|tag_cluster]
@@ -17,6 +17,7 @@ ae-cli analysis sql-table list \
17
17
 
18
18
  - Use this command before writing SQL when the table is not already known. Do not ask the customer to supply the fixed project event/user table name and do not guess `v_event_<id>` or `v_user_<id>`.
19
19
  - `table_ref` is the exact server-authorized reference to copy into SQL and into `analysis sql-table columns --table-ref`.
20
+ - `queries` accepts 1 to 20 non-empty strings with OR semantics. Matching rows include `matched_queries` and `matched_fields`; singular `query` is not accepted.
20
21
  - Each item also returns `catalog`, `schema`, `table`, `table_type`, and `description`.
21
22
  - `usage=analysis` is the default table set for SQL analysis and reports. Use `usage=tag_cluster` for SQL tags or SQL clusters. These server-authorized sets differ, and the same usage must be passed to `sql-table columns`.
22
23
  - When `has_more=true`, continue only with the returned `next_offset`. Stop when `has_more=false`.
@@ -25,7 +26,7 @@ ae-cli analysis sql-table list \
25
26
  ## Example workflow
26
27
 
27
28
  ```bash
28
- ae-cli analysis sql-table list --project-id 1 --query user
29
+ ae-cli analysis sql-table list --project-id 1 --queries '["user","account"]'
29
30
  ae-cli analysis sql-table columns --project-id 1 --table-ref hive.ta.v_user_1
30
31
  ae-cli analysis adhoc run --project-id 1 --model-type sql --definition '{"sql":"select * from hive.ta.v_user_1 limit 10"}'
31
32
  ```
@@ -0,0 +1,13 @@
1
+ # analysis user-cluster export
2
+
3
+ Export every matching accessible user cluster without pagination.
4
+
5
+ ```bash
6
+ ae-cli analysis user-cluster export \
7
+ --project-id <project_id> \
8
+ --output <temporary_path>/clusters.jsonl
9
+ ```
10
+
11
+ Capability id: `analysis.user_cluster.export`.
12
+
13
+ Optional filters are `--queries`, `--fields`, and `--authenticated-only`. `--limit`, `--offset`, and `--all` are not accepted. The CLI requires a `.jsonl` output path and writes an adjacent `.meta.json` completeness and identity sidecar. Search the file locally; do not load the full snapshot into model context.
@@ -2,7 +2,9 @@
2
2
 
3
3
  List accessible user clusters for discovery. Use this before any get/update/delete/member command; do not invent `cluster_name`.
4
4
 
5
- Flags: `--project-id` required. Optional: `--query`, `--fields`, `--limit`, `--offset`, `--authenticated-only`.
5
+ Flags: `--project-id` required. Optional: `--queries`, `--fields`, `--limit`, `--offset`, `--authenticated-only`.
6
+
7
+ `--queries` is a JSON array of 1-20 keywords and uses OR matching. Default `--limit` is 50; maximum is 200.
6
8
 
7
9
  `--offset` is only for stable asset browsing. It is not a member-data pagination strategy.
8
10
  When `has_more=true`, continue only with the returned `next_offset`; do not calculate the next page locally.
@@ -10,6 +12,8 @@ When `has_more=true`, continue only with the returned `next_offset`; do not calc
10
12
  Output is a paged cluster inventory, not cluster members or definition-build results.
11
13
 
12
14
  ```bash
13
- ae-cli analysis user-cluster list --project-id <project_id> --query retained --limit 50
15
+ ae-cli analysis user-cluster list --project-id <project_id> --queries '["retained","retention"]' --limit 50
14
16
  ae-cli analysis user-cluster list --project-id <project_id> --fields '["cluster_name","display_name","users_num"]' --limit 50 --offset 0
15
17
  ```
18
+
19
+ For a complete catalog, use [`user_cluster_export.md`](user_cluster_export.md).
@@ -1,12 +1,14 @@
1
1
  # analysis user-cluster-member export
2
2
 
3
- Export cluster members as an async jsonl artifact. Read `analysis_data_retrieval.md` first.
3
+ Stream the native full cluster-member download as an async gzip artifact. Read `analysis_data_retrieval.md` first.
4
4
 
5
- Flags: `--project-id`, `--cluster-name` required. Optional: `--property-names`, `--fields`, `--query`, `--use-cache`, `--request-id`, `--artifact-format jsonl`, `--timeout-seconds`.
5
+ Do not use this command for an inline sample or filtered keyword search; use `user-cluster-member run` for preview behavior.
6
+
7
+ Flags: `--project-id`, `--cluster-name` required. Optional: `--property-names`, `--request-id`, `--artifact-format jsonl|csv`, `--timeout-seconds`. The default format is `jsonl`.
6
8
 
7
9
  If you provide `--request-id`, use `cli_<32 lowercase hex>`. Omit it unless you need to correlate logs or cancel a known running query.
8
10
 
9
- Export does not accept `--offset`. Common streams backend pages until `has_more=false` and writes a final metadata line with the exported row count. Do not claim a fixed 10000-row cap and do not collect full data through repeated list calls.
11
+ Export does not accept `--offset`, `--fields`, `--query`, or `--use-cache`. Common executes the native full-download SQL once and streams result rows directly as `jsonl.gz` or `csv.gz`; it does not concatenate preview pages. The existing full-download ceiling still applies.
10
12
 
11
13
  ```bash
12
14
  ae-cli analysis user-cluster-member export --project-id <project_id> --cluster-name retained_users --artifact-format jsonl
@@ -4,16 +4,16 @@ Run a bounded inline cluster member query. Read `analysis_data_retrieval.md` bef
4
4
 
5
5
  Do not use it for complete/unknown-size membership retrieval or cluster metadata. Output contains at most the requested inline limit and has no caller pagination contract.
6
6
 
7
- Flags: `--project-id`, `--cluster-name` required. Optional: `--property-names`, `--fields`, `--query`, `--use-cache`, `--request-id`, `--limit`, `--timeout-seconds`.
7
+ Flags: `--project-id`, `--cluster-name` required. Optional: `--property-names`, `--fields`, `--query`, `--use-cache`, `--request-id`, `--preview-rows`, `--timeout-seconds`.
8
8
 
9
9
  When `--fields` is omitted, each member row returns `#user_id`, `#account_id`, and `#distinct_id`. Cluster members do not expose tag-only fields such as `tag_value` or `tag_date`. The sync timeout defaults to 120 seconds and accepts an explicit value up to 180 seconds.
10
- The inline member limit defaults to 50 and accepts 1..200.
10
+ Omit `--preview-rows` to return at most 1000 rows, matching the UI member query. Explicit values must be between 1 and 100000; use a smaller preview when only a sample is needed.
11
11
 
12
12
  If you provide `--request-id`, use `cli_<32 lowercase hex>`. Omit it unless you need to correlate logs or cancel a known running query.
13
13
 
14
14
  For full or unknown-size member data, use `user-cluster-member export`; the list command has no next-page contract.
15
15
 
16
16
  ```bash
17
- ae-cli analysis user-cluster-member list --project-id <project_id> --cluster-name retained_users --limit 100
18
- ae-cli analysis user-cluster-member list --project-id <project_id> --cluster-name retained_users --property-names '["country"]' --fields '["#user_id","#account_id","#distinct_id","country"]' --query US --limit 50
17
+ ae-cli analysis user-cluster-member list --project-id <project_id> --cluster-name retained_users --preview-rows 100
18
+ ae-cli analysis user-cluster-member list --project-id <project_id> --cluster-name retained_users --property-names '["country"]' --fields '["#user_id","#account_id","#distinct_id","country"]' --query US --preview-rows 50
19
19
  ```
@@ -2,11 +2,11 @@
2
2
 
3
3
  Update a condition or SQL user cluster. Discover the exact `cluster_name` first.
4
4
 
5
- Do not use it for ID-file membership replacement or to create a missing cluster. Supplying `--definition-request` automatically starts recomputation after the definition is updated; do not call `user-cluster refresh` afterward. Updating only `--display-name` or `--remark` does not recompute. A successful update means the definition was saved, not that the new result is complete. Poll `user-cluster get` until `progress=100` and `refresh_end_time` is not older than `update_time` before using `users_num` or querying members.
5
+ Do not use it for ID-file membership replacement or to create a missing cluster. Supplying `--definition-request` automatically starts recomputation after the definition is updated; do not call `user-cluster refresh` afterward. Updating only `--display-name` or `--remark` does not recompute. `--auto-refresh-cron` changes an existing enabled auto-refresh schedule and does not enable auto refresh. A successful update means the definition was saved, not that the new result is complete. Poll `user-cluster get` until `progress=100` and `refresh_end_time` is not older than `update_time` before using `users_num` or querying members.
6
6
 
7
7
  The response distinguishes both paths. A definition update returns `computation.triggered_automatically=true`, `result_freshness.is_stale=true`, and normally `next_action=poll_get` with an exact capability/input pair. A display-name/remark-only update returns `computation.status=not_triggered`, `result_freshness.status=fresh`, and `next_action=none`.
8
8
 
9
- Flags: `--project-id`, `--cluster-name` required. Optional: `--display-name`, `--definition-request`, `--authenticated-only`, `--remark`, `--zone-offset`. The cluster type comes from `definition_request.type` when the definition changes.
9
+ Flags: `--project-id`, `--cluster-name` required. Optional: `--display-name`, `--definition-request`, `--authenticated-only`, `--remark`, `--zone-offset`, `--auto-refresh-cron`. The cluster type comes from `definition_request.type` when the definition changes.
10
10
 
11
11
  `display_name` is at most 80 characters and `remark` is at most 400 characters. The CLI rejects violations before dispatch. `cluster_name` is an existing exact identifier and cannot be renamed by update.
12
12
 
@@ -14,4 +14,6 @@ Read `user_cluster_models.md` before changing the definition. The backend valida
14
14
 
15
15
  ```bash
16
16
  ae-cli analysis user-cluster update --project-id <project_id> --cluster-name retained_users --display-name "Retained Users v2"
17
+
18
+ ae-cli analysis user-cluster update --project-id <project_id> --cluster-name retained_users --auto-refresh-cron '0 30 2 * * ? *'
17
19
  ```
@@ -0,0 +1,13 @@
1
+ # analysis user-tag export
2
+
3
+ Export every matching accessible user tag without pagination.
4
+
5
+ ```bash
6
+ ae-cli analysis user-tag export \
7
+ --project-id <project_id> \
8
+ --output <temporary_path>/tags.jsonl
9
+ ```
10
+
11
+ Capability id: `analysis.user_tag.export`.
12
+
13
+ Optional filters are `--queries`, `--fields`, and `--authenticated-only`. `--limit`, `--offset`, and `--all` are not accepted. The CLI requires a `.jsonl` output path and writes an adjacent `.meta.json` completeness and identity sidecar. Search the file locally; do not load the full snapshot into model context.
@@ -2,7 +2,9 @@
2
2
 
3
3
  List accessible user tags for discovery. Use this before get/update/delete/member/history-tag commands; do not invent `tag_name`.
4
4
 
5
- Flags: `--project-id` required. Optional: `--query`, `--fields`, `--limit`, `--offset`, `--authenticated-only`.
5
+ Flags: `--project-id` required. Optional: `--queries`, `--fields`, `--limit`, `--offset`, `--authenticated-only`.
6
+
7
+ `--queries` is a JSON array of 1-20 keywords and uses OR matching. Default `--limit` is 50; maximum is 200.
6
8
 
7
9
  `--offset` is only for stable asset browsing. It is not a tag-member pagination strategy.
8
10
  When `has_more=true`, continue only with the returned `next_offset`; do not calculate the next page locally.
@@ -12,6 +14,8 @@ Output is a paged tag inventory whose identifier is `tag_name`, the same field c
12
14
  Tags never accept `cluster_name`; that field belongs only to user clusters. Do not retry a tag command by substituting one identifier for the other.
13
15
 
14
16
  ```bash
15
- ae-cli analysis user-tag list --project-id <project_id> --query level --limit 50
17
+ ae-cli analysis user-tag list --project-id <project_id> --queries '["level","tier"]' --limit 50
16
18
  ae-cli analysis user-tag list --project-id <project_id> --fields '["tag_name","display_name","users_num"]' --limit 50 --offset 0
17
19
  ```
20
+
21
+ For a complete catalog, use [`user_tag_export.md`](user_tag_export.md).
@@ -1,12 +1,14 @@
1
1
  # analysis user-tag-member export
2
2
 
3
- Export tag members as an async jsonl artifact. Read `analysis_data_retrieval.md` first.
3
+ Stream the native full tag-member download as an async gzip artifact. Read `analysis_data_retrieval.md` first.
4
4
 
5
- Flags: `--project-id`, `--tag-name` required. Optional: `--snapshot-date`, `--property-names`, `--fields`, `--query`, `--use-cache`, `--request-id`, `--artifact-format jsonl`, `--timeout-seconds`.
5
+ Do not use this command for an inline sample or filtered keyword search; use `user-tag-member run` for preview behavior.
6
+
7
+ Flags: `--project-id`, `--tag-name` required. Optional: `--snapshot-date`, `--property-names`, `--request-id`, `--artifact-format jsonl|csv`, `--timeout-seconds`. The default format is `jsonl`.
6
8
 
7
9
  If you provide `--request-id`, use `cli_<32 lowercase hex>`. Omit it unless you need to correlate logs or cancel a known running query.
8
10
 
9
- Export does not accept `--offset`. Common streams backend pages until `has_more=false` and writes a final metadata line with the exported row count. Do not claim a fixed 10000-row cap and do not collect full data through repeated list calls.
11
+ Export does not accept `--offset`, `--fields`, `--query`, or `--use-cache`. Common executes the native current-tag or history-tag full-download SQL once and streams result rows directly as `jsonl.gz` or `csv.gz`; it does not concatenate preview pages. The existing full-download ceiling still applies.
10
12
 
11
13
  ```bash
12
14
  ae-cli analysis user-tag-member export --project-id <project_id> --tag-name user_level --artifact-format jsonl
@@ -4,16 +4,16 @@ Run a bounded inline tag member query. Read `analysis_data_retrieval.md` before
4
4
 
5
5
  Do not use it for complete/unknown-size membership retrieval or history statistics. Output contains at most the requested inline limit and has no caller pagination contract.
6
6
 
7
- Flags: `--project-id`, `--tag-name` required. Optional: `--snapshot-date`, `--property-names`, `--fields`, `--query`, `--use-cache`, `--request-id`, `--limit`, `--timeout-seconds`.
7
+ Flags: `--project-id`, `--tag-name` required. Optional: `--snapshot-date`, `--property-names`, `--fields`, `--query`, `--use-cache`, `--request-id`, `--preview-rows`, `--timeout-seconds`.
8
8
 
9
9
  When `--fields` is omitted, each member row returns `#user_id`, `#account_id`, `#distinct_id`, and the stable logical `tag_value`. Internal calculated tag column names are never part of the public response. The sync timeout defaults to 120 seconds and accepts an explicit value up to 180 seconds.
10
- The inline member limit defaults to 50 and accepts 1..200.
10
+ Omit `--preview-rows` to return at most 1000 rows, matching the UI member query. Explicit values must be between 1 and 100000; use a smaller preview when only a sample is needed.
11
11
 
12
12
  If you provide `--request-id`, use `cli_<32 lowercase hex>`. Omit it unless you need to correlate logs or cancel a known running query.
13
13
 
14
14
  For full or unknown-size member data, use `user-tag-member export`; the list command has no next-page contract.
15
15
 
16
16
  ```bash
17
- ae-cli analysis user-tag-member list --project-id <project_id> --tag-name user_level --limit 100
18
- ae-cli analysis user-tag-member list --project-id <project_id> --tag-name user_level --snapshot-date 2026-07-01 --property-names '["country"]' --fields '["#user_id","#account_id","#distinct_id","tag_value","country"]' --limit 50
17
+ ae-cli analysis user-tag-member list --project-id <project_id> --tag-name user_level --preview-rows 100
18
+ ae-cli analysis user-tag-member list --project-id <project_id> --tag-name user_level --snapshot-date 2026-07-01 --property-names '["country"]' --fields '["#user_id","#account_id","#distinct_id","tag_value","country"]' --preview-rows 50
19
19
  ```
@@ -2,11 +2,11 @@
2
2
 
3
3
  Update a user tag. Discover the exact `tag_name` first.
4
4
 
5
- Do not use it for ID-file value replacement or to create a missing tag. Supplying `--definition-request` automatically starts recomputation after the definition is updated; do not call `user-tag refresh` afterward. Updating only `--display-name` or `--remark` does not recompute. A successful update means the definition was saved, not that the new result is complete. Record the current `refresh_time` before updating, then poll `user-tag get` until `progress=100` and `refresh_time` advances before using `users_num` or querying members.
5
+ Do not use it for ID-file value replacement or to create a missing tag. Supplying `--definition-request` automatically starts recomputation after the definition is updated; do not call `user-tag refresh` afterward. Updating only `--display-name` or `--remark` does not recompute. `--auto-refresh-cron` changes an existing enabled auto-refresh schedule and does not enable auto refresh. A successful update means the definition was saved, not that the new result is complete. Record the current `refresh_time` before updating, then poll `user-tag get` until `progress=100` and `refresh_time` advances before using `users_num` or querying members.
6
6
 
7
7
  The response distinguishes both paths. A definition update returns `computation.triggered_automatically=true`, `result_freshness.is_stale=true`, and normally `next_action=poll_get` with an exact capability/input pair. A display-name/remark-only update returns `computation.status=not_triggered`, `result_freshness.status=fresh`, and `next_action=none`.
8
8
 
9
- Flags: `--project-id`, `--tag-name` required. Optional: `--display-name`, `--definition-request`, `--authenticated-only`, `--remark`, `--zone-offset`. The tag type comes from `definition_request.type` when the definition changes.
9
+ Flags: `--project-id`, `--tag-name` required. Optional: `--display-name`, `--definition-request`, `--authenticated-only`, `--remark`, `--zone-offset`, `--auto-refresh-cron`. The tag type comes from `definition_request.type` when the definition changes.
10
10
 
11
11
  `display_name` is at most 80 characters and `remark` is at most 400 characters. The CLI rejects violations before dispatch. `tag_name` is an existing exact identifier and cannot be renamed by update.
12
12
 
@@ -14,4 +14,6 @@ Read `user_tag_models.md` before changing the definition. The backend validates
14
14
 
15
15
  ```bash
16
16
  ae-cli analysis user-tag update --project-id <project_id> --tag-name user_level --display-name "User Level v2"
17
+
18
+ ae-cli analysis user-tag update --project-id <project_id> --tag-name user_level --auto-refresh-cron '0 30 2 * * ? *'
17
19
  ```
@@ -11,7 +11,7 @@ Command:
11
11
  ```bash
12
12
  ae-cli analysis-meta virtual-property create --project-id <project_id> --property-name '#vp@demo' --table-type event --select-type string --sql-expression 'event_name' --sql-event-relation-type relation_default
13
13
  ae-cli analysis-meta virtual-property create --project-id <project_id> --property-name '#vp@demo' --property-desc demo --table-type event --select-type string --sql-expression "CASE WHEN status = 1 THEN 'active' ELSE 'inactive' END" --sql-event-relation-type relation_by_setting --related-events '[{"eventName":"purchase"}]' --property-remark demo
14
- ae-cli analysis-meta virtual-property create --project-id <project_id> --sql-expression '<sql>' --v-prop '{...}' --properties '[...]'
14
+ ae-cli analysis-meta virtual-property create --project-id <project_id> --sql-expression '<sql>' --v-prop '{"property":{"column_name":"#vp@demo","table_type":"event","select_type":"string"}}' --properties '[...]'
15
15
  ae-cli analysis-meta virtual-property create --project-id <project_id> --sql-expression '<sql>' --v-prop '{...}' --dry-run
16
16
  ```
17
17
 
@@ -26,7 +26,7 @@ Output is a successful gateway envelope with no business data.
26
26
  |---|---|---|
27
27
  | `--project-id` | Yes | Numeric project ID. |
28
28
  | `--sql-expression` | Yes | SQL expression used to calculate the virtual property. |
29
- | `--v-prop` | No | Full virtual property JSON object with `property.column_name`, `table_type`, and `select_type`. Use typed property flags unless an exact DTO is already available. |
29
+ | `--v-prop` | No | Full virtual property JSON object with `property.column_name`, `property.table_type`, and `property.select_type`. All three fields belong inside `property`; use typed property flags unless an exact DTO is already available. |
30
30
  | `--property-name` | No | Virtual property name. Must start with `#vp@`. Required when `--v-prop` is omitted. |
31
31
  | `--property-desc` | No | Virtual property display name. |
32
32
  | `--table-type` | No | Property table type: `event` or `user`. Required when `--v-prop` is omitted. |
@@ -7,8 +7,8 @@ Do not use it for renaming a physical property. Use only when replacing the comp
7
7
  Command:
8
8
 
9
9
  ```bash
10
- ae-cli analysis-meta virtual-property sql-rule-update --project-id <project_id> --sql-expression '<sql>' --v-prop '{...}' --properties '[...]'
11
- ae-cli analysis-meta virtual-property sql-rule-update --project-id <project_id> --sql-expression '<sql>' --v-prop '{...}' --dry-run
10
+ ae-cli analysis-meta virtual-property sql-rule-update --project-id <project_id> --sql-expression '<sql>' --v-prop '{"prop_id":22990,"property":{"column_name":"#vp@demo","table_type":"event","select_type":"number"}}' --properties '[...]'
11
+ ae-cli analysis-meta virtual-property sql-rule-update --project-id <project_id> --sql-expression '<sql>' --v-prop '{"prop_id":22990,"property":{"column_name":"#vp@demo","table_type":"event","select_type":"number"}}' --dry-run
12
12
  ```
13
13
 
14
14
  Capability id: `metadata.virtual_property.sql_rule_update`.
@@ -22,7 +22,7 @@ Output is a successful gateway envelope with no business data.
22
22
  |---|---|---|
23
23
  | `--project-id` | Yes | Numeric project ID. |
24
24
  | `--sql-expression` | Yes | Replacement SQL expression. |
25
- | `--v-prop` | Yes | Existing virtual property JSON object, including its ID and property fields. |
25
+ | `--v-prop` | Yes | Existing virtual property JSON object. Put `prop_id` directly under `v_prop`, beside `property`; do not put it inside `property`. |
26
26
  | `--properties` | No | Dependent property JSON array. |
27
27
  | `--sql-event-relation-type` | No | `relation_default`, `relation_always`, or `relation_by_setting`. |
28
28
  | `--related-events` | No | Related events JSON array for `relation_by_setting`. |
@@ -42,7 +42,7 @@ Safety constraints:
42
42
  - Never invent command names, flags, JSON payloads, `project_id`, resource IDs, field names, event names, property names, metric definitions, or date formats. Read the matching command reference and discover real project metadata first.
43
43
  - **NEVER fabricate or guess resource names** (reports, dashboards, events, properties, metrics, clusters, tags, alerts). Always use list commands to discover real resources first. If a resource is not found after fuzzy search and full list fallback, explicitly tell the user "resource not found" and stop - do not proceed with fabricated names.
44
44
 
45
- **Community** commands use the domain `community` (this skill). Other AE domains include: `analysis` (analysis and audience), `analysis_meta` (metadata), and `operation` (operations).
45
+ **Community** commands use the domain `community` (this skill). Other AE domains include: `analysis` (analysis and audience), `analysis-meta` (metadata), and `operation` (operations).
46
46
 
47
47
  ---
48
48
 
@@ -262,7 +262,7 @@ Commands below are shown **without** the `ae-cli community` prefix; all use the
262
262
 
263
263
  ## Composite scenario skills
264
264
 
265
- Structured multi-step reports (MCP tool chains) — open the linked reference for full workflows.
265
+ Structured multi-step report workflows — open the linked reference for the complete ae-cli command sequence.
266
266
 
267
267
  | Skill | Purpose |
268
268
  |-------|---------|