@thinkingai/ae-cli 6.0.33 → 6.0.35

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 (167) hide show
  1. package/README.md +3 -2
  2. package/README.zh.md +3 -2
  3. package/dist/index.js +24 -16
  4. package/dist/{metadata-W2MEOI4Z.js → metadata-ELUAR3EJ.js} +0 -53
  5. package/dist/{metadata-3M5F2AED.js → metadata-P5GIVMZ6.js} +0 -53
  6. package/dist/{te-agent-K2OWMZXT.js → te-agent-BOQ7ZY56.js} +194 -1
  7. package/dist/{te-analysis-Q7AZCDU4.js → te-analysis-HZIP6SYW.js} +446 -562
  8. package/dist/{te-analysis-I73ZS4NK.js → te-analysis-ZT2MYAHL.js} +446 -562
  9. package/dist/{te-dataops-MJV54MNY.js → te-dataops-VYN3IOKO.js} +6 -6
  10. package/dist/{te-dataops-OA7I6HBG.js → te-dataops-Y5QAPPPF.js} +6 -6
  11. package/dist/{te-engage-GJRVQMK3.js → te-engage-2FSDUOIZ.js} +965 -1578
  12. package/dist/{te-engage-JIXX3WBI.js → te-engage-BMJ6UOUU.js} +965 -1578
  13. package/dist/{te-kb-CIZXRWMO.js → te-kb-E7NSCBRB.js} +25 -6
  14. package/dist/te-meta-GBDTMPEL.js +95 -0
  15. package/dist/te-meta-ZTLTSHXC.js +95 -0
  16. package/package.json +5 -4
  17. package/skills/ae-agent/SKILL.md +5 -1
  18. package/skills/ae-agent/references/list-sandbox-tools.md +79 -0
  19. package/skills/ae-analysis/SKILL.md +8 -9
  20. package/skills/ae-analysis/references/adhoc_export.md +8 -0
  21. package/skills/ae-analysis/references/adhoc_run.md +9 -0
  22. package/skills/ae-analysis/references/ai_models.md +3 -1
  23. package/skills/ae-analysis/references/analysis_data_retrieval.md +2 -0
  24. package/skills/ae-analysis/references/analysis_drilldown_contract.md +2 -0
  25. package/skills/ae-analysis/references/analysis_gateway_assets.md +9 -7
  26. package/skills/ae-analysis/references/command_index.md +18 -40
  27. package/skills/ae-analysis/references/dashboard_report_data_export.md +4 -2
  28. package/skills/ae-analysis/references/dashboard_report_data_run.md +5 -3
  29. package/skills/ae-analysis/references/drilldown_entities_export.md +3 -0
  30. package/skills/ae-analysis/references/drilldown_entities_run.md +2 -1
  31. package/skills/ae-analysis/references/drilldown_events_export.md +3 -0
  32. package/skills/ae-analysis/references/drilldown_events_run.md +2 -1
  33. package/skills/ae-analysis/references/drilldown_user_events_export.md +3 -0
  34. package/skills/ae-analysis/references/drilldown_user_events_run.md +2 -0
  35. package/skills/ae-analysis/references/entity_id_import_options.md +1 -1
  36. package/skills/ae-analysis/references/filter_value_list.md +47 -0
  37. package/skills/ae-analysis/references/project_space_get.md +3 -3
  38. package/skills/ae-analysis/references/project_space_list.md +6 -2
  39. package/skills/ae-analysis/references/query_cancel.md +3 -1
  40. package/skills/ae-analysis/references/query_cluster_list.md +34 -0
  41. package/skills/ae-analysis/references/query_create_result_cluster.md +2 -0
  42. package/skills/ae-analysis/references/report_create.md +5 -1
  43. package/skills/ae-analysis/references/report_data_export.md +9 -2
  44. package/skills/ae-analysis/references/report_data_run.md +8 -3
  45. package/skills/ae-analysis/references/report_get.md +3 -1
  46. package/skills/ae-analysis/references/report_update.md +4 -0
  47. package/skills/ae-analysis/references/virtual_event_create.md +7 -6
  48. package/skills/ae-analysis-global/SKILL.md +15 -32
  49. package/skills/ae-community/SKILL.md +1 -1
  50. package/skills/ae-data-integration-helper/SKILL.md +3 -2
  51. package/skills/ae-data-integration-helper/references/sdk_usage_notes.md +1 -1
  52. package/skills/ae-dataops/SKILL.md +2 -1
  53. package/skills/ae-dataops/references/dataops-integration.md +75 -6
  54. package/skills/ae-engage/SKILL.md +127 -104
  55. package/skills/ae-engage/references/activity-activity-type.md +1 -1
  56. package/skills/ae-engage/references/activity-activity.md +1 -1
  57. package/skills/ae-engage/references/activity-approval.md +5 -7
  58. package/skills/ae-engage/references/activity-task.md +12 -18
  59. package/skills/ae-engage/references/activity-topic.md +39 -22
  60. package/skills/ae-engage/references/add-approver.md +4 -4
  61. package/skills/ae-engage/references/add-channel.md +10 -5
  62. package/skills/ae-engage/references/approval-approver-delete.md +1 -1
  63. package/skills/ae-engage/references/approver-list.md +4 -4
  64. package/skills/ae-engage/references/build-task-save-guide.md +13 -13
  65. package/skills/ae-engage/references/cancel-query-by-request-id.md +7 -6
  66. package/skills/ae-engage/references/channel-detail.md +14 -9
  67. package/skills/ae-engage/references/channel-list.md +15 -10
  68. package/skills/ae-engage/references/channel-mgmt.md +109 -0
  69. package/skills/ae-engage/references/channel-test-send.md +1 -1
  70. package/skills/ae-engage/references/channel-update-config.md +1 -1
  71. package/skills/ae-engage/references/channel_touch_limits_list.md +1 -1
  72. package/skills/ae-engage/references/client-param.md +34 -16
  73. package/skills/ae-engage/references/common-metric.md +85 -18
  74. package/skills/ae-engage/references/config-item-analysis-report.md +8 -27
  75. package/skills/ae-engage/references/config-item-strategy-comparison.md +7 -18
  76. package/skills/ae-engage/references/config-item-trigger-report.md +8 -35
  77. package/skills/ae-engage/references/delete-channel.md +5 -5
  78. package/skills/ae-engage/references/delete-flow.md +5 -5
  79. package/skills/ae-engage/references/flow-ab-split-node-report.md +11 -45
  80. package/skills/ae-engage/references/flow-detail.md +15 -10
  81. package/skills/ae-engage/references/flow-list.md +9 -4
  82. package/skills/ae-engage/references/flow-node-config-schema.md +9 -8
  83. package/skills/ae-engage/references/flow-node-detail-report.md +11 -46
  84. package/skills/ae-engage/references/flow-node-overview-report.md +11 -43
  85. package/skills/ae-engage/references/flow-process-report.md +12 -50
  86. package/skills/ae-engage/references/flow-update-remark.md +19 -0
  87. package/skills/ae-engage/references/manage-flow.md +19 -19
  88. package/skills/ae-engage/references/manage-task.md +5 -5
  89. package/skills/ae-engage/references/modify-flow-base-info.md +8 -8
  90. package/skills/ae-engage/references/preset-event.md +1 -1
  91. package/skills/ae-engage/references/push-language.md +1 -1
  92. package/skills/ae-engage/references/save-flow.md +54 -52
  93. package/skills/ae-engage/references/save-task.md +23 -17
  94. package/skills/ae-engage/references/scene-config-channel.md +90 -10
  95. package/skills/ae-engage/references/scene-config-group.md +1 -1
  96. package/skills/ae-engage/references/scene-config-item.md +27 -4
  97. package/skills/ae-engage/references/scene-config-metric.md +1 -1
  98. package/skills/ae-engage/references/scene-config-param.md +2 -2
  99. package/skills/ae-engage/references/scene-preset-metric.md +1 -1
  100. package/skills/ae-engage/references/scene-strategy.md +19 -3
  101. package/skills/ae-engage/references/scene-template.md +10 -4
  102. package/skills/ae-engage/references/task-data-detail.md +5 -67
  103. package/skills/ae-engage/references/task-data-overview.md +5 -35
  104. package/skills/ae-engage/references/task-detail.md +5 -5
  105. package/skills/ae-engage/references/task-experiment-report.md +5 -38
  106. package/skills/ae-engage/references/task-list.md +4 -4
  107. package/skills/ae-engage/references/task-metric-detail.md +5 -43
  108. package/skills/ae-engage/references/task-stats.md +5 -5
  109. package/skills/ae-engage/references/update-channel-status.md +6 -6
  110. package/skills/ae-engage/references/validate-flow-node-config.md +12 -11
  111. package/skills/ae-engage/references/whitelist-list.md +4 -4
  112. package/skills/ae-engage/references/whitelist.md +1 -1
  113. package/skills/ae-engage/references/workbench-workbench.md +1 -1
  114. package/skills/ae-generate-tracking-code/SKILL.md +4 -3
  115. package/skills/ae-generate-tracking-code/references/client-sdk-insert.md +1 -1
  116. package/skills/ae-generate-tracking-code/references/server-sdk-insert.md +1 -1
  117. package/skills/ae-generate-tracking-code/references/snippet-delivery.md +1 -1
  118. package/skills/ae-generate-tracking-plan/SKILL.md +6 -2
  119. package/skills/ae-kb/SKILL.md +9 -5
  120. package/skills/ae-metadata/SKILL.md +8 -15
  121. package/skills/ae-metadata/references/metadata_property_dimension_table_bind_existing.md +1 -1
  122. package/dist/te-common-ST3QPSXJ.js +0 -61
  123. package/dist/te-common-WSLIKKPC.js +0 -61
  124. package/dist/te-meta-Q4L6EE3Q.js +0 -363
  125. package/dist/te-meta-VHCN4Q62.js +0 -363
  126. package/skills/ae-analysis/references/batch_create_metadata.md +0 -41
  127. package/skills/ae-analysis/references/batch_edit_metadata.md +0 -39
  128. package/skills/ae-analysis/references/cancel_query.md +0 -38
  129. package/skills/ae-analysis/references/create_alert.md +0 -47
  130. package/skills/ae-analysis/references/create_entity.md +0 -39
  131. package/skills/ae-analysis/references/create_project_mark_time.md +0 -39
  132. package/skills/ae-analysis/references/delete_alert.md +0 -32
  133. package/skills/ae-analysis/references/delete_project_mark_times.md +0 -36
  134. package/skills/ae-analysis/references/delete_track_items.md +0 -36
  135. package/skills/ae-analysis/references/generate_track_program.md +0 -52
  136. package/skills/ae-analysis/references/generate_track_sdk_sample.md +0 -44
  137. package/skills/ae-analysis/references/get_alert.md +0 -35
  138. package/skills/ae-analysis/references/get_alert_definition_schema.md +0 -33
  139. package/skills/ae-analysis/references/get_project_config.md +0 -33
  140. package/skills/ae-analysis/references/get_track_program.md +0 -34
  141. package/skills/ae-analysis/references/list_alerts.md +0 -41
  142. package/skills/ae-analysis/references/list_entities.md +0 -42
  143. package/skills/ae-analysis/references/list_project_mark_times.md +0 -43
  144. package/skills/ae-analysis/references/list_project_users.md +0 -33
  145. package/skills/ae-analysis/references/list_projects.md +0 -39
  146. package/skills/ae-analysis/references/load_filters.md +0 -47
  147. package/skills/ae-analysis/references/save_track_items.md +0 -37
  148. package/skills/ae-analysis/references/update_alert.md +0 -49
  149. package/skills/ae-analysis/references/update_project_mark_time.md +0 -40
  150. package/skills/ae-analysis-global/references/list_query_clusters.md +0 -68
  151. package/skills/ae-engage/references/config-channel-detail.md +0 -31
  152. package/skills/ae-engage/references/config-channel-list.md +0 -26
  153. package/skills/ae-engage/references/config-item-detail.md +0 -29
  154. package/skills/ae-engage/references/config-item-list.md +0 -18
  155. package/skills/ae-engage/references/copy-config-template.md +0 -28
  156. package/skills/ae-engage/references/delete-config-channel.md +0 -23
  157. package/skills/ae-engage/references/delete-config-item.md +0 -24
  158. package/skills/ae-engage/references/engage-scene-config-item.md +0 -69
  159. package/skills/ae-engage/references/manage-strategy.md +0 -73
  160. package/skills/ae-engage/references/strategy-detail.md +0 -72
  161. package/skills/ae-engage/references/strategy-list.md +0 -20
  162. package/skills/ae-engage/references/update-config-channel-status.md +0 -31
  163. package/skills/ae-metadata/references/metadata_event_get.md +0 -52
  164. package/skills/ae-metadata/references/metadata_property_get.md +0 -54
  165. package/dist/{config-RCCGHHYA.js → config-PMPISN5Y.js} +4 -4
  166. package/dist/{te-community-WXGB6IOX.js → te-community-QOYIYEJI.js} +3 -3
  167. package/dist/{te-community-X2AHXGCA.js → te-community-UFKI6ONP.js} +3 -3
@@ -6,16 +6,8 @@ This is the exhaustive command and flag inventory for the analysis skill. Read t
6
6
 
7
7
  | Command | Capability ID | Risk | Flags | Reference |
8
8
  |---|---|---|---|---|
