@thinkingai/ae-cli 6.0.31 → 6.1.4

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 (192) hide show
  1. package/README.md +3 -2
  2. package/README.zh.md +3 -2
  3. package/dist/{capability-SQ2IWKP3.js → capability-QW4AVJHI.js} +1 -1
  4. package/dist/{capability-SEH3JWLN.js → capability-SCRFGODD.js} +1 -1
  5. package/dist/{chunk-N2QORU5D.js → chunk-7OLGDQQ2.js} +5 -2
  6. package/dist/{chunk-TKQJQXWT.js → chunk-TBHBYKXZ.js} +5 -2
  7. package/dist/index.js +51 -24
  8. package/dist/{metadata-X62TKIVK.js → metadata-BFDL6RUK.js} +2 -2
  9. package/dist/{metadata-W6JFFMBA.js → metadata-FCLDBXX2.js} +2 -2
  10. package/dist/{te-analysis-NJGNWZFC.js → te-analysis-PUVF5IF4.js} +1297 -91
  11. package/dist/{te-analysis-YGV5V5EX.js → te-analysis-UJDOKPAN.js} +1297 -91
  12. package/dist/te-common-VUX3VOXZ.js +60 -0
  13. package/dist/te-common-XLAGWNIV.js +60 -0
  14. package/dist/te-engage-K4AEUPK5.js +3894 -0
  15. package/dist/te-engage-QBCCME22.js +3894 -0
  16. package/dist/te-experiment-JINSMHMW.js +606 -0
  17. package/dist/te-experiment-NWNQHJS5.js +606 -0
  18. package/dist/{te-kb-NT33UHAE.js → te-kb-AYCODNU6.js} +56 -17
  19. package/dist/{te-meta-VKWNAWO4.js → te-meta-ARDIW3YI.js} +1 -234
  20. package/dist/{te-meta-MAAUHFQO.js → te-meta-UUROEODR.js} +1 -234
  21. package/package.json +2 -1
  22. package/skills/ae-analysis/SKILL.md +10 -7
  23. package/skills/ae-analysis/references/adhoc_export.md +3 -6
  24. package/skills/ae-analysis/references/adhoc_run.md +5 -9
  25. package/skills/ae-analysis/references/ai_models.md +17 -1
  26. package/skills/ae-analysis/references/analysis_data_retrieval.md +11 -11
  27. package/skills/ae-analysis/references/analysis_drilldown_contract.md +93 -0
  28. package/skills/ae-analysis/references/analysis_gateway_assets.md +9 -8
  29. package/skills/ae-analysis/references/asset_url_get.md +4 -3
  30. package/skills/ae-analysis/references/bi_panel_page_data_export.md +2 -2
  31. package/skills/ae-analysis/references/bi_panel_page_data_run.md +1 -1
  32. package/skills/ae-analysis/references/command_index.md +62 -28
  33. package/skills/ae-analysis/references/create_entity.md +2 -2
  34. package/skills/ae-analysis/references/dashboard_report_data_export.md +2 -2
  35. package/skills/ae-analysis/references/dashboard_report_data_run.md +2 -2
  36. package/skills/ae-analysis/references/drilldown_entities_export.md +26 -0
  37. package/skills/ae-analysis/references/drilldown_entities_run.md +33 -0
  38. package/skills/ae-analysis/references/drilldown_events_export.md +21 -0
  39. package/skills/ae-analysis/references/drilldown_events_run.md +23 -0
  40. package/skills/ae-analysis/references/drilldown_user_events_export.md +6 -3
  41. package/skills/ae-analysis/references/drilldown_user_events_run.md +6 -6
  42. package/skills/ae-analysis/references/entity_detail_export.md +2 -0
  43. package/skills/ae-analysis/references/entity_detail_run.md +8 -1
  44. package/skills/ae-analysis/references/event_detail_export.md +2 -0
  45. package/skills/ae-analysis/references/event_detail_run.md +2 -0
  46. package/skills/ae-analysis/references/event_list.md +10 -2
  47. package/skills/ae-analysis/references/list_entities.md +1 -1
  48. package/skills/ae-analysis/references/metric_create.md +13 -4
  49. package/skills/ae-analysis/references/metric_delete.md +7 -0
  50. package/skills/ae-analysis/references/metric_get.md +6 -0
  51. package/skills/ae-analysis/references/metric_list.md +16 -3
  52. package/skills/ae-analysis/references/metric_update.md +12 -1
  53. package/skills/ae-analysis/references/project_access_detail_get.md +23 -0
  54. package/skills/ae-analysis/references/project_data_power_delete.md +26 -0
  55. package/skills/ae-analysis/references/project_data_power_get.md +24 -0
  56. package/skills/ae-analysis/references/project_data_power_list.md +23 -0
  57. package/skills/ae-analysis/references/project_data_power_upsert.md +24 -0
  58. package/skills/ae-analysis/references/project_entity_create.md +27 -0
  59. package/skills/ae-analysis/references/project_entity_delete.md +25 -0
  60. package/skills/ae-analysis/references/project_entity_event_list.md +24 -0
  61. package/skills/ae-analysis/references/project_entity_get.md +24 -0
  62. package/skills/ae-analysis/references/project_entity_list.md +28 -0
  63. package/skills/ae-analysis/references/project_entity_update.md +28 -0
  64. package/skills/ae-analysis/references/project_function_list.md +24 -0
  65. package/skills/ae-analysis/references/project_info_get.md +23 -0
  66. package/skills/ae-analysis/references/project_info_list.md +26 -0
  67. package/skills/ae-analysis/references/project_info_update.md +25 -0
  68. package/skills/ae-analysis/references/project_mark_time_create.md +27 -0
  69. package/skills/ae-analysis/references/project_mark_time_delete.md +25 -0
  70. package/skills/ae-analysis/references/project_mark_time_list.md +28 -0
  71. package/skills/ae-analysis/references/project_mark_time_update.md +28 -0
  72. package/skills/ae-analysis/references/project_member_add.md +25 -0
  73. package/skills/ae-analysis/references/project_member_batch_update.md +24 -0
  74. package/skills/ae-analysis/references/project_member_candidate_list.md +25 -0
  75. package/skills/ae-analysis/references/project_member_handover_export.md +27 -0
  76. package/skills/ae-analysis/references/project_member_handover_run.md +24 -0
  77. package/skills/ae-analysis/references/project_member_import.md +25 -0
  78. package/skills/ae-analysis/references/project_member_list.md +23 -0
  79. package/skills/ae-analysis/references/project_member_receiver_list.md +23 -0
  80. package/skills/ae-analysis/references/project_member_remove.md +26 -0
  81. package/skills/ae-analysis/references/project_member_update.md +25 -0
  82. package/skills/ae-analysis/references/project_owner_update.md +27 -0
  83. package/skills/ae-analysis/references/project_permission_binding_list.md +24 -0
  84. package/skills/ae-analysis/references/project_receive_status_update.md +25 -0
  85. package/skills/ae-analysis/references/project_role_delete.md +25 -0
  86. package/skills/ae-analysis/references/project_role_function_list.md +27 -0
  87. package/skills/ae-analysis/references/project_role_get.md +23 -0
  88. package/skills/ae-analysis/references/project_role_list.md +25 -0
  89. package/skills/ae-analysis/references/project_role_upsert.md +24 -0
  90. package/skills/ae-analysis/references/project_role_user_list.md +23 -0
  91. package/skills/ae-analysis/references/project_timezone_get.md +23 -0
  92. package/skills/ae-analysis/references/project_timezone_overview.md +23 -0
  93. package/skills/ae-analysis/references/project_timezone_update.md +25 -0
  94. package/skills/ae-analysis/references/project_user_id_items_update.md +24 -0
  95. package/skills/ae-analysis/references/property_list.md +21 -6
  96. package/skills/ae-analysis/references/public_link_create.md +1 -1
  97. package/skills/ae-analysis/references/query_create_result_cluster.md +14 -32
  98. package/skills/ae-analysis/references/report_create.md +1 -1
  99. package/skills/ae-analysis/references/report_data_export.md +2 -2
  100. package/skills/ae-analysis/references/report_data_run.md +2 -2
  101. package/skills/ae-analysis/references/report_get.md +2 -0
  102. package/skills/ae-analysis/references/report_update.md +1 -1
  103. package/skills/ae-analysis/references/user_cluster_create.md +3 -1
  104. package/skills/ae-analysis/references/user_cluster_get.md +4 -0
  105. package/skills/ae-analysis/references/user_cluster_refresh.md +4 -2
  106. package/skills/ae-analysis/references/user_cluster_update.md +3 -1
  107. package/skills/ae-analysis/references/user_tag_create.md +3 -1
  108. package/skills/ae-analysis/references/user_tag_get.md +4 -0
  109. package/skills/ae-analysis/references/user_tag_refresh.md +4 -2
  110. package/skills/ae-analysis/references/user_tag_update.md +3 -1
  111. package/skills/ae-analysis/references/virtual_event_create.md +22 -3
  112. package/skills/ae-analysis/references/virtual_property_create.md +23 -2
  113. package/skills/ae-engage/SKILL.md +202 -7
  114. package/skills/ae-engage/references/activity-activity-type.md +42 -0
  115. package/skills/ae-engage/references/activity-activity.md +70 -0
  116. package/skills/ae-engage/references/activity-approval.md +53 -0
  117. package/skills/ae-engage/references/activity-task.md +87 -0
  118. package/skills/ae-engage/references/activity-topic.md +98 -0
  119. package/skills/ae-engage/references/approval-approver-delete.md +26 -0
  120. package/skills/ae-engage/references/channel-test-send.md +37 -0
  121. package/skills/ae-engage/references/channel-touch-limits-batch-update.md +28 -0
  122. package/skills/ae-engage/references/channel-touch-limits-save.md +37 -0
  123. package/skills/ae-engage/references/channel-touch-limits-toggle.md +28 -0
  124. package/skills/ae-engage/references/channel-update-config.md +36 -0
  125. package/skills/ae-engage/references/client-param.md +58 -0
  126. package/skills/ae-engage/references/common-metric.md +75 -0
  127. package/skills/ae-engage/references/config-table.md +92 -0
  128. package/skills/ae-engage/references/engage-scene-config-item.md +69 -0
  129. package/skills/ae-engage/references/operation-log-query.md +1 -1
  130. package/skills/ae-engage/references/preset-event.md +42 -0
  131. package/skills/ae-engage/references/push-language.md +39 -0
  132. package/skills/ae-engage/references/scene-config-channel.md +58 -0
  133. package/skills/ae-engage/references/scene-config-group.md +62 -0
  134. package/skills/ae-engage/references/scene-config-item.md +68 -0
  135. package/skills/ae-engage/references/scene-config-metric.md +79 -0
  136. package/skills/ae-engage/references/scene-config-param.md +72 -0
  137. package/skills/ae-engage/references/scene-preset-metric.md +45 -0
  138. package/skills/ae-engage/references/scene-strategy.md +47 -0
  139. package/skills/ae-engage/references/scene-template.md +71 -0
  140. package/skills/ae-engage/references/{ops-delete.md → task-delete.md} +3 -3
  141. package/skills/ae-engage/references/whitelist.md +72 -0
  142. package/skills/ae-engage/references/workbench-workbench.md +48 -0
  143. package/skills/ae-experiment/SKILL.md +64 -0
  144. package/skills/ae-experiment/references/batch_delete_experiment.md +11 -0
  145. package/skills/ae-experiment/references/batch_delete_feature.md +11 -0
  146. package/skills/ae-experiment/references/batch_delete_traffic_layer.md +11 -0
  147. package/skills/ae-experiment/references/cancel_experiment_query_by_request_id.md +10 -0
  148. package/skills/ae-experiment/references/check_experiment_ready.md +13 -0
  149. package/skills/ae-experiment/references/delete_metric.md +11 -0
  150. package/skills/ae-experiment/references/manage_experiment.md +15 -0
  151. package/skills/ae-experiment/references/manage_feature_status.md +11 -0
  152. package/skills/ae-experiment/references/query_bucket_list.md +10 -0
  153. package/skills/ae-experiment/references/query_experiment_detail.md +11 -0
  154. package/skills/ae-experiment/references/query_experiment_list.md +10 -0
  155. package/skills/ae-experiment/references/query_experiment_metric_trend.md +16 -0
  156. package/skills/ae-experiment/references/query_experiment_report_summary.md +12 -0
  157. package/skills/ae-experiment/references/query_experiment_sample_size_report.md +16 -0
  158. package/skills/ae-experiment/references/query_feature_detail.md +12 -0
  159. package/skills/ae-experiment/references/query_feature_list.md +10 -0
  160. package/skills/ae-experiment/references/query_metric_detail.md +11 -0
  161. package/skills/ae-experiment/references/query_metric_list.md +10 -0
  162. package/skills/ae-experiment/references/query_traffic_layer_detail.md +11 -0
  163. package/skills/ae-experiment/references/query_traffic_layer_list.md +10 -0
  164. package/skills/ae-experiment/references/save_experiment.md +17 -0
  165. package/skills/ae-experiment/references/save_feature.md +13 -0
  166. package/skills/ae-experiment/references/save_metric.md +13 -0
  167. package/skills/ae-experiment/references/save_submit_experiment.md +13 -0
  168. package/skills/ae-experiment/references/save_traffic_layer.md +13 -0
  169. package/skills/ae-generate-tracking-plan/SKILL.md +8 -5
  170. package/skills/ae-generate-tracking-plan/references/te-api.md +1 -1
  171. package/skills/ae-kb/SKILL.md +34 -8
  172. package/skills/ae-metadata/SKILL.md +1 -1
  173. package/skills/ae-metadata/references/metadata_event_get.md +4 -4
  174. package/skills/ae-metadata/references/metadata_property_dimension_table_bind_existing.md +1 -1
  175. package/skills/ae-metadata/references/metadata_property_get.md +4 -4
  176. package/dist/te-common-5NJLF3XG.js +0 -130
  177. package/dist/te-common-7VTJZPII.js +0 -130
  178. package/dist/te-engage-BUWVSSSK.js +0 -1912
  179. package/dist/te-engage-EPE3QKDE.js +0 -1912
  180. package/skills/ae-analysis/references/create_metric.md +0 -58
  181. package/skills/ae-analysis/references/create_virtual_event.md +0 -60
  182. package/skills/ae-analysis/references/create_virtual_property.md +0 -69
  183. package/skills/ae-analysis/references/delete_metric.md +0 -32
  184. package/skills/ae-analysis/references/drilldown_users_export.md +0 -17
  185. package/skills/ae-analysis/references/drilldown_users_run.md +0 -61
  186. package/skills/ae-analysis/references/get_metric.md +0 -38
  187. package/skills/ae-analysis/references/get_resource_url.md +0 -33
  188. package/skills/ae-analysis/references/list_events.md +0 -46
  189. package/skills/ae-analysis/references/list_metrics.md +0 -52
  190. package/skills/ae-analysis/references/list_properties.md +0 -47
  191. package/skills/ae-analysis/references/update_metric.md +0 -58
  192. package/dist/{chunk-HL2AJQ4Q.js → chunk-PTE56QPL.js} +3 -3
