@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.
- package/README.md +0 -2
- package/README.zh.md +0 -2
- package/dist/{auth-NN55553T.js → auth-GBMV6TEJ.js} +2 -2
- package/dist/{auth-GDV3H5I4.js → auth-NDSXE54J.js} +4 -4
- package/dist/{capability-DRLGDVS4.js → capability-TAMDRZYV.js} +18 -8
- package/dist/{capability-P6GK3AQH.js → capability-U7TDEEEG.js} +18 -8
- package/dist/{chunk-GJJA4CQZ.js → chunk-3FY3RJ26.js} +0 -4
- package/dist/{chunk-GS2P7LFD.js → chunk-5XUSIK27.js} +2 -2
- package/dist/{chunk-7KQWSBSL.js → chunk-753BUTNZ.js} +3 -3
- package/dist/{chunk-VTXHDCBW.js → chunk-AFXA7BRK.js} +2 -2
- package/dist/chunk-IBH3LDAH.js +556 -0
- package/dist/{chunk-RBNKI5ZW.js → chunk-JUW4AJXN.js} +2 -2
- package/dist/{chunk-TS6BUGUY.js → chunk-QATA32VR.js} +3 -3
- package/dist/{chunk-Z3OXWCIA.js → chunk-S5NTSDBS.js} +2 -2
- package/dist/chunk-UIHQJK5E.js +556 -0
- package/dist/{chunk-VKD5WQKN.js → chunk-VLWOLBGZ.js} +142 -24
- package/dist/{chunk-YTG6Q75E.js → chunk-WZRX4KOH.js} +25 -3
- package/dist/{chunk-YV52FB5G.js → chunk-ZQKDZXDO.js} +1 -1
- package/dist/{cli-token-GL5MS5FK.js → cli-token-4UPER74P.js} +3 -3
- package/dist/{chunk-6A2FUCIS.js → client-L2YDMHQ6.js} +5 -6
- package/dist/{config-4VZNLBKF.js → config-OL2LWGBV.js} +4 -33
- package/dist/index.js +25 -38
- package/dist/{memory-RWJW4XFO.js → memory-MUP7PPL7.js} +4 -4
- package/dist/{memory-VO2ZJCRT.js → memory-U4O5PMXH.js} +4 -4
- package/dist/{metadata-ZRN2GHPN.js → metadata-5MIMNIMT.js} +33 -20
- package/dist/{metadata-YGTHR2XJ.js → metadata-LERKDJN6.js} +33 -20
- package/dist/{model-CLUIK3K5.js → model-JTUEO5M4.js} +2 -2
- package/dist/{sync-3REDHGY6.js → sync-MOSFNBVR.js} +5 -5
- package/dist/{te-agent-XNPELAKX.js → te-agent-IFKZDHZI.js} +25 -18
- package/dist/{te-analysis-GJI5FZUL.js → te-analysis-FCHRTNIY.js} +1267 -492
- package/dist/{te-analysis-N2BRDJZ5.js → te-analysis-QG7UKGDA.js} +1267 -492
- package/dist/{te-community-SQXKE5OO.js → te-community-HNKVTERD.js} +207 -12
- package/dist/{te-community-TYSNU3NQ.js → te-community-IWE5B7W6.js} +208 -12
- package/dist/{te-dataops-OWIADNSM.js → te-dataops-KQPYNAE3.js} +262 -145
- package/dist/{te-dataops-5TM7WZDI.js → te-dataops-KXCEB4CS.js} +262 -145
- package/dist/{te-engage-L72HWRGO.js → te-engage-D6EG3NOR.js} +951 -17
- package/dist/{te-engage-QWM4GFS7.js → te-engage-ZSMIJLUW.js} +951 -17
- package/dist/{te-experiment-2T2HEZML.js → te-experiment-K5US7RMG.js} +6 -6
- package/dist/{te-experiment-PVEY7AEZ.js → te-experiment-WA7TFMEL.js} +6 -6
- package/dist/{te-kb-VRMEY3D4.js → te-kb-OIH3T6CS.js} +4 -4
- package/dist/{te-system-XGS5EQIQ.js → te-system-AZ3URMUO.js} +515 -11
- package/dist/{te-team-BZRDV2CM.js → te-team-GZPU6UWA.js} +5 -5
- package/dist/{update-HEDXGOJH.js → update-TOBFXF2V.js} +4 -4
- package/package.json +5 -5
- package/skills/ae-agent/SKILL.md +3 -3
- package/skills/ae-agent/references/list-skill-references.md +4 -4
- package/skills/ae-agent/references/read-skill-reference.md +10 -7
- package/skills/ae-agent/references/upload-skill-reference.md +11 -9
- package/skills/ae-analysis/SKILL.md +15 -12
- package/skills/ae-analysis/metadata_resolution.md +150 -0
- package/skills/ae-analysis/references/adhoc_export.md +17 -2
- package/skills/ae-analysis/references/adhoc_run.md +12 -8
- package/skills/ae-analysis/references/ai_models.md +35 -6
- package/skills/ae-analysis/references/alert_list.md +2 -3
- package/skills/ae-analysis/references/analysis_data_retrieval.md +104 -16
- package/skills/ae-analysis/references/analysis_drilldown_contract.md +4 -4
- package/skills/ae-analysis/references/analysis_gateway_assets.md +17 -15
- package/skills/ae-analysis/references/artifact_download.md +4 -3
- package/skills/ae-analysis/references/asset_abnormal_list.md +5 -3
- package/skills/ae-analysis/references/asset_authentication_list.md +5 -3
- package/skills/ae-analysis/references/asset_search.md +5 -3
- package/skills/ae-analysis/references/bi_panel_list.md +2 -2
- package/skills/ae-analysis/references/bi_panel_page_data_export.md +1 -1
- package/skills/ae-analysis/references/bi_panel_page_data_run.md +4 -4
- package/skills/ae-analysis/references/catalog_export.md +28 -0
- package/skills/ae-analysis/references/catalog_list.md +44 -0
- package/skills/ae-analysis/references/command_index.md +78 -69
- package/skills/ae-analysis/references/dashboard_list.md +2 -2
- package/skills/ae-analysis/references/dashboard_report_data_run.md +11 -4
- package/skills/ae-analysis/references/datatable_version_list.md +5 -3
- package/skills/ae-analysis/references/drilldown_entities_run.md +4 -4
- package/skills/ae-analysis/references/drilldown_events_run.md +2 -2
- package/skills/ae-analysis/references/drilldown_user_events_export.md +1 -1
- package/skills/ae-analysis/references/drilldown_user_events_run.md +2 -2
- package/skills/ae-analysis/references/entity_detail_run.md +4 -4
- package/skills/ae-analysis/references/entity_id_import_options.md +1 -1
- package/skills/ae-analysis/references/event_detail_run.md +4 -4
- package/skills/ae-analysis/references/event_export.md +21 -0
- package/skills/ae-analysis/references/event_list.md +7 -6
- package/skills/ae-analysis/references/exchange_rule_list.md +5 -3
- package/skills/ae-analysis/references/favorite_add.md +2 -2
- package/skills/ae-analysis/references/favorite_remove.md +2 -2
- package/skills/ae-analysis/references/history_tag_data_drilldown_export.md +4 -2
- package/skills/ae-analysis/references/history_tag_data_drilldown_run.md +2 -2
- package/skills/ae-analysis/references/history_tag_data_run.md +2 -2
- package/skills/ae-analysis/references/metric_create.md +7 -8
- package/skills/ae-analysis/references/metric_export.md +21 -0
- package/skills/ae-analysis/references/metric_list.md +8 -7
- package/skills/ae-analysis/references/project_space_list.md +2 -2
- package/skills/ae-analysis/references/property_export.md +21 -0
- package/skills/ae-analysis/references/property_list.md +9 -8
- package/skills/ae-analysis/references/public_link_list.md +2 -2
- package/skills/ae-analysis/references/query_context_get.md +20 -0
- package/skills/ae-analysis/references/query_create_result_cluster.md +1 -1
- package/skills/ae-analysis/references/report_change_log_list.md +1 -1
- package/skills/ae-analysis/references/report_create.md +3 -3
- package/skills/ae-analysis/references/report_data_run.md +8 -8
- package/skills/ae-analysis/references/report_list.md +3 -3
- package/skills/ae-analysis/references/report_list_export.md +2 -2
- package/skills/ae-analysis/references/report_update.md +3 -3
- package/skills/ae-analysis/references/report_version_rollback.md +1 -1
- package/skills/ae-analysis/references/rule_list.md +6 -4
- package/skills/ae-analysis/references/run_inspect.md +8 -5
- package/skills/ae-analysis/references/run_wait.md +37 -0
- package/skills/ae-analysis/references/sql_table_list.md +3 -2
- package/skills/ae-analysis/references/user_cluster_export.md +13 -0
- package/skills/ae-analysis/references/user_cluster_list.md +6 -2
- package/skills/ae-analysis/references/user_cluster_member_export.md +5 -3
- package/skills/ae-analysis/references/user_cluster_member_list.md +4 -4
- package/skills/ae-analysis/references/user_cluster_update.md +4 -2
- package/skills/ae-analysis/references/user_tag_export.md +13 -0
- package/skills/ae-analysis/references/user_tag_list.md +6 -2
- package/skills/ae-analysis/references/user_tag_member_export.md +5 -3
- package/skills/ae-analysis/references/user_tag_member_list.md +4 -4
- package/skills/ae-analysis/references/user_tag_update.md +4 -2
- package/skills/ae-analysis/references/virtual_property_create.md +2 -2
- package/skills/ae-analysis/references/virtual_property_sql_rule_update.md +3 -3
- package/skills/ae-community/SKILL.md +2 -2
- package/skills/ae-dataops/SKILL.md +4 -3
- package/skills/ae-dataops/references/dataops-flow-create.md +47 -3
- package/skills/ae-engage/SKILL.md +55 -7
- package/skills/ae-engage/references/build-task-save-guide.md +12 -0
- package/skills/ae-engage/references/cancel-query-run.md +31 -0
- package/skills/ae-engage/references/config-item-analysis-report.md +14 -1
- package/skills/ae-engage/references/config-item-strategy-comparison.md +11 -1
- package/skills/ae-engage/references/config-item-trigger-report.md +15 -1
- package/skills/ae-engage/references/flow-metric-detail-report.md +134 -0
- package/skills/ae-engage/references/flow-metric-update.md +77 -0
- package/skills/ae-engage/references/flow-metric-user.md +119 -0
- package/skills/ae-engage/references/flow-node-metric-user.md +123 -0
- package/skills/ae-engage/references/flow-node-user.md +123 -0
- package/skills/ae-engage/references/push-record-query.md +32 -1
- package/skills/ae-engage/references/save-task.md +9 -0
- package/skills/ae-engage/references/task-data-detail.md +9 -2
- package/skills/ae-engage/references/task-indicator-user.md +104 -0
- package/skills/ae-engage/references/task-metric-detail.md +9 -2
- package/skills/ae-engage/references/task-submit-approval.md +3 -0
- package/skills/ae-engage/references/task-user-detail-export.md +31 -0
- package/skills/ae-experiment/references/save_experiment.md +4 -0
- package/skills/ae-experiment-design/SKILL.md +1 -1
- package/skills/ae-experiment-design/references/platform-operations.md +1 -1
- package/skills/ae-experiment-insight/references/platform-operations.md +1 -1
- package/skills/ae-metadata/SKILL.md +2 -1
- package/skills/ae-metadata/references/metadata_data_table_download.md +10 -2
- package/skills/ae-metadata/references/metadata_data_table_list.md +5 -2
- package/skills/ae-metadata/references/metadata_property_dimension_table_bind_existing.md +1 -1
- package/skills/ae-system/SKILL.md +66 -3
- package/dist/chunk-DT6Y3TD7.js +0 -232
- package/dist/chunk-MVDZ7DBQ.js +0 -231
- package/dist/chunk-NBPKWKRA.js +0 -51
- package/dist/client-DAIPF7XN.js +0 -23
- package/dist/raw-52B4UKO4.js +0 -71
- package/dist/te-meta-53BVXPFI.js +0 -95
- package/dist/te-meta-TOCBPBXI.js +0 -95
|
@@ -45,6 +45,7 @@ Time range:
|
|
|
45
45
|
- `mode`: `recent`, `previous`, `custom`, `start_to_today`, or `start_to_yesterday`.
|
|
46
46
|
- `recent` includes today/current unit; `previous` excludes today/current unit.
|
|
47
47
|
- For `custom`, pass `start_time` and `end_time`.
|
|
48
|
+
- For `start_to_today` and `start_to_yesterday`, pass `start_time`; omit `end_time` because the mode determines it.
|
|
48
49
|
|
|
49
50
|
Chinese natural-language time mapping (mandatory; do not infer a different mode):
|
|
50
51
|
|
|
@@ -83,10 +84,16 @@ Group:
|
|
|
83
84
|
{"field":{"name":"country","type":"user_property"}}
|
|
84
85
|
```
|
|
85
86
|
|
|
86
|
-
Metric aggregation values
|
|
87
|
+
Metric aggregation values must use semantic spelling, not internal A-codes. The whitelist is model- and property-type-specific because it mirrors the page controls:
|
|
87
88
|
|
|
88
|
-
-
|
|
89
|
-
-
|
|
89
|
+
- `event`: without property use `total_count`, `user_count`, or `per_user_count`; numeric properties support `sum`, `avg`, `avg_per_user`, `max`, `min`, `distinct_count`, `median`, `percentile`, `variance`, and `stddev`; string/date/datetime properties support `distinct_count`; boolean properties support `true_count`, `false_count`, `not_empty_count`, `empty_count`, and `distinct_count`.
|
|
90
|
+
- `retention` simultaneous metrics: without property use `total_count`, `user_count`, or `per_user_count`; numeric properties support only `sum` and `avg_per_user`; boolean properties support only `true_count`, `false_count`, `not_empty_count`, and `empty_count`.
|
|
91
|
+
- `distribution`: without property use `count`, `active_days`, or `active_hours`; numeric properties support `sum`, `avg`, `max`, `min`, `distinct_count`, `median`, `percentile`, `variance`, and `stddev`; string/date/datetime properties support `distinct_count`; boolean properties support `true_count`, `false_count`, `not_empty_count`, `empty_count`, and `distinct_count`.
|
|
92
|
+
- `attribution`: use `total_count` without `target_property`, or `sum` with a numeric `target_property`.
|
|
93
|
+
- `prop_analysis`: use `user_count` without property; property aggregations follow the event property-type rules except that `percentile` is not supported.
|
|
94
|
+
- `heat_map`, `rank_list`, and `revenue`: use the event whitelist except that `percentile` is not supported.
|
|
95
|
+
|
|
96
|
+
For total event count use `total_count`; `count` belongs only to distribution. Internal `Axxx` codes are persisted page details and are not valid authored AI definitions.
|
|
90
97
|
|
|
91
98
|
## Model definitions
|
|
92
99
|
|
|
@@ -117,11 +124,13 @@ Property aggregation example:
|
|
|
117
124
|
{
|
|
118
125
|
"time_range": {"mode": "previous", "unit": "day", "value": 7},
|
|
119
126
|
"metrics": [
|
|
120
|
-
{"event": "purchase", "aggregation": "sum", "property": "amount"}
|
|
127
|
+
{"event": "purchase", "display_name": "Purchase revenue", "aggregation": "sum", "property": "amount"}
|
|
121
128
|
]
|
|
122
129
|
}
|
|
123
130
|
```
|
|
124
131
|
|
|
132
|
+
Set optional `display_name` on an event metric when the report should show a business-facing metric name. It applies to regular event metrics, saved metrics, and formula metrics. Omit it to use the event name or the default formula-metric label.
|
|
133
|
+
|
|
125
134
|
Formula metric example:
|
|
126
135
|
|
|
127
136
|
```json
|
|
@@ -129,6 +138,7 @@ Formula metric example:
|
|
|
129
138
|
"time_range": {"mode": "previous", "unit": "day", "value": 7},
|
|
130
139
|
"metrics": [
|
|
131
140
|
{
|
|
141
|
+
"display_name": "Revenue per user",
|
|
132
142
|
"formula": "revenue / users",
|
|
133
143
|
"dependencies": [
|
|
134
144
|
{"alias": "revenue", "event": "purchase", "aggregation": "sum", "property": "amount"},
|
|
@@ -204,6 +214,13 @@ Use for user distribution buckets for an event or property metric.
|
|
|
204
214
|
"event": "purchase",
|
|
205
215
|
"aggregation": "sum",
|
|
206
216
|
"property": "amount",
|
|
217
|
+
"filters": [
|
|
218
|
+
{
|
|
219
|
+
"field": {"name": "vip_users", "type": "cluster"},
|
|
220
|
+
"operator": "in_cluster"
|
|
221
|
+
}
|
|
222
|
+
],
|
|
223
|
+
"relation": "and",
|
|
207
224
|
"interval_type": "user_defined",
|
|
208
225
|
"quota_interval_arr": [100, 1000, 10000]
|
|
209
226
|
}
|
|
@@ -216,6 +233,10 @@ Use for user distribution buckets for an event or property metric.
|
|
|
216
233
|
|
|
217
234
|
Use `interval_type=def` for automatic buckets, `user_defined` for explicit numeric boundaries, and `discrete` to group by raw values.
|
|
218
235
|
|
|
236
|
+
Distribution filters must be attached to the corresponding `distribution_metrics[].filters`.
|
|
237
|
+
Do not use top-level `filters` or `relation` in a distribution definition.
|
|
238
|
+
When multiple metrics need the same filter, attach it to each metric explicitly. If the requested filter scope is ambiguous, clarify which metric it applies to before running the analysis.
|
|
239
|
+
|
|
219
240
|
### `attribution`
|
|
220
241
|
|
|
221
242
|
Use to attribute target conversions to touchpoint/source events.
|
|
@@ -225,7 +246,7 @@ Use to attribute target conversions to touchpoint/source events.
|
|
|
225
246
|
"time_range": {"mode": "previous", "unit": "day", "value": 14},
|
|
226
247
|
"attribution": {
|
|
227
248
|
"target_event": "purchase",
|
|
228
|
-
"target_aggregation": "
|
|
249
|
+
"target_aggregation": "total_count",
|
|
229
250
|
"attribution_events": [
|
|
230
251
|
{"event": "ad_click"},
|
|
231
252
|
{"event": "campaign_view"}
|
|
@@ -238,6 +259,7 @@ Use to attribute target conversions to touchpoint/source events.
|
|
|
238
259
|
```
|
|
239
260
|
|
|
240
261
|
`attribution_model` values: `first`, `last`, or `linear`.
|
|
262
|
+
The target aggregation is intentionally narrow: use `total_count` without a property, or `sum` with a numeric `target_property`. Do not use `user_count`.
|
|
241
263
|
|
|
242
264
|
### `interval`
|
|
243
265
|
|
|
@@ -281,6 +303,8 @@ Use for behavior paths before or after a source event.
|
|
|
281
303
|
|
|
282
304
|
`direction=forward` asks what users do after `source_event`; `direction=backward` asks what users did before it. Do not send original-QP fields such as `source_type` or `event_names`.
|
|
283
305
|
|
|
306
|
+
For path analysis, `preview_rows` is a graph-display boundary aligned with the analysis UI: it keeps up to that many real nodes per path level, then combines overflow nodes into `more`. `result.nodes` retains the synthesized `more` node for graph structure and drilldown coordinates. The top-level `returned_rows` counts real business nodes actually returned across all levels; it excludes synthesized `more` nodes and the real nodes folded into them. The count may still exceed `preview_rows` because the boundary applies independently to each level. `has_more=true` means at least one level contains real nodes folded into `more`; a linear multi-level path can return more real nodes than `preview_rows` with `has_more=false`.
|
|
307
|
+
|
|
284
308
|
Path `filters` are global member filters compiled to the original QP `user_filter`. They support `user_property`, `cluster`, and `tag`, but not `event_property`. Do not move a user filter into the source event's event-property filter.
|
|
285
309
|
|
|
286
310
|
Path session timeout accepts only these unit/value ranges:
|
|
@@ -346,6 +370,10 @@ Trino special identifiers must use double-quoted identifier delimiters:
|
|
|
346
370
|
{"sql":"SELECT \"#user_id\", \"$part_event\" FROM hive.ta.v_event_1 WHERE \"$part_date\" BETWEEN '2026-07-01' AND '2026-07-07' LIMIT 20"}
|
|
347
371
|
```
|
|
348
372
|
|
|
373
|
+
Reserved words used as identifiers must also be double quoted, for example `SELECT "end" FROM ...`.
|
|
374
|
+
|
|
375
|
+
For multiline SQL JSON, ensure JSON decoding produces a real line break in the `sql` value. Do not submit a literal `\\n` sequence outside a quoted SQL string value; use a JSON escape that the caller decodes once before invoking the capability.
|
|
376
|
+
|
|
349
377
|
Event-table queries must include a date-partition predicate on the quoted `"$part_date"` column. The backend rejects SQL against an event table when this predicate is absent. This requirement is specific to event tables; do not invent a `$part_date` condition for a table whose discovered columns do not include it.
|
|
350
378
|
|
|
351
379
|
Typed condition-fragment placeholder:
|
|
@@ -386,9 +414,10 @@ Rules:
|
|
|
386
414
|
- If SQL has no `${...}` placeholder, omit `params`.
|
|
387
415
|
- If SQL has placeholders, every placeholder must have one matching item in `params`.
|
|
388
416
|
- Raw variables use `${name}`, not `${Variable:name}`. A selector's `value` must equal one of its `options[].value` values. `${PartDate:name}` expands to a complete predicate, so place it directly after `WHERE`/`AND` rather than after a column name.
|
|
417
|
+
- A `part_date` parameter must provide either `recent_day` or a complete custom range with both `start_time` and `end_time`; one-sided custom ranges are invalid.
|
|
389
418
|
- `use_timezone` is an optional boolean definition field that is only valid for `part_date`. It defaults to `false`. When `true`, that PartDate parameter uses the query's effective timezone selected by `zone_offset` or the current user/project default; when `false`, it follows the non-timezone-aware PartDate path. This is distinct from the command-level `zone_offset`.
|
|
390
419
|
- Do not pass SQL-IDE internals such as `sqlVoParams`, `sqlViewParams`, `paramType`, `paramName`, `paramExpress`, `commonFilter`, or `requiredEvents`.
|
|
391
|
-
- Delimit any Trino identifier containing `#`, `$`, `@`, spaces, or
|
|
420
|
+
- Delimit any Trino identifier containing `#`, `$`, `@`, spaces, punctuation, or a reserved word with double quotes, for example `"#user_id"`, `"$part_event"`, and `"end"`. Single quotes create string literals, not identifiers. Escape a literal double quote inside an identifier by doubling it. The CLI preserves the submitted SQL and does not rewrite identifiers.
|
|
392
421
|
- For an event table, include a date-partition predicate on the discovered `"$part_date"` column, for example `WHERE "$part_date" BETWEEN '2026-07-01' AND '2026-07-07'`. The backend rejects event-table SQL without this condition.
|
|
393
422
|
- Do not invent table or column names. If the user already provides a concrete table reference, use `analysis-meta datatable columns-get --project-id <project_id> --table-ref <table_ref>` to inspect columns before writing SQL. If the table itself is unknown, call `analysis sql-table list --project-id <project_id>` when available and select an exact returned `table_ref`; otherwise stop and ask for the table/data source. Ask the user only when multiple authorized tables remain semantically plausible after discovery.
|
|
394
423
|
- For a saved dynamic SQL report, put the default values in `analysis report create/update --definition`. Verify the default once with `analysis report-data run` without `--sql-params`, then verify a changed value with one value-only `--sql-params` override.
|
|
@@ -12,7 +12,7 @@ ae-cli analysis alert list [options]
|
|
|
12
12
|
|
|
13
13
|
Capability id: `analysis.alert.list`
|
|
14
14
|
|
|
15
|
-
Input sends `project_id`, optional `
|
|
15
|
+
Input sends `project_id`, optional `queries`, `limit`, and `offset`. `queries` accepts 1 to 20 non-empty strings with OR semantics; matching rows include `matched_queries` and `matched_fields`. Do not send singular `query` or camelCase aliases.
|
|
16
16
|
|
|
17
17
|
Output is the capability gateway envelope: success is `ok=true,data,meta`; failure is `ok=false,error`. Export commands return lifecycle data such as `run_id` and `artifact_id` for inspect/download.
|
|
18
18
|
|
|
@@ -21,7 +21,6 @@ Parameters:
|
|
|
21
21
|
| Parameter | Description | Required |
|
|
22
22
|
| --- | --- | --- |
|
|
23
23
|
| `--project-id` | See command help | Yes |
|
|
24
|
-
| `--
|
|
24
|
+
| `--queries` | JSON array of 1 to 20 keyword filters | No |
|
|
25
25
|
| `--limit` | See command help | No |
|
|
26
26
|
| `--offset` | See command help | No |
|
|
27
|
-
|
|
@@ -23,44 +23,95 @@ This policy applies to:
|
|
|
23
23
|
This policy does not apply to:
|
|
24
24
|
|
|
25
25
|
- `analysis user-cluster list/get`, `analysis user-tag list/get`, create/update/refresh/delete, ID-file operations, and history-tag management commands.
|
|
26
|
-
- `
|
|
26
|
+
- `analysis-meta`, metadata, DataOps, Community, Engage, or other business modules.
|
|
27
27
|
- Report/dashboard/BI asset list commands, catalog exports, definition import/export, or management commands.
|
|
28
28
|
|
|
29
29
|
## Decision rule
|
|
30
30
|
|
|
31
|
+
Synchronous data commands use `--preview-rows` for the maximum business rows
|
|
32
|
+
returned per result. Omit it to use the model's current cluster-configured
|
|
33
|
+
synchronous limit; the CLI does not detect an Agent sandbox or inject a smaller
|
|
34
|
+
default. Agents should normally pass `--preview-rows 100` to control context and
|
|
35
|
+
memory use. Human or script callers may omit it when the native synchronous
|
|
36
|
+
result is wanted directly. User tag/cluster member list commands are the
|
|
37
|
+
exception: omission returns at most 1000 rows, matching the UI member query.
|
|
38
|
+
|
|
31
39
|
Use `run` only when all conditions are true:
|
|
32
40
|
|
|
33
41
|
- The user needs an inline preview or immediate JSON result.
|
|
34
|
-
- The expected result fits in
|
|
42
|
+
- The expected result fits in the chosen synchronous preview.
|
|
35
43
|
- The query is expected to finish within the sync timeout window, normally `<=180` seconds.
|
|
36
44
|
|
|
37
|
-
|
|
45
|
+
The runtime validates an explicit `--preview-rows` against the effective model
|
|
46
|
+
or SQL cluster configuration. Do not hard-code one universal maximum. Model
|
|
47
|
+
queries reserve their own internal total/summary rows, so the physical query
|
|
48
|
+
limit may be `N+M`; these internal rows do not reduce the requested `N` business
|
|
49
|
+
rows. SQL/list-shaped queries may fetch one look-ahead row to determine
|
|
50
|
+
`has_more`. User tag/cluster member list commands accept explicit values up to
|
|
51
|
+
100000; this does not change their omitted default of 1000.
|
|
38
52
|
|
|
39
53
|
The dashboard report-data sync timeout defaults to 180 seconds because one call may execute multiple reports. Other sync analysis data retrieval commands default to 120 seconds. The maximum remains 180 seconds, and an explicitly supplied lower timeout always wins.
|
|
40
54
|
|
|
41
|
-
Detail `run` commands (`event-detail run` and `entity-detail run`)
|
|
55
|
+
Detail `run` commands (`event-detail run` and `entity-detail run`) support
|
|
56
|
+
`--preview-rows`, but not `--limit`, `--offset`, or stable pagination. If
|
|
57
|
+
`has_more=true`, switch to the matching `export`.
|
|
42
58
|
|
|
43
59
|
User member, history-tag drilldown, and result drilldown `list/run` commands are bounded previews. They do not expose pagination. Use the matching `export` command for full or unknown-size data.
|
|
44
60
|
|
|
45
61
|
Use `export` when any condition is true:
|
|
46
62
|
|
|
47
63
|
- The user asks for full data, all rows, a downloadable file, or an export.
|
|
48
|
-
- The result size is unknown or expected to exceed
|
|
64
|
+
- The result size is unknown or expected to exceed the chosen preview.
|
|
49
65
|
- The query may be long-running or may exceed the sync timeout window.
|
|
66
|
+
- A data-query `run` times out.
|
|
50
67
|
- The result should be durable and processed from a file instead of printed inline.
|
|
51
68
|
|
|
52
|
-
Export commands are asynchronous artifact jobs
|
|
69
|
+
Export commands are asynchronous artifact jobs and do not accept
|
|
70
|
+
`--preview-rows`. Native full-download paths retain their existing model/SQL total row
|
|
71
|
+
ceilings.
|
|
53
72
|
|
|
54
73
|
`--artifact-format` selects the logical row format, not compression. Read the returned `format`, `compression`, `file_name`, `content_type`, and `content_encoding`; analysis query exports are currently gzip-compressed even when the logical format is `jsonl` or `csv`.
|
|
55
74
|
|
|
56
75
|
Default and maximum runtime is 21600 seconds (6 hours). Omit `--timeout-seconds` to use that default, or pass a smaller value when the caller explicitly wants an earlier deadline.
|
|
57
76
|
|
|
77
|
+
Choose one lifecycle form:
|
|
78
|
+
|
|
58
79
|
```bash
|
|
59
|
-
|
|
60
|
-
ae-cli analysis
|
|
80
|
+
# Submit only. Preserve the returned run_id/artifact_id.
|
|
81
|
+
ae-cli analysis adhoc export ...
|
|
82
|
+
|
|
83
|
+
# Submit, then wait through repeated short inspect requests.
|
|
84
|
+
ae-cli analysis adhoc export ... --wait
|
|
85
|
+
|
|
86
|
+
# Submit, wait, and stream the completed artifact to a local file.
|
|
87
|
+
ae-cli analysis adhoc export ... --output <file>
|
|
88
|
+
|
|
89
|
+
# Resume after interruption, client wait expiry, or a detached shell.
|
|
90
|
+
ae-cli analysis run wait --run-id <run_id> [--output <file>]
|
|
61
91
|
```
|
|
62
92
|
|
|
63
|
-
|
|
93
|
+
`--output` implies `--wait`. `--wait-timeout-seconds` controls only how long the
|
|
94
|
+
current CLI process remains attached; it defaults to 600 seconds and is capped
|
|
95
|
+
at 21600 seconds. The server lifecycle descriptor remains a hard upper bound
|
|
96
|
+
with a short artifact-materialization grace period. Ctrl-C, client wait expiry,
|
|
97
|
+
or a persistent transient network failure stops only local waiting; it never
|
|
98
|
+
cancels the remote run. Resume with the returned `resume_command` or printed
|
|
99
|
+
`analysis run wait` command.
|
|
100
|
+
|
|
101
|
+
Waiting succeeds only for `status=SUCCEEDED` plus
|
|
102
|
+
`artifact_status=COMPLETED`. Run or artifact `FAILED`/`CANCELED` is terminal and
|
|
103
|
+
returns a non-zero error. Unknown states, authorization failures, and 404s fail
|
|
104
|
+
immediately instead of being polled indefinitely.
|
|
105
|
+
|
|
106
|
+
Downloads stream into a temporary file in the destination directory and publish
|
|
107
|
+
the complete file atomically. Existing output paths are refused by default; pass
|
|
108
|
+
`--force` only when replacement is intentional. The primitive commands remain
|
|
109
|
+
available for manual control:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
ae-cli analysis run inspect --run-id <run_id>
|
|
113
|
+
ae-cli analysis artifact download --run-id <run_id> --artifact-id <artifact_id> --output <file> [--force]
|
|
114
|
+
```
|
|
64
115
|
|
|
65
116
|
Cancel an async run/export with:
|
|
66
117
|
|
|
@@ -68,17 +119,35 @@ Cancel an async run/export with:
|
|
|
68
119
|
ae-cli analysis query cancel --run-id <run_id>
|
|
69
120
|
```
|
|
70
121
|
|
|
71
|
-
If `analysis run inspect` or `analysis artifact download` returns HTTP 404 for a valid `run_id` / `artifact_id` from the same export response, treat it as a backend route/capability deployment issue. Do not keep polling or invent download URLs.
|
|
122
|
+
If `analysis run inspect`, `analysis run wait`, or `analysis artifact download` returns HTTP 404 for a valid `run_id` / `artifact_id` from the same export response, treat it as a backend route/capability deployment issue. Do not keep polling or invent download URLs.
|
|
72
123
|
|
|
73
124
|
If the current host returns `CAPABILITY_NOT_FOUND` for a documented command, treat it as host/backend capability unavailability. Do not retry with different JSON shapes or flags; choose another supported path only when it satisfies the user's request, otherwise report the backend gap.
|
|
74
125
|
|
|
75
|
-
Drilldown event/entity/user-event
|
|
126
|
+
Drilldown event/entity/user-event, ad-hoc/report/dashboard model, BI chart,
|
|
127
|
+
user tag/cluster member, and history-tag drilldown exports use Common's
|
|
128
|
+
full-download streaming paths. They accept no `limit`, `offset`, `page_num`, or
|
|
129
|
+
`page_size`, and remain bounded by the existing full-download ceiling. Do not
|
|
130
|
+
collect full data by repeated `list/run` calls.
|
|
131
|
+
|
|
132
|
+
User tag/cluster member and history-tag drilldown exports support both
|
|
133
|
+
`jsonl.gz` and `csv.gz`, defaulting to `jsonl.gz`; format selection does not
|
|
134
|
+
change the native full-download query or introduce paging.
|
|
76
135
|
|
|
77
136
|
## Follow-up context
|
|
78
137
|
|
|
79
|
-
Only synchronous `adhoc run`, `report-data run`, and `dashboard-report-data run`
|
|
138
|
+
Only synchronous `adhoc run`, `report-data run`, and `dashboard-report-data run`
|
|
139
|
+
previews with at least one available follow-up action create `query_context_id`
|
|
140
|
+
and compact `sources[]` summaries. SQL, BI SQL, unsupported models, and previews
|
|
141
|
+
without a drillable analysis angle do not create a useless context. Exports and
|
|
142
|
+
downloaded artifacts never create this context and never expand the selectable
|
|
143
|
+
result. The Common/UI synchronous result is the drilldown boundary.
|
|
144
|
+
|
|
145
|
+
Before composing a follow-up coordinate, call `analysis query-context get` with
|
|
146
|
+
the returned `query_context_id` and, for multi-source results, one exact source
|
|
147
|
+
selector from the compact summary. The command reads the full row, column, and
|
|
148
|
+
metric options already stored for that preview; it does not rerun the query.
|
|
80
149
|
|
|
81
|
-
Follow-up commands are allowed only when the
|
|
150
|
+
Follow-up commands are allowed only when the compact source summary advertises the exact action. Read [`analysis_drilldown_contract.md`](analysis_drilldown_contract.md), fetch full options with `analysis query-context get`, select only those returned row/column/metric options, and never infer source IDs, dates, groups, model fields, or analysis angles from display text.
|
|
82
151
|
|
|
83
152
|
Pass the original `--project-id` with every query-context or drilldown-context follow-up. Gateway uses it for project authorization, and Common rejects it if it does not match the project stored by the context ID.
|
|
84
153
|
|
|
@@ -92,12 +161,31 @@ Use that synchronous `query_context_id` for the advertised action only:
|
|
|
92
161
|
|
|
93
162
|
Do not reconstruct or pass raw QP for follow-up drilldown or result-cluster creation.
|
|
94
163
|
|
|
95
|
-
If the synchronous response does not include `query_context_id
|
|
164
|
+
If the synchronous response does not include `query_context_id` and the required
|
|
165
|
+
action, or `analysis query-context get` does not return the required selectable
|
|
166
|
+
options, stop before drilldown/result-cluster commands. Report that this preview
|
|
167
|
+
does not expose that follow-up.
|
|
96
168
|
|
|
97
|
-
For sync `run`,
|
|
169
|
+
For sync `run`, trust Common's `has_more`. Common uses model totals or one extra
|
|
170
|
+
lookahead business unit at the requested `preview_rows` boundary, or at that
|
|
171
|
+
model's configured boundary when `preview_rows` is omitted. The lookahead unit
|
|
172
|
+
is never returned, and reaching the boundary alone does not imply
|
|
173
|
+
`has_more=true`. Use `export` whenever completeness matters.
|
|
98
174
|
|
|
99
175
|
## BI page data note
|
|
100
176
|
|
|
101
|
-
|
|
177
|
+
`analysis bi-panel-page-data run --result-type charts` supports
|
|
178
|
+
`--preview-rows` per chart and has no row pagination contract. A configured
|
|
179
|
+
chart top-N still applies as a semantic chart limit. Summary is rendered
|
|
180
|
+
presentation data, is available only from `run`, and rejects `--preview-rows`.
|
|
181
|
+
|
|
182
|
+
Use `export --result-type charts` for complete, unknown-size, timed-out, or
|
|
183
|
+
long-running chart data. Common streams rows directly under
|
|
184
|
+
`model_full_download_limit`.
|
|
185
|
+
|
|
186
|
+
User tag-member, cluster-member, and history-tag drilldown exports call their
|
|
187
|
+
native full-download SQL paths and stream CSV rows directly into a gzip artifact.
|
|
188
|
+
These exports support `--property-names`, but do not support the preview-only
|
|
189
|
+
`--fields`, `--query`, or `--use-cache` options.
|
|
102
190
|
|
|
103
191
|
BI SQL page/chart data does not support this analysis drilldown contract.
|
|
@@ -4,19 +4,19 @@ This contract controls every follow-up from an analysis result. Read it before c
|
|
|
4
4
|
|
|
5
5
|
## Hard boundary
|
|
6
6
|
|
|
7
|
-
Only a synchronous `adhoc run`, `report-data run`, or `dashboard-report-data run` preview can create `query_context_id` and selectable drilldown coordinates. The selectable population is exactly the returned preview, after its `--
|
|
7
|
+
Only a synchronous `adhoc run`, `report-data run`, or `dashboard-report-data run` preview can create `query_context_id` and selectable drilldown coordinates. The selectable population is exactly the returned preview, after its `--preview-rows` boundary is applied. If `--preview-rows 10` returns ten rows, only coordinates represented by those ten rows may be selected.
|
|
8
8
|
|
|
9
9
|
Every query-context or drilldown-context follow-up must also pass the original `--project-id`. Gateway uses it for project authorization, then Common verifies that it matches the project stored by the context ID. Never substitute a different project ID.
|
|
10
10
|
|
|
11
11
|
Exports never create a query context. A downloaded file, export submit response, or export artifact must never be used to invent or extend drilldown coordinates. To drill into a large result, first run a bounded synchronous preview containing the desired row; do not raise the limit merely to manufacture a complete target catalog.
|
|
12
12
|
|
|
13
|
-
SQL, `heat_map`, `rank_list`, `revenue`, and scenario models do not support this analysis drilldown contract. Stop when
|
|
13
|
+
SQL, `heat_map`, `rank_list`, `revenue`, and scenario models do not support this analysis drilldown contract and therefore do not create a query context. Stop when the primary response has no `query_context_id` or advertised action.
|
|
14
14
|
|
|
15
15
|
## Select a cell without `target_id`
|
|
16
16
|
|
|
17
|
-
The response contains `sources[]`. Select the source that owns the visible result. When more than one source exists, pass the source selector returned there, normally `{"report_id":...}` or `{"chart_id":...}`. Never put source IDs inside `coordinate`.
|
|
17
|
+
The primary response contains compact `sources[]`. Select the source that owns the visible result. When more than one source exists, pass the source selector returned there, normally `{"report_id":...}` or `{"chart_id":...}`, to `analysis query-context get`. Never put source IDs inside `coordinate`.
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
The query-context response contains the selected full `source`. Its `drilldown` object is the only coordinate option catalog for follow-up commands:
|
|
20
20
|
|
|
21
21
|
- `selection_boundary` must be `synchronous_preview_only`.
|
|
22
22
|
- `row_options[]` contains only rows from this preview. Match the user's row by `values`, then copy that option's `coordinate` fragment.
|
|
@@ -81,7 +81,7 @@ Prefer the run/artifact commands over hand-written HTTP, Python, or curl. Analys
|
|
|
81
81
|
| `drilldown-entities run/export` | `analysis.query.drilldown_entities` / `analysis.query.drilldown_entities_export` | Preview/export users or custom entities for an advertised entity cell | `--project-id`, `--query-context-id`, optional `--source`, `--coordinate` | Subject plus entity rows/artifact |
|
|
82
82
|
| `query drilldown-user-events` | `analysis.query.drilldown_user_events` | Query one drilldown user's event sequence | `--project-id`, `--drilldown-context-id`, `--user-id` | Event sequence rows |
|
|
83
83
|
| `query create-result-cluster` | `analysis.query.create_result_cluster` | Save the advertised user/custom-entity cell population as its result cluster | `--project-id`, `--query-context-id`, optional `--source`, `--coordinate`, `--cluster-name` | Result cluster creation result |
|
|
84
|
-
| `report list` | `analysis.report.list` | Find accessible reports | `--project-id`, optional `--
|
|
84
|
+
| `report list` | `analysis.report.list` | Find accessible reports | `--project-id`, optional `--queries`, `--fields`, `--limit`, `--offset` | Paginated report summaries |
|
|
85
85
|
| `report list-export` | `analysis.report.list_export` | Export report catalog | same as list, plus optional `--artifact-format`, `--request-id` | Async artifact descriptor |
|
|
86
86
|
| `report get` | `analysis.report.get` | Inspect current report definition as AI QP | `--project-id`, `--report-id` | Report metadata plus `model_type` and `definition` |
|
|
87
87
|
| `report create` | `analysis.report.create` | Create a report from AI QP definition | `--report-name`, `--model-type`, `--definition` | Created report ID and normalized definition |
|
|
@@ -95,7 +95,7 @@ Prefer the run/artifact commands over hand-written HTTP, Python, or curl. Analys
|
|
|
95
95
|
| `report-version rollback` | `analysis.report_version.rollback` | Rollback a report version | `--report-id`, `--target-version` | Rollback result |
|
|
96
96
|
| `report-abnormal get` | `analysis.report_abnormal.get` | Inspect report abnormal dependencies | `--report-id` | Abnormal info |
|
|
97
97
|
| `dashboard-report add` | `analysis.dashboard_report.add` | Add reports to a dashboard | `--dashboard-id`, `--report-ids` | Add result |
|
|
98
|
-
| `dashboard list` | `analysis.dashboard.list` | Find accessible dashboards | `--project-id`, optional `--
|
|
98
|
+
| `dashboard list` | `analysis.dashboard.list` | Find accessible dashboards | `--project-id`, optional `--queries`, `--fields`, `--limit`, `--offset` | Paginated dashboard summaries |
|
|
99
99
|
| `dashboard create` | `analysis.dashboard.create` | Create a dashboard | `--project-id`, `--dashboard-name`, optional `--space-id`, `--folder-id` | Created dashboard |
|
|
100
100
|
| `dashboard get` | `analysis.dashboard.get` | Inspect one dashboard definition/share/report structure, including creator and creation/update time | `--project-id`, `--dashboard-id` | Dashboard detail |
|
|
101
101
|
| `dashboard update` | `analysis.dashboard.update` | Update settings or upsert a note | `--operation settings|note-upsert`, IDs, optional `--payload` | Update result |
|
|
@@ -131,27 +131,29 @@ Prefer the run/artifact commands over hand-written HTTP, Python, or curl. Analys
|
|
|
131
131
|
| `bi-panel-page-data export` | `analysis.bi_panel_page_data.export` | Large/long BI page data | same as run, optional `--artifact-format jsonl` | Async artifact descriptor |
|
|
132
132
|
| `project-space list` | `analysis.project_space.list` | Find accessible project spaces | `--project-id`, optional list filters | Paginated project spaces |
|
|
133
133
|
| `project-space get` | `analysis.project_space.get` | Inspect one project space | `--project-id`, `--space-id` | Project space detail |
|
|
134
|
-
| `favorite add` | `analysis.favorite.add` | Favorite dashboard/BI/folder | `--asset-id`, `--asset-type
|
|
134
|
+
| `favorite add` | `analysis.favorite.add` | Favorite dashboard/BI/folder | required `--asset-id`, `--asset-type`; optional `--space-id` | Favorite result |
|
|
135
135
|
| `favorite remove` | `analysis.favorite.remove` | Remove favorite | same as add | Remove result |
|
|
136
136
|
| `public-link create` | `analysis.public_link.create` | Generate public link | `--resource-type`, `--resource-id`, `--effective-at`, `--expires-at` | Link result |
|
|
137
137
|
| `public-link list` | `analysis.public_link.list` | List public links | `--project-id`, optional list filters | Paginated links |
|
|
138
138
|
| `public-link update` | `analysis.public_link.update` | Edit public link | `--link-id`, `--effective-at`, `--expires-at` | Update result |
|
|
139
139
|
| `public-link offline` | `analysis.public_link.offline` | Take links offline | `--link-id` or `--link-ids` | Offline result |
|
|
140
140
|
| `public-link delete` | `analysis.public_link.delete` | Delete public links | `--link-id` or `--link-ids` | Delete result |
|
|
141
|
-
| `user-cluster list` | `analysis.user_cluster.list` | Find accessible user clusters | `--project-id`, optional `--
|
|
141
|
+
| `user-cluster list` | `analysis.user_cluster.list` | Find accessible user clusters | `--project-id`, optional `--queries`, `--fields`, `--limit`, `--offset` | Paginated cluster summaries |
|
|
142
|
+
| `user-cluster export` | `analysis.user_cluster.export` | Export complete matching cluster catalog | `--project-id`, optional filters, required `--output` | Local JSONL catalog and integrity sidecar |
|
|
142
143
|
| `user-cluster get` | `analysis.user_cluster.get` | Inspect exact clusters | `--cluster-names '[...]'` | Cluster details |
|
|
143
144
|
| `user-cluster-member list` | `analysis.user_cluster_member.list` | Bounded inline cluster members | `--cluster-name`, optional properties/fields/query/limit/offset | Member rows |
|
|
144
|
-
| `user-cluster-member export` | `analysis.user_cluster_member.export` |
|
|
145
|
+
| `user-cluster-member export` | `analysis.user_cluster_member.export` | Stream native full cluster members as csv.gz | `--cluster-name`, optional properties | Async artifact descriptor |
|
|
145
146
|
| `user-cluster create` | `analysis.user_cluster.create` | Create condition/sql cluster directly from semantic intent | `--cluster-name`, `--display-name`, `--definition-request` | Create result and canonical request |
|
|
146
147
|
| `user-cluster update` | `analysis.user_cluster.update` | Update condition/sql cluster | `--cluster-name`, fields to change, optional `--definition-request` | Update result |
|
|
147
148
|
| `user-cluster create-id` | `analysis.user_cluster.create_id` | Map imported values to an entity and create a cluster | `--display-name`, `--entity-id`, exactly one input source, conditional `--association-property` | Processing state; poll get for final match summary |
|
|
148
149
|
| `user-cluster update-id` | `analysis.user_cluster.update_id` | Remap imported values for an ID cluster | `--cluster-name`, exactly one input source, conditional `--association-property` | Processing state; poll get for final match summary |
|
|
149
150
|
| `user-cluster refresh` | `analysis.user_cluster.refresh` | Trigger cluster recompute | `--cluster-name` | Refresh result |
|
|
150
151
|
| `user-cluster delete` | `analysis.user_cluster.delete` | Delete cluster after dependency review | `--cluster-name`, `--confirmed`, `--yes` | Delete result |
|
|
151
|
-
| `user-tag list` | `analysis.user_tag.list` | Find accessible user tags | `--project-id`, optional `--
|
|
152
|
+
| `user-tag list` | `analysis.user_tag.list` | Find accessible user tags | `--project-id`, optional `--queries`, `--fields`, `--limit`, `--offset` | Paginated tag summaries |
|
|
153
|
+
| `user-tag export` | `analysis.user_tag.export` | Export complete matching tag catalog | `--project-id`, optional filters, required `--output` | Local JSONL catalog and integrity sidecar |
|
|
152
154
|
| `user-tag get` | `analysis.user_tag.get` | Inspect exact tags | `--tag-names '[...]'` | Tag details |
|
|
153
155
|
| `user-tag-member list` | `analysis.user_tag_member.list` | Bounded inline tag members | `--tag-name`, optional `--snapshot-date`, properties/fields/query/limit/offset | Member rows |
|
|
154
|
-
| `user-tag-member export` | `analysis.user_tag_member.export` |
|
|
156
|
+
| `user-tag-member export` | `analysis.user_tag_member.export` | Stream native full tag members as csv.gz | `--tag-name`, optional `--snapshot-date`, properties | Async artifact descriptor |
|
|
155
157
|
| `user-tag create` | `analysis.user_tag.create` | Create tag directly from semantic intent | `--tag-name`, `--display-name`, `--definition-request` | Create result and canonical request |
|
|
156
158
|
| `user-tag update` | `analysis.user_tag.update` | Update tag | `--tag-name`, fields to change, optional `--definition-request` | Update result |
|
|
157
159
|
| `user-tag refresh` | `analysis.user_tag.refresh` | Trigger tag recompute | `--tag-name` | Refresh result |
|
|
@@ -162,10 +164,10 @@ Prefer the run/artifact commands over hand-written HTTP, Python, or curl. Analys
|
|
|
162
164
|
| `history-tag refresh` | `analysis.history_tag.refresh` | Refresh one history snapshot | `--tag-name`, `--refresh-date` | Refresh result |
|
|
163
165
|
| `history-tag batch-refresh` | `analysis.history_tag.batch_refresh` | Batch refresh snapshots | `--tag-name`, `--refresh-request` | Async refresh result |
|
|
164
166
|
| `history-tag clear` | `analysis.history_tag.clear` | Clear snapshots in date range | `--tag-name`, date range, `--confirmed`, `--yes` | Clear result |
|
|
165
|
-
| `history-tag-data run` | `analysis.history_tag_data.run` | Bounded inline history tag statistics | `--tag-name`, `--view`, `--
|
|
167
|
+
| `history-tag-data run` | `analysis.history_tag_data.run` | Bounded inline history tag statistics | `--tag-name`, `--view`, optional `--preview-rows` | Statistic result |
|
|
166
168
|
| `history-tag-data export` | `analysis.history_tag_data.export` | Export history tag statistics as jsonl | `--tag-name`, `--view` | Async artifact descriptor |
|
|
167
169
|
| `history-tag-data-drilldown run` | `analysis.history_tag_data_drilldown.run` | Bounded inline users for one statistic value/bucket | `--tag-name`, `--snapshot-date`, `--group-col`, `--view`, optional member fields | Drilldown member rows |
|
|
168
|
-
| `history-tag-data-drilldown export` | `analysis.history_tag_data_drilldown.export` |
|
|
170
|
+
| `history-tag-data-drilldown export` | `analysis.history_tag_data_drilldown.export` | Stream native full users for one statistic value/bucket as csv.gz | `--tag-name`, `--snapshot-date`, `--group-col`, `--view`, optional properties | Async artifact descriptor |
|
|
169
171
|
|
|
170
172
|
## L3 project-space and folder capabilities
|
|
171
173
|
|
|
@@ -211,19 +213,19 @@ Output is the gateway envelope; `data` contains members.
|
|
|
211
213
|
## Examples
|
|
212
214
|
|
|
213
215
|
```bash
|
|
214
|
-
ae-cli analysis dashboard list --project-id 1 --
|
|
216
|
+
ae-cli analysis dashboard list --project-id 1 --queries '["retention","留存"]' --limit 50
|
|
215
217
|
ae-cli analysis adhoc run --project-id 1 --model-type sql --definition '{"sql":"select * from events limit 20"}'
|
|
216
218
|
ae-cli analysis adhoc export --project-id 1 --model-type sql --definition '{"sql":"select * from events where country ${Text:country}","params":[{"name":"country","type":"text","value":"US"}]}' --artifact-format jsonl
|
|
217
|
-
ae-cli analysis report list --project-id 1 --
|
|
218
|
-
ae-cli analysis report-data run --project-id 1 --report-ids '[1001]' --
|
|
219
|
-
ae-cli analysis report-data run --project-id 1 --report-ids '[1001]' --filters '{"relation":"and","items":[{"field":{"name":"country","type":"user_property"},"operator":"eq","values":["US"]}]}' --group-by '[{"field":{"name":"country","type":"user_property"}}]' --sql-params '[{"name":"platform","value":"ios"}]' --
|
|
219
|
+
ae-cli analysis report list --project-id 1 --queries '["revenue","收入"]' --limit 50
|
|
220
|
+
ae-cli analysis report-data run --project-id 1 --report-ids '[1001]' --preview-rows 50
|
|
221
|
+
ae-cli analysis report-data run --project-id 1 --report-ids '[1001]' --filters '{"relation":"and","items":[{"field":{"name":"country","type":"user_property"},"operator":"eq","values":["US"]}]}' --group-by '[{"field":{"name":"country","type":"user_property"}}]' --sql-params '[{"name":"platform","value":"ios"}]' --preview-rows 50
|
|
220
222
|
ae-cli analysis drilldown-entities run --query-context-id ctx_0123456789abcdef0123456789abcdef --source '{"report_id":1001}' --coordinate '{"cohort_date":"2026-07-01","group_values":[],"period_index":1,"population":"retained"}'
|
|
221
223
|
ae-cli analysis query create-result-cluster --query-context-id ctx_0123456789abcdef0123456789abcdef --source '{"report_id":1001}' --coordinate '{"cohort_date":"2026-07-01","group_values":[],"period_index":1,"population":"retained"}' --cluster-name retained_users
|
|
222
224
|
ae-cli analysis dashboard update --project-id 1 --operation note-upsert --dashboard-id 1001 --note-title "Summary" --description "Weekly note"
|
|
223
225
|
ae-cli analysis dashboard-definition export --project-id 1 --dashboard-id 1001 --export-file-name retention_dashboard
|
|
224
226
|
ae-cli analysis dashboard-definition import --project-id 1 --definition '{"dashboard_folders":[],"shared_spaces":[]}' --validate-only true
|
|
225
227
|
ae-cli analysis public-link create --project-id 1 --resource-type dashboard --resource-id 1001 --effective-at "2026-07-08 00:00:00" --expires-at "2026-08-08 00:00:00"
|
|
226
|
-
ae-cli analysis user-cluster list --project-id 1 --
|
|
227
|
-
ae-cli analysis user-cluster-member export --project-id 1 --cluster-name retained_users --artifact-format
|
|
228
|
+
ae-cli analysis user-cluster list --project-id 1 --queries '["retained","retention"]' --limit 50
|
|
229
|
+
ae-cli analysis user-cluster-member export --project-id 1 --cluster-name retained_users --artifact-format csv
|
|
228
230
|
ae-cli analysis user-tag create --project-id 1 --tag-name user_level --display-name "User Level" --definition-request '{"type":"condition","condition_values":[]}'
|
|
229
231
|
```
|
|
@@ -6,18 +6,19 @@ Use after an export returns both `run_id` and `artifact_id`; keep this pair boun
|
|
|
6
6
|
|
|
7
7
|
Both IDs must come from the same export response. A valid `run_id` paired with a different export's `artifact_id` is invalid even if each ID exists separately.
|
|
8
8
|
|
|
9
|
-
Do not use a raw `download_path` without preserving the `run_id`/`artifact_id` pair. Do not use this for synchronous `run` responses; it only downloads async artifacts. If the artifact is still running,
|
|
9
|
+
Do not use a raw `download_path` without preserving the `run_id`/`artifact_id` pair. Do not use this for synchronous `run` responses; it only downloads async artifacts. If the artifact is still running, use `analysis run wait` instead of retrying download in a loop.
|
|
10
10
|
|
|
11
11
|
Input:
|
|
12
12
|
|
|
13
13
|
- `run_id`: required async run ID returned by the export response.
|
|
14
14
|
- `artifact_id`: required artifact ID from the same export response.
|
|
15
15
|
- `output`: required local output path.
|
|
16
|
+
- `force`: optional explicit permission to replace an existing output file.
|
|
16
17
|
|
|
17
18
|
```bash
|
|
18
|
-
ae-cli analysis artifact download --run-id <run_id> --artifact-id <artifact_id> --output /tmp/result.jsonl.gz
|
|
19
|
+
ae-cli analysis artifact download --run-id <run_id> --artifact-id <artifact_id> --output /tmp/result.jsonl.gz [--force]
|
|
19
20
|
```
|
|
20
21
|
|
|
21
|
-
Output is local file metadata. The command
|
|
22
|
+
Output is local file metadata. The command streams into a same-directory temporary file and publishes the complete file atomically, then returns JSON with `run_id`, `artifact_id`, absolute `output_path`, `bytes`, and response content headers. Existing paths are refused unless `--force` is explicit. Failed or interrupted transfers remove the temporary file. The artifact may be gzip-compressed depending on the backend; preserve the returned/downloaded extension unless you intentionally decompress it yourself.
|
|
22
23
|
|
|
23
24
|
Do not paste large artifact content into chat. Inspect the local file or summarize only the needed rows.
|
|
@@ -7,18 +7,20 @@ Do not use it for one known asset's detailed reason or for a general asset inven
|
|
|
7
7
|
Command:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
ae-cli analysis-meta asset-abnormal list --project-id <project_id> --resource-types <resource_types>
|
|
10
|
+
ae-cli analysis-meta asset-abnormal list --project-id <project_id> --resource-types <resource_types> --limit 50 --offset 0
|
|
11
11
|
ae-cli analysis-meta asset-abnormal list --dry-run
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
Capability id: `metadata.asset_abnormal.list`.
|
|
15
15
|
|
|
16
|
-
Input sends `project_id`, `resource_types`.
|
|
16
|
+
Input sends `project_id`, `resource_types`, `limit`, and `offset`.
|
|
17
17
|
|
|
18
|
-
Output `data.
|
|
18
|
+
Output always uses the directory envelope: `data.items[]`, `total`, `limit`, `offset`, `has_more`, and `next_offset`.
|
|
19
19
|
|
|
20
20
|
## Parameters
|
|
21
21
|
| Parameter | Required | Description |
|
|
22
22
|
|---|---|---|
|
|
23
23
|
| `--project-id` | Yes | Numeric project ID. |
|
|
24
24
|
| `--resource-types` | Yes | Resource types to query. |
|
|
25
|
+
| `--limit` / `-l` | No | Page size. Default: 50, maximum: 200. |
|
|
26
|
+
| `--offset` / `-o` | No | Zero-based page offset. Default: 0. |
|
|
@@ -7,17 +7,19 @@ Do not use it as a complete asset search or to change status; use `asset search`
|
|
|
7
7
|
Command:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
ae-cli analysis-meta asset-authentication list --project-id <project_id>
|
|
10
|
+
ae-cli analysis-meta asset-authentication list --project-id <project_id> --limit 50 --offset 0
|
|
11
11
|
ae-cli analysis-meta asset-authentication list --dry-run
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
Capability id: `metadata.asset_authentication.list`.
|
|
15
15
|
|
|
16
|
-
Input sends `project_id`.
|
|
16
|
+
Input sends `project_id`, `limit`, and `offset`.
|
|
17
17
|
|
|
18
|
-
Output `data.
|
|
18
|
+
Output always uses the directory envelope: `data.items[]`, `total`, `limit`, `offset`, `has_more`, and `next_offset`.
|
|
19
19
|
|
|
20
20
|
## Parameters
|
|
21
21
|
| Parameter | Required | Description |
|
|
22
22
|
|---|---|---|
|
|
23
23
|
| `--project-id` | Yes | Numeric project ID. |
|
|
24
|
+
| `--limit` / `-l` | No | Page size. Default: 50, maximum: 200. |
|
|
25
|
+
| `--offset` / `-o` | No | Zero-based page offset. Default: 0. |
|
|
@@ -7,18 +7,20 @@ Do not use it to query report/dashboard result data; it discovers asset records
|
|
|
7
7
|
Command:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
ae-cli analysis-meta asset search --project-id <project_id> --payload '{"keyword":"revenue"}'
|
|
10
|
+
ae-cli analysis-meta asset search --project-id <project_id> --payload '{"keyword":"revenue"}' --limit 50 --offset 0
|
|
11
11
|
ae-cli analysis-meta asset search --dry-run
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
Capability id: `metadata.asset.search`.
|
|
15
15
|
|
|
16
|
-
Input sends `project_id`, `payload`.
|
|
16
|
+
Input sends `project_id`, `payload`, `limit`, and `offset`.
|
|
17
17
|
|
|
18
|
-
Output `data.
|
|
18
|
+
Output always uses the directory envelope: `data.items[]`, `total`, `limit`, `offset`, `has_more`, and `next_offset`. A blank keyword returns an empty envelope rather than a full asset list.
|
|
19
19
|
|
|
20
20
|
## Parameters
|
|
21
21
|
| Parameter | Required | Description |
|
|
22
22
|
|---|---|---|
|
|
23
23
|
| `--project-id` | Yes | Numeric project ID. |
|
|
24
24
|
| `--payload` | Yes | Search object. Required semantic field: non-blank `keyword`. Optional filters are `own_types` and `res_cats`; do not pass server-owned identity or pagination-test fields. |
|
|
25
|
+
| `--limit` / `-l` | No | Page size. Default: 50, maximum: 200. |
|
|
26
|
+
| `--offset` / `-o` | No | Zero-based page offset. Default: 0. |
|
|
@@ -7,10 +7,10 @@ Do not use for dashboard assets. Use `dashboard list`.
|
|
|
7
7
|
Command:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
ae-cli analysis bi-panel list --project-id <project_id> [--
|
|
10
|
+
ae-cli analysis bi-panel list --project-id <project_id> [--queries '["growth","retention"]'] [--limit 50] [--offset 0]
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
Input sends `project_id` and optional `
|
|
13
|
+
Input sends `project_id` and optional `queries`, `fields`, `limit`, `offset`. `queries` accepts 1 to 20 non-empty strings with OR semantics; matching rows include `matched_queries` and `matched_fields`, and singular `query` is not accepted. Prefer the default projection for discovery. Do not request generic `id`; BI panel summaries use fields such as `panel_id` and `name` when projected.
|
|
14
14
|
|
|
15
15
|
When `has_more=true`, continue only with the returned `next_offset`; do not calculate the next page locally.
|
|
16
16
|
|
|
@@ -12,7 +12,7 @@ Command:
|
|
|
12
12
|
ae-cli analysis bi-panel-page-data export --project-id <project_id> --panel-id <panel_id> --page-key <page_key> --result-type charts [--chart-ids '["chart1"]'] [--artifact-format jsonl]
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
Input sends `project_id`, `panel_id`, `page_key`, `result_type`, and optional control,
|
|
15
|
+
Input sends `project_id`, `panel_id`, `page_key`, `result_type=charts`, and optional chart, control, column, cache, request, timeout, and format fields. Use CLI flag `--artifact-format` for the gateway `format` input; `--format` is the CLI output formatter. The export does not accept row/block paging fields: Common streams chart rows directly and applies only `model_full_download_limit`. Runtime defaults to and is capped at 21600 seconds (6 hours); cancel earlier with `analysis query cancel --run-id <run_id>`. BI summary is rendered presentation data; query it with `bi-panel-page-data run`.
|
|
16
16
|
|
|
17
17
|
Output is the gateway envelope. `data` contains an async export descriptor with `run_id`, `artifact_id`, status fields, and expiration fields. It does not create `query_context_id` or expose inspect/download API paths; use the CLI commands below.
|
|
18
18
|
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
# analysis bi-panel-page-data run
|
|
2
2
|
|
|
3
|
-
Use for
|
|
3
|
+
Use for inline BI panel page chart or summary data with the same result cap as the UI.
|
|
4
4
|
|
|
5
5
|
Routing: read [`analysis_data_retrieval.md`](analysis_data_retrieval.md) before choosing this `run` command instead of `bi-panel-page-data export`.
|
|
6
6
|
|
|
7
|
-
Do not use this command
|
|
7
|
+
Do not use this command when completeness matters, the result size is unknown, or the query is long-running; use `bi-panel-page-data export`.
|
|
8
8
|
|
|
9
9
|
Command:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
ae-cli analysis bi-panel-page-data run --project-id <project_id> --panel-id <panel_id> --page-key <page_key> --result-type charts [--chart-ids '["chart1"]'] [--
|
|
12
|
+
ae-cli analysis bi-panel-page-data run --project-id <project_id> --panel-id <panel_id> --page-key <page_key> --result-type charts [--chart-ids '["chart1"]'] [--timeout-seconds 120]
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
Input sends `project_id`, `panel_id`, `page_key`, `result_type`, and optional control,
|
|
15
|
+
Input sends `project_id`, `panel_id`, `page_key`, `result_type`, and optional control, cache, request, and timeout fields. `--timeout-seconds` defaults to 120 and is capped at 180. There are no row/block paging flags. Chart results use the configured top-N when enabled, otherwise the BI UI default cap of 20,000 rows, and return `has_more`. The routing rule lives in [`analysis_data_retrieval.md`](analysis_data_retrieval.md).
|
|
16
16
|
|
|
17
17
|
Output is the gateway envelope. `data` contains bounded inline page data.
|
|
18
18
|
|