9
- | `ae-cli analysis +cancel_query` | legacy/MCP | write | `--request_id` (string; required) — Request ID returned by a query tool in metadata.requestId, or the requestId supplied before starting the query. It must use mcp_<32 lowercase hex UUID>, for example mcp_0123456789abcdef0123456789abcdef.<br>`--reason` (string; optional) — Optional cancellation reason. Default: MCP_CANCEL_QUERY_TOOL. | [cancel_query.md](cancel_query.md) |
10
- | `ae-cli analysis +create_alert` | legacy/MCP | write | `--project_id` (number; required) — Project ID<br>`--definition` (json; required) — Alert definition JSON. See +get_alert_definition_schema for the complete structure. | [create_alert.md](create_alert.md) |
11
- | `ae-cli analysis +delete_alert` | legacy/MCP | high-risk-write | `--project_id` (number; required) — Project ID<br>`--alert_id` (number; required) — Alert ID to delete | [delete_alert.md](delete_alert.md) |
12
- | `ae-cli analysis +get_alert` | legacy/MCP | read | `--project_id` (number; required) — Project ID<br>`--alert_id` (number; required) — Alert ID | [get_alert.md](get_alert.md) |
13
- | `ae-cli analysis +get_alert_definition_schema` | legacy/MCP | read | None | [get_alert_definition_schema.md](get_alert_definition_schema.md) |
14
- | `ae-cli analysis +list_alerts` | legacy/MCP | read | `--project_id` (number; required) — Project ID<br>`--query` (string; optional) — Optional keyword filter. Performs fuzzy matching against alert names; if omitted, all alerts are returned.<br>`--limit` (number; optional, min=1, max=200) — Optional page size. Default: 50, maximum: 200.<br>`--offset` (number; optional) — Optional page offset. Default: 0. | [list_alerts.md](list_alerts.md) |
15
- | `ae-cli analysis +load_filters` | legacy/MCP | read | `--project_id` (number; required) — Project ID<br>`--quot` (string; required) — Property identifier (field name). This is the property whose candidate values will be loaded.<br>`--table_type` (string; required) — Table type. Supported values: event and user.<br>`--event_name` (string; optional) — Optional event name. Effective when table_type=event.<br>`--inputdata` (string; optional) — Optional input prefix used for fuzzy filtering of candidate values.<br>`--zone_offset` (number; optional) — Time zone offset in hours. For example, UTC+8 is 8<br>`--cluster_date_policy` (string; optional) — Cluster date policy. Supported values: LATEST, AUTO, SPECIFIED.<br>`--specified_cluster_date` (string; optional) — Specified cluster date in yyyy-MM-dd format. Effective only when cluster_date_policy=SPECIFIED.<br>`--is_report` (boolean; optional) — Whether this is report mode. Default: false | [load_filters.md](load_filters.md) |
16
- | `ae-cli analysis +update_alert` | legacy/MCP | write | `--project_id` (number; required) — Project ID<br>`--alert_id` (number; required) — Alert ID<br>`--definition` (json; required) — Alert definition JSON with updated fields. See +get_alert_definition_schema for the complete structure. | [update_alert.md](update_alert.md) |
17
- | `ae-cli analysis adhoc export` | analysis.adhoc.export | read | `--project-id` (number; required) — Numeric project ID.<br>`--model-type` (string; required) — Supported AI-facing model_type values, 12 total. 9 common models: event (event analysis), retention (retention analysis), funnel (funnel conversion), distribution (distribution analysis), attribution (attribution analysis), interval (interval analysis), path (path analysis), prop_analysis (property analysis), sql (SQL analysis). 3 scenario models: heat_map (heat map analysis), rank_list (ranking analysis), revenue (revenue analysis). Tags and cohorts/clusters are separate capabilities and are not ad-hoc model_type values.<br>`--definition` (json; required) — AI-facing model definition JSON. Do not pass raw QP, events, event_view, visual_view, or analysis_query. For path definitions, global filters support user_property, cluster, and tag only; event_property is not supported. session_unit accepts second (1..999), minute (1..999), or hour (1..24). Do not use day; express one day as session_interval=24 and session_unit=hour. For SQL, a simple query is {"sql":"select ..."}; raw variables use ${name}, while typed params use ${Text:name}, ${Selector:name}, or ${PartDate:name}. PartDate expands to a complete predicate, so write WHERE ${PartDate:d}, not a column followed by the placeholder. Selector value must match one options[].value. Trino identifiers containing #, $, @, spaces, or punctuation must be delimited with double quotes, for example SELECT "#user_id", "$part_event" FROM ...; single quotes are string literals. Queries against an event table must include a date-partition predicate on the quoted "$part_date" column, for example WHERE "$part_date" BETWEEN '2026-07-01' AND '2026-07-07'; the backend rejects event-table SQL without it. The CLI preserves SQL text and never auto-quotes identifiers.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--zone-offset` (number; optional) — Optional timezone mode. Fixed UTC offsets are -12..14; 99 means stored local time without fixed UTC conversion (not UTC+99). Omit to use the project analysis default.<br>`--fields` (json; optional) — Optional result field projection JSON array.<br>`--artifact-format` (string; optional) — Logical artifact format, usually jsonl or csv. This does not select compression; read format, compression, file_name, content_type, and content_encoding from the returned descriptor.<br>`--timeout-seconds` (number; optional, min=1, max=21600) — Async runtime in seconds. Default and max: 21600 (6 hours); cancel earlier with analysis query cancel --run-id <run_id>. | [adhoc_export.md](adhoc_export.md) |
18
- | `ae-cli analysis adhoc run` | analysis.adhoc.run | read | `--project-id` (number; required) — Numeric project ID.<br>`--model-type` (string; required) — Supported AI-facing model_type values, 12 total. 9 common models: event (event analysis), retention (retention analysis), funnel (funnel conversion), distribution (distribution analysis), attribution (attribution analysis), interval (interval analysis), path (path analysis), prop_analysis (property analysis), sql (SQL analysis). 3 scenario models: heat_map (heat map analysis), rank_list (ranking analysis), revenue (revenue analysis). Tags and cohorts/clusters are separate capabilities and are not ad-hoc model_type values.<br>`--definition` (json; required) — AI-facing model definition JSON. Do not pass raw QP, events, event_view, visual_view, or analysis_query. For path definitions, global filters support user_property, cluster, and tag only; event_property is not supported. session_unit accepts second (1..999), minute (1..999), or hour (1..24). Do not use day; express one day as session_interval=24 and session_unit=hour. For SQL, a simple query is {"sql":"select ..."}; raw variables use ${name}, while typed params use ${Text:name}, ${Selector:name}, or ${PartDate:name}. PartDate expands to a complete predicate, so write WHERE ${PartDate:d}, not a column followed by the placeholder. Selector value must match one options[].value. Trino identifiers containing #, $, @, spaces, or punctuation must be delimited with double quotes, for example SELECT "#user_id", "$part_event" FROM ...; single quotes are string literals. Queries against an event table must include a date-partition predicate on the quoted "$part_date" column, for example WHERE "$part_date" BETWEEN '2026-07-01' AND '2026-07-07'; the backend rejects event-table SQL without it. The CLI preserves SQL text and never auto-quotes identifiers.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--zone-offset` (number; optional) — Optional timezone mode. Fixed UTC offsets are -12..14; 99 means stored local time without fixed UTC conversion (not UTC+99). Omit to use the project analysis default.<br>`--fields` (json; optional) — Optional result field projection JSON array.<br>`--limit` (number; optional, min=1, max=1000) — Maximum inline rows for sync query results. Default: 100, max: 1000. Use export for full data.<br>`--timeout-seconds` (number; optional, min=1, max=180) — Sync timeout seconds. Default: 120, max: 180. | [adhoc_run.md](adhoc_run.md) |
9
+ | `ae-cli analysis adhoc export` | analysis.adhoc.export | read | `--project-id` (number; required) — Numeric project ID.<br>`--model-type` (string; required) — Supported AI-facing model_type values, 12 total. 9 common models: event (event analysis), retention (retention analysis), funnel (funnel conversion), distribution (distribution analysis), attribution (attribution analysis), interval (interval analysis), path (path analysis), prop_analysis (property analysis), sql (SQL analysis). 3 scenario models: heat_map (heat map analysis), rank_list (ranking analysis), revenue (revenue analysis). Tags and cohorts/clusters are separate capabilities and are not ad-hoc model_type values.<br>`--definition` (json; required) — AI-facing model definition JSON. Do not pass raw QP, events, event_view, visual_view, or analysis_query. For path definitions, global filters support user_property, cluster, and tag only; event_property is not supported. session_unit accepts second (1..999), minute (1..999), or hour (1..24). Do not use day; express one day as session_interval=24 and session_unit=hour. For SQL, a simple query is {"sql":"select ..."}; raw variables use ${name}, while typed params use ${Text:name}, ${Selector:name}, or ${PartDate:name}. PartDate expands to a complete predicate, so write WHERE ${PartDate:d}, not a column followed by the placeholder. A part_date parameter may set boolean use_timezone; it defaults to false and controls whether that parameter uses the query effective timezone. Selector value must match one options[].value. Trino identifiers containing #, $, @, spaces, or punctuation must be delimited with double quotes, for example SELECT "#user_id", "$part_event" FROM ...; single quotes are string literals. Queries against an event table must include a date-partition predicate on the quoted "$part_date" column, for example WHERE "$part_date" BETWEEN '2026-07-01' AND '2026-07-07'; the backend rejects event-table SQL without it. The CLI preserves SQL text and never auto-quotes identifiers.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--zone-offset` (number; optional) — Optional timezone mode. Fixed UTC offsets are -12..14; 99 means stored local time without fixed UTC conversion (not UTC+99). Omit to use the project analysis default.<br>`--fields` (json; optional) — Optional result field projection JSON array.<br>`--cluster-query-scope` (string; optional) — Optional physical query routing: GLOBAL aggregates accessible query clusters; SLAVE targets one --slave-cluster-id. Omit for the surface default.<br>`--slave-cluster-id` (string; optional) — Physical slave query-cluster ID from analysis query-cluster list. Required only with --cluster-query-scope SLAVE.<br>`--artifact-format` (string; optional) — Logical artifact format, usually jsonl or csv. This does not select compression; read format, compression, file_name, content_type, and content_encoding from the returned descriptor.<br>`--timeout-seconds` (number; optional, min=1, max=21600) — Async runtime in seconds. Default and max: 21600 (6 hours); cancel earlier with analysis query cancel --run-id <run_id>. | [adhoc_export.md](adhoc_export.md) |
10
+ | `ae-cli analysis adhoc run` | analysis.adhoc.run | read | `--project-id` (number; required) — Numeric project ID.<br>`--model-type` (string; required) — Supported AI-facing model_type values, 12 total. 9 common models: event (event analysis), retention (retention analysis), funnel (funnel conversion), distribution (distribution analysis), attribution (attribution analysis), interval (interval analysis), path (path analysis), prop_analysis (property analysis), sql (SQL analysis). 3 scenario models: heat_map (heat map analysis), rank_list (ranking analysis), revenue (revenue analysis). Tags and cohorts/clusters are separate capabilities and are not ad-hoc model_type values.<br>`--definition` (json; required) — AI-facing model definition JSON. Do not pass raw QP, events, event_view, visual_view, or analysis_query. For path definitions, global filters support user_property, cluster, and tag only; event_property is not supported. session_unit accepts second (1..999), minute (1..999), or hour (1..24). Do not use day; express one day as session_interval=24 and session_unit=hour. For SQL, a simple query is {"sql":"select ..."}; raw variables use ${name}, while typed params use ${Text:name}, ${Selector:name}, or ${PartDate:name}. PartDate expands to a complete predicate, so write WHERE ${PartDate:d}, not a column followed by the placeholder. A part_date parameter may set boolean use_timezone; it defaults to false and controls whether that parameter uses the query effective timezone. Selector value must match one options[].value. Trino identifiers containing #, $, @, spaces, or punctuation must be delimited with double quotes, for example SELECT "#user_id", "$part_event" FROM ...; single quotes are string literals. Queries against an event table must include a date-partition predicate on the quoted "$part_date" column, for example WHERE "$part_date" BETWEEN '2026-07-01' AND '2026-07-07'; the backend rejects event-table SQL without it. The CLI preserves SQL text and never auto-quotes identifiers.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--zone-offset` (number; optional) — Optional timezone mode. Fixed UTC offsets are -12..14; 99 means stored local time without fixed UTC conversion (not UTC+99). Omit to use the project analysis default.<br>`--fields` (json; optional) — Optional result field projection JSON array.<br>`--cluster-query-scope` (string; optional) — Optional physical query routing: GLOBAL aggregates accessible query clusters; SLAVE targets one --slave-cluster-id. Omit for the surface default.<br>`--slave-cluster-id` (string; optional) — Physical slave query-cluster ID from analysis query-cluster list. Required only with --cluster-query-scope SLAVE.<br>`--limit` (number; optional, min=1, max=1000) — Maximum inline rows for sync query results. Default: 100, max: 1000. Use export for full data.<br>`--timeout-seconds` (number; optional, min=1, max=180) — Sync timeout seconds. Default: 120, max: 180. | [adhoc_run.md](adhoc_run.md) |
19
11
  | `ae-cli analysis alert create` | analysis.alert.create | write | `--project-id` (number; required) — Numeric project ID.<br>`--definition` (json; required) — Alert definition JSON object using snake_case field names. Read alert-definition-schema get first. | [alert_create.md](alert_create.md) |
20
12
  | `ae-cli analysis alert delete` | analysis.alert.delete | high-risk-write | `--project-id` (number; required) — Numeric project ID.<br>`--alert-id` (number; required) — Alert task ID. | [alert_delete.md](alert_delete.md) |
21
13
  | `ae-cli analysis alert get` | analysis.alert.get | read | `--project-id` (number; required) — Numeric project ID.<br>`--alert-id` (number; required) — Alert task ID. | [alert_get.md](alert_get.md) |
@@ -56,14 +48,14 @@ This is the exhaustive command and flag inventory for the analysis skill. Read t
56
48
  | `ae-cli analysis dashboard-definition export` | analysis.dashboard_definition.export | read | `--project-id` (number; required) — Numeric project ID.<br>`--dashboard-id` (number; optional) — Single dashboard ID to export. The gateway resolves folder or project-space context.<br>`--dashboard-ids` (json; optional) — Dashboard ID array to export. The gateway resolves folder or project-space context.<br>`--dashboard-folder-ids` (json; optional) — Private folder ID array, or advanced descriptor array: [{"dashboard_folder_id":1,"dashboard_ids":[2]}].<br>`--shared-spaces` (json; optional) — Shared space export descriptor array.<br>`--export-file-name` (string; optional) — Optional export file name.<br>`--payload` (json; optional) — Optional snake_case object for complex capability payload fields. | [dashboard_definition_export.md](dashboard_definition_export.md) |
57
49
  | `ae-cli analysis dashboard-definition import` | analysis.dashboard_definition.import | write | `--project-id` (number; required) — Numeric project ID.<br>`--definition` (json; required) — Dashboard definition JSON object.<br>`--validate-only` (boolean; optional) — Only validate import conflicts and importable state.<br>`--dashboard-name-conflict-policy` (string; optional) — Optional dashboard name conflict policy.<br>`--space-dashboard-policy` (string; optional) — Optional space/dashboard import policy.<br>`--payload` (json; optional) — Optional snake_case object for complex capability payload fields. | [dashboard_definition_import.md](dashboard_definition_import.md) |
58
50
  | `ae-cli analysis dashboard-report add` | analysis.dashboard_report.add | write | `--project-id` (number; required) — Numeric project ID.<br>`--dashboard-id` (number; required) — Dashboard ID.<br>`--report-ids` (json; required) — Report ID array to add. | [dashboard_report_add.md](dashboard_report_add.md) |