@@ -0,0 +1,23 @@
1
+ # analysis project timezone get
2
+
3
+ Use when the user needs to get project time zone configuration.
4
+
5
+ Do not use it for unrelated project-management actions or for fields not present in the common-service capability schema. Do not send camelCase aliases.
6
+
7
+ Command:
8
+
9
+ ```bash
10
+ ae-cli analysis project timezone get --project-id <project_id>
11
+ ae-cli analysis project timezone get --dry-run --project-id <project_id>
12
+ ```
13
+
14
+ Capability id: `project.timezone.get`.
15
+
16
+ Input sends `project_id`. Payload keys, JSON arrays, and projection fields must follow the common-service snake_case input schema.
17
+
18
+ Output uses the gateway envelope: success is `ok=true,data,meta`; failure is `ok=false,error`. Preserve `request_id` and `invocation_id` when present.
19
+
20
+ ## Parameters
21
+ | Parameter | Required | Description |
22
+ |---|---|---|
23
+ | `--project-id` | Yes | Numeric project ID. |
@@ -0,0 +1,23 @@
1
+ # analysis project timezone overview
2
+
3
+ Use when the user needs to get project time zone overview.
4
+
5
+ Do not use it for unrelated project-management actions or for fields not present in the common-service capability schema. Do not send camelCase aliases.
6
+
7
+ Command:
8
+
9
+ ```bash
10
+ ae-cli analysis project timezone overview --project-id <project_id>
11
+ ae-cli analysis project timezone overview --dry-run --project-id <project_id>
12
+ ```
13
+
14
+ Capability id: `project.timezone.overview`.
15
+
16
+ Input sends `project_id`. Payload keys, JSON arrays, and projection fields must follow the common-service snake_case input schema.
17
+
18
+ Output uses the gateway envelope: success is `ok=true,data,meta`; failure is `ok=false,error`. Preserve `request_id` and `invocation_id` when present.
19
+
20
+ ## Parameters
21
+ | Parameter | Required | Description |
22
+ |---|---|---|
23
+ | `--project-id` | Yes | Numeric project ID. |
@@ -0,0 +1,25 @@
1
+ # analysis project timezone update
2
+
3
+ Use when the user needs to update one project time zone configuration item.
4
+
5
+ Do not use it for unrelated project-management actions or for fields not present in the common-service capability schema. Do not send camelCase aliases.
6
+
7
+ Command:
8
+
9
+ ```bash
10
+ ae-cli analysis project timezone update --project-id <project_id> --payload <payload> --item <item>
11
+ ae-cli analysis project timezone update --dry-run --project-id <project_id> --payload <payload> --item <item>
12
+ ```
13
+
14
+ Capability id: `project.timezone.update`.
15
+
16
+ Input sends `project_id`, `payload`, `item`. Payload keys, JSON arrays, and projection fields must follow the common-service snake_case input schema.
17
+
18
+ Output uses the gateway envelope: success is `ok=true,data,meta`; failure is `ok=false,error`. Preserve `request_id` and `invocation_id` when present.
19
+
20
+ ## Parameters
21
+ | Parameter | Required | Description |
22
+ |---|---|---|
23
+ | `--project-id` | Yes | Numeric project ID. |
24
+ | `--payload` | Yes | Timezone update payload. Shape depends on item. |
25
+ | `--item` | Yes | Timezone item: timezone_toggle, zone_offset, user_timezone, project_timezone_display. |
@@ -0,0 +1,24 @@
1
+ # analysis project user-id-items update
2
+
3
+ Use when the user needs to update project virtual user ID item configuration.
4
+
5
+ Do not use it for unrelated project-management actions or for fields not present in the common-service capability schema. Do not send camelCase aliases.
6
+
7
+ Command:
8
+
9
+ ```bash
10
+ ae-cli analysis project user-id-items update --project-id <project_id> --payload <payload>
11
+ ae-cli analysis project user-id-items update --dry-run --project-id <project_id> --payload <payload>
12
+ ```
13
+
14
+ Capability id: `project.user_id_items.update`.
15
+
16
+ Input sends `project_id`, `payload`. Payload keys, JSON arrays, and projection fields must follow the common-service snake_case input schema.
17
+
18
+ Output uses the gateway envelope: success is `ok=true,data,meta`; failure is `ok=false,error`. Preserve `request_id` and `invocation_id` when present.
19
+
20
+ ## Parameters
21
+ | Parameter | Required | Description |
22
+ |---|---|---|
23
+ | `--project-id` | Yes | Numeric project ID. |
24
+ | `--payload` | Yes | Virtual user ID item configuration payload, matching VirtualUserIdConfigSaveRequestDTO in snake_case. |
@@ -1,24 +1,39 @@
1
1
  # analysis-meta property list
