@thinkingai/ae-cli 6.1.4 → 6.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/README.zh.md +3 -2
- package/dist/{auth-MEJ642P4.js → auth-ENM3FE6L.js} +3 -2
- package/dist/{auth-7H3HAAJ3.js → auth-UPGUOKTW.js} +13 -6
- package/dist/{capability-QW4AVJHI.js → capability-AJC5CBRT.js} +49 -17
- package/dist/{capability-SCRFGODD.js → capability-TQ5KU5Q6.js} +49 -17
- package/dist/chunk-24BAVOX3.js +51 -0
- package/dist/{chunk-MDJGDI6K.js → chunk-3KI3RRXX.js} +5 -5
- package/dist/{chunk-PKRD2IEM.js → chunk-3P3562ZX.js} +9 -7
- package/dist/{chunk-R77JT7XD.js → chunk-4Q5TNP4Q.js} +4 -4
- package/dist/{chunk-7OLGDQQ2.js → chunk-6CHYBI64.js} +2 -2
- package/dist/{chunk-6LEYLOV3.js → chunk-CPVTECJ3.js} +9 -7
- package/dist/{chunk-KCA6BA5D.js → chunk-DB4Q3ANU.js} +5 -3
- package/dist/{chunk-2NDGFQHW.js → chunk-E7UXXHO3.js} +11 -3
- package/dist/{chunk-I4A62X3N.js → chunk-HQ2A7ITL.js} +23 -14
- package/dist/chunk-IMMGMU54.js +674 -0
- package/dist/{chunk-AJTH7LT3.js → chunk-IR4ZLVPW.js} +4 -2
- package/dist/{chunk-TBHBYKXZ.js → chunk-ISY6HMHM.js} +2 -2
- package/dist/{chunk-KGJQCYVC.js → chunk-LCXU3AAT.js} +4 -2
- package/dist/chunk-LYVNONC4.js +86 -0
- package/dist/{chunk-DYOS6YY7.js → chunk-RGXCNC4N.js} +23 -14
- package/dist/{chunk-YCLVYFK7.js → chunk-V6FR6WTW.js} +45 -87
- package/dist/chunk-VTWMIC5L.js +27 -0
- package/dist/{cli-token-TVQRSE46.js → cli-token-4SBMXAUK.js} +6 -3
- package/dist/{client-2643Z5AG.js → client-PP5FETMW.js} +4 -3
- package/dist/community-report-client-KK2QBANO.js +145 -0
- package/dist/{config-7UZWDE74.js → config-RCCGHHYA.js} +6 -3
- package/dist/index.js +506 -221
- package/dist/{metadata-BFDL6RUK.js → metadata-3M5F2AED.js} +14 -13
- package/dist/{metadata-FCLDBXX2.js → metadata-W2MEOI4Z.js} +14 -13
- package/dist/{model-T3KZJWLW.js → model-OYQLXCQY.js} +3 -2
- package/dist/{raw-CN542NGT.js → raw-TPB7KSZO.js} +6 -4
- package/dist/{sync-ERNHDPB5.js → sync-EFJKFZK2.js} +6 -3
- package/dist/{te-agent-FCCWUDTJ.js → te-agent-K2OWMZXT.js} +3 -2
- package/dist/{te-analysis-PUVF5IF4.js → te-analysis-I73ZS4NK.js} +903 -33
- package/dist/{te-analysis-UJDOKPAN.js → te-analysis-Q7AZCDU4.js} +903 -33
- package/dist/{te-common-XLAGWNIV.js → te-common-ST3QPSXJ.js} +7 -6
- package/dist/{te-common-VUX3VOXZ.js → te-common-WSLIKKPC.js} +7 -6
- package/dist/te-community-WXGB6IOX.js +1659 -0
- package/dist/te-community-X2AHXGCA.js +1659 -0
- package/dist/{te-dataops-ZNJBQ6VT.js → te-dataops-MJV54MNY.js} +10 -8
- package/dist/{te-dataops-F36T656A.js → te-dataops-OA7I6HBG.js} +10 -8
- package/dist/{te-engage-QBCCME22.js → te-engage-2FSDUOIZ.js} +973 -1585
- package/dist/{te-engage-K4AEUPK5.js → te-engage-BMJ6UOUU.js} +973 -1585
- package/dist/te-experiment-4JC7WUKW.js +590 -0
- package/dist/te-experiment-KYRWAUZY.js +590 -0
- package/dist/{te-kb-AYCODNU6.js → te-kb-E7NSCBRB.js} +74 -12
- package/dist/{te-meta-ARDIW3YI.js → te-meta-Q4L6EE3Q.js} +7 -6
- package/dist/{te-meta-UUROEODR.js → te-meta-VHCN4Q62.js} +7 -6
- package/dist/{te-team-OKCOX7OE.js → te-team-PDKKW7Q5.js} +7 -6
- package/dist/tracking/i18n/resources/cli/en.json +4 -3
- package/dist/tracking/i18n/resources/cli/ja.json +4 -3
- package/dist/tracking/i18n/resources/cli/ko.json +4 -3
- package/dist/tracking/i18n/resources/cli/zh.json +4 -3
- package/package.json +7 -3
- package/skills/ae-agent/SKILL.md +2 -1
- package/skills/ae-analysis/SKILL.md +12 -1
- package/skills/ae-analysis/references/adhoc_export.md +2 -0
- package/skills/ae-analysis/references/adhoc_run.md +2 -0
- package/skills/ae-analysis/references/alert_create.md +25 -0
- package/skills/ae-analysis/references/alert_definition_schema_get.md +24 -0
- package/skills/ae-analysis/references/alert_delete.md +26 -0
- package/skills/ae-analysis/references/alert_detail_list.md +27 -0
- package/skills/ae-analysis/references/alert_get.md +25 -0
- package/skills/ae-analysis/references/alert_job_list.md +24 -0
- package/skills/ae-analysis/references/alert_list.md +27 -0
- package/skills/ae-analysis/references/alert_notice_config_list.md +24 -0
- package/skills/ae-analysis/references/alert_start.md +25 -0
- package/skills/ae-analysis/references/alert_stop.md +25 -0
- package/skills/ae-analysis/references/alert_update.md +26 -0
- package/skills/ae-analysis/references/bi_panel_create.md +3 -3
- package/skills/ae-analysis/references/check_delete.md +27 -0
- package/skills/ae-analysis/references/check_export.md +27 -0
- package/skills/ae-analysis/references/check_get.md +27 -0
- package/skills/ae-analysis/references/check_list.md +24 -0
- package/skills/ae-analysis/references/check_retry.md +27 -0
- package/skills/ae-analysis/references/check_run.md +25 -0
- package/skills/ae-analysis/references/command_index.md +61 -27
- package/skills/ae-analysis/references/dashboard_create.md +3 -3
- package/skills/ae-analysis/references/dashboard_daily_report_send.md +1 -0
- package/skills/ae-analysis/references/dashboard_daily_report_update.md +2 -0
- package/skills/ae-analysis/references/dashboard_report_data_export.md +3 -3
- package/skills/ae-analysis/references/dashboard_report_data_run.md +3 -3
- package/skills/ae-analysis/references/event_blacklist_add.md +25 -0
- package/skills/ae-analysis/references/event_blacklist_list.md +24 -0
- package/skills/ae-analysis/references/event_blacklist_update.md +26 -0
- package/skills/ae-analysis/references/ingest_error_list.md +27 -0
- package/skills/ae-analysis/references/ingest_summary.md +26 -0
- package/skills/ae-analysis/references/live_data_export.md +27 -0
- package/skills/ae-analysis/references/live_data_list.md +27 -0
- package/skills/ae-analysis/references/plan_change_log_export.md +27 -0
- package/skills/ae-analysis/references/plan_change_log_list.md +24 -0
- package/skills/ae-analysis/references/plan_delete_items.md +30 -0
- package/skills/ae-analysis/references/plan_export.md +26 -0
- package/skills/ae-analysis/references/plan_generate.md +27 -0
- package/skills/ae-analysis/references/plan_get.md +24 -0
- package/skills/ae-analysis/references/plan_import_excel.md +26 -0
- package/skills/ae-analysis/references/plan_save_items.md +27 -0
- package/skills/ae-analysis/references/plan_sync_from_meta.md +24 -0
- package/skills/ae-analysis/references/project_role_delete.md +4 -3
- package/skills/ae-analysis/references/project_role_get.md +4 -3
- package/skills/ae-analysis/references/project_role_user_list.md +4 -3
- package/skills/ae-analysis/references/query_create_result_cluster.md +2 -1
- package/skills/ae-analysis/references/report_data_export.md +3 -1
- package/skills/ae-analysis/references/report_data_run.md +12 -2
- package/skills/ae-analysis/references/sdk_sample_generate.md +24 -0
- package/skills/ae-analysis/references/user_cluster_create.md +2 -0
- package/skills/ae-analysis/references/user_cluster_create_id.md +2 -0
- package/skills/ae-analysis/references/user_cluster_update.md +2 -0
- package/skills/ae-analysis/references/user_cluster_update_id.md +2 -0
- package/skills/ae-analysis/references/user_tag_create.md +2 -0
- package/skills/ae-analysis/references/user_tag_create_id.md +2 -0
- package/skills/ae-analysis/references/user_tag_update.md +2 -0
- package/skills/ae-analysis/references/user_tag_update_id.md +2 -0
- package/skills/ae-analysis-global/SKILL.md +2 -0
- package/skills/ae-capability/SKILL.md +7 -5
- package/skills/ae-community/SKILL.md +72 -8
- package/skills/ae-community/references/community-chat-analysis.md +341 -0
- package/skills/ae-community/references/community-data-report.md +301 -0
- package/skills/ae-dataops/SKILL.md +2 -1
- package/skills/ae-engage/SKILL.md +129 -105
- package/skills/ae-engage/references/activity-activity-type.md +1 -1
- package/skills/ae-engage/references/activity-activity.md +1 -1
- package/skills/ae-engage/references/activity-approval.md +5 -7
- package/skills/ae-engage/references/activity-task.md +12 -18
- package/skills/ae-engage/references/activity-topic.md +39 -22
- package/skills/ae-engage/references/add-approver.md +4 -4
- package/skills/ae-engage/references/add-channel.md +10 -5
- package/skills/ae-engage/references/approval-approver-delete.md +1 -1
- package/skills/ae-engage/references/approver-list.md +4 -4
- package/skills/ae-engage/references/build-task-save-guide.md +13 -13
- package/skills/ae-engage/references/cancel-query-by-request-id.md +7 -6
- package/skills/ae-engage/references/channel-detail.md +14 -9
- package/skills/ae-engage/references/channel-list.md +15 -10
- package/skills/ae-engage/references/channel-mgmt.md +109 -0
- package/skills/ae-engage/references/channel-test-send.md +1 -1
- package/skills/ae-engage/references/channel-update-config.md +1 -1
- package/skills/ae-engage/references/channel_touch_limits_list.md +1 -1
- package/skills/ae-engage/references/client-param.md +34 -16
- package/skills/ae-engage/references/common-metric.md +85 -18
- package/skills/ae-engage/references/config-item-analysis-report.md +8 -27
- package/skills/ae-engage/references/config-item-strategy-comparison.md +7 -18
- package/skills/ae-engage/references/config-item-trigger-report.md +8 -35
- package/skills/ae-engage/references/delete-channel.md +5 -5
- package/skills/ae-engage/references/delete-flow.md +5 -5
- package/skills/ae-engage/references/flow-ab-split-node-report.md +11 -45
- package/skills/ae-engage/references/flow-detail.md +15 -10
- package/skills/ae-engage/references/flow-list.md +9 -4
- package/skills/ae-engage/references/flow-node-config-schema.md +9 -8
- package/skills/ae-engage/references/flow-node-detail-report.md +11 -46
- package/skills/ae-engage/references/flow-node-overview-report.md +11 -43
- package/skills/ae-engage/references/flow-process-report.md +12 -50
- package/skills/ae-engage/references/flow-update-remark.md +19 -0
- package/skills/ae-engage/references/manage-flow.md +19 -19
- package/skills/ae-engage/references/manage-task.md +5 -5
- package/skills/ae-engage/references/modify-flow-base-info.md +8 -8
- package/skills/ae-engage/references/preset-event.md +1 -1
- package/skills/ae-engage/references/push-language.md +1 -1
- package/skills/ae-engage/references/save-flow.md +54 -52
- package/skills/ae-engage/references/save-task.md +23 -17
- package/skills/ae-engage/references/scene-config-channel.md +90 -10
- package/skills/ae-engage/references/scene-config-group.md +1 -1
- package/skills/ae-engage/references/scene-config-item.md +27 -4
- package/skills/ae-engage/references/scene-config-metric.md +1 -1
- package/skills/ae-engage/references/scene-config-param.md +2 -2
- package/skills/ae-engage/references/scene-preset-metric.md +1 -1
- package/skills/ae-engage/references/scene-strategy.md +19 -3
- package/skills/ae-engage/references/scene-template.md +10 -4
- package/skills/ae-engage/references/task-data-detail.md +5 -67
- package/skills/ae-engage/references/task-data-overview.md +5 -35
- package/skills/ae-engage/references/task-detail.md +5 -5
- package/skills/ae-engage/references/task-experiment-report.md +5 -38
- package/skills/ae-engage/references/task-list.md +4 -4
- package/skills/ae-engage/references/task-metric-detail.md +5 -43
- package/skills/ae-engage/references/task-stats.md +5 -5
- package/skills/ae-engage/references/update-channel-status.md +6 -6
- package/skills/ae-engage/references/validate-flow-node-config.md +12 -11
- package/skills/ae-engage/references/whitelist-list.md +4 -4
- package/skills/ae-engage/references/whitelist.md +1 -1
- package/skills/ae-engage/references/workbench-workbench.md +1 -1
- package/skills/ae-experiment/SKILL.md +30 -20
- package/skills/ae-experiment/references/batch_delete_experiment.md +4 -4
- package/skills/ae-experiment/references/batch_delete_feature.md +3 -3
- package/skills/ae-experiment/references/batch_delete_traffic_layer.md +4 -4
- package/skills/ae-experiment/references/cancel_experiment_query_by_request_id.md +5 -4
- package/skills/ae-experiment/references/check_experiment_ready.md +7 -5
- package/skills/ae-experiment/references/check_experiment_traffic_layer_conflict.md +37 -0
- package/skills/ae-experiment/references/delete_metric.md +4 -4
- package/skills/ae-experiment/references/manage_experiment.md +8 -6
- package/skills/ae-experiment/references/manage_feature_status.md +3 -3
- package/skills/ae-experiment/references/query_bucket_list.md +5 -3
- package/skills/ae-experiment/references/query_experiment_detail.md +6 -4
- package/skills/ae-experiment/references/query_experiment_list.md +12 -4
- package/skills/ae-experiment/references/query_experiment_list_archived.md +15 -0
- package/skills/ae-experiment/references/query_experiment_metric_trend.md +6 -10
- package/skills/ae-experiment/references/query_experiment_operation_log.md +17 -0
- package/skills/ae-experiment/references/query_experiment_report_summary.md +5 -6
- package/skills/ae-experiment/references/query_experiment_sample_size_report.md +6 -10
- package/skills/ae-experiment/references/query_feature_detail.md +6 -4
- package/skills/ae-experiment/references/query_feature_list.md +5 -3
- package/skills/ae-experiment/references/query_feature_operation_log.md +19 -0
- package/skills/ae-experiment/references/query_feature_version_list.md +20 -0
- package/skills/ae-experiment/references/query_metric_detail.md +6 -4
- package/skills/ae-experiment/references/query_metric_list.md +5 -3
- package/skills/ae-experiment/references/query_traffic_layer_detail.md +6 -4
- package/skills/ae-experiment/references/query_traffic_layer_list.md +5 -3
- package/skills/ae-experiment/references/save_experiment.md +148 -9
- package/skills/ae-experiment/references/save_feature.md +3 -3
- package/skills/ae-experiment/references/save_metric.md +3 -3
- package/skills/ae-experiment/references/save_submit_experiment.md +6 -6
- package/skills/ae-experiment/references/save_traffic_layer.md +3 -3
- package/skills/ae-experiment/references/update_experiment_group.md +20 -0
- package/skills/ae-generate-tracking-code/SKILL.md +4 -4
- package/skills/ae-generate-tracking-plan/SKILL.md +132 -11
- package/skills/ae-generate-tracking-plan/references/business-dimension-mapping.md +98 -33
- package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +16 -14
- package/skills/ae-kb/SKILL.md +11 -6
- package/skills/ae-metadata/SKILL.md +2 -1
- package/skills/ae-team/SKILL.md +2 -1
- package/dist/chunk-NOO24N7W.js +0 -11
- package/dist/chunk-TNW2CI4W.js +0 -129
- package/dist/te-community-PEZ2VEF7.js +0 -687
- package/dist/te-community-TSKJ652U.js +0 -687
- package/dist/te-experiment-JINSMHMW.js +0 -606
- package/dist/te-experiment-NWNQHJS5.js +0 -606
- package/skills/ae-engage/references/config-channel-detail.md +0 -31
- package/skills/ae-engage/references/config-channel-list.md +0 -26
- package/skills/ae-engage/references/config-item-detail.md +0 -29
- package/skills/ae-engage/references/config-item-list.md +0 -18
- package/skills/ae-engage/references/copy-config-template.md +0 -28
- package/skills/ae-engage/references/delete-config-channel.md +0 -23
- package/skills/ae-engage/references/delete-config-item.md +0 -24
- package/skills/ae-engage/references/engage-scene-config-item.md +0 -69
- package/skills/ae-engage/references/manage-strategy.md +0 -73
- package/skills/ae-engage/references/strategy-detail.md +0 -72
- package/skills/ae-engage/references/strategy-list.md +0 -20
- package/skills/ae-engage/references/update-config-channel-status.md +0 -31
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# experiment experiment list-archived
|
|
2
|
+
|
|
3
|
+
Query archived experiments in a project.
|
|
4
|
+
|
|
5
|
+
This command reuses the existing experiment list API and hardcodes `status=archive`.
|
|
6
|
+
It only accepts `--project-id`; it does not expose additional filters.
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
ae-cli experiment experiment list-archived --project-id <id>
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Flags:
|
|
13
|
+
- `--project-id`, `-p`: Project ID.
|
|
14
|
+
|
|
15
|
+
Response shape: `data.items` contains the archived experiments, `data.total` contains the count, and item keys are recursively snake_case.
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
#
|
|
1
|
+
# capability run experiment.report.metric-trend
|
|
2
2
|
|
|
3
3
|
Query experiment metric trend report.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli experiment
|
|
6
|
+
ae-cli capability run experiment.report.metric-trend --input '{"project_id":1,"exp_id":"exp_123","metric_id":"metric_1","start_time":"2026-07-01","end_time":"2026-07-07"}'
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- `--start_time`: Start date, `yyyy-MM-dd`.
|
|
14
|
-
- `--end_time`: End date, `yyyy-MM-dd`.
|
|
15
|
-
- `--request_id`: Optional request ID for query tracking.
|
|
16
|
-
- `--force_refresh`: Optional boolean for report refresh.
|
|
9
|
+
Required input: `project_id`, `exp_id`, `metric_id`, `start_time`, `end_time`.
|
|
10
|
+
Optional input: `request_id`, `force_refresh`.
|
|
11
|
+
|
|
12
|
+
Response shape: `data.report`, with recursively snake_case keys. Preserve `request_id` for cancellation.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# experiment operation-log query
|
|
2
|
+
|
|
3
|
+
Query full operation logs for one experiment.
|
|
4
|
+
|
|
5
|
+
Returns the complete Atlas experiment operation-log payload, including `remark`,
|
|
6
|
+
`operation_content`, and structured `changes` when present. No field projection.
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
ae-cli experiment operation-log query --project-id <id> --exp-id <exp-id>
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Flags:
|
|
13
|
+
- `--project-id`, `-p`: Project ID.
|
|
14
|
+
- `--exp-id`: Experiment ID.
|
|
15
|
+
|
|
16
|
+
Response shape: `data.items` contains the full log records, `data.total` contains
|
|
17
|
+
the count, and item keys are recursively snake_case.
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
#
|
|
1
|
+
# capability run experiment.report.summary
|
|
2
2
|
|
|
3
3
|
Query experiment report summary.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli experiment
|
|
6
|
+
ae-cli capability run experiment.report.summary --input '{"project_id":1,"exp_id":"exp_123","force_refresh":false}'
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- `--force_refresh`: Optional boolean for report refresh.
|
|
9
|
+
Required input: `project_id`, `exp_id`. Optional input: `force_refresh`.
|
|
10
|
+
|
|
11
|
+
Response shape: `data.report`, with recursively snake_case keys.
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
#
|
|
1
|
+
# capability run experiment.report.sample-size
|
|
2
2
|
|
|
3
3
|
Query experiment sample-size report.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli experiment
|
|
6
|
+
ae-cli capability run experiment.report.sample-size --input '{"project_id":1,"exp_id":"exp_123","start_time":"2026-07-01","end_time":"2026-07-07","by_hour":false}'
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- `--end_time`: End date, `yyyy-MM-dd`.
|
|
14
|
-
- `--request_id`: Optional request ID for query tracking.
|
|
15
|
-
- `--force_refresh`: Optional boolean for report refresh.
|
|
16
|
-
- `--by_hour`: Optional boolean to show results by hour.
|
|
9
|
+
Required input: `project_id`, `exp_id`, `start_time`, `end_time`.
|
|
10
|
+
Optional input: `request_id`, `force_refresh`, `by_hour`.
|
|
11
|
+
|
|
12
|
+
Response shape: `data.report`, with recursively snake_case keys. Preserve `request_id` for cancellation.
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
#
|
|
1
|
+
# experiment feature get
|
|
2
2
|
|
|
3
3
|
Query Feature detail by key and optional version.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli experiment
|
|
6
|
+
ae-cli experiment feature get --project-id <id> --feature-key <key> [--version <versionId>]
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Flags:
|
|
10
|
-
- `--
|
|
11
|
-
- `--
|
|
10
|
+
- `--project-id`, `-p`: Project ID.
|
|
11
|
+
- `--feature-key`: Feature key.
|
|
12
12
|
- `--version`: Optional Feature version ID.
|
|
13
|
+
|
|
14
|
+
Response shape: the Feature is in `data.item`, with recursively snake_case keys such as `feature_key` and `target_platform`.
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
#
|
|
1
|
+
# experiment feature list
|
|
2
2
|
|
|
3
3
|
Query Features in a project.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli experiment
|
|
6
|
+
ae-cli experiment feature list --project-id <id>
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Flags:
|
|
10
|
-
- `--
|
|
10
|
+
- `--project-id`, `-p`: Project ID.
|
|
11
|
+
|
|
12
|
+
Response shape: `data.items` contains Features, `data.total` contains the count, and item keys are recursively snake_case.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# experiment feature operation-log query
|
|
2
|
+
|
|
3
|
+
Query Feature operation logs for one Feature key.
|
|
4
|
+
|
|
5
|
+
Reuses Hermes `GET /v1/atlas/feature/operationLogs` and returns the generic Atlas
|
|
6
|
+
operation-log payload (`operation_type`, `operation_type_name`, `operator_name`,
|
|
7
|
+
`operation_content`, `operate_time`). This is separate from
|
|
8
|
+
`experiment operation-log query` and does not include experiment-side `changes`.
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
ae-cli experiment feature operation-log query --project-id <id> --feature-key <feature-key>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Flags:
|
|
15
|
+
- `--project-id`, `-p`: Project ID.
|
|
16
|
+
- `--feature-key`: Feature key.
|
|
17
|
+
|
|
18
|
+
Response shape: `data.items` contains the full log records, `data.total` contains
|
|
19
|
+
the count, and item keys are recursively snake_case.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# experiment feature version-list
|
|
2
|
+
|
|
3
|
+
List Feature version history for one Feature key.
|
|
4
|
+
|
|
5
|
+
Reuse the existing Hermes `GET /v1/atlas/feature/versions` API and return the full
|
|
6
|
+
version records, including `version_snapshot`.
|
|
7
|
+
|
|
8
|
+
Use with `experiment feature get --version <featureVersionId>` to inspect one version.
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
ae-cli experiment feature version-list --project-id <id> --feature-key <feature-key>
|
|
12
|
+
ae-cli experiment feature get --project-id <id> --feature-key <feature-key> --version <featureVersionId>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Flags:
|
|
16
|
+
- `--project-id`, `-p`: Project ID.
|
|
17
|
+
- `--feature-key`: Feature key.
|
|
18
|
+
|
|
19
|
+
Response shape: `data.items` contains version history records, `data.total` contains
|
|
20
|
+
the count, and item keys are recursively snake_case.
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# experiment metric get
|
|
2
2
|
|
|
3
3
|
Query metric detail.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli experiment
|
|
6
|
+
ae-cli experiment metric get --project-id <id> --metric-id <metricId>
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Flags:
|
|
10
|
-
- `--
|
|
11
|
-
- `--
|
|
10
|
+
- `--project-id`, `-p`: Project ID.
|
|
11
|
+
- `--metric-id`: Metric ID.
|
|
12
|
+
|
|
13
|
+
Response shape: the metric is in `data.item`, with recursively snake_case keys.
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
#
|
|
1
|
+
# experiment metric list
|
|
2
2
|
|
|
3
3
|
Query metrics in a project.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli experiment
|
|
6
|
+
ae-cli experiment metric list --project-id <id>
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Flags:
|
|
10
|
-
- `--
|
|
10
|
+
- `--project-id`, `-p`: Project ID.
|
|
11
|
+
|
|
12
|
+
Response shape: `data.items` contains metrics, `data.total` contains the count, and item keys are recursively snake_case.
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# experiment traffic-layer get
|
|
2
2
|
|
|
3
3
|
Query traffic layer detail.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli experiment
|
|
6
|
+
ae-cli experiment traffic-layer get --project-id <id> --layer-id <layerId>
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Flags:
|
|
10
|
-
- `--
|
|
11
|
-
- `--
|
|
10
|
+
- `--project-id`, `-p`: Project ID.
|
|
11
|
+
- `--layer-id`: Traffic layer ID.
|
|
12
|
+
|
|
13
|
+
Response shape: the traffic layer is in `data.item`, with recursively snake_case keys.
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
#
|
|
1
|
+
# experiment traffic-layer list
|
|
2
2
|
|
|
3
3
|
Query traffic layers in a project.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli experiment
|
|
6
|
+
ae-cli experiment traffic-layer list --project-id <id>
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Flags:
|
|
10
|
-
- `--
|
|
10
|
+
- `--project-id`, `-p`: Project ID.
|
|
11
|
+
|
|
12
|
+
Response shape: `data.items` contains traffic layers, `data.total` contains the count, and item keys are recursively snake_case.
|
|
@@ -1,17 +1,156 @@
|
|
|
1
|
-
#
|
|
1
|
+
# experiment experiment save
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Progressively create or patch an experiment draft.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli experiment
|
|
6
|
+
ae-cli experiment experiment save --project-id <id> --req '<json>'
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Flags:
|
|
10
|
-
- `--
|
|
10
|
+
- `--project-id`, `-p`: Project ID.
|
|
11
11
|
- `--req`: Experiment save request JSON object.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
- `req.projectId`
|
|
17
|
-
-
|
|
13
|
+
## Contract
|
|
14
|
+
|
|
15
|
+
- Call shape is top-level `projectId` plus a non-empty `req` object. In CLI form, `--project-id` supplies the top-level project ID.
|
|
16
|
+
- Capability input uses outer `project_id`; nested `req` fields remain native camelCase. Hermes overwrites `req.projectId` with the outer project ID.
|
|
17
|
+
- Never call this with `req=null`, `req={}`, or a modify payload containing only `expId`; those are terminal validation failures.
|
|
18
|
+
- On `valid=false`, do not retry the same payload. Fix the reported field(s) or ask the user for missing input.
|
|
19
|
+
|
|
20
|
+
Response shape is `data.result`. Object keys inside the result are recursively snake_case. A create commonly returns the new experiment ID as `data.result`; a patch commonly returns `true`.
|
|
21
|
+
|
|
22
|
+
## Payload Type Contract
|
|
23
|
+
|
|
24
|
+
Nested payload fields must match the server DTO types, not just the visible CLI dry-run body shape.
|
|
25
|
+
|
|
26
|
+
| Field | Correct shape | Incorrect shape |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| `featureKeyList` | `["payment_color"]` | `[{"featureKey":"payment_color"}]` |
|
|
29
|
+
| `groups[].expGroupValue` | `"[\"green\"]"` | `["green"]` |
|
|
30
|
+
| `metrics` | `[{"metricId":"payment","metricRole":"primary"}]` | `["payment"]` |
|
|
31
|
+
|
|
32
|
+
- `featureKeyList` is an array of Feature key strings, not Feature objects. For feature experiments, pass one Feature key string.
|
|
33
|
+
- `groups[].expGroupValue` is a JSON-encoded string of a string array. Pass a string whose content is a JSON array, not a native JSON array.
|
|
34
|
+
- `metrics` is an array of metric binding objects. Each object contains `metricId` and `metricRole`.
|
|
35
|
+
|
|
36
|
+
## Modes
|
|
37
|
+
|
|
38
|
+
### Create Draft
|
|
39
|
+
|
|
40
|
+
Blank or missing `req.expId` creates a draft.
|
|
41
|
+
|
|
42
|
+
Required:
|
|
43
|
+
- `expName`
|
|
44
|
+
|
|
45
|
+
Optional while drafting:
|
|
46
|
+
- `expType` (blank defaults to `feature`)
|
|
47
|
+
- `groupId`
|
|
48
|
+
- `trafficLayerId`
|
|
49
|
+
- `allocation`
|
|
50
|
+
- `expSalt`
|
|
51
|
+
- `expSupposition`
|
|
52
|
+
- `expDesc`
|
|
53
|
+
- `isExpSharing`
|
|
54
|
+
- `bucketId`
|
|
55
|
+
- `expCycle`
|
|
56
|
+
- `groups`
|
|
57
|
+
- `featureKeyList`
|
|
58
|
+
- `metrics`
|
|
59
|
+
- `targeting`
|
|
60
|
+
|
|
61
|
+
Success returns the created `expId`.
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
ae-cli experiment experiment save --project-id 1 --req '{"expName":"Homepage CTA draft"}'
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Patch Draft
|
|
68
|
+
|
|
69
|
+
Non-blank `req.expId` patches an existing draft by merging the request with current experiment detail.
|
|
70
|
+
|
|
71
|
+
Required:
|
|
72
|
+
- `expId`
|
|
73
|
+
- At least one changed field besides `expId`
|
|
74
|
+
|
|
75
|
+
Merge behavior:
|
|
76
|
+
- Omitted fields keep their current values.
|
|
77
|
+
- Non-null scalar/object fields replace current values.
|
|
78
|
+
- Non-empty `groups`, `featureKeyList`, `metrics`, and non-null `targeting` replace saved values.
|
|
79
|
+
- Empty lists are not a reliable clear operation. Do not use empty arrays to clear bindings unless the backend contract is confirmed separately.
|
|
80
|
+
|
|
81
|
+
Success returns `true`; continue using the input `expId`.
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
ae-cli experiment experiment save --project-id 1 --req '{"expId":"exp_123","allocation":20}'
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Field Notes
|
|
88
|
+
|
|
89
|
+
- `isExpSharing=1` uses a shared traffic layer from `experiment traffic-layer list`; pick a `trafficLayerId` whose available idle traffic can cover `allocation`.
|
|
90
|
+
- `isExpSharing=0` uses exclusive traffic with `bucketId`; select the bucket with `experiment bucket list`.
|
|
91
|
+
- `allocation` is optional during draft construction, but before readiness it must be greater than `0` and no more than `100`.
|
|
92
|
+
- `expCycle.cycleType` can be `day` or `sample`; when `cycleType=day`, `dayNum` is `1..90`. Blank cycle defaults to day + 30.
|
|
93
|
+
- Before readiness, `groups` must be non-empty, contain exactly one control group, total allocation must equal `100`, and each `expGroupValue` must be a non-empty JSON string array.
|
|
94
|
+
- Feature experiments must bind `featureKeyList` before readiness. `featureKeyList` contains Feature key strings, not Feature objects. The MCP currently supports one `featureKey` for feature experiments.
|
|
95
|
+
- Metrics use `metricRole=primary|secondary|guardrail|observation`; before readiness at least one primary metric is required.
|
|
96
|
+
- `targeting` replaces the saved targeting object when provided.
|
|
97
|
+
|
|
98
|
+
## Payload Examples
|
|
99
|
+
|
|
100
|
+
Patch a Feature binding. `featureKeyList` is a string array:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
ae-cli experiment experiment save --project-id 2 --req '{"expId":"e024","featureKeyList":["payment_color"]}'
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Patch groups. `expGroupValue` is a JSON-encoded string, not a native array:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
ae-cli experiment experiment save --project-id 2 --req '{"expId":"e024","groups":[{"expGroupName":"control","isControl":1,"allocation":50,"expGroupValue":"[\"green\"]"},{"expGroupName":"variant","isControl":0,"allocation":50,"expGroupValue":"[\"red\"]"}]}'
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Patch metrics. `metrics` is an object array:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
ae-cli experiment experiment save --project-id 2 --req '{"expId":"e024","metrics":[{"metricId":"payment","metricRole":"primary"}]}'
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Dry-run Limitation
|
|
119
|
+
|
|
120
|
+
`--dry-run` calls the Capability Gateway preview endpoint. It validates the outer input contract but does not guarantee that every nested DTO business rule will pass execution.
|
|
121
|
+
|
|
122
|
+
If execution reports a DTO type mismatch after a clean dry-run, inspect nested field types first:
|
|
123
|
+
|
|
124
|
+
- `featureKeyList` must be a string array.
|
|
125
|
+
- `groups[].expGroupValue` must be a JSON-encoded string.
|
|
126
|
+
- `metrics` must be an object array with `metricId` and `metricRole`.
|
|
127
|
+
|
|
128
|
+
## Verified Related CLI Commands
|
|
129
|
+
|
|
130
|
+
Use only these confirmed ae-cli commands when composing or checking a save payload:
|
|
131
|
+
|
|
132
|
+
- `experiment experiment get`: optional; use only when patching an existing `expId` and you need to inspect saved fields.
|
|
133
|
+
- `experiment bucket list`: find `bucketId`.
|
|
134
|
+
- `experiment traffic-layer list`: find shared `trafficLayerId`.
|
|
135
|
+
- `experiment feature list`: find `featureKey`.
|
|
136
|
+
- `experiment metric list`: find `metricId`.
|
|
137
|
+
- `experiment traffic-layer save`: create a missing traffic layer.
|
|
138
|
+
- `experiment feature save`: create a missing Feature.
|
|
139
|
+
- `experiment metric save`: create a missing metric.
|
|
140
|
+
- `experiment experiment ready-check`: verify completeness before moving to `pending`, `testing`, or `running`.
|
|
141
|
+
|
|
142
|
+
## Completion
|
|
143
|
+
|
|
144
|
+
After a successful save, output the experiment detail link in this form, substituting the returned or input `expId` and actual project ID:
|
|
145
|
+
|
|
146
|
+
```markdown
|
|
147
|
+
[View experiment](/#/atlas/experiment/detail?expId=<expId>¤tProjectId=<projectId>)
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
After every successful save, call:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
ae-cli experiment experiment ready-check --project-id <id> --exp-id <expId>
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Use readiness failures to decide the next patch. Do not report the experiment save work as complete until readiness has been checked.
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# experiment feature save
|
|
2
2
|
|
|
3
3
|
Create or update a Feature.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli experiment
|
|
6
|
+
ae-cli experiment feature save --project-id <id> --req '<json>'
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Flags:
|
|
10
|
-
- `--
|
|
10
|
+
- `--project-id`, `-p`: Project ID.
|
|
11
11
|
- `--req`: Feature save request JSON object.
|
|
12
12
|
|
|
13
13
|
Create mode requires `featureKey`, `type`, and `targetPlatform`. Modify mode uses `id` or `update=true`.
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# experiment metric save
|
|
2
2
|
|
|
3
3
|
Create or update a metric.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli experiment
|
|
6
|
+
ae-cli experiment metric save --project-id <id> --req '<json>'
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Flags:
|
|
10
|
-
- `--
|
|
10
|
+
- `--project-id`, `-p`: Project ID.
|
|
11
11
|
- `--req`: Metric save request JSON object.
|
|
12
12
|
|
|
13
13
|
Create mode requires metric identifiers and metric configuration. Modify mode uses `update=true`.
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# capability run experiment.experiment.save-submit
|
|
2
2
|
|
|
3
3
|
Create or update a complete experiment and submit it in one call.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli
|
|
6
|
+
ae-cli capability run experiment.experiment.save-submit --input '{"project_id":1,"req":{...}}'
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
- `--project_id`, `-p`: Project ID.
|
|
11
|
-
- `--req`: Save-and-submit request JSON object.
|
|
9
|
+
Input fields: `project_id` and `req`. The outer input is snake_case; fields inside `req` keep the native camelCase DTO shape.
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
Response shape: `data.result`, with object keys recursively converted to snake_case.
|
|
12
|
+
|
|
13
|
+
Prefer `experiment experiment save` for progressive draft construction.
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# experiment traffic-layer save
|
|
2
2
|
|
|
3
3
|
Create or update a traffic layer.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli experiment
|
|
6
|
+
ae-cli experiment traffic-layer save --project-id <id> --req '<json>'
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Flags:
|
|
10
|
-
- `--
|
|
10
|
+
- `--project-id`, `-p`: Project ID.
|
|
11
11
|
- `--req`: Traffic layer save request JSON object.
|
|
12
12
|
|
|
13
13
|
Create mode requires `bucketId`, `layerName`, and `layerType` in the request. Modify mode requires `layerId`.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# experiment experiment update-group
|
|
2
|
+
|
|
3
|
+
Update only the business group of one experiment.
|
|
4
|
+
|
|
5
|
+
Reuses Hermes `POST /v1/atlas/experiment/updateGroup`. This dedicated endpoint
|
|
6
|
+
updates `group_id` only and does not go through full experiment `modify`, so it
|
|
7
|
+
will not rewrite traffic, variants, metrics, or other fields.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
ae-cli experiment experiment update-group --project-id <id> --exp-id <exp-id> --group-id <group-id>
|
|
11
|
+
ae-cli experiment experiment update-group --project-id <id> --exp-id <exp-id> --group-id 0 --dry-run
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Flags:
|
|
15
|
+
- `--project-id`, `-p`: Project ID.
|
|
16
|
+
- `--exp-id`: Experiment ID.
|
|
17
|
+
- `--group-id`: Target business group ID. Use `0` for ungrouped.
|
|
18
|
+
|
|
19
|
+
Response shape: `data.result` is `true` when the update succeeds. Blank
|
|
20
|
+
`--group-id` is normalized to `0` on the server.
|
|
@@ -118,15 +118,15 @@ First, check if both `.ae-cli/draft.json` and `.ae-cli/draft.xlsx` exist:
|
|
|
118
118
|
- Reference: tracking plan document (Feishu: https://www.feishu.cn/docx/Jt0VdhNB6oSJ4TxISs1cq2Ebnmg)
|
|
119
119
|
|
|
120
120
|
2. **If you already have a tracking plan**
|
|
121
|
-
- Provide the xlsx file path and use `ae-cli tracking code import-
|
|
121
|
+
- Provide the xlsx file path and use `ae-cli tracking code import-template --template` to import
|
|
122
122
|
- Or place the xlsx file at `.ae-cli/draft.xlsx` and re-run
|
|
123
123
|
|
|
124
|
-
**If xlsx file exists** (provided via `ae-cli tracking code import-
|
|
124
|
+
**If xlsx file exists** (provided via `ae-cli tracking code import-template --template` or placed at `.ae-cli/draft.xlsx`):
|
|
125
125
|
|
|
126
126
|
**Step 1: Parse the xlsx file**
|
|
127
127
|
|
|
128
128
|
```bash
|
|
129
|
-
ae-cli tracking code import-
|
|
129
|
+
ae-cli tracking code import-template --template <xlsx-path> --out .ae-cli/draft.json
|
|
130
130
|
```
|
|
131
131
|
|
|
132
132
|
This command:
|
|
@@ -155,7 +155,7 @@ This command:
|
|
|
155
155
|
- `服务端` / `server` → server-only collection, parsed as `platform: "server"`
|
|
156
156
|
- `客户端,服务端` / `client,server` / `服务端,客户端` / `server,client` → both platforms, parsed as `platform: "both"`
|
|
157
157
|
|
|
158
|
-
**Internal representation**: xlsx "Platform" column values are parsed by `ae-cli tracking code import-
|
|
158
|
+
**Internal representation**: xlsx "Platform" column values are parsed by `ae-cli tracking code import-template --template` into internal `platform` field values:
|
|
159
159
|
- `client` → client-side collection
|
|
160
160
|
- `server` → server-side collection
|
|
161
161
|
- `both` → both platforms
|