59
- | `ae-cli analysis dashboard-report-data export` | analysis.dashboard_report_data.export | read | `--project-id` (number; required) — Numeric project ID.<br>`--dashboard-id` (number; required) — Dashboard ID.<br>`--report-ids` (json; optional) — Optional report ID array. Omit to query all dashboard reports.<br>`--filters` (json; optional) — Optional AI-facing filter {relation,items:[{field:{name,type?},operator,values?}]}. SQL reports ignore it and the artifact includes warnings; raw taFilters/junctionKind/filts are rejected.<br>`--start-time` (string; optional) — Optional start date/time. SQL reports ignore it and the artifact includes warnings.<br>`--end-time` (string; optional) — Optional end date/time. SQL reports ignore it and the artifact includes warnings.<br>`--zone-offset` (number; optional) — Query execution timezone. Omit it to match the report UI for the current user (user selection when available, otherwise project default). Use a fixed UTC offset from -12 through 14, or 99 for local-time mode with no conversion to one fixed UTC offset; 99 is not UTC+99. This is not persisted in the report definition.<br>`--use-cache` (boolean; optional) — Whether to use cache. Default: true.<br>`--request-id` (string; optional) — Optional cli_<32 lowercase hex> request ID. Generated when omitted.<br>`--timeout-seconds` (number; optional, min=1, max=21600) — Async runtime in seconds. Default and max: 21600 (6 hours); cancel earlier with analysis query cancel --run-id <run_id>.<br>`--artifact-format` (string; optional) — Artifact format. Only jsonl is supported. | [dashboard_report_data_export.md](dashboard_report_data_export.md) |
60
- | `ae-cli analysis dashboard-report-data run` | analysis.dashboard_report_data.run | read | `--project-id` (number; required) — Numeric project ID.<br>`--dashboard-id` (number; required) — Dashboard ID.<br>`--report-ids` (json; optional) — Optional report ID array. Omit to query all dashboard reports.<br>`--filters` (json; optional) — Optional AI-facing filter {relation,items:[{field:{name,type?},operator,values?}]}. SQL reports ignore it and produce data.warnings; raw taFilters/junctionKind/filts are rejected.<br>`--start-time` (string; optional) — Optional start date/time. SQL reports ignore it and produce data.warnings.<br>`--end-time` (string; optional) — Optional end date/time. SQL reports ignore it and produce data.warnings.<br>`--zone-offset` (number; optional) — Query execution timezone. Omit it to match the report UI for the current user (user selection when available, otherwise project default). Use a fixed UTC offset from -12 through 14, or 99 for local-time mode with no conversion to one fixed UTC offset; 99 is not UTC+99. This is not persisted in the report definition.<br>`--use-cache` (boolean; optional) — Whether to use cache. Default: true.<br>`--request-id` (string; optional) — Optional cli_<32 lowercase hex> request ID. Generated when omitted.<br>`--timeout-seconds` (number; optional, min=1, max=180) — Sync timeout seconds. Default: 180, max: 180.<br>`--limit` (number; optional, min=1, max=1000) — Maximum inline rows for sync query results. Default: 100, max: 1000. Use export for full data. | [dashboard_report_data_run.md](dashboard_report_data_run.md) |
61
- | `ae-cli analysis drilldown-entities export` | analysis.query.drilldown_entities_export | read | `--query-context-id` (string; required) — query_context_id returned by a synchronous analysis preview. Analysis exports never create one.<br>`--source` (json; optional) — Source selector copied from sources[] when the synchronous preview contains multiple reports or charts. Pass only returned selector fields such as report_id or chart_id.<br>`--coordinate` (json; required) — One semantic cell coordinate assembled only from the selected source.drilldown row_options, column_options, and metric_options. Never pass target_id, raw QP, or values absent from the synchronous preview.<br>`--properties` (json; optional) — Optional property projection object array using exact columnName and named tableType values (event or user). Subject-specific support and mandatory identity columns are documented by each command; do not pass string-name arrays.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--artifact-format` (string; optional) — Artifact format. Only csv is supported; the downloaded artifact is csv.gz.<br>`--timeout-seconds` (number; optional, min=1, max=21600) — Async runtime in seconds. Default and max: 21600 (6 hours); cancel earlier with analysis query cancel --run-id <run_id>. | [drilldown_entities_export.md](drilldown_entities_export.md) |
62
- | `ae-cli analysis drilldown-entities run` | analysis.query.drilldown_entities | read | `--query-context-id` (string; required) — query_context_id returned by a synchronous analysis preview. Analysis exports never create one.<br>`--source` (json; optional) — Source selector copied from sources[] when the synchronous preview contains multiple reports or charts. Pass only returned selector fields such as report_id or chart_id.<br>`--coordinate` (json; required) — One semantic cell coordinate assembled only from the selected source.drilldown row_options, column_options, and metric_options. Never pass target_id, raw QP, or values absent from the synchronous preview.<br>`--properties` (json; optional) — Optional property projection object array using exact columnName and named tableType values (event or user). Subject-specific support and mandatory identity columns are documented by each command; do not pass string-name arrays.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--limit` (number; optional, min=1, max=1000) — Maximum first preview rows. Default: 100, max: 1000. This is not a pagination window; use export for more rows.<br>`--timeout-seconds` (number; optional, min=1, max=180) — Sync timeout seconds. Default: 120, max: 180. | [drilldown_entities_run.md](drilldown_entities_run.md) |
63
- | `ae-cli analysis drilldown-events export` | analysis.query.drilldown_events_export | read | `--query-context-id` (string; required) — query_context_id returned by a synchronous event-analysis preview. Analysis exports never create one.<br>`--source` (json; optional) — Source selector copied from sources[] when the synchronous preview contains multiple reports or charts. Pass only returned selector fields such as report_id or chart_id.<br>`--coordinate` (json; required) — One semantic cell coordinate assembled only from the selected source.drilldown row_options, column_options, and metric_options. Never pass target_id, raw QP, or values absent from the synchronous preview.<br>`--properties` (json; optional) — Optional property projection object array using exact columnName and named tableType values (event or user). Subject-specific support and mandatory identity columns are documented by each command; do not pass string-name arrays.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--artifact-format` (string; optional) — Artifact format. Only csv is supported; the downloaded artifact is csv.gz.<br>`--timeout-seconds` (number; optional, min=1, max=21600) — Async runtime in seconds. Default and max: 21600 (6 hours); cancel earlier with analysis query cancel --run-id <run_id>. | [drilldown_events_export.md](drilldown_events_export.md) |
64
- | `ae-cli analysis drilldown-events run` | analysis.query.drilldown_events | read | `--query-context-id` (string; required) — query_context_id returned by a synchronous event-analysis preview. Analysis exports never create one.<br>`--source` (json; optional) — Source selector copied from sources[] when the synchronous preview contains multiple reports or charts. Pass only returned selector fields such as report_id or chart_id.<br>`--coordinate` (json; required) — One semantic cell coordinate assembled only from the selected source.drilldown row_options, column_options, and metric_options. Never pass target_id, raw QP, or values absent from the synchronous preview.<br>`--properties` (json; optional) — Optional property projection object array using exact columnName and named tableType values (event or user). Subject-specific support and mandatory identity columns are documented by each command; do not pass string-name arrays.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--limit` (number; optional, min=1, max=1000) — Maximum first preview rows. Default: 100, max: 1000. This is not a pagination window; use export for more rows.<br>`--timeout-seconds` (number; optional, min=1, max=180) — Sync timeout seconds. Default: 120, max: 180. | [drilldown_events_run.md](drilldown_events_run.md) |
65
- | `ae-cli analysis drilldown-user-events export` | analysis.query.drilldown_user_events_export | read | `--drilldown-context-id` (string; required) — drilldown_context_id returned by analysis drilldown-entities run for the user subject. Custom entities have no user event sequence.<br>`--user-id` (string; required) — Canonical user_id returned by analysis drilldown-entities run. Never guess or substitute another identity field.<br>`--properties` (json; optional) — Optional property projection object array using exact columnName and named tableType values (event or user). Subject-specific support and mandatory identity columns are documented by each command; do not pass string-name arrays.<br>`--sort-order` (string; optional) — Event time sort order: asc or desc.<br>`--event-name-filter` (string; optional) — Optional event-name filter.<br>`--time-filter` (string; optional) — Optional time filter condition.<br>`--time-filter-before-nums` (number; optional) — Optional events before the time filter point.<br>`--time-filter-after-nums` (number; optional) — Optional events after the time filter point.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--artifact-format` (string; optional) — Artifact format. Only csv is supported; the downloaded artifact is csv.gz.<br>`--timeout-seconds` (number; optional, min=1, max=21600) — Async runtime in seconds. Default and max: 21600 (6 hours); cancel earlier with analysis query cancel --run-id <run_id>. | [drilldown_user_events_export.md](drilldown_user_events_export.md) |
66
- | `ae-cli analysis drilldown-user-events run` | analysis.query.drilldown_user_events | read | `--drilldown-context-id` (string; required) — drilldown_context_id returned by analysis drilldown-entities run for the user subject. Custom entities have no user event sequence.<br>`--user-id` (string; required) — Canonical user_id returned by analysis drilldown-entities run. Never guess or substitute another identity field.<br>`--properties` (json; optional) — Optional property projection object array using exact columnName and named tableType values (event or user). Subject-specific support and mandatory identity columns are documented by each command; do not pass string-name arrays.<br>`--sort-order` (string; optional) — Event time sort order: asc or desc.<br>`--event-name-filter` (string; optional) — Optional event-name filter.<br>`--time-filter` (string; optional) — Optional time filter condition.<br>`--time-filter-before-nums` (number; optional) — Optional events before the time filter point.<br>`--time-filter-after-nums` (number; optional) — Optional events after the time filter point.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--limit` (number; optional, min=1, max=1000) — Maximum first preview rows. Default: 100, max: 1000. This is not a pagination window; use export for more rows.<br>`--timeout-seconds` (number; optional, min=1, max=180) — Sync timeout seconds. Default: 120, max: 180. | [drilldown_user_events_run.md](drilldown_user_events_run.md) |
51
+ | `ae-cli analysis dashboard-report-data export` | analysis.dashboard_report_data.export | read | `--project-id` (number; required) — Numeric project ID.<br>`--dashboard-id` (number; required) — Dashboard ID.<br>`--report-ids` (json; optional) — Optional report ID array. Omit to query all dashboard reports.<br>`--filters` (json; optional) — Optional AI-facing filter {relation,items:[{field:{name,type?},operator,values?}]}. SQL reports ignore it and the artifact includes warnings; raw taFilters/junctionKind/filts are rejected.<br>`--start-time` (string; optional) — Optional start date/time. SQL reports ignore it and the artifact includes warnings.<br>`--end-time` (string; optional) — Optional end date/time. SQL reports ignore it and the artifact includes warnings.<br>`--cluster-query-scope` (string; optional) — Optional physical query routing: GLOBAL aggregates accessible query clusters; SLAVE targets one --slave-cluster-id. Omit for the surface default.<br>`--slave-cluster-id` (string; optional) — Physical slave query-cluster ID from analysis query-cluster list. Required only with --cluster-query-scope SLAVE.<br>`--zone-offset` (number; optional) — Query execution timezone. Omit it to match the report UI for the current user (user selection when available, otherwise project default). Use a fixed UTC offset from -12 through 14, or 99 for local-time mode with no conversion to one fixed UTC offset; 99 is not UTC+99. This is not persisted in the report definition.<br>`--use-cache` (boolean; optional) — Whether to use cache. Default: true.<br>`--request-id` (string; optional) — Optional cli_<32 lowercase hex> request ID. Generated when omitted.<br>`--timeout-seconds` (number; optional, min=1, max=21600) — Async runtime in seconds. Default and max: 21600 (6 hours); cancel earlier with analysis query cancel --run-id <run_id>.<br>`--artifact-format` (string; optional) — Artifact format. Only jsonl is supported. | [dashboard_report_data_export.md](dashboard_report_data_export.md) |
52
+ | `ae-cli analysis dashboard-report-data run` | analysis.dashboard_report_data.run | read | `--project-id` (number; required) — Numeric project ID.<br>`--dashboard-id` (number; required) — Dashboard ID.<br>`--report-ids` (json; optional) — Optional report ID array. Omit to query all dashboard reports.<br>`--filters` (json; optional) — Optional AI-facing filter {relation,items:[{field:{name,type?},operator,values?}]}. SQL reports ignore it and produce data.warnings; raw taFilters/junctionKind/filts are rejected.<br>`--start-time` (string; optional) — Optional start date/time. SQL reports ignore it and produce data.warnings.<br>`--end-time` (string; optional) — Optional end date/time. SQL reports ignore it and produce data.warnings.<br>`--cluster-query-scope` (string; optional) — Optional physical query routing: GLOBAL aggregates accessible query clusters; SLAVE targets one --slave-cluster-id. Omit for the surface default.<br>`--slave-cluster-id` (string; optional) — Physical slave query-cluster ID from analysis query-cluster list. Required only with --cluster-query-scope SLAVE.<br>`--zone-offset` (number; optional) — Query execution timezone. Omit it to match the report UI for the current user (user selection when available, otherwise project default). Use a fixed UTC offset from -12 through 14, or 99 for local-time mode with no conversion to one fixed UTC offset; 99 is not UTC+99. This is not persisted in the report definition.<br>`--use-cache` (boolean; optional) — Whether to use cache. Default: true.<br>`--request-id` (string; optional) — Optional cli_<32 lowercase hex> request ID. Generated when omitted.<br>`--timeout-seconds` (number; optional, min=1, max=180) — Sync timeout seconds. Default: 180, max: 180.<br>`--limit` (number; optional, min=1, max=1000) — Maximum inline rows for sync query results. Default: 100, max: 1000. Use export for full data. | [dashboard_report_data_run.md](dashboard_report_data_run.md) |
53
+ | `ae-cli analysis drilldown-entities export` | analysis.query.drilldown_entities_export | read | `--project-id` (number; required) — Numeric project ID.<br>`--query-context-id` (string; required) — query_context_id returned by a synchronous analysis preview. Analysis exports never create one.<br>`--source` (json; optional) — Source selector copied from sources[] when the synchronous preview contains multiple reports or charts. Pass only returned selector fields such as report_id or chart_id.<br>`--coordinate` (json; required) — One semantic cell coordinate assembled only from the selected source.drilldown row_options, column_options, and metric_options. Never pass target_id, raw QP, or values absent from the synchronous preview.<br>`--properties` (json; optional) — Optional property projection object array using exact columnName and named tableType values (event or user). Subject-specific support and mandatory identity columns are documented by each command; do not pass string-name arrays.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--artifact-format` (string; optional) — Artifact format. Only csv is supported; the downloaded artifact is csv.gz.<br>`--timeout-seconds` (number; optional, min=1, max=21600) — Async runtime in seconds. Default and max: 21600 (6 hours); cancel earlier with analysis query cancel --run-id <run_id>. | [drilldown_entities_export.md](drilldown_entities_export.md) |
54
+ | `ae-cli analysis drilldown-entities run` | analysis.query.drilldown_entities | read | `--project-id` (number; required) — Numeric project ID.<br>`--query-context-id` (string; required) — query_context_id returned by a synchronous analysis preview. Analysis exports never create one.<br>`--source` (json; optional) — Source selector copied from sources[] when the synchronous preview contains multiple reports or charts. Pass only returned selector fields such as report_id or chart_id.<br>`--coordinate` (json; required) — One semantic cell coordinate assembled only from the selected source.drilldown row_options, column_options, and metric_options. Never pass target_id, raw QP, or values absent from the synchronous preview.<br>`--properties` (json; optional) — Optional property projection object array using exact columnName and named tableType values (event or user). Subject-specific support and mandatory identity columns are documented by each command; do not pass string-name arrays.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--limit` (number; optional, min=1, max=1000) — Maximum first preview rows. Default: 100, max: 1000. This is not a pagination window; use export for more rows.<br>`--timeout-seconds` (number; optional, min=1, max=180) — Sync timeout seconds. Default: 120, max: 180. | [drilldown_entities_run.md](drilldown_entities_run.md) |
55
+ | `ae-cli analysis drilldown-events export` | analysis.query.drilldown_events_export | read | `--project-id` (number; required) — Numeric project ID.<br>`--query-context-id` (string; required) — query_context_id returned by a synchronous event-analysis preview. Analysis exports never create one.<br>`--source` (json; optional) — Source selector copied from sources[] when the synchronous preview contains multiple reports or charts. Pass only returned selector fields such as report_id or chart_id.<br>`--coordinate` (json; required) — One semantic cell coordinate assembled only from the selected source.drilldown row_options, column_options, and metric_options. Never pass target_id, raw QP, or values absent from the synchronous preview.<br>`--properties` (json; optional) — Optional property projection object array using exact columnName and named tableType values (event or user). Subject-specific support and mandatory identity columns are documented by each command; do not pass string-name arrays.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--artifact-format` (string; optional) — Artifact format. Only csv is supported; the downloaded artifact is csv.gz.<br>`--timeout-seconds` (number; optional, min=1, max=21600) — Async runtime in seconds. Default and max: 21600 (6 hours); cancel earlier with analysis query cancel --run-id <run_id>. | [drilldown_events_export.md](drilldown_events_export.md) |
56
+ | `ae-cli analysis drilldown-events run` | analysis.query.drilldown_events | read | `--project-id` (number; required) — Numeric project ID.<br>`--query-context-id` (string; required) — query_context_id returned by a synchronous event-analysis preview. Analysis exports never create one.<br>`--source` (json; optional) — Source selector copied from sources[] when the synchronous preview contains multiple reports or charts. Pass only returned selector fields such as report_id or chart_id.<br>`--coordinate` (json; required) — One semantic cell coordinate assembled only from the selected source.drilldown row_options, column_options, and metric_options. Never pass target_id, raw QP, or values absent from the synchronous preview.<br>`--properties` (json; optional) — Optional property projection object array using exact columnName and named tableType values (event or user). Subject-specific support and mandatory identity columns are documented by each command; do not pass string-name arrays.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--limit` (number; optional, min=1, max=1000) — Maximum first preview rows. Default: 100, max: 1000. This is not a pagination window; use export for more rows.<br>`--timeout-seconds` (number; optional, min=1, max=180) — Sync timeout seconds. Default: 120, max: 180. | [drilldown_events_run.md](drilldown_events_run.md) |
57
+ | `ae-cli analysis drilldown-user-events export` | analysis.query.drilldown_user_events_export | read | `--project-id` (number; required) — Numeric project ID.<br>`--drilldown-context-id` (string; required) — drilldown_context_id returned by analysis drilldown-entities run for the user subject. Custom entities have no user event sequence.<br>`--user-id` (string; required) — Canonical user_id returned by analysis drilldown-entities run. Never guess or substitute another identity field.<br>`--properties` (json; optional) — Optional property projection object array using exact columnName and named tableType values (event or user). Subject-specific support and mandatory identity columns are documented by each command; do not pass string-name arrays.<br>`--sort-order` (string; optional) — Event time sort order: asc or desc.<br>`--event-name-filter` (string; optional) — Optional event-name filter.<br>`--time-filter` (string; optional) — Optional time filter condition.<br>`--time-filter-before-nums` (number; optional) — Optional events before the time filter point.<br>`--time-filter-after-nums` (number; optional) — Optional events after the time filter point.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--artifact-format` (string; optional) — Artifact format. Only csv is supported; the downloaded artifact is csv.gz.<br>`--timeout-seconds` (number; optional, min=1, max=21600) — Async runtime in seconds. Default and max: 21600 (6 hours); cancel earlier with analysis query cancel --run-id <run_id>. | [drilldown_user_events_export.md](drilldown_user_events_export.md) |
58
+ | `ae-cli analysis drilldown-user-events run` | analysis.query.drilldown_user_events | read | `--project-id` (number; required) — Numeric project ID.<br>`--drilldown-context-id` (string; required) — drilldown_context_id returned by analysis drilldown-entities run for the user subject. Custom entities have no user event sequence.<br>`--user-id` (string; required) — Canonical user_id returned by analysis drilldown-entities run. Never guess or substitute another identity field.<br>`--properties` (json; optional) — Optional property projection object array using exact columnName and named tableType values (event or user). Subject-specific support and mandatory identity columns are documented by each command; do not pass string-name arrays.<br>`--sort-order` (string; optional) — Event time sort order: asc or desc.<br>`--event-name-filter` (string; optional) — Optional event-name filter.<br>`--time-filter` (string; optional) — Optional time filter condition.<br>`--time-filter-before-nums` (number; optional) — Optional events before the time filter point.<br>`--time-filter-after-nums` (number; optional) — Optional events after the time filter point.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--limit` (number; optional, min=1, max=1000) — Maximum first preview rows. Default: 100, max: 1000. This is not a pagination window; use export for more rows.<br>`--timeout-seconds` (number; optional, min=1, max=180) — Sync timeout seconds. Default: 120, max: 180. | [drilldown_user_events_run.md](drilldown_user_events_run.md) |
67
59
  | `ae-cli analysis entity id-import-options` | analysis.entity.id_import_options | read | `--project-id` (number; required) — Numeric project ID.<br>`--entity-id` (number; required) — Analysis entity ID. Discover it from project entity metadata; do not guess. | [entity_id_import_options.md](entity_id_import_options.md) |