2
2
 
3
- Use when the user needs to list event or user properties.
3
+ Use when the user needs to browse or search event/user property metadata.
4
4
 
5
- Do not use it for property values or across mixed table types; select the event/user scope explicitly.
5
+ Do not use it for property values. Use this command only when the user explicitly wants to inspect metadata or when a prior compiler error asks for disambiguation.
6
6
 
7
7
  Command:
8
8
 
9
9
  ```bash
10
- ae-cli analysis-meta property list --project-id <project_id> --table-type <table_type>
10
+ ae-cli analysis-meta property list --project-id <project_id>
11
+ ae-cli analysis-meta property list --project-id <project_id> --scope event --event-name purchase --query demo
12
+ ae-cli analysis-meta property list --project-id <project_id> --query demo --fields '["prop_id","prop_name","prop_desc","prop_remark","select_type","table_type","authentication_status"]' --limit 20 --offset 0
11
13
  ae-cli analysis-meta property list --dry-run
12
14
  ```
13
15
 
14
16
  Capability id: `metadata.property.list`.
15
17
 
16
- Input sends `project_id`, `table_type`.
18
+ Input sends `project_id` and optional `table_type`, `scope`, `event_name`, `query`, `fields`, `limit`, `offset`, `authenticated_only`.
17
19
 
18
- Output `data.properties[]` contains property metadata for the selected table type.
20
+ Output `data.properties[]` contains property metadata. When `limit` or `offset` is provided, output also includes `total`, `limit`, `offset`, and `has_more`.
19
21
 
20
22
  ## Parameters
21
23
  | Parameter | Required | Description |
22
24
  |---|---|---|
23
25
  | `--project-id` | Yes | Numeric project ID. |
24
- | `--table-type` | Yes | Property table type. |
26
+ | `--table-type` | No | Optional property table type: `event` or `user`. |
27
+ | `--scope` | No | Optional property scope: `event` or `user`. If omitted, all scopes are queried. |
28
+ | `--event-name` | No | Optional event name filter for event properties. |
29
+ | `--query` | No | Optional keyword filter. Fuzzy match is applied to property name, description, and remark. |
30
+ | `--fields` | No | Optional fields to return as a JSON array. Supported fields: `prop_id`, `prop_name`, `prop_desc`, `prop_remark`, `select_type`, `table_type`, `sub_table_type`, `authentication_status`. |
31
+ | `--limit` | No | Optional page size. |
32
+ | `--offset` | No | Optional zero-based page offset. |
33
+ | `--authenticated-only` | No | When true, return only authenticated properties. |
34
+
35
+ ## Decision Rules
36
+
37
+ - Prefer `--scope event` or `--scope user` when the user needs a specific table type.
38
+ - Use `--authenticated-only true` only when the user explicitly asks for authenticated assets.
39
+ - For ad-hoc analysis, pass the user's property wording in the AI-facing `definition` instead of pre-querying property metadata.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Use when the user explicitly wants to generate a public link for a dashboard or BI panel.
4
4
 
5
- Do not use for internal resource URLs. Use `analysis_common +get_resource_url` when applicable.
5
+ Do not use for internal resource URLs. Use `analysis-meta asset url-get` when applicable.
6
6
 
7
7
  Command:
8
8
 
@@ -1,47 +1,29 @@
1
1
  # analysis query create-result-cluster
2
2
 
3
- Precondition: the upstream response must have `result_cluster_available=true` and the selected source must contain `target_contract`. If either is absent, do not call this command or reconstruct a target from display text.
3
+ Save the user or custom-entity population behind one selected synchronous-preview cell as that subject's reusable result cluster.
4
4
 
5
- Save users matched by a previous analysis result target as a reusable result cluster.
6
-
7
- Use this after any analysis data command that returns `query_context_id`:
8
-
9
- - `analysis adhoc run`
10
- - `analysis adhoc export`
11
- - `analysis report-data run`
12
- - `analysis report-data export`
13
- - `analysis dashboard-report-data run`
14
- - `analysis dashboard-report-data export`
15
-
16
- Do not pass raw QP.
5
+ Read [`analysis_drilldown_contract.md`](analysis_drilldown_contract.md) first. The selected metric/action must advertise `create_result_cluster`. `EVENT_LIST` and `NONE` analysis angles cannot be saved as a result cluster.
17
6
 
18
7
  ## Command
19
8
 