68
60
  | `ae-cli analysis entity-detail export` | analysis.entity_detail.export | read | `--project-id` (number; required) — Numeric project ID.<br>`--definition` (json; required) — Bounded entity detail definition. properties is supported only for entity="user" (#user_id); user rows always include #user_id, #account_id, and #distinct_id plus requested user properties. Custom entities reject properties and return only their entity value column. cohort is AI-facing for user_property/tag/cluster filters; do not pass raw QP.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--zone-offset` (number; optional) — Optional timezone mode. Fixed UTC offsets are -12..14; 99 means stored local time without fixed UTC conversion (not UTC+99). Omit to use the project analysis default.<br>`--artifact-format` (string; optional) — Logical artifact format, usually jsonl or csv. This does not select compression; read format, compression, file_name, content_type, and content_encoding from the returned descriptor.<br>`--timeout-seconds` (number; optional, min=1, max=21600) — Async runtime in seconds. Default and max: 21600 (6 hours); cancel earlier with analysis query cancel --run-id <run_id>. | [entity_detail_export.md](entity_detail_export.md) |
69
61
  | `ae-cli analysis entity-detail run` | analysis.entity_detail.run | read | `--project-id` (number; required) — Numeric project ID.<br>`--definition` (json; required) — Bounded entity detail definition. properties is supported only for entity="user" (#user_id); user rows always include #user_id, #account_id, and #distinct_id plus requested user properties. Custom entities reject properties and return only their entity value column. cohort is AI-facing for user_property/tag/cluster filters; do not pass raw QP.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--zone-offset` (number; optional) — Optional timezone mode. Fixed UTC offsets are -12..14; 99 means stored local time without fixed UTC conversion (not UTC+99). Omit to use the project analysis default.<br>`--limit` (number; optional, min=1, max=1000) — Maximum first preview rows. Default: 100, max: 1000. This is not a pagination window; use export for more rows.<br>`--timeout-seconds` (number; optional, min=1, max=180) — Sync timeout seconds. Default: 120, max: 180. | [entity_detail_run.md](entity_detail_run.md) |
@@ -71,6 +63,7 @@ This is the exhaustive command and flag inventory for the analysis skill. Read t
71
63
  | `ae-cli analysis event-detail run` | analysis.event_detail.run | read | `--project-id` (number; required) — Numeric project ID.<br>`--definition` (json; required) — AI-facing event detail definition: {"event":"login","time_range":{"mode":"absolute","start_time":"2026-07-01 00:00:00","end_time":"2026-07-01 23:59:59"},"filters":{"relation":"and","items":[{"field":{"name":"country","type":"user_property"},"operator":"eq","values":["US"]}]},"properties":["#event_time",{"name":"country","type":"user_property"}],"sort":[{"field":"#event_time","order":"desc"}]}. Do not pass raw QP/eventView/taFilters.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--zone-offset` (number; optional) — Optional timezone mode. Fixed UTC offsets are -12..14; 99 means stored local time without fixed UTC conversion (not UTC+99). Omit to use the project analysis default.<br>`--limit` (number; optional, min=1, max=1000) — Maximum first preview rows. Default: 100, max: 1000. This is not a pagination window; use export for more rows.<br>`--timeout-seconds` (number; optional, min=1, max=180) — Sync timeout seconds. Default: 120, max: 180. | [event_detail_run.md](event_detail_run.md) |
72
64
  | `ae-cli analysis favorite add` | analysis.favorite.add | write | `--project-id` (number; required) — Numeric project ID.<br>`--asset-id` (number; optional) — Asset ID.<br>`--asset-type` (string; optional) — Asset type, for example dashboard, bi_panel, or folder.<br>`--space-id` (number; optional) — Project space ID when relevant.<br>`--id` (number; optional) — Backend DTO ID field when required.<br>`--payload` (json; optional) — Optional snake_case object for complex capability payload fields. | [favorite_add.md](favorite_add.md) |
73
65
  | `ae-cli analysis favorite remove` | analysis.favorite.remove | write | `--project-id` (number; required) — Numeric project ID.<br>`--asset-id` (number; optional) — Asset ID.<br>`--asset-type` (string; optional) — Asset type, for example dashboard, bi_panel, or folder.<br>`--space-id` (number; optional) — Project space ID when relevant.<br>`--id` (number; optional) — Backend DTO ID field when required.<br>`--payload` (json; optional) — Optional snake_case object for complex capability payload fields. | [favorite_remove.md](favorite_remove.md) |
66
+ | `ae-cli analysis filter-value list` | analysis.filter_value.list | read | `--project-id` (number; required) — Numeric project ID.<br>`--property-name` (string; required) — Exact property identifier. Resolve the property first; this command discovers values, not fields.<br>`--table-type` (string; required) — Property table: event or user.<br>`--event-name` (string; optional) — Optional exact event name for an event-property lookup.<br>`--search-prefix` (string; optional) — Optional prefix or fuzzy input to narrow candidate values.<br>`--zone-offset` (number; optional) — Optional fixed timezone offset from -12 through 14.<br>`--cluster-date-policy` (string; optional) — Optional user tag/cluster data-snapshot policy: LATEST means the latest available computed result snapshot, not a tag definition or configuration release; AUTO and SPECIFIED select other snapshot modes.<br>`--specified-cluster-date` (string; optional) — Required only with --cluster-date-policy SPECIFIED to select a historical computed result snapshot; yyyy-MM-dd.<br>`--report-mode` (boolean; optional) — Use report-compatible property semantics. Default: false. | [filter_value_list.md](filter_value_list.md) |
74
67
  | `ae-cli analysis history-tag batch-refresh` | analysis.history_tag.batch_refresh | write | `--project-id` (number; required) — Numeric project ID.<br>`--tag-name` (string; required) — Exact tag_name. Discover real values with analysis user-tag list first.<br>`--refresh-request` (json; required) — Snake_case object: {start_time,end_time,only_abnormal?,use_user_table_type?}. Dates use yyyy-MM-dd; see history_tag_batch_refresh.md. | [history_tag_batch_refresh.md](history_tag_batch_refresh.md) |
75
68
  | `ae-cli analysis history-tag clear` | analysis.history_tag.clear | high-risk-write | `--project-id` (number; required) — Numeric project ID.<br>`--tag-name` (string; required) — Exact tag_name. Discover real values with analysis user-tag list first.<br>`--start-time` (string; required) — Start date, yyyy-MM-dd.<br>`--end-time` (string; required) — End date, yyyy-MM-dd.<br>`--confirmed` (boolean; optional) — Set true only after dependency and influence checks have been accepted. | [history_tag_clear.md](history_tag_clear.md) |
76
69
  | `ae-cli analysis history-tag list` | analysis.history_tag.list | read | `--project-id` (number; required) — Numeric project ID.<br>`--tag-name` (string; required) — Exact tag_name. Discover real values with analysis user-tag list first. | [history_tag_list.md](history_tag_list.md) |
@@ -132,18 +125,19 @@ This is the exhaustive command and flag inventory for the analysis skill. Read t
132
125
  | `ae-cli analysis public-link offline` | analysis.public_link.offline | write | `--project-id` (number; required) — Numeric project ID.<br>`--company-id` (number; optional) — Company ID. Derived from project ID when omitted.<br>`--link-id` (number; optional) — Public link ID.<br>`--link-ids` (json; optional) — Public link ID array. | [public_link_offline.md](public_link_offline.md) |
133
126
  | `ae-cli analysis public-link update` | analysis.public_link.update | write | `--project-id` (number; required) — Numeric project ID.<br>`--company-id` (number; optional) — Company ID. Derived from project ID when omitted.<br>`--link-id` (number; required) — Public link ID.<br>`--access-controls` (json; optional) — Public link access-control JSON.<br>`--remark` (string; optional) — Public link remark.<br>`--effective-at` (string; required) — Effective time, yyyy-MM-dd HH:mm:ss.<br>`--expires-at` (string; required) — Expiration time, yyyy-MM-dd HH:mm:ss.<br>`--payload` (json; optional) — Optional snake_case object for complex capability payload fields. | [public_link_update.md](public_link_update.md) |
134
127
  | `ae-cli analysis query cancel` | analysis.query.cancel | write | `--run-id` (string; required) — Async run ID returned by an export capability.<br>`--reason` (string; optional) — Optional cancellation reason. | [query_cancel.md](query_cancel.md) |
135
- | `ae-cli analysis query create-result-cluster` | analysis.query.create_result_cluster | write | `--query-context-id` (string; required) — query_context_id returned by a synchronous analysis preview. Never use an export response.<br>`--source` (json; optional) — Source selector copied from sources[] when the synchronous preview contains multiple reports or charts. Pass only returned selector fields such as report_id or chart_id.<br>`--coordinate` (json; required) — One semantic cell coordinate assembled only from the selected source.drilldown row_options, column_options, and metric_options. Never pass target_id, raw QP, or values absent from the synchronous preview.<br>`--cluster-name` (string; required, minLength=1, maxLength=24, pattern=^[a-z][a-z0-9_]*$) — Unique result cluster name. Must start with a lowercase letter, contain only lowercase letters, digits, and underscores, and be at most 24 characters.<br>`--display-name` (string; optional, minLength=1, maxLength=80) — Optional result cluster display name. Maximum: 80 characters.<br>`--zone-offset` (number; optional) — Optional timezone offset. UTC+8 is 8; UTC-5 is -5.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--timeout-seconds` (number; optional) — Optional capability execution timeout in seconds. | [query_create_result_cluster.md](query_create_result_cluster.md) |
136
- | `ae-cli analysis report create` | analysis.report.create | write | `--project-id` (number; required) — Numeric project ID.<br>`--report-name` (string; required) — Report display name.<br>`--model-type` (string; required) — Supported AI-facing model_type values, 12 total. 9 common models: event (event analysis), retention (retention analysis), funnel (funnel conversion), distribution (distribution analysis), attribution (attribution analysis), interval (interval analysis), path (path analysis), prop_analysis (property analysis), sql (SQL analysis). 3 scenario models: heat_map (heat map analysis), rank_list (ranking analysis), revenue (revenue analysis). Tags and cohorts/clusters are separate capabilities and are not ad-hoc model_type values. Report create/update also supports tag for saved tag report data; use tag as the AI-facing spelling.<br>`--definition` (json; required) — AI-facing model definition JSON. Do not pass raw QP, events, event_view, visual_view, or analysis_query. For path definitions, global filters support user_property, cluster, and tag only; event_property is not supported. session_unit accepts second (1..999), minute (1..999), or hour (1..24). Do not use day; express one day as session_interval=24 and session_unit=hour. For SQL, a simple query is {"sql":"select ..."}; raw variables use ${name}, while typed params use ${Text:name}, ${Selector:name}, or ${PartDate:name}. PartDate expands to a complete predicate, so write WHERE ${PartDate:d}, not a column followed by the placeholder. Selector value must match one options[].value. Trino identifiers containing #, $, @, spaces, or punctuation must be delimited with double quotes, for example SELECT "#user_id", "$part_event" FROM ...; single quotes are string literals. Queries against an event table must include a date-partition predicate on the quoted "$part_date" column, for example WHERE "$part_date" BETWEEN '2026-07-01' AND '2026-07-07'; the backend rejects event-table SQL without it. The CLI preserves SQL text and never auto-quotes identifiers. For model_type=tag, pass a tag report intent such as {"tag":{"tag_name":"vip_users","time_range":{"mode":"recent","unit":"day","value":7}}}. Tags are supported for report create/update and report data, not ad-hoc analysis.<br>`--report-desc` (string; optional) — Optional report description.<br>`--cache-seconds` (number; optional) — Optional cache duration in seconds.<br>`--query-duration-ms` (number; optional) — Optional last query duration in milliseconds.<br>`--dashboard-ids` (json; optional) — Optional dashboard ID array to associate after creation. | [report_create.md](report_create.md) |
128
+ | `ae-cli analysis query create-result-cluster` | analysis.query.create_result_cluster | write | `--project-id` (number; required) — Numeric project ID.<br>`--query-context-id` (string; required) — query_context_id returned by a synchronous analysis preview. Never use an export response.<br>`--source` (json; optional) — Source selector copied from sources[] when the synchronous preview contains multiple reports or charts. Pass only returned selector fields such as report_id or chart_id.<br>`--coordinate` (json; required) — One semantic cell coordinate assembled only from the selected source.drilldown row_options, column_options, and metric_options. Never pass target_id, raw QP, or values absent from the synchronous preview.<br>`--cluster-name` (string; required, minLength=1, maxLength=24, pattern=^[a-z][a-z0-9_]*$) — Unique result cluster name. Must start with a lowercase letter, contain only lowercase letters, digits, and underscores, and be at most 24 characters.<br>`--display-name` (string; optional, minLength=1, maxLength=80) — Optional result cluster display name. Maximum: 80 characters.<br>`--zone-offset` (number; optional) — Optional timezone offset. UTC+8 is 8; UTC-5 is -5.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--timeout-seconds` (number; optional) — Optional capability execution timeout in seconds. | [query_create_result_cluster.md](query_create_result_cluster.md) |
129
+ | `ae-cli analysis query-cluster list` | analysis.query_cluster.list | read | `--project-id` (number; required) — Numeric project ID. | [query_cluster_list.md](query_cluster_list.md) |
130
+ | `ae-cli analysis report create` | analysis.report.create | write | `--project-id` (number; required) — Numeric project ID.<br>`--report-name` (string; required) — Report display name.<br>`--model-type` (string; required) — Supported AI-facing model_type values, 12 total. 9 common models: event (event analysis), retention (retention analysis), funnel (funnel conversion), distribution (distribution analysis), attribution (attribution analysis), interval (interval analysis), path (path analysis), prop_analysis (property analysis), sql (SQL analysis). 3 scenario models: heat_map (heat map analysis), rank_list (ranking analysis), revenue (revenue analysis). Tags and cohorts/clusters are separate capabilities and are not ad-hoc model_type values. Report create/update also supports tag for saved tag report data; use tag as the AI-facing spelling.<br>`--definition` (json; required) — AI-facing model definition JSON. Do not pass raw QP, events, event_view, visual_view, or analysis_query. For path definitions, global filters support user_property, cluster, and tag only; event_property is not supported. session_unit accepts second (1..999), minute (1..999), or hour (1..24). Do not use day; express one day as session_interval=24 and session_unit=hour. For SQL, a simple query is {"sql":"select ..."}; raw variables use ${name}, while typed params use ${Text:name}, ${Selector:name}, or ${PartDate:name}. PartDate expands to a complete predicate, so write WHERE ${PartDate:d}, not a column followed by the placeholder. A part_date parameter may set boolean use_timezone; it defaults to false and controls whether that parameter uses the query effective timezone. Selector value must match one options[].value. Trino identifiers containing #, $, @, spaces, or punctuation must be delimited with double quotes, for example SELECT "#user_id", "$part_event" FROM ...; single quotes are string literals. Queries against an event table must include a date-partition predicate on the quoted "$part_date" column, for example WHERE "$part_date" BETWEEN '2026-07-01' AND '2026-07-07'; the backend rejects event-table SQL without it. The CLI preserves SQL text and never auto-quotes identifiers. For model_type=tag, pass a tag report intent such as {"tag":{"tag_name":"vip_users","time_range":{"mode":"recent","unit":"day","value":7}}}. Tags are supported for report create/update and report data, not ad-hoc analysis.<br>`--report-desc` (string; optional) — Optional report description.<br>`--cache-seconds` (number; optional) — Optional cache duration in seconds.<br>`--query-duration-ms` (number; optional) — Optional last query duration in milliseconds.<br>`--dashboard-ids` (json; optional) — Optional dashboard ID array to associate after creation. | [report_create.md](report_create.md) |
137
131
  | `ae-cli analysis report delete` | analysis.report.delete | high-risk-write | `--project-id` (number; required) — Numeric project ID.<br>`--report-ids` (json; required) — Report ID array. | [report_delete.md](report_delete.md) |
138
132
  | `ae-cli analysis report get` | analysis.report.get | read | `--project-id` (number; required) — Numeric project ID.<br>`--report-id` (number; required) — Report ID. | [report_get.md](report_get.md) |
139
133
  | `ae-cli analysis report list` | analysis.report.list | read | `--project-id` (number; required) — Numeric project ID.<br>`--query` (string; optional) — Optional keyword filter.<br>`--fields` (json; optional) — Optional result field projection JSON array.<br>`--model-types` (json; optional) — Optional semantic report model JSON array, for example ["event","sql","tag","revenue"].<br>`--limit` (number; optional, min=1, max=200) — Report page size. Default: 50, max: 200. Values outside 1..200 are rejected.<br>`--offset` (number; optional) — Optional zero-based result offset. | [report_list.md](report_list.md) |
140
134
  | `ae-cli analysis report list-export` | analysis.report.list_export | read | `--project-id` (number; required) — Numeric project ID.<br>`--query` (string; optional) — Optional keyword filter.<br>`--fields` (json; optional) — Optional result field projection JSON array.<br>`--model-types` (json; optional) — Optional semantic report model JSON array, for example ["event","sql","tag","revenue"].<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--artifact-format` (string; optional) — Logical artifact format, usually jsonl or csv. This does not select compression; read format, compression, file_name, content_type, and content_encoding from the returned descriptor.<br>`--timeout-seconds` (number; optional, min=1, max=21600) — Async runtime in seconds. Default and max: 21600 (6 hours); cancel earlier with analysis query cancel --run-id <run_id>. | [report_list_export.md](report_list_export.md) |
141
- | `ae-cli analysis report update` | analysis.report.update | write | `--project-id` (number; required) — Numeric project ID.<br>`--report-id` (number; required) — Report ID to update.<br>`--report-version` (number; required) — Current report version from report get.<br>`--report-name` (string; optional) — New report display name.<br>`--report-desc` (string; optional) — New report description.<br>`--model-type` (string; optional) — Supported AI-facing model_type values, 12 total. 9 common models: event (event analysis), retention (retention analysis), funnel (funnel conversion), distribution (distribution analysis), attribution (attribution analysis), interval (interval analysis), path (path analysis), prop_analysis (property analysis), sql (SQL analysis). 3 scenario models: heat_map (heat map analysis), rank_list (ranking analysis), revenue (revenue analysis). Tags and cohorts/clusters are separate capabilities and are not ad-hoc model_type values. Report create/update also supports tag for saved tag report data; use tag as the AI-facing spelling.<br>`--definition` (json; optional) — AI-facing model definition JSON. Do not pass raw QP, events, event_view, visual_view, or analysis_query. For path definitions, global filters support user_property, cluster, and tag only; event_property is not supported. session_unit accepts second (1..999), minute (1..999), or hour (1..24). Do not use day; express one day as session_interval=24 and session_unit=hour. For SQL, a simple query is {"sql":"select ..."}; raw variables use ${name}, while typed params use ${Text:name}, ${Selector:name}, or ${PartDate:name}. PartDate expands to a complete predicate, so write WHERE ${PartDate:d}, not a column followed by the placeholder. Selector value must match one options[].value. Trino identifiers containing #, $, @, spaces, or punctuation must be delimited with double quotes, for example SELECT "#user_id", "$part_event" FROM ...; single quotes are string literals. Queries against an event table must include a date-partition predicate on the quoted "$part_date" column, for example WHERE "$part_date" BETWEEN '2026-07-01' AND '2026-07-07'; the backend rejects event-table SQL without it. The CLI preserves SQL text and never auto-quotes identifiers. For model_type=tag, pass a tag report intent such as {"tag":{"tag_name":"vip_users","time_range":{"mode":"recent","unit":"day","value":7}}}. Tags are supported for report create/update and report data, not ad-hoc analysis.<br>`--cache-seconds` (number; optional) — Optional cache duration in seconds.<br>`--query-duration-ms` (number; optional) — Optional last query duration in milliseconds. | [report_update.md](report_update.md) |
135
+ | `ae-cli analysis report update` | analysis.report.update | write | `--project-id` (number; required) — Numeric project ID.<br>`--report-id` (number; required) — Report ID to update.<br>`--report-version` (number; required) — Current report version from report get.<br>`--report-name` (string; optional) — New report display name.<br>`--report-desc` (string; optional) — New report description.<br>`--model-type` (string; optional) — Supported AI-facing model_type values, 12 total. 9 common models: event (event analysis), retention (retention analysis), funnel (funnel conversion), distribution (distribution analysis), attribution (attribution analysis), interval (interval analysis), path (path analysis), prop_analysis (property analysis), sql (SQL analysis). 3 scenario models: heat_map (heat map analysis), rank_list (ranking analysis), revenue (revenue analysis). Tags and cohorts/clusters are separate capabilities and are not ad-hoc model_type values. Report create/update also supports tag for saved tag report data; use tag as the AI-facing spelling.<br>`--definition` (json; optional) — AI-facing model definition JSON. Do not pass raw QP, events, event_view, visual_view, or analysis_query. For path definitions, global filters support user_property, cluster, and tag only; event_property is not supported. session_unit accepts second (1..999), minute (1..999), or hour (1..24). Do not use day; express one day as session_interval=24 and session_unit=hour. For SQL, a simple query is {"sql":"select ..."}; raw variables use ${name}, while typed params use ${Text:name}, ${Selector:name}, or ${PartDate:name}. PartDate expands to a complete predicate, so write WHERE ${PartDate:d}, not a column followed by the placeholder. A part_date parameter may set boolean use_timezone; it defaults to false and controls whether that parameter uses the query effective timezone. Selector value must match one options[].value. Trino identifiers containing #, $, @, spaces, or punctuation must be delimited with double quotes, for example SELECT "#user_id", "$part_event" FROM ...; single quotes are string literals. Queries against an event table must include a date-partition predicate on the quoted "$part_date" column, for example WHERE "$part_date" BETWEEN '2026-07-01' AND '2026-07-07'; the backend rejects event-table SQL without it. The CLI preserves SQL text and never auto-quotes identifiers. For model_type=tag, pass a tag report intent such as {"tag":{"tag_name":"vip_users","time_range":{"mode":"recent","unit":"day","value":7}}}. Tags are supported for report create/update and report data, not ad-hoc analysis.<br>`--cache-seconds` (number; optional) — Optional cache duration in seconds.<br>`--query-duration-ms` (number; optional) — Optional last query duration in milliseconds. | [report_update.md](report_update.md) |
142
136
  | `ae-cli analysis report-abnormal get` | analysis.report_abnormal.get | read | `--project-id` (number; required) — Numeric project ID.<br>`--report-id` (number; required) — Report ID. | [report_abnormal_get.md](report_abnormal_get.md) |
143
137
  | `ae-cli analysis report-change-log get` | analysis.report_change_log.get | read | `--project-id` (number; required) — Numeric project ID.<br>`--report-id` (number; required) — Report ID.<br>`--history-version` (number; optional) — Optional history version. Omit for latest. | [report_change_log_get.md](report_change_log_get.md) |
144
138
  | `ae-cli analysis report-change-log list` | analysis.report_change_log.list | read | `--project-id` (number; required) — Numeric project ID.<br>`--report-id` (number; required) — Report ID. | [report_change_log_list.md](report_change_log_list.md) |
145
- | `ae-cli analysis report-data export` | analysis.report_data.export | read | `--project-id` (number; required) — Numeric project ID.<br>`--report-ids` (json; required) — Report ID array. With overrides, prefer one model per batch so every field has the same meaning.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--filters` (json; optional) — Non-SQL analysis models only. SQL-only requests reject this field; mixed batches are best-effort. Use AI-facing field intent, never QP taFilters.<br>`--group-by` (json; optional) — Non-SQL analysis models only. SQL-only requests reject this field. Shape: [{"field":{"name":"country","type":"user_property"}}].<br>`--sql-params` (json; optional) — SQL reports only. First run analysis report get for every target SQL report; each name must exist in every definition.params. Send value overrides only, including saved part_date/time parameters for date changes. Do not send definition fields such as paramType or selectorItems.<br>`--start-time` (string; optional) — Non-SQL analysis-model date override start, yyyy-MM-dd. SQL dates use --sql-params.<br>`--end-time` (string; optional) — Non-SQL analysis-model date override end, yyyy-MM-dd. SQL dates use --sql-params.<br>`--time-granularity` (string; optional) — Non-SQL analysis-model time granularity override. SQL accepts only --sql-params.<br>`--zone-offset` (number; optional) — Query execution timezone. Omit it to match the report UI for the current user (user selection when available, otherwise project default). Use a fixed UTC offset from -12 through 14, or 99 for local-time mode with no conversion to one fixed UTC offset; 99 is not UTC+99. This is not persisted in the report definition.<br>`--use-cache` (boolean; optional) — Whether to use cache. Default: true.<br>`--artifact-format` (string; optional) — Logical artifact format, usually jsonl or csv. This does not select compression; read format, compression, file_name, content_type, and content_encoding from the returned descriptor.<br>`--timeout-seconds` (number; optional, min=1, max=21600) — Async runtime in seconds. Default and max: 21600 (6 hours); cancel earlier with analysis query cancel --run-id <run_id>. | [report_data_export.md](report_data_export.md) |
146
- | `ae-cli analysis report-data run` | analysis.report_data.run | read | `--project-id` (number; required) — Numeric project ID.<br>`--report-ids` (json; required) — Report ID array. With overrides, prefer one model per batch; mixed models still return data and meta.warnings identifies report_ids and ignored_fields.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--filters` (json; optional) — Non-SQL analysis models only. SQL-only requests reject this field; mixed batches warn for SQL report_ids that ignore it. AI-facing shape: {"relation":"and","items":[{"field":{"name":"country","type":"user_property"},"operator":"eq","values":["US"]}]}. Never pass QP taFilters.<br>`--group-by` (json; optional) — Non-SQL analysis models only. SQL-only requests reject this field; mixed batches warn. AI-facing shape: [{"field":{"name":"country","type":"user_property"}}]. Time granularity uses --time-granularity.<br>`--sql-params` (json; optional) — SQL reports only. First run analysis report get for every target SQL report; each name must exist in every definition.params. Send value overrides only, for example [{"name":"platform","value":"ios"}] or saved part_date/time parameters with start_time/end_time. Do not send definition fields such as paramType or selectorItems.<br>`--start-time` (string; optional) — Non-SQL analysis-model date override start, yyyy-MM-dd. SQL dates must be saved parameters overridden through --sql-params.<br>`--end-time` (string; optional) — Non-SQL analysis-model date override end, yyyy-MM-dd. SQL dates must be saved parameters overridden through --sql-params.<br>`--time-granularity` (string; optional) — Non-SQL analysis-model time granularity override. SQL accepts only --sql-params.<br>`--zone-offset` (number; optional) — Query execution timezone. Omit it to match the report UI for the current user (user selection when available, otherwise project default). Use a fixed UTC offset from -12 through 14, or 99 for local-time mode with no conversion to one fixed UTC offset; 99 is not UTC+99. This is not persisted in the report definition.<br>`--use-cache` (boolean; optional) — Whether to use cache. Default: true.<br>`--limit` (number; optional, min=1, max=1000) — Maximum inline rows for sync query results. Default: 100, max: 1000. Use export for full data.<br>`--timeout-seconds` (number; optional, min=1, max=180) — Sync timeout seconds. Default: 120, max: 180. | [report_data_run.md](report_data_run.md) |
139
+ | `ae-cli analysis report-data export` | analysis.report_data.export | read | `--project-id` (number; required) — Numeric project ID.<br>`--report-ids` (json; required) — Report ID array. With overrides, prefer one model per batch so every field has the same meaning.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--filters` (json; optional) — Non-SQL analysis models only. SQL-only requests reject this field; mixed batches are best-effort. Use AI-facing field intent, never QP taFilters.<br>`--group-by` (json; optional) — Non-SQL analysis models only. SQL-only requests reject this field. Shape: [{"field":{"name":"country","type":"user_property"}}].<br>`--sql-params` (json; optional) — SQL reports only. First run analysis report get for every target SQL report; each name must exist in every definition.params. Send value overrides only, including saved part_date/time parameters for date changes. Do not send definition fields such as paramType, selectorItems, or use_timezone.<br>`--start-time` (string; optional) — Non-SQL analysis-model date override start, yyyy-MM-dd. SQL dates use --sql-params.<br>`--end-time` (string; optional) — Non-SQL analysis-model date override end, yyyy-MM-dd. SQL dates use --sql-params.<br>`--time-granularity` (string; optional) — Non-SQL analysis-model time granularity override. SQL accepts only --sql-params.<br>`--cluster-query-scope` (string; optional) — Optional physical query routing: GLOBAL aggregates accessible query clusters; SLAVE targets one --slave-cluster-id. Omit for the surface default.<br>`--slave-cluster-id` (string; optional) — Physical slave query-cluster ID from analysis query-cluster list. Required only with --cluster-query-scope SLAVE.<br>`--zone-offset` (number; optional) — Query execution timezone. Omit it to match the report UI for the current user (user selection when available, otherwise project default). Use a fixed UTC offset from -12 through 14, or 99 for local-time mode with no conversion to one fixed UTC offset; 99 is not UTC+99. This is not persisted in the report definition.<br>`--use-cache` (boolean; optional) — Whether to use cache. Default: true.<br>`--artifact-format` (string; optional) — Logical artifact format, usually jsonl or csv. This does not select compression; read format, compression, file_name, content_type, and content_encoding from the returned descriptor.<br>`--timeout-seconds` (number; optional, min=1, max=21600) — Async runtime in seconds. Default and max: 21600 (6 hours); cancel earlier with analysis query cancel --run-id <run_id>. | [report_data_export.md](report_data_export.md) |
140
+ | `ae-cli analysis report-data run` | analysis.report_data.run | read | `--project-id` (number; required) — Numeric project ID.<br>`--report-ids` (json; required) — Report ID array. With overrides, prefer one model per batch; mixed models still return data and meta.warnings identifies report_ids and ignored_fields.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--filters` (json; optional) — Non-SQL analysis models only. SQL-only requests reject this field; mixed batches warn for SQL report_ids that ignore it. AI-facing shape: {"relation":"and","items":[{"field":{"name":"country","type":"user_property"},"operator":"eq","values":["US"]}]}. Never pass QP taFilters.<br>`--group-by` (json; optional) — Non-SQL analysis models only. SQL-only requests reject this field; mixed batches warn. AI-facing shape: [{"field":{"name":"country","type":"user_property"}}]. Time granularity uses --time-granularity.<br>`--sql-params` (json; optional) — SQL reports only. First run analysis report get for every target SQL report; each name must exist in every definition.params. Send value overrides only, for example [{"name":"platform","value":"ios"}] or saved part_date/time parameters with start_time/end_time. Do not send definition fields such as paramType, selectorItems, or use_timezone.<br>`--start-time` (string; optional) — Non-SQL analysis-model date override start, yyyy-MM-dd. SQL dates must be saved parameters overridden through --sql-params.<br>`--end-time` (string; optional) — Non-SQL analysis-model date override end, yyyy-MM-dd. SQL dates must be saved parameters overridden through --sql-params.<br>`--time-granularity` (string; optional) — Non-SQL analysis-model time granularity override. SQL accepts only --sql-params.<br>`--cluster-query-scope` (string; optional) — Optional physical query routing: GLOBAL aggregates accessible query clusters; SLAVE targets one --slave-cluster-id. Omit for the surface default.<br>`--slave-cluster-id` (string; optional) — Physical slave query-cluster ID from analysis query-cluster list. Required only with --cluster-query-scope SLAVE.<br>`--zone-offset` (number; optional) — Query execution timezone. Omit it to match the report UI for the current user (user selection when available, otherwise project default). Use a fixed UTC offset from -12 through 14, or 99 for local-time mode with no conversion to one fixed UTC offset; 99 is not UTC+99. This is not persisted in the report definition.<br>`--use-cache` (boolean; optional) — Whether to use cache. Default: true.<br>`--limit` (number; optional, min=1, max=1000) — Maximum inline rows for sync query results. Default: 100, max: 1000. Use export for full data.<br>`--timeout-seconds` (number; optional, min=1, max=180) — Sync timeout seconds. Default: 120, max: 180. | [report_data_run.md](report_data_run.md) |
147
141
  | `ae-cli analysis report-version rollback` | analysis.report_version.rollback | write | `--project-id` (number; required) — Numeric project ID.<br>`--report-id` (number; required) — Report ID.<br>`--target-version` (number; required) — History version to rollback to. | [report_version_rollback.md](report_version_rollback.md) |
148
142
  | `ae-cli analysis run inspect` | gateway lifecycle | read | `--run-id` (string; required) — Async run ID returned by an export capability. | [run_inspect.md](run_inspect.md) |
149
143
  | `ae-cli analysis sql-table columns` | analysis.sql_table.columns | read | `--project-id` (number; required) — Numeric project ID.<br>`--table-ref` (string; required) — Exact table_ref returned by analysis sql-table list; a unique table-only reference is also accepted.<br>`--usage` (string; optional) — Authorized table set: analysis (default) or tag_cluster. Use tag_cluster before creating SQL tags or clusters. | [sql_table_columns.md](sql_table_columns.md) |
@@ -168,22 +162,6 @@ This is the exhaustive command and flag inventory for the analysis skill. Read t
168
162
  | `ae-cli analysis user-tag update-id` | analysis.user_tag.update_id | write | `--project-id` (number; required) — Numeric project ID.<br>`--tag-name` (string; required) — Exact tag_name. Discover real values with analysis user-tag list first.<br>`--display-name` (string; optional, minLength=1, maxLength=80) — Optional new display name. Maximum: 80 characters.<br>`--entity-id` (number; optional) — Optional entity ID. Required by ID-file create commands.<br>`--input-file` (string; optional) — Local CSV path. The CLI uploads it with purpose analysis.user.id_import before executing the create/update capability.<br>`--input-file-id` (string; optional) — Reuse a file already uploaded for purpose analysis.user.id_import.<br>`--file-content` (string; optional) — Headerless UTF-8 CSV. No header row. Exactly two non-empty columns per row: association-property value or entity ID, then tag_value.<br>`--remarks` (string; optional, maxLength=400) — Optional remarks. Maximum: 400 characters.<br>`--association-property` (string; optional) — Required only for the primary user entity. The first CSV column is matched against this allowed user property; #user_id is forbidden. Omit for non-primary entities. | [user_tag_update_id.md](user_tag_update_id.md) |
169
163
  | `ae-cli analysis user-tag-member export` | analysis.user_tag_member.export | read | `--tag-name` (string; required) — Exact tag_name. Discover real values with analysis user-tag list first.<br>`--snapshot-date` (string; optional) — Optional tag snapshot date, yyyy-MM-dd.<br>`--project-id` (number; required) — Numeric project ID.<br>`--property-names` (json; optional) — Optional JSON array of user property names to include.<br>`--fields` (json; optional) — Optional result fields. Defaults to #user_id, #account_id, #distinct_id, and tag_value.<br>`--query` (string; optional) — Optional keyword filter.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--artifact-format` (string; optional) — Artifact format. Only jsonl is supported for user member/history-tag exports.<br>`--timeout-seconds` (number; optional, min=1, max=21600) — Async runtime in seconds. Default and max: 21600 (6 hours); cancel earlier with analysis query cancel --run-id <run_id>. | [user_tag_member_export.md](user_tag_member_export.md) |
170
164
  | `ae-cli analysis user-tag-member list` | analysis.user_tag_member.list | read | `--tag-name` (string; required) — Exact tag_name. Discover real values with analysis user-tag list first.<br>`--snapshot-date` (string; optional) — Optional tag snapshot date, yyyy-MM-dd.<br>`--project-id` (number; required) — Numeric project ID.<br>`--property-names` (json; optional) — Optional JSON array of user property names to include.<br>`--fields` (json; optional) — Optional result fields. Defaults to #user_id, #account_id, #distinct_id, and tag_value.<br>`--query` (string; optional) — Optional keyword filter.<br>`--use-cache` (boolean; optional) — Whether to use query cache. Default: true.<br>`--request-id` (string; optional) — Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted.<br>`--limit` (number; optional, min=1, max=200) — Bounded member row limit. Default: 50, max: 200. Values outside 1..200 are rejected.<br>`--timeout-seconds` (number; optional, min=1, max=180) — Sync timeout seconds. Default: 120, max: 180. | [user_tag_member_list.md](user_tag_member_list.md) |
171
- | `ae-cli analysis_common +list_projects` | legacy/MCP | read | None | [list_projects.md](list_projects.md) |
172
- | `ae-cli analysis_meta +batch_create_metadata` | legacy/MCP | write | `--project_id` (number; required) — Project ID<br>`--events` (json; optional) — Event creation list JSON array<br>`--event_properties` (json; optional) — Event property creation list JSON array<br>`--user_properties` (json; optional) — User property creation list JSON array | [batch_create_metadata.md](batch_create_metadata.md) |
173
- | `ae-cli analysis_meta +batch_edit_metadata` | legacy/MCP | write | `--project_id` (number; required) — Project ID<br>`--type` (string; required) — Metadata type: event, event_property, or user_property<br>`--items` (json; required) — Batch edit item list JSON array | [batch_edit_metadata.md](batch_edit_metadata.md) |
174
- | `ae-cli analysis_meta +create_entity` | legacy/MCP | write | `--project_id` (number; required) — Project ID<br>`--entity_name` (string; required) — Entity name<br>`--column_name` (string; required) — Property column name to associate with the entity<br>`--table_type` (number; required) — Table type: 0 = event property, 1 = user property | [create_entity.md](create_entity.md) |
175
- | `ae-cli analysis_meta +create_project_mark_time` | legacy/MCP | write | `--project_id` (number; required) — Project ID<br>`--marked_at` (string; required) — Marked time yyyy-MM-dd HH:mm<br>`--zone_offset` (number; optional) — Marker time zone offset<br>`--content` (string; required) — Marker content<br>`--is_visible` (number; optional) — Whether the marker is visible. Default: 1 | [create_project_mark_time.md](create_project_mark_time.md) |
176
- | `ae-cli analysis_meta +delete_project_mark_times` | legacy/MCP | high-risk-write | `--project_id` (number; required) — Project ID<br>`--mark_time_ids` (json; required) — Marker ID list JSON array | [delete_project_mark_times.md](delete_project_mark_times.md) |
177
- | `ae-cli analysis_meta +delete_track_items` | legacy/MCP | high-risk-write | `--project_id` (number; required) — Project ID<br>`--delete_data` (json; required) — Delete payload JSON object with events/eventPropNames/userPropNames/commonEventPropNames | [delete_track_items.md](delete_track_items.md) |
178
- | `ae-cli analysis_meta +generate_track_program` | legacy/MCP | write | `--project_id` (number; required) — Project ID<br>`--language` (string; required) — Language code (zh-CN, en-US, ja-JP, ko-KR)<br>`--form_data` (json; required) — Structured business context JSON object, optional fields for example: account_system, revenue_model, core_gameplay, currency_system, main_entries, predefinedEvent, developmentCarrier | [generate_track_program.md](generate_track_program.md) |
179
- | `ae-cli analysis_meta +generate_track_sdk_sample` | legacy/MCP | write | `--project_id` (number; required) — Project ID<br>`--sdk_type` (json; required) — SDK types JSON array. Allowed values: android-java, server-php, ios-swift, server-python, web-js, server-java, server-nodejs, wechat-miniapp, harmonyos-arkts, android-kotlin, unity-csharp, cocos-creator-ts, server-go, server-cpp, ios-objc | [generate_track_sdk_sample.md](generate_track_sdk_sample.md) |
180
- | `ae-cli analysis_meta +get_project_config` | legacy/MCP | read | `--project_id` (number; required) — Project ID | [get_project_config.md](get_project_config.md) |
181
- | `ae-cli analysis_meta +get_track_program` | legacy/MCP | read | `--project_id` (number; required) — Project ID | [get_track_program.md](get_track_program.md) |
182
- | `ae-cli analysis_meta +list_entities` | legacy/MCP | read | `--project_id` (number; required) — Project ID<br>`--event_name` (string; optional) — Optional event name filter<br>`--query` (string; optional) — Optional keyword filter. Fuzzy match is applied to entityName, columnName, and columnDesc; if omitted, all entities are returned.<br>`--fields` (json; optional) — Optional fields to return. Supported fields: entityId, entityName, columnName, columnDesc, selectType, tableType, entityType. Default fields when omitted: entityId, entityName, columnName, columnDesc, selectType.<br>`--limit` (number; optional, min=1, max=200) — Optional page size. Default: 50, maximum: 200.<br>`--offset` (number; optional) — Optional page offset. Default: 0. | [list_entities.md](list_entities.md) |
183
- | `ae-cli analysis_meta +list_project_mark_times` | legacy/MCP | read | `--project_id` (number; required) — Project ID<br>`--zone_offset` (number; optional) — Marker time zone offset<br>`--query` (string; optional) — Optional keyword filter. Fuzzy match on markContent.<br>`--fields` (json; optional) — Optional fields to return. Supported: id, projectId, markTime, userZoneTime, zoneOffset, markContent, isShow, creatorName, creatorId, lastModifierName, lastModifierId, createTime, updateTime.<br>`--limit` (number; optional, min=1, max=200) — Optional limit. Default: 50, maximum: 200.<br>`--offset` (number; optional) — Optional offset. Default: 0. | [list_project_mark_times.md](list_project_mark_times.md) |
184
- | `ae-cli analysis_meta +list_project_users` | legacy/MCP | read | `--project_id` (number; required) — Project ID | [list_project_users.md](list_project_users.md) |
185
- | `ae-cli analysis_meta +save_track_items` | legacy/MCP | write | `--project_id` (number; required) — Project ID<br>`--track_data` (json; required) — Track program JSON object with events/eventProps/userProps/commonEventProps | [save_track_items.md](save_track_items.md) |
186
- | `ae-cli analysis_meta +update_project_mark_time` | legacy/MCP | write | `--mark_time_id` (number; required) — Mark time ID<br>`--project_id` (number; required) — Project ID<br>`--marked_at` (string; required) — Marked time yyyy-MM-dd HH:mm<br>`--zone_offset` (number; optional) — Marker time zone offset<br>`--content` (string; required) — Marker content<br>`--is_visible` (number; optional) — Whether the marker is visible. Default: 1 | [update_project_mark_time.md](update_project_mark_time.md) |
187
165
  | `ae-cli analysis-governance asset batch-dashboard-schedule-freeze` | governance.asset.batch_dashboard_schedule_freeze | write | `--project-id` (number; required) — Numeric project ID.<br>`--node-ids` (json; optional) — Asset node ID JSON array.<br>`--reports-version` (number; optional) — Dashboard reports version.<br>`--zone-offset` (number; optional) — Dashboard zone offset.<br>`--schedule-ui-config` (json; optional) — Dashboard schedule UI config JSON.<br>`--dashboard-status` (string; optional) — Dashboard status.<br>`--refresh-type` (number; optional) — Dashboard refresh type: 1 enabled, 0 disabled.<br>`--cache-config` (json; optional) — Dashboard cache config JSON.<br>`--payload` (json; optional) — Optional snake_case object for complex capability payload fields. | [asset_batch_dashboard_schedule_freeze.md](asset_batch_dashboard_schedule_freeze.md) |
188
166
  | `ae-cli analysis-governance asset batch-delete` | governance.asset.batch_delete | high-risk-write | `--project-id` (number; required) — Numeric project ID.<br>`--node-ids` (json; optional) — Asset node ID JSON array.<br>`--payload` (json; optional) — Optional snake_case object for complex capability payload fields. | [asset_batch_delete.md](asset_batch_delete.md) |
189
167
  | `ae-cli analysis-governance asset batch-disable-auto-backup` | governance.asset.batch_disable_auto_backup | write | `--project-id` (number; required) — Numeric project ID.<br>`--node-ids` (json; optional) — Asset node ID JSON array.<br>`--clear-history-tag` (number; optional) — Whether to clear tag history: 1 yes, 0 no.<br>`--payload` (json; optional) — Optional snake_case object for complex capability payload fields. | [asset_batch_disable_auto_backup.md](asset_batch_disable_auto_backup.md) |
@@ -246,7 +224,7 @@ This is the exhaustive command and flag inventory for the analysis skill. Read t
246
224
  | `ae-cli analysis-meta property related-events` | metadata.property.related_events | read | `--project-id` (number; required) — Numeric project ID.<br>`--prop-name` (string; required) — Event property column name. | [property_related_events.md](property_related_events.md) |
247
225
  | `ae-cli analysis-meta property relation-update` | metadata.property.relation_update | write | `--project-id` (number; required) — Numeric project ID.<br>`--table-type` (string; required) — Property table type.<br>`--payload` (json; required) — Required snake_case capability payload. Read the dedicated command reference for its semantic shape; an empty object is not a generic valid payload. | [property_relation_update.md](property_relation_update.md) |
248
226
  | `ae-cli analysis-meta property update` | metadata.property.update | write | `--project-id` (number; required) — Numeric project ID.<br>`--table-type` (string; required) — Property table type.<br>`--prop-name` (string; required) — Property column name.<br>`--prop-desc` (string; optional) — Property display name.<br>`--prop-remark` (string; optional) — Property remark. | [property_update.md](property_update.md) |
249
- | `ae-cli analysis-meta virtual-event create` | metadata.virtual_event.create | write | `--project-id` (number; required) — Numeric project ID.<br>`--payload` (json; optional) — Optional snake_case object for complex capability payload fields.<br>`--event-name` (string; optional) — Virtual event name. Must start with 'ta@'.<br>`--event-desc` (string; optional) — Virtual event display name.<br>`--remark` (string; optional) — Optional virtual event remark.<br>`--events` (json; optional) — JSON array of events to combine.<br>`--filter` (json; optional) — Optional global filter JSON.<br>`--override` (boolean; optional) — Whether to override an existing virtual event rule. | [virtual_event_create.md](virtual_event_create.md) |
227
+ | `ae-cli analysis-meta virtual-event create` | metadata.virtual_event.create | write | `--project-id` (number; required) — Numeric project ID.<br>`--payload` (json; optional) — Optional snake_case object for complex capability payload fields.<br>`--event-name` (string; optional) — Virtual event name. Must start with 'ta@'.<br>`--event-desc` (string; optional) — Virtual event display name.<br>`--remark` (string; optional) — Optional virtual event remark.<br>`--events` (json; optional) — Event array using snake_case event_name and optional AI-facing filter {relation,items:[{field:{name,type?},operator,values?}]}.<br>`--filter` (json; optional) — Optional AI-facing global filter {relation,items:[{field:{name,type?},operator,values?}]}; raw taFilters/junctionKind are rejected.<br>`--override` (boolean; optional) — Whether to override an existing virtual event rule. | [virtual_event_create.md](virtual_event_create.md) |
250
228
  | `ae-cli analysis-meta virtual-event delete` | metadata.virtual_event.delete | high-risk-write | `--project-id` (number; required) — Numeric project ID.<br>`--v-event-id` (number; required) — Virtual event ID. | [virtual_event_delete.md](virtual_event_delete.md) |
251
229
  | `ae-cli analysis-meta virtual-event get` | metadata.virtual_event.get | read | `--project-id` (number; required) — Numeric project ID.<br>`--v-event-id` (number; required) — Virtual event ID. | [virtual_event_get.md](virtual_event_get.md) |
252
230
  | `ae-cli analysis-meta virtual-property create` | metadata.virtual_property.create | write | `--project-id` (number; required) — Numeric project ID.<br>`--sql-expression` (string; required) — SQL expression used to calculate the virtual property.<br>`--v-prop` (json; optional) — Virtual property JSON object with property.column_name/table_type/select_type fields.<br>`--property-name` (string; optional) — Virtual property name. Must start with '#vp@'.<br>`--property-desc` (string; optional) — Virtual property display name.<br>`--table-type` (string; optional) — Property table type: event or user.<br>`--select-type` (string; optional) — Property value type: string, number, bool, or datetime.<br>`--property-remark` (string; optional) — Optional virtual property remark.<br>`--properties` (json; optional) — Dependent property JSON array.<br>`--sql-event-relation-type` (string; optional) — relation_default, relation_always, or relation_by_setting.<br>`--related-events` (json; optional) — Related events JSON array when using relation_by_setting.<br>`--tag-date-policies` (json; optional) — Optional tag date policies JSON array.<br>`--replace-remark` (string; optional) — Replacement remark.<br>`--replace-suggestion` (string; optional) — Replacement suggestion. | [virtual_property_create.md](virtual_property_create.md) |
@@ -2,6 +2,8 @@
2
2
 
3
3
  Submit dashboard report data as a downloadable async artifact. Dashboard report data follows report-data model coverage: the 12 analysis report models from `ai_models.md` plus tag report data.
4
4
 
5
+ Typical closed loop: find the dashboard and target reports -> resolve exact filters and optional physical route -> submit export -> preserve IDs -> inspect -> download the completed artifact -> verify actual route fields inside the exported result.
6
+
5
7
  Routing: read [`analysis_data_retrieval.md`](analysis_data_retrieval.md) before choosing this `export` command instead of `dashboard-report-data run`.
6
8
 
7
9
  Do not use this command for bounded inline previews; use `dashboard-report-data run` when the requested result fits the sync data retrieval rule.
@@ -9,10 +11,10 @@ Do not use this command for bounded inline previews; use `dashboard-report-data
9
11
  Command:
10
12
 
11
13
  ```bash
12
- ae-cli analysis dashboard-report-data export --project-id <project_id> --dashboard-id <dashboard_id> [--report-ids '[1,2]'] [--filters '{...}'] [--start-time <time>] [--end-time <time>] [--zone-offset <offset>] [--artifact-format jsonl]
14
+ ae-cli analysis dashboard-report-data export --project-id <project_id> --dashboard-id <dashboard_id> [--report-ids '[1,2]'] [--filters '{...}'] [--cluster-query-scope GLOBAL|SLAVE] [--slave-cluster-id <id>] [--artifact-format jsonl]
13
15
  ```
14
16
 
15
- Input sends `project_id`, `dashboard_id`, and optional `report_ids`, `filters`, `start_time`, `end_time`, `zone_offset`, `use_cache`, `request_id`, `timeout_seconds`, `format`. When `--zone-offset` is specified, that timezone is used for every selected non-SQL report. When omitted, the current user's `currentTimezone` is used when available, otherwise the project default. Fixed UTC offsets are `-12` through `14`; `99` is local-time mode and is not UTC+99. Use CLI flag `--artifact-format` for the gateway `format` input; `--format` is the CLI output formatter. Async export has no inline row limit. Runtime defaults to and is capped at 21600 seconds (6 hours); cancel earlier with `analysis query cancel --run-id <run_id>`. The routing rule lives in [`analysis_data_retrieval.md`](analysis_data_retrieval.md).
17
+ Omit cluster routing to follow the saved dashboard configuration. For an explicit route, use `GLOBAL` or `SLAVE` plus one physical cluster ID returned by `analysis query-cluster list`. SQL reports reject effective `GLOBAL`. Use CLI flag `--artifact-format` for the gateway `format` input; `--format` is only the CLI output formatter.
16
18
 
17
19
  `--filters` uses the same AI-facing filter model as report data. The gateway resolves fields and compiles it to the dashboard backend filter. Do not pass a dashboard UI control dump or raw QP filter. Minimal shape:
18
20
 
@@ -2,6 +2,8 @@
2
2
 
3
3
  Execute bounded inline dashboard report data queries. Dashboard report data follows report-data model coverage: the 12 analysis report models from `ai_models.md` plus tag report data.
4
4
 
5
+ Typical closed loop: find the dashboard -> inspect its reports -> resolve exact filter values when needed -> optionally resolve a physical query route -> run -> verify actual route and per-report warnings -> drill down through the returned report source.
6
+
5
7
  Routing: read [`analysis_data_retrieval.md`](analysis_data_retrieval.md) before choosing this `run` command instead of `dashboard-report-data export`.
6
8
 
7
9
  Do not use this command for full, unknown-size, larger than 1000-row, or long-running dashboard report data; use `dashboard-report-data export`.
@@ -9,10 +11,10 @@ Do not use this command for full, unknown-size, larger than 1000-row, or long-ru
9
11
  Command:
10
12
 
11
13
  ```bash
12
- ae-cli analysis dashboard-report-data run --project-id <project_id> --dashboard-id <dashboard_id> [--report-ids '[1,2]'] [--filters '{...}'] [--start-time <time>] [--end-time <time>] [--zone-offset <offset>] [--limit 100] [--timeout-seconds 180]
14
+ ae-cli analysis dashboard-report-data run --project-id <project_id> --dashboard-id <dashboard_id> [--report-ids '[1,2]'] [--filters '{...}'] [--cluster-query-scope GLOBAL|SLAVE] [--slave-cluster-id <id>] [--limit 100] [--timeout-seconds 180]
13
15
  ```
14
16
 
15
- Input sends `project_id`, `dashboard_id`, and optional `report_ids`, `filters`, `start_time`, `end_time`, `zone_offset`, `use_cache`, `request_id`, `timeout_seconds`, `limit`. When `--zone-offset` is specified, that timezone is used for every selected non-SQL report. When omitted, the current user's `currentTimezone` is used when available, otherwise the project default. Fixed UTC offsets are `-12` through `14`; `99` is local-time mode and is not UTC+99. Control defaults: `--limit` default 100 / max 1000, `--timeout-seconds` default and max 180. An explicitly supplied lower timeout still wins. The routing rule lives in [`analysis_data_retrieval.md`](analysis_data_retrieval.md).
17
+ Cluster routing is optional. Omit it to follow the dashboard's saved physical-cluster configuration; this differs from report/ad-hoc current-self default. `GLOBAL` explicitly aggregates and `SLAVE` requires one ID returned by `analysis query-cluster list`. SQL dashboard reports reject effective `GLOBAL` and are reported as unsupported rather than silently queried elsewhere.
16
18
 
17
19
  `--filters` uses the same AI-facing filter model as report data. The gateway resolves fields and compiles it to the dashboard backend filter. Do not pass a dashboard UI control dump or raw QP filter. Minimal shape:
18
20
 
@@ -22,7 +24,7 @@ Input sends `project_id`, `dashboard_id`, and optional `report_ids`, `filters`,
22
24
 
23
25
  Dashboard `filters`, `start_time`, and `end_time` do not apply to SQL reports. The query still succeeds and returns those SQL report results. Inspect `data.warnings[]`; `OVERRIDE_IGNORED_FOR_MODEL` contains the affected SQL `report_ids` and `ignored_fields`. To change SQL conditions, query the SQL report directly with `analysis report-data run` and saved `definition.params` through `--sql-params`.
24
26
 
25
- Output is the gateway envelope. `data.effective_zone_offset` is the timezone actually used by the query, and each report source repeats it as `sources[].effective_zone_offset`. `data` also contains bounded inline report data, optional structured `warnings`, plus `query_context_id` and per-report `sources[].drilldown` options when a returned report exposes follow-up actions. Unsupported report models have empty actions.
27
+ Output is the gateway envelope. Verify `data.actual_cluster_query_scope`, optional `data.actual_slave_cluster_id`, and `data.cluster_query_scope_source`; `DASHBOARD_CONFIGURATION` means the caller omitted an explicit scope. `data` also contains bounded inline report data, warnings, `query_context_id`, and per-report drilldown options.
26
28
 
27
29
  An empty dashboard 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. Mixed dashboard batches keep successful data and return `meta.partial`, counts, and per-report `meta.failures`.
28
30
 
@@ -6,6 +6,7 @@ Read [`analysis_drilldown_contract.md`](analysis_drilldown_contract.md) and firs
6
6
 
7
7
  ```bash
8
8
  ae-cli analysis drilldown-entities export \
9
+ --project-id <project_id> \
9
10
  --query-context-id <sync_preview_query_context_id> \
10
11
  [--source '{"report_id":1001}'] \
11
12
  --coordinate '<same returned coordinate>' \
@@ -14,6 +15,8 @@ ae-cli analysis drilldown-entities export \
14
15
  [--timeout-seconds 21600]
15
16
  ```
16
17
 
18
+ `--project-id` must match the project stored by `query_context_id`; a mismatch is rejected before export execution.
19
+
17
20
  Property support matches the synchronous preview exactly:
18
21
 
19
22
  - For the `#user_id` user subject, `--properties` accepts `[{"columnName":"<property_name>","tableType":"user"}]`. The artifact always retains `#user_id`, `#account_id`, and `#distinct_id` plus the requested user properties.
@@ -8,6 +8,7 @@ Read [`analysis_drilldown_contract.md`](analysis_drilldown_contract.md) first. C
8
8
 
9
9
  ```bash
10
10
  ae-cli analysis drilldown-entities run \
11
+ --project-id <project_id> \
11
12
  --query-context-id <sync_preview_query_context_id> \
12
13
  [--source '{"report_id":1001}'] \
13
14
  --coordinate '<merged returned row/column/metric coordinate>' \
@@ -16,7 +17,7 @@ ae-cli analysis drilldown-entities run \
16
17
  [--timeout-seconds 120]
17
18
  ```
18
19
 
19
- The context, source, and coordinate must all come from the same synchronous preview. Select a visible row from `row_options`, a drillable column from `column_options`, and the relevant metric option; shallow-merge their coordinate fragments. Never send `row_index`, `column_index`, `values`, `label`, `target_id`, raw QP, or a coordinate derived from an export file.
20
+ `--project-id` must be the project used by the synchronous preview and must match the stored query context. The context, source, and coordinate must all come from that same preview. Select a visible row from `row_options`, a drillable column from `column_options`, and the relevant metric option; shallow-merge their coordinate fragments. Never send `row_index`, `column_index`, `values`, `label`, `target_id`, raw QP, or a coordinate derived from an export file.
20
21
 
21
22
  Property support depends on the returned subject:
22
23
 
@@ -6,6 +6,7 @@ Use this only when the selected synchronous preview metric advertises `drilldown
6
6
 
7
7
  ```bash
8
8
  ae-cli analysis drilldown-events export \
9
+ --project-id <project_id> \
9
10
  --query-context-id <sync_preview_query_context_id> \
10
11
  [--source '{"report_id":1001}'] \
11
12
  --coordinate '<same returned coordinate>' \
@@ -14,6 +15,8 @@ ae-cli analysis drilldown-events export \
14
15
  [--timeout-seconds 21600]
15
16
  ```
16
17
 
18
+ `--project-id` must match the project stored by `query_context_id`; a mismatch is rejected before export execution.
19
+
17
20
  This command does not accept `--limit`, `--offset`, `--page-num`, or `--page-size`. Common executes one full-download query and streams its result directly into the artifact; it does not repeatedly call the synchronous preview. “All” follows the platform full-download ceiling (`model_full_download_limit`), not an unbounded query.
18
21
 
19
22
  When `--properties` is present, the artifact contains required system event columns plus exactly the requested event properties. The export and synchronous preview use the same projection contract.
@@ -8,6 +8,7 @@ Read [`analysis_drilldown_contract.md`](analysis_drilldown_contract.md) first. C
8
8
 
9
9
  ```bash
10
10
  ae-cli analysis drilldown-events run \
11
+ --project-id <project_id> \
11
12
  --query-context-id <sync_preview_query_context_id> \
12
13
  [--source '{"report_id":1001}'] \
13
14
  --coordinate '{"group_values":["Beijing"],"date":"2026-07-16","metric_index":0}' \
@@ -16,7 +17,7 @@ ae-cli analysis drilldown-events run \
16
17
  [--timeout-seconds 120]
17
18
  ```
18
19
 
19
- `--query-context-id` must come from the same synchronous preview that returned the selected source and options. `--source` is required only to disambiguate multiple returned sources. Assemble `--coordinate` only by merging the selected returned option fragments. Do not pass `target_id`, raw QP, display-only dates, or values from an export/download.
20
+ `--project-id` must be the project used by that synchronous preview; Common rejects it if it does not match the stored query context. `--query-context-id` must come from the same synchronous preview that returned the selected source and options. `--source` is required only to disambiguate multiple returned sources. Assemble `--coordinate` only by merging the selected returned option fragments. Do not pass `target_id`, raw QP, display-only dates, or values from an export/download.
20
21
 
21
22
  `--properties` is an optional exact event-property projection. Omit it for default columns; string arrays such as `["#event_time"]` are invalid. Each item uses the backend field names `columnName` and `tableType`, for example `[{"columnName":"<event_property_name>","tableType":"event"}]`. `tableType` uses the documented name `event`, not a numeric enum code. Required system event columns remain present, but unrelated event properties must not be returned.
22
23
 
@@ -6,6 +6,7 @@ Export the complete event sequence for one user from a drilldown context. Do not
6
6
 
7
7
  ```bash
8
8
  ae-cli analysis drilldown-user-events export \
9
+ --project-id <project_id> \
9
10
  --drilldown-context-id <drilldown_context_id> \
10
11
  --user-id <user_id> \
11
12
  [--properties '[{"columnName":"<event_property_name>","tableType":"event"}]'] \
@@ -14,6 +15,8 @@ ae-cli analysis drilldown-user-events export \
14
15
  [--timeout-seconds 21600]
15
16
  ```
16
17
 
18
+ `--project-id` must match the project stored by `drilldown_context_id`; a mismatch is rejected before export execution.
19
+
17
20
  The nested backend keys are exactly `columnName` and `tableType`, and the table type is the named value `event`. String-name arrays, numeric enum codes, and snake_case rewrites are invalid. With an explicit projection, the artifact retains `#user_id`, account ID, visitor ID, event name, and event time and appends exactly the requested event properties. `#user_id` is internal; Agents should normally present account ID and visitor ID to customers.
18
21
 
19
22
  Use the exact `drilldown_context_id` and canonical `user_id` returned by a user-subject `analysis drilldown-entities run`. Do not use a custom entity, an entity export artifact, or a guessed identity. Export does not accept `--limit`, `--offset`, `--page-num`, or `--page-size`; Common builds the same authorized event-sequence query without the synchronous 1000-row preview cap and streams one `csv.gz` artifact. The platform full-download ceiling (`model_full_download_limit`) still applies.
@@ -10,6 +10,7 @@ Do not pass raw QP.
10
10
 
11
11
  ```bash
12
12
  ae-cli analysis drilldown-user-events run \
13
+ --project-id <project_id> \
13
14
  --drilldown-context-id <drilldown_context_id> \
14
15
  --user-id <user_id> \
15
16
  [--sort-order desc] \
@@ -20,6 +21,7 @@ ae-cli analysis drilldown-user-events run \
20
21
  ## Input
21
22
 
22
23
  - `--drilldown-context-id`: returned by the same user-subject `analysis drilldown-entities run`.
24
+ - `--project-id`: the project used by that drilldown; it must match the project stored by `drilldown_context_id`.
23
25
  - `--user-id`: canonical `user_id` from one item in that same response. Never substitute `entity_value`, `#distinct_id`, account ID, or another identity field.
24
26
  - `--properties`: optional exact event-property projection. Omit it to use the default event columns. If present, each item uses backend keys `columnName` and `tableType`, for example `[{"columnName":"<event_property_name>","tableType":"event"}]`. `#user_id`, account ID, visitor ID, event name, and event time remain present; unrelated event properties must not be returned. `#user_id` is an internal association key, so Agents should normally display account ID and visitor ID to customers. Do not pass numeric table-type codes, string-name arrays, or snake_case nested keys.
25
27
  - `--sort-order`: `asc` or `desc`.
@@ -9,7 +9,7 @@ ae-cli analysis entity id-import-options --project-id <project_id> --entity-id <
9
9
  If the entity ID is not already known, discover it first instead of guessing:
10
10
 
11
11
  ```bash
12
- ae-cli analysis_meta +list_entities --project_id <project_id> --fields '["entityId","entityName","columnName","entityType"]'
12
+ ae-cli analysis project entity list --project-id <project_id> --fields '["entityId","entityName","columnName","entityType"]'
13
13
  ```
14
14
 
15
15
  - `match_mode=user_property`: `--association-property` is required and must be copied from `association_properties`; `#user_id` is forbidden.
@@ -0,0 +1,47 @@
1
+ # analysis filter-value list
2
+
3
+ List stored candidate values for one event property, user property, user tag, or user cluster whose identifier is already known.
4
+
5
+ ## Purpose
6
+
7
+ Use this capability when an analysis filter needs an exact stored value but the caller knows only the business wording. Typical examples are checking whether a channel is stored as `iOS`, `ios`, or `Apple`, or narrowing a high-cardinality property with a prefix before constructing a report or ad-hoc filter.
8
+
9
+ Do not use it to discover property names, calculate value frequencies, enumerate all raw rows, or replace an analysis aggregation. Resolve the property through metadata or compiler clarification first. The result is a candidate-value aid, not proof of frequency or completeness.
10
+
11
+ ## Command
12
+
13
+ ```bash
14
+ ae-cli analysis filter-value list \
15
+ --project-id <project_id> \
16
+ --property-name <property_name> \
17
+ --table-type event|user \
18
+ [--event-name <event_name>] \
19
+ [--search-prefix <text>] \
20
+ [--zone-offset <offset>] \
21
+ [--cluster-date-policy LATEST|AUTO|SPECIFIED] \
22
+ [--specified-cluster-date yyyy-MM-dd] \
23
+ [--report-mode true|false]
24
+ ```
25
+
26
+ `--event-name` narrows an event-property lookup. `--specified-cluster-date` is required only with `--cluster-date-policy SPECIFIED` and is rejected otherwise. Here “cluster date” means a 用户分群/人群包 snapshot date; it is unrelated to the physical 查询集群 returned by `analysis query-cluster list`.
27
+
28
+ Output `data.items` contains permission-filtered candidate values. An empty array is successful: no visible candidate matched the selected property and prefix.
29
+
30
+ ## Tag and cluster snapshot semantics
31
+
32
+ For user tags and user clusters, `LATEST` means the latest available computed result snapshot. It is not a tag definition or configuration release, and it does not require a version list, version ID, draft state, or publish state.
33
+
34
+ Natural-language routing:
35
+
36
+ - “查询标签 X 最新版本/最新结果有哪些值” → resolve `X` with `analysis user-tag list`, then call `analysis filter-value list` with the returned exact `tag_name`, `--table-type user`, and `--cluster-date-policy LATEST`.
37
+ - “查询分群 X 最新结果的候选值” → resolve `X` with `analysis user-cluster list`, then use the same candidate-value command with `--cluster-date-policy LATEST`.
38
+
39
+ Do not route either request to a definition-version workflow. `LATEST`, `AUTO`, and `SPECIFIED` select computed data snapshots only.
40
+
41
+ ## Typical workflow
42
+
43
+ 1. Resolve the exact event/property identifier or tag/cluster machine name from the matching metadata or asset list.
44
+ 2. Call `analysis filter-value list`, using `--search-prefix` when the value space is large.
45
+ 3. Select only a returned exact value; do not normalize spelling or invent a synonym.
46
+ 4. Put that value into `report-data run`, `dashboard-report-data run`, or `adhoc run`.
47
+ 5. Verify the result scope and, when needed, follow the returned synchronous query context into drilldown.
@@ -7,12 +7,12 @@ Do not use to list all spaces. Use `project-space list`.
7
7
  Command:
8
8
 
9
9
  ```bash
10
- ae-cli analysis project-space get --project-id <project_id> --space-id <space_id> [--fields '["spaceId","spaceName"]']
10
+ ae-cli analysis project-space get --project-id <project_id> --space-id <space_id> [--fields '["space_id","space_name"]']
11
11
  ```
12
12
 
13
13
  Input sends `project_id`, `space_id`, and optional `fields`.
14
14
 
15
- Supported fields are `spaceId`, `spaceName`, `spaceDesc`, `avatarType`, `colorKey`, `avatar`,
16
- `allAuthUserAuthority`, `createTime`, `updateTime`, and `owner`.
15
+ Supported fields are `space_id`, `space_name`, `space_desc`, `avatar_type`, `color_key`, `avatar`,
16
+ `all_auth_user_authority`, `create_time`, `update_time`, and `owner`.
17
17
 
18
18
  Output is the gateway envelope. `data` contains project-space detail with snake_case field names.
@@ -2,12 +2,12 @@
2
2
 
3
3
  Use when the user needs project spaces they can access.
4
4
 
5
- Do not use for project lookup or project ID verification. Use `analysis_common +list_projects`.
5
+ Do not use for project lookup or project ID verification. Use `analysis project info list`.
6
6
 
7
7
  Command:
8
8
 
9
9
  ```bash
10
- ae-cli analysis project-space list --project-id <project_id> [--query <keyword>] [--fields '["id","name"]'] [--limit 50] [--offset 0]
10
+ ae-cli analysis project-space list --project-id <project_id> [--query <keyword>] [--fields '["space_id","name","space_desc"]'] [--limit 50] [--offset 0]
11
11
  ```
12
12
 
13
13
  Input sends `project_id` and optional `query`, `fields`, `limit`, `offset`.
@@ -15,3 +15,7 @@ Input sends `project_id` and optional `query`, `fields`, `limit`, `offset`.
15
15
  When `has_more=true`, continue only with the returned `next_offset`; do not calculate the next page locally.
16
16
 
17
17
  Output is the gateway envelope. `data` contains project-space summaries.
18
+
19
+ Supported projection fields are `space_id`, `name`, `space_desc`, `creator`, `user_id`, `origin`,
20
+ `authority_type`, `avatar_type`, `color_key`, `avatar`, `is_favorite`, and `permissions`.
21
+ Use only these snake_case names; camelCase projection names are rejected.