20
9
  ```bash
21
10
  ae-cli analysis query create-result-cluster \
22
- --query-context-id <query_context_id> \
23
- --target '<json>' \
24
- --cluster-name <cluster_name> \
11
+ --query-context-id <sync_preview_query_context_id> \
12
+ [--source '{"report_id":1001}'] \
13
+ --coordinate '<merged returned row/column/metric coordinate>' \
14
+ --cluster-name <unique_name> \
25
15
  [--display-name <display_name>] \
26
16
  [--zone-offset 8] \
27
- [--timeout-seconds 60]
17
+ [--timeout-seconds 180]
28
18
  ```
29
19
 
30
- ## Input
31
-
32
- - `--query-context-id`: returned by an analysis data run/export submit response, or by the first metadata line of a JSONL artifact.
33
- - `--target`: pass the selected source's `target_contract.default_target` directly, or copy it and replace only fields named by `target_contract.copy_from_selected_result` for a specific row or cell.
34
- - `--cluster-name`: result cluster name.
35
- - `--display-name`: optional display name.
36
-
37
- Do not use raw QP or reconstruct the first query request. The server resolves the source QP from Redis by `query_context_id`.
38
-
39
- ## Target
40
-
41
- `--target` uses the same machine-readable `sources[].target_contract` contract as [`drilldown_users_run.md`](drilldown_users_run.md).
20
+ ## Input rules
42
21
 
43
- If one `query_context_id` contains multiple report sources, include `report_id`. If it contains multiple BI chart sources, include `chart_id`. BI SQL chart contexts normally return `result_cluster_available=false`; do not create a result cluster unless the first response explicitly says `result_cluster_available=true`.
22
+ - `--query-context-id`, `--source`, and all coordinate fragments must come from the same synchronous `adhoc run`, `report-data run`, or `dashboard-report-data run` response.
23
+ - Match the desired visible row and column in `source.drilldown.row_options`/`column_options`, select the correct metric option, and shallow-merge only their `coordinate` fragments.
24
+ - Never pass `target_id`, raw QP, display-only dates, option presentation fields, or data from an export/download. Exports do not create query contexts.
25
+ - `--cluster-name` must be unique in the project and contain the backend-supported identifier characters.
44
26
 
45
- ## Output
27
+ The saved cluster subject is `source.drilldown.subject` or the selected event metric's `subject`. `USER_LIST` creates a user result cluster. `ENTITY_LIST` creates a result cluster for that custom entity; do not relabel it as a user cluster.
46
28
 
47
- The response contains the result cluster creation result from the analysis service.
29
+ The response must contain the backend cluster creation result. A successful capability envelope without a created cluster identifier/result is not sufficient evidence of completion.
@@ -26,4 +26,4 @@ ae-cli analysis report create --project-id <project_id> --report-name "Recent SQ
26
26
 
27
27
  After creation, keep the `report_id` returned by this exact create response. To verify the report, query the saved default first with `analysis report-data run` and omit `--sql-params`; then make one second query with a value-only `--sql-params` override. Do not rebuild internal `sqlViewParams` or guess an ID.
28
28
 
29
- After any successful report create, call `analysis_common +get_resource_url` with that returned `report_id` and output its `markdown_link`.
29
+ After any successful report create, call `analysis-meta asset url-get` with that returned `report_id` and output its `markdown_link`.
@@ -28,10 +28,10 @@ Override model:
28
28
 
29
29
  Mixed-model export batches are best-effort rather than rejected only for being mixed. Prefer one model per overridden export because artifact formats cannot surface submission-time warnings as prominently as inline `meta.warnings`.
30
30
 
31
- Output is the gateway envelope. `data` contains opaque `run_id` and `artifact_id`, lifecycle status and expiration, effective timeout/deadline fields, plus `query_context_id` and `query_context_expires_at` when Redis context creation succeeds. Inspect/download through the dedicated CLI commands using the IDs.
31
+ Output is the gateway envelope. `data` contains opaque `run_id` and `artifact_id`, lifecycle status and expiration, and effective timeout/deadline fields. Exports do not create `query_context_id`. Inspect/download through the dedicated CLI commands using the IDs.
32
32
 
33
33
  Keep `run_id` and `artifact_id` from the same export response. Inspect that exact `run_id`, then download only that paired `artifact_id`; never combine IDs from different exports.
34
34
 
35
35
  An empty artifact is a successful query and means the requested time range has no data. If every requested report explicitly fails, the run reaches `FAILED` instead of completing an error-only artifact. Mixed exports may contain explicit per-report error markers alongside successful report data.
36
36
 
37
- Use the submit response `query_context_id` immediately with `analysis drilldown-users run` or `analysis query create-result-cluster` when present. JSONL artifacts repeat `query_context_id` and `query_context_expires_at` in the first metadata line; CSV remains pure CSV and carries context only in the submit descriptor. Do not pass raw QP.
37
+ Never use the export response or downloaded rows as a drilldown/result-cluster source. Run a bounded synchronous preview containing the desired cell first.
@@ -38,8 +38,8 @@ A homogeneous SQL request that includes `filters`, `group_by`, `start_time`, `en
38
38
 
39
39
  For a newly created or updated dynamic SQL report, omit `--sql-params` to execute the saved default first. After that succeeds, then make one second call with `--sql-params` to change only the requested value. This separates a broken saved default from a broken override and avoids repeating the same query.
40
40
 
41
- Output is the gateway envelope. `data` contains bounded inline report result items plus `query_context_id`, `drilldown_available`, and `result_cluster_available` when a context can be created.
41
+ Output is the gateway envelope. `data` contains bounded inline report result items plus `query_context_id` and `sources[].drilldown` when the returned preview exposes follow-up actions. Each source is evaluated independently; SQL and other unsupported models have no actions.
42
42
 
43
43
  An empty batch or report result with no rows is a successful query: it means the requested time range has no data. The command fails only when every returned report entry contains an explicit execution error. Mixed batches keep successful items and return `meta.partial`, counts, and per-report `meta.failures` for partial-result handling.
44
44
 
45
- Use `query_context_id` with `analysis drilldown-users run` or `analysis query create-result-cluster`. Do not pass raw QP.
45
+ Read [`analysis_drilldown_contract.md`](analysis_drilldown_contract.md). Select only returned row/column/metric options and call only the advertised event, entity, or result-cluster action. Do not pass raw QP.
@@ -14,6 +14,8 @@ Input sends `project_id` and `report_id`.
14
14
 
15
15
  Output is the gateway envelope. `data` contains `version`, `model_type`, `definition`, report metadata, and dashboard membership in snake_case. Use `data.version` as `--report-version` when updating the same report. Raw frontend `events`, `event_view`, `visual_view`, and raw QP are not returned.
16
16
 
17
+ For a saved non-SQL report with a time granularity, `data.definition` returns the agent-facing `time_particle_size` spelling, such as `day`, `hour`, or `total`; internal `T0` through `T9` codes must never leak. If `time_particle_size` is absent, the saved definition has no readable granularity. Do not infer a granularity from the number of result rows; execute the saved report as-is or use an explicit ad-hoc definition when the user requires a specific granularity.
18
+
17
19
  This read is mandatory before applying report-data overrides. Branch on `data.model_type`:
18
20
 
19
21
  - `sql`: only `--sql-params` is valid. Every override name must already exist in `data.definition.params`; time values may be overridden only through a saved `part_date` or time parameter.
@@ -19,4 +19,4 @@ Output is the gateway envelope. `data` contains update status, `report_id`, and
19
19
 
20
20
  For the shortest safe update, read the current `version` exactly once with `analysis report get` immediately before the write; do not reuse a version from an older list or conversation turn. If a SQL dynamic parameter definition changed, query the saved default before applying an override so default persistence and override behavior are verified separately.
21
21
 
22
- After a successful update, call `analysis_common +get_resource_url` with the updated `report_id` and output its `markdown_link`.
22
+ After a successful update, call `analysis-meta asset url-get` with the updated `report_id` and output its `markdown_link`.
@@ -2,7 +2,9 @@
2
2
 
3
3
  Create a condition or SQL user cluster directly from an AI-facing definition request.
4
4
 
5
- Do not use it for uploaded-ID clusters or result-derived clusters; use `user-cluster create-id` or `query create-result-cluster`. A successful create automatically starts the initial computation. Do not immediately call `user-cluster refresh`; use `user-cluster get` to observe the initial refresh/computation status and refresh only for a later explicit recomputation.
5
+ Do not use it for uploaded-ID clusters or result-derived clusters; use `user-cluster create-id` or `query create-result-cluster`. A successful create automatically starts the initial computation; it does not mean the result is already complete. Do not call `user-cluster refresh` afterward. Poll `user-cluster get` until `progress=100` and `refresh_end_time` is not older than `update_time` before using `users_num` or querying members.
6
+
7
+ The response reports this directly: `computation.triggered_automatically=true`, `computation.status=submitted`, and `result_freshness.is_stale=true`. Follow `next_action`; when it is `poll_get`, invoke `next_capability_id` with the exact `next_input` returned by the command.
6
8
 
7
9
  Flags: `--project-id`, `--cluster-name`, `--display-name`, `--definition-request` required. Optional: `--authenticated-only`, `--zone-offset`, `--entity-id`. The cluster type comes from `definition_request.type`.
8
10
 
@@ -4,6 +4,10 @@ Get exact user cluster details after discovery.
4
4
 
5
5
  Do not use it for fuzzy discovery or member data. Output contains saved cluster metadata/definition for the requested names.
6
6
 
7
+ After `user-cluster create` or an update containing `--definition-request`, use this command to observe the automatically started computation; do not trigger `user-cluster refresh`. Until `progress=100` and `refresh_end_time` is not older than `update_time`, `users_num` and member queries may still reflect the previous successful computation. Treat that state as stale data, not as evidence that the new definition was compiled or calculated incorrectly.
8
+
9
+ The raw backend value is returned under `result`. The response also provides aggregate and per-cluster `computation`, `result_freshness`, and `next_action`. `poll_get` includes an exact capability/input pair; `none` means the latest result is usable. `potentially_stale` with `is_stale=null` means `refresh_end_time` predates `update_time`, but the update may have changed metadata only; inspect the latest update instead of refreshing automatically.
10
+
7
11
  Flags: `--project-id`, `--cluster-names` JSON array.
8
12
 
9
13
  ```bash
@@ -1,8 +1,10 @@
1
1
  # analysis user-cluster refresh
2
2
 
3
- Refresh a user cluster by exact `cluster_name`.
3
+ Explicitly recompute an existing user cluster by exact `cluster_name` without changing its definition.
4
4
 
5
- Do not use it to change a definition or upload ID members. Output means recomputation was submitted; inspect cluster state before reporting completion.
5
+ Use this only when an unchanged definition must be run again, such as an explicit retry or a recomputation against changed source data. Do not call it after `user-cluster create` or an update containing `--definition-request`; those commands already start computation automatically. Output means recomputation was submitted, not completed. Poll `user-cluster get` and verify the new computation before using `users_num` or querying members.
6
+
7
+ The response marks this as an explicit trigger: `computation.triggered_by_command=true`, `computation.triggered_automatically=false`, `computation.status=submitted`, and `result_freshness.is_stale=true`. Follow the returned `next_action`, `next_capability_id`, and `next_input` to poll.
6
8
 
7
9
  Flags: `--project-id`, `--cluster-name` required.
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  Update a condition or SQL user cluster. Discover the exact `cluster_name` first.
4
4
 
5
- Do not use it for ID-file membership replacement or to create a missing cluster. Output is the updated cluster result; a submitted recomputation may still be in progress.
5
+ Do not use it for ID-file membership replacement or to create a missing cluster. Supplying `--definition-request` automatically starts recomputation after the definition is updated; do not call `user-cluster refresh` afterward. Updating only `--display-name` or `--remark` does not recompute. A successful update means the definition was saved, not that the new result is complete. Poll `user-cluster get` until `progress=100` and `refresh_end_time` is not older than `update_time` before using `users_num` or querying members.
6
+
7
+ The response distinguishes both paths. A definition update returns `computation.triggered_automatically=true`, `result_freshness.is_stale=true`, and normally `next_action=poll_get` with an exact capability/input pair. A display-name/remark-only update returns `computation.status=not_triggered`, `result_freshness.status=fresh`, and `next_action=none`.
6
8
 
7
9
  Flags: `--project-id`, `--cluster-name` required. Optional: `--display-name`, `--definition-request`, `--authenticated-only`, `--remark`, `--zone-offset`. The cluster type comes from `definition_request.type` when the definition changes.
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  Create a user tag directly from an AI-facing definition request.
4
4
 
5
- Do not use it for uploaded-ID tags; use `user-tag create-id`. Output identifies the created tag and initial state; computation completion is a later state.
5
+ Do not use it for uploaded-ID tags; use `user-tag create-id`. A successful create automatically starts the initial computation; it does not mean the result is already complete. Do not call `user-tag refresh` afterward. Poll `user-tag get` until `progress=100` and `refresh_time` is present before using `users_num` or querying members.
6
+
7
+ The response reports this directly: `computation.triggered_automatically=true`, `computation.status=submitted`, and `result_freshness.is_stale=true`. Follow `next_action`; when it is `poll_get`, invoke `next_capability_id` with the exact `next_input` returned by the command.
6
8
 
7
9
  Flags: `--project-id`, `--tag-name`, `--display-name`, `--definition-request` required. Optional: `--authenticated-only`, `--zone-offset`, `--entity-id`. The tag type comes from `definition_request.type`.
8
10
 
@@ -4,6 +4,10 @@ Get exact user tag details after discovery.
4
4
 
5
5
  Do not use it for fuzzy discovery, member data, or history statistics. Output contains saved tag metadata/definition for the requested names.
6
6
 
7
+ After `user-tag create` or an update containing `--definition-request`, use this command to observe the automatically started computation; do not trigger `user-tag refresh`. For create, wait until `progress=100` and `refresh_time` is present. For a definition update, record the previous `refresh_time` first and wait until `progress=100` and `refresh_time` advances. Until then, `users_num` and member queries may still reflect the previous successful computation; treat that as stale data, not as evidence that the new definition was compiled or calculated incorrectly.
8
+
9
+ The raw backend value is returned under `result`. The response also provides aggregate and per-tag `computation`, `result_freshness`, and `next_action`. `poll_get` includes an exact capability/input pair; `none` means the latest result is usable. `potentially_stale` with `is_stale=null` means `refresh_time` predates `update_time`, but the update may have changed metadata only; inspect the latest update instead of refreshing automatically.
10
+
7
11
  Flags: `--project-id`, `--tag-names` JSON array.
8
12
 
9
13
  ```bash
@@ -1,8 +1,10 @@
1
1
  # analysis user-tag refresh
2
2
 
3
- Refresh a user tag by exact `tag_name`.
3
+ Explicitly recompute an existing user tag by exact `tag_name` without changing its definition.
4
4
 
5
- Do not use it to change the definition or refresh one history snapshot. Output means recomputation was submitted; inspect tag state before reporting completion.
5
+ Use this only when an unchanged definition must be run again, such as an explicit retry or a recomputation against changed source data. Do not call it after `user-tag create` or an update containing `--definition-request`; those commands already start computation automatically. Do not use it to refresh one history snapshot. Output means recomputation was submitted, not completed. Poll `user-tag get` and verify the new computation before using `users_num` or querying members.
6
+
7
+ The response marks this as an explicit trigger: `computation.triggered_by_command=true`, `computation.triggered_automatically=false`, `computation.status=submitted`, and `result_freshness.is_stale=true`. Follow the returned `next_action`, `next_capability_id`, and `next_input` to poll.
6
8
 
7
9
  Flags: `--project-id`, `--tag-name` required.
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  Update a user tag. Discover the exact `tag_name` first.
4
4
 
5
- Do not use it for ID-file value replacement or to create a missing tag. Output is the updated tag result; a submitted recomputation may still be in progress.
5
+ Do not use it for ID-file value replacement or to create a missing tag. Supplying `--definition-request` automatically starts recomputation after the definition is updated; do not call `user-tag refresh` afterward. Updating only `--display-name` or `--remark` does not recompute. A successful update means the definition was saved, not that the new result is complete. Record the current `refresh_time` before updating, then poll `user-tag get` until `progress=100` and `refresh_time` advances before using `users_num` or querying members.
6
+
7
+ The response distinguishes both paths. A definition update returns `computation.triggered_automatically=true`, `result_freshness.is_stale=true`, and normally `next_action=poll_get` with an exact capability/input pair. A display-name/remark-only update returns `computation.status=not_triggered`, `result_freshness.status=fresh`, and `next_action=none`.
6
8
 
7
9
  Flags: `--project-id`, `--tag-name` required. Optional: `--display-name`, `--definition-request`, `--authenticated-only`, `--remark`, `--zone-offset`. The tag type comes from `definition_request.type` when the definition changes.
8
10
 
@@ -2,18 +2,22 @@
2
2
 
3
3
  Use when the user needs to create a virtual event from events and filters.
4
4
 
5
- Do not use it for super-event creation. Prefer typed `analysis_meta +create_virtual_event` unless an exact virtual-event rule DTO is already available.
5
+ Do not use it for super-event creation.
6
+
7
+ Before constructing `--events` / `--filter`, validate the available events and properties with `analysis-meta event list` and `analysis-meta property list` in the same `project_id`.
6
8
 
7
9
  Command:
8
10
 
9
11
  ```bash
12
+ ae-cli analysis-meta virtual-event create --project-id <project_id> --event-name ta@demo --event-desc demo --events '[{"eventName":"purchase"}]'
13
+ ae-cli analysis-meta virtual-event create --project-id <project_id> --event-name ta@demo2 --event-desc demo --remark demo --events '[{"eventName":"add_to_cart"}]' --filter '{}' --override true
10
14
  ae-cli analysis-meta virtual-event create --project-id <project_id> --override false --payload '{"event_name":"qualified_purchase","event_desc":"Qualified purchase","rule":{"events":[...],"filter":{...}}}'
11
15
  ae-cli analysis-meta virtual-event create --dry-run
12
16
  ```
13
17
 
14
18
  Capability id: `metadata.virtual_event.create`.
15
19
 
16
- Input sends `project_id`, `override`, `payload`.
20
+ Input sends `project_id`, `override`, and `payload`. When typed flags are used, ae-cli builds `payload` from `event_name`, `event_desc`, `remark`, and `rule.events/filter`.
17
21
 
18
22
  Output is a successful gateway envelope with no business data. Read back with `virtual-event get` when the created event ID is known.
19
23
 
@@ -22,4 +26,19 @@ Output is a successful gateway envelope with no business data. Read back with `v
22
26
  |---|---|---|
23
27
  | `--project-id` | Yes | Numeric project ID. |
24
28
  | `--override` | No | Whether to override an existing virtual event rule. |
25
- | `--payload` | Yes | Virtual-event DTO: `event_id?`, `event_name`, `event_desc?`, `remark?`, `rule` (`events` plus optional common `filter`), `replace_remark?`, `replace_suggestion?`. Common header fields are server-owned and must be omitted. |
29
+ | `--payload` | No | Full virtual-event DTO: `event_id?`, `event_name`, `event_desc?`, `remark?`, `rule` (`events` plus optional common `filter`), `replace_remark?`, `replace_suggestion?`. Common header fields are server-owned and must be omitted. |
30
+ | `--event-name` | No | Virtual event name. Must start with `ta@`. Required when `--payload` is omitted. |
31
+ | `--event-desc` | No | Virtual event display name. Required when `--payload` is omitted. |
32
+ | `--remark` | No | Optional virtual event remark. |
33
+ | `--events` | No | JSON array of events to combine. Required when `--payload` is omitted. |
34
+ | `--filter` | No | Optional global filter JSON. Referenced properties must come from `analysis-meta property list`. |
35
+
36
+ ## Decision Rules
37
+ - `events` / `filter` must not be handwritten by intuition alone; they must match real metadata in the same project.
38
+ - Before calling `event list` / `property list`, read the corresponding reference documents.
39
+ - For first validation, pass only required typed parameters: `--project-id`, `--event-name`, `--event-desc`, and `--events`.
40
+ - Use `--payload` only when an exact virtual-event rule DTO is already available.
41
+ - This is an ordinary write operation; execute it without the high-risk confirmation flag.
42
+
43
+ ## Recommended Chain
44
+ - `analysis-meta event list` -> `analysis-meta property list` -> `analysis-meta virtual-event create`
@@ -2,11 +2,15 @@
2
2
 
3
3
  Use when the user needs to create a SQL virtual event or user property.
4
4
 
5
- Do not use it for physical/super properties. Use `analysis_meta +create_virtual_property` only when the gateway capability is unavailable.
5
+ Do not use it for physical/super properties.
6
+
7
+ Before building `--sql-expression` / `--related-events`, validate available properties and events with `analysis-meta property list` and `analysis-meta event list` in the same `project_id`.
6
8
 
7
9
  Command:
8
10
 
9
11
  ```bash
12
+ ae-cli analysis-meta virtual-property create --project-id <project_id> --property-name '#vp@demo' --table-type event --select-type string --sql-expression 'event_name' --sql-event-relation-type relation_default
13
+ ae-cli analysis-meta virtual-property create --project-id <project_id> --property-name '#vp@demo' --property-desc demo --table-type event --select-type string --sql-expression "CASE WHEN status = 1 THEN 'active' ELSE 'inactive' END" --sql-event-relation-type relation_by_setting --related-events '[{"eventName":"purchase"}]' --property-remark demo
10
14
  ae-cli analysis-meta virtual-property create --project-id <project_id> --sql-expression '<sql>' --v-prop '{...}' --properties '[...]'
11
15
  ae-cli analysis-meta virtual-property create --project-id <project_id> --sql-expression '<sql>' --v-prop '{...}' --dry-run
12
16
  ```
@@ -22,10 +26,27 @@ Output is a successful gateway envelope with no business data.
22
26
  |---|---|---|
23
27
  | `--project-id` | Yes | Numeric project ID. |
24
28
  | `--sql-expression` | Yes | SQL expression used to calculate the virtual property. |
25
- | `--v-prop` | Yes | Virtual property JSON object with `property.column_name`, `table_type`, and `select_type`. |
29
+ | `--v-prop` | No | Full virtual property JSON object with `property.column_name`, `table_type`, and `select_type`. Use typed property flags unless an exact DTO is already available. |
30
+ | `--property-name` | No | Virtual property name. Must start with `#vp@`. Required when `--v-prop` is omitted. |
31
+ | `--property-desc` | No | Virtual property display name. |
32
+ | `--table-type` | No | Property table type: `event` or `user`. Required when `--v-prop` is omitted. |
33
+ | `--select-type` | No | Property value type: `string`, `number`, `bool`, or `datetime`. Required when `--v-prop` is omitted. |
34
+ | `--property-remark` | No | Optional virtual property remark. |
26
35
  | `--properties` | No | Dependent property JSON array. |
27
36
  | `--sql-event-relation-type` | No | `relation_default`, `relation_always`, or `relation_by_setting`. |
28
37
  | `--related-events` | No | Related events JSON array for `relation_by_setting`. |
29
38
  | `--tag-date-policies` | No | Tag date policies JSON array. |
30
39
  | `--replace-remark` | No | Replacement remark. |
31
40
  | `--replace-suggestion` | No | Replacement suggestion. |
41
+
42
+ ## Decision Rules
43
+ - `sql_expression` / `related_events` cannot be written from experience alone; they must be built from real project metadata.
44
+ - For first validation, pass only required typed parameters: `--project-id`, `--property-name`, `--table-type`, `--select-type`, `--sql-expression`, and `--sql-event-relation-type`.
45
+ - If `--sql-event-relation-type=relation_by_setting`, `--related-events` must contain event names from `analysis-meta event list`.
46
+ - Columns starting with `#` or containing `@` should be double-quoted in Trino SQL.
47
+ - Use `--v-prop` only when an exact virtual property DTO is already available.
48
+ - This is an ordinary write operation; execute it without the high-risk confirmation flag.
49
+
50
+ ## Recommended Chain
51
+ - `analysis-meta property list` -> `analysis-meta virtual-property create`
52
+ - `analysis-meta property list` -> `analysis-meta event list` -> `analysis-meta virtual-property create` when using `relation_by_setting`