@thinkingai/ae-cli 6.1.11 → 6.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/README.zh.md +0 -2
- package/dist/{auth-NN55553T.js → auth-GBMV6TEJ.js} +2 -2
- package/dist/{auth-GDV3H5I4.js → auth-NDSXE54J.js} +4 -4
- package/dist/{capability-TPORIKRQ.js → capability-TAMDRZYV.js} +23 -10
- package/dist/{capability-VQNC5CF7.js → capability-U7TDEEEG.js} +23 -10
- package/dist/{chunk-GJJA4CQZ.js → chunk-3FY3RJ26.js} +0 -4
- package/dist/{chunk-GS2P7LFD.js → chunk-5XUSIK27.js} +2 -2
- package/dist/{chunk-7KQWSBSL.js → chunk-753BUTNZ.js} +3 -3
- package/dist/{chunk-VTXHDCBW.js → chunk-AFXA7BRK.js} +2 -2
- package/dist/chunk-IBH3LDAH.js +556 -0
- package/dist/{chunk-RBNKI5ZW.js → chunk-JUW4AJXN.js} +2 -2
- package/dist/{chunk-TS6BUGUY.js → chunk-QATA32VR.js} +3 -3
- package/dist/{chunk-Z3OXWCIA.js → chunk-S5NTSDBS.js} +2 -2
- package/dist/chunk-UIHQJK5E.js +556 -0
- package/dist/{chunk-VKD5WQKN.js → chunk-VLWOLBGZ.js} +142 -24
- package/dist/{chunk-YTG6Q75E.js → chunk-WZRX4KOH.js} +25 -3
- package/dist/{chunk-YV52FB5G.js → chunk-ZQKDZXDO.js} +1 -1
- package/dist/{cli-token-GL5MS5FK.js → cli-token-4UPER74P.js} +3 -3
- package/dist/{chunk-6A2FUCIS.js → client-L2YDMHQ6.js} +5 -6
- package/dist/{config-4VZNLBKF.js → config-OL2LWGBV.js} +4 -33
- package/dist/index.js +25 -38
- package/dist/{memory-RWJW4XFO.js → memory-MUP7PPL7.js} +4 -4
- package/dist/{memory-VO2ZJCRT.js → memory-U4O5PMXH.js} +4 -4
- package/dist/{metadata-YGTHR2XJ.js → metadata-UORZTW3T.js} +21 -11
- package/dist/{metadata-ZRN2GHPN.js → metadata-VVQ3AQT5.js} +21 -11
- package/dist/{model-CLUIK3K5.js → model-JTUEO5M4.js} +2 -2
- package/dist/{sync-3REDHGY6.js → sync-MOSFNBVR.js} +5 -5
- package/dist/{te-agent-XNPELAKX.js → te-agent-IFKZDHZI.js} +25 -18
- package/dist/{te-analysis-GJI5FZUL.js → te-analysis-KOKHJJPE.js} +1225 -450
- package/dist/{te-analysis-N2BRDJZ5.js → te-analysis-LLOCCBJ4.js} +1225 -450
- package/dist/{te-community-SQXKE5OO.js → te-community-HNKVTERD.js} +207 -12
- package/dist/{te-community-TYSNU3NQ.js → te-community-IWE5B7W6.js} +208 -12
- package/dist/{te-dataops-OWIADNSM.js → te-dataops-KQPYNAE3.js} +262 -145
- package/dist/{te-dataops-5TM7WZDI.js → te-dataops-KXCEB4CS.js} +262 -145
- package/dist/{te-engage-F7V55KVW.js → te-engage-BRLSRVQT.js} +960 -41
- package/dist/{te-engage-FMYAYCNV.js → te-engage-HE4OPZIT.js} +960 -41
- package/dist/{te-experiment-JWXOYJ3W.js → te-experiment-K5US7RMG.js} +115 -9
- package/dist/{te-experiment-UPDMHCAJ.js → te-experiment-WA7TFMEL.js} +115 -9
- package/dist/{te-kb-VRMEY3D4.js → te-kb-OIH3T6CS.js} +4 -4
- package/dist/{te-system-XGS5EQIQ.js → te-system-AZ3URMUO.js} +515 -11
- package/dist/{te-team-BZRDV2CM.js → te-team-GZPU6UWA.js} +5 -5
- package/dist/{update-HEDXGOJH.js → update-TOBFXF2V.js} +4 -4
- package/package.json +6 -6
- package/skills/ae-agent/SKILL.md +3 -3
- package/skills/ae-agent/references/list-skill-references.md +4 -4
- package/skills/ae-agent/references/read-skill-reference.md +10 -7
- package/skills/ae-agent/references/upload-skill-reference.md +11 -9
- package/skills/ae-analysis/SKILL.md +15 -12
- package/skills/ae-analysis/metadata_resolution.md +150 -0
- package/skills/ae-analysis/references/adhoc_export.md +17 -2
- package/skills/ae-analysis/references/adhoc_run.md +12 -8
- package/skills/ae-analysis/references/ai_models.md +31 -5
- package/skills/ae-analysis/references/analysis_data_retrieval.md +104 -16
- package/skills/ae-analysis/references/analysis_drilldown_contract.md +4 -4
- package/skills/ae-analysis/references/analysis_gateway_assets.md +12 -10
- package/skills/ae-analysis/references/artifact_download.md +4 -3
- package/skills/ae-analysis/references/asset_abnormal_list.md +5 -3
- package/skills/ae-analysis/references/asset_authentication_list.md +5 -3
- package/skills/ae-analysis/references/asset_search.md +5 -3
- package/skills/ae-analysis/references/bi_panel_page_data_export.md +1 -1
- package/skills/ae-analysis/references/bi_panel_page_data_run.md +4 -4
- package/skills/ae-analysis/references/catalog_export.md +28 -0
- package/skills/ae-analysis/references/catalog_list.md +44 -0
- package/skills/ae-analysis/references/command_index.md +72 -63
- package/skills/ae-analysis/references/dashboard_report_data_run.md +11 -4
- package/skills/ae-analysis/references/datatable_version_list.md +5 -3
- package/skills/ae-analysis/references/drilldown_entities_run.md +4 -4
- package/skills/ae-analysis/references/drilldown_events_run.md +2 -2
- package/skills/ae-analysis/references/drilldown_user_events_export.md +1 -1
- package/skills/ae-analysis/references/drilldown_user_events_run.md +2 -2
- package/skills/ae-analysis/references/entity_detail_run.md +4 -4
- package/skills/ae-analysis/references/entity_id_import_options.md +1 -1
- package/skills/ae-analysis/references/event_detail_run.md +4 -4
- package/skills/ae-analysis/references/event_export.md +21 -0
- package/skills/ae-analysis/references/event_list.md +7 -6
- package/skills/ae-analysis/references/exchange_rule_list.md +5 -3
- package/skills/ae-analysis/references/history_tag_data_drilldown_export.md +4 -2
- package/skills/ae-analysis/references/history_tag_data_drilldown_run.md +2 -2
- package/skills/ae-analysis/references/history_tag_data_run.md +2 -2
- package/skills/ae-analysis/references/metric_export.md +21 -0
- package/skills/ae-analysis/references/metric_list.md +8 -7
- package/skills/ae-analysis/references/property_export.md +21 -0
- package/skills/ae-analysis/references/property_list.md +9 -8
- package/skills/ae-analysis/references/query_context_get.md +20 -0
- package/skills/ae-analysis/references/query_create_result_cluster.md +1 -1
- package/skills/ae-analysis/references/report_change_log_list.md +1 -1
- package/skills/ae-analysis/references/report_create.md +3 -3
- package/skills/ae-analysis/references/report_data_run.md +8 -8
- package/skills/ae-analysis/references/report_update.md +3 -3
- package/skills/ae-analysis/references/report_version_rollback.md +1 -1
- package/skills/ae-analysis/references/rule_list.md +6 -4
- package/skills/ae-analysis/references/run_inspect.md +8 -5
- package/skills/ae-analysis/references/run_wait.md +37 -0
- package/skills/ae-analysis/references/user_cluster_export.md +13 -0
- package/skills/ae-analysis/references/user_cluster_list.md +6 -2
- package/skills/ae-analysis/references/user_cluster_member_export.md +5 -3
- package/skills/ae-analysis/references/user_cluster_member_list.md +4 -4
- package/skills/ae-analysis/references/user_tag_export.md +13 -0
- package/skills/ae-analysis/references/user_tag_list.md +6 -2
- package/skills/ae-analysis/references/user_tag_member_export.md +5 -3
- package/skills/ae-analysis/references/user_tag_member_list.md +4 -4
- package/skills/ae-analysis/references/virtual_property_create.md +2 -2
- package/skills/ae-community/SKILL.md +2 -2
- package/skills/ae-dataops/SKILL.md +4 -3
- package/skills/ae-dataops/references/dataops-flow-create.md +47 -3
- package/skills/ae-engage/SKILL.md +57 -7
- package/skills/ae-engage/references/activity-data-detail.md +61 -0
- package/skills/ae-engage/references/build-task-save-guide.md +37 -1
- package/skills/ae-engage/references/cancel-query-run.md +31 -0
- package/skills/ae-engage/references/common-metric.md +45 -0
- package/skills/ae-engage/references/config-item-analysis-report.md +14 -1
- package/skills/ae-engage/references/config-item-strategy-comparison.md +11 -1
- package/skills/ae-engage/references/config-item-trigger-report.md +15 -1
- package/skills/ae-engage/references/flow-metric-detail-report.md +134 -0
- package/skills/ae-engage/references/flow-metric-update.md +77 -0
- package/skills/ae-engage/references/flow-metric-user.md +118 -0
- package/skills/ae-engage/references/flow-node-metric-user.md +122 -0
- package/skills/ae-engage/references/flow-node-user.md +122 -0
- package/skills/ae-engage/references/preset-event.md +2 -0
- package/skills/ae-engage/references/push-record-query.md +32 -1
- package/skills/ae-engage/references/save-flow.md +14 -0
- package/skills/ae-engage/references/save-task.md +44 -0
- package/skills/ae-engage/references/scene-strategy-audience.md +12 -7
- package/skills/ae-engage/references/task-data-detail.md +9 -2
- package/skills/ae-engage/references/task-metric-detail.md +9 -2
- package/skills/ae-engage/references/task-submit-approval.md +3 -0
- package/skills/ae-experiment/SKILL.md +17 -4
- package/skills/ae-experiment/references/delete_metric.md +2 -0
- package/skills/ae-experiment/references/query_experiment_metric_trend.md +5 -5
- package/skills/ae-experiment/references/query_experiment_report_summary.md +4 -3
- package/skills/ae-experiment/references/query_experiment_sample_size_report.md +6 -5
- package/skills/ae-experiment/references/save_build_guide.md +39 -0
- package/skills/ae-experiment/references/save_experiment.md +11 -0
- package/skills/ae-experiment/references/save_metric.md +5 -1
- package/skills/ae-experiment/references/save_validate.md +33 -0
- package/skills/ae-experiment-design/SKILL.md +1 -1
- package/skills/ae-experiment-design/references/platform-operations.md +10 -4
- package/skills/ae-experiment-insight/references/platform-operations.md +10 -4
- package/skills/ae-metadata/SKILL.md +2 -1
- package/skills/ae-metadata/references/metadata_data_table_download.md +10 -2
- package/skills/ae-metadata/references/metadata_data_table_list.md +5 -2
- package/skills/ae-system/SKILL.md +66 -3
- package/dist/chunk-DT6Y3TD7.js +0 -232
- package/dist/chunk-MVDZ7DBQ.js +0 -231
- package/dist/chunk-NBPKWKRA.js +0 -51
- package/dist/client-DAIPF7XN.js +0 -23
- package/dist/raw-52B4UKO4.js +0 -71
- package/dist/te-meta-53BVXPFI.js +0 -95
- package/dist/te-meta-TOCBPBXI.js +0 -95
|
@@ -27,6 +27,8 @@ Provide exactly one of `--task-id` or `--request`.
|
|
|
27
27
|
|
|
28
28
|
- Prefer `task save` followed by `submit-approval --task-id`. The server loads the persisted draft, validates its
|
|
29
29
|
trigger rule, and reuses the existing save-and-submit approval workflow.
|
|
30
|
+
- Never put `taskId` or `task_id` inside `--request`. Existing drafts must use `--task-id`; embedded task IDs fail
|
|
31
|
+
with `REQUEST_TASK_ID_NOT_ALLOWED` so request fields are never silently discarded.
|
|
30
32
|
- Do not reconstruct or pass `trigger_rule`. It is an internal persisted field.
|
|
31
33
|
- The legacy `--request` mode remains available for existing callers.
|
|
32
34
|
- Required body fields (server validates): `task_name`, `channel_type`, `channel_id`, `group_content_list`, `target_cluster_type`, `trigger_type`, `completion_indicator_def`, `frequency_limits`, `enable_channel_touch_limits`, `group_id`, `trigger_time_strategy`.
|
|
@@ -41,5 +43,6 @@ Provide exactly one of `--task-id` or `--request`.
|
|
|
41
43
|
|---|---|
|
|
42
44
|
| `APPROVAL_INPUT_INVALID` | neither or both of `task_id` and `request` supplied |
|
|
43
45
|
| `REQUEST_REQUIRED` | `--request` missing or not an object |
|
|
46
|
+
| `REQUEST_TASK_ID_NOT_ALLOWED` | `request.taskId` or `request.task_id` supplied; use `--task-id` |
|
|
44
47
|
| `REQUEST_FIELDS_REQUIRED` | required body fields absent/blank |
|
|
45
48
|
| `CAPABILITY_EXECUTION_FAILED` | unmapped domain failure; check `invocation_id` / Hermes logs |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ae-experiment
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.1
|
|
4
4
|
description: "Use when managing Atlas AB experiments, traffic layers, Features, metrics, buckets, and experiment reports through ae-cli"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -14,6 +14,7 @@ AE CLI (`ae-cli`) exposes Atlas AB Experiment capabilities through the `experime
|
|
|
14
14
|
- Use `--project-id` / `-p` for project-scoped commands.
|
|
15
15
|
- Use `--req` JSON for complex save, status, and delete DTOs.
|
|
16
16
|
- Do not invent experiment IDs, traffic layer IDs, bucket IDs, Feature keys, metric IDs, or payload field names.
|
|
17
|
+
- Bind only metric IDs returned by `experiment metric list`; create and verify a missing metric before saving the experiment.
|
|
17
18
|
- Read commands can run directly after IDs are verified.
|
|
18
19
|
- Write commands require explicit user intent and normally keep the confirmation prompt. Use `--dry-run` before write calls when composing JSON.
|
|
19
20
|
|
|
@@ -22,6 +23,12 @@ Naming and response boundary:
|
|
|
22
23
|
- CLI command segments and flags use kebab-case.
|
|
23
24
|
- Outer Capability input and all response keys use snake_case.
|
|
24
25
|
- Nested business DTOs passed through `--req` keep their native camelCase fields.
|
|
26
|
+
- **CRITICAL:** `save build-guide` / `save validate` responses recursively snake_case
|
|
27
|
+
`example_args.req`. Never copy those keys into `--req`. Use camelCase
|
|
28
|
+
(`expName`, `metricId`, …). Authoritative names:
|
|
29
|
+
`ae-cli capability inspect experiment.experiment.save` (or the matching final save id)
|
|
30
|
+
→ `input_schema.properties.req`. `save validate` `valid: true` is **not** a final-save
|
|
31
|
+
schema pass — snake_case `req` can still fail on `experiment … save`.
|
|
25
32
|
- Audience QP is semantic at the CLI boundary: write `targeting.definitionRequest`; read
|
|
26
33
|
`targeting.definition_request`. Never generate or submit `targetConfig`.
|
|
27
34
|
- Metric QP is semantic at the CLI boundary: write `metricDefinition`; read
|
|
@@ -52,7 +59,9 @@ Naming and response boundary:
|
|
|
52
59
|
4. Check readiness with `experiment experiment ready-check`.
|
|
53
60
|
5. For a non-mutex traffic layer, run `experiment experiment conflict-check` before submit (needs `feature_key_list` from context or `experiment get`).
|
|
54
61
|
6. Move status with `experiment experiment manage`.
|
|
55
|
-
7. Query reports with summary
|
|
62
|
+
7. Query reports with `experiment report summary`, `experiment report sample-size`, and `experiment report metric-trend`.
|
|
63
|
+
|
|
64
|
+
If an experiment save returns `error_code: METRIC_NOT_FOUND`, list metrics for the same project. Create and verify the metric before retrying; never retry with another invented ID. Metric deletion returns `error_code: METRIC_IN_USE` while an active experiment binding exists.
|
|
56
65
|
|
|
57
66
|
## Parameter Conventions
|
|
58
67
|
|
|
@@ -62,7 +71,7 @@ Naming and response boundary:
|
|
|
62
71
|
ae-cli experiment experiment get --project-id 1 --exp-id exp_123
|
|
63
72
|
ae-cli experiment experiment save --project-id 1 --req '{"expName":"Demo"}' --dry-run
|
|
64
73
|
ae-cli experiment metric save --project-id 1 --req '{"metricId":"login_users","metricName":"Login users","createType":"event","goalDirection":"up","metricDesc":"Users who logged in","metricDefinition":{"type":"event","event":"login","aggregation":"user_count"}}' --dry-run
|
|
65
|
-
ae-cli
|
|
74
|
+
ae-cli experiment report metric-trend --project-id 1 --exp-id exp_123 --metric-id metric_1 --start-time 2026-07-01 --end-time 2026-07-07
|
|
66
75
|
```
|
|
67
76
|
|
|
68
77
|
Optional global parameters work as in other domains: `--host`, `--mcp-url`, `--format`, `--jq`, `--dry-run`, and `--yes`.
|
|
@@ -77,6 +86,10 @@ Open the matching file in `references/` before using a command, especially for w
|
|
|
77
86
|
|
|
78
87
|
When a save command returns `next_tool: experiment.save.build-guide`, call the guide first, then `experiment save validate`, then retry the final save capability.
|
|
79
88
|
|
|
89
|
+
Read [`save_build_guide.md`](references/save_build_guide.md) and
|
|
90
|
+
[`save_validate.md`](references/save_validate.md) before using these helpers. Rebuild
|
|
91
|
+
`--req` in camelCase from `inspect` / skill references; do not paste `example_args.req`.
|
|
92
|
+
|
|
80
93
|
### Experiment
|
|
81
94
|
|
|
82
95
|
`experiment experiment save`, `capability run experiment.experiment.save-submit`, `experiment experiment list`, `experiment experiment list-archived`, `experiment experiment get`, `experiment experiment ready-check`, `experiment experiment conflict-check`, `experiment experiment manage`, `experiment experiment update-group`, `experiment experiment batch-delete`, `experiment operation-log query`
|
|
@@ -87,7 +100,7 @@ When a save command returns `next_tool: experiment.save.build-guide`, call the g
|
|
|
87
100
|
|
|
88
101
|
### Reports
|
|
89
102
|
|
|
90
|
-
`
|
|
103
|
+
`experiment report summary`, `experiment report sample-size`, `experiment report metric-trend`, `capability run experiment.query.cancel`
|
|
91
104
|
|
|
92
105
|
### Metric and Feature
|
|
93
106
|
|
|
@@ -9,3 +9,5 @@ ae-cli experiment metric delete --project-id <id> --metric-id <metricId> [--yes]
|
|
|
9
9
|
Flags:
|
|
10
10
|
- `--project-id`, `-p`: Project ID.
|
|
11
11
|
- `--metric-id`: Metric ID.
|
|
12
|
+
|
|
13
|
+
Deletion is rejected with `error_code: METRIC_IN_USE` while the metric has an active experiment binding. Remove the metric from the related experiment before retrying.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
#
|
|
1
|
+
# experiment report metric-trend
|
|
2
2
|
|
|
3
3
|
Query experiment metric trend report.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli
|
|
6
|
+
ae-cli experiment report metric-trend --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
|
-
Required
|
|
10
|
-
Optional
|
|
9
|
+
Required flags: `--project-id`, `--exp-id`, `--metric-id`, `--start-time`, `--end-time`.
|
|
10
|
+
Optional: `--request-id`, `--force-refresh`.
|
|
11
11
|
|
|
12
|
-
Response shape: `data.report`, with recursively snake_case keys. Preserve `request_id` for cancellation.
|
|
12
|
+
Response shape: `data.report`, with recursively snake_case keys. Preserve `request_id` for cancellation via `capability run experiment.query.cancel`.
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
#
|
|
1
|
+
# experiment report summary
|
|
2
2
|
|
|
3
3
|
Query experiment report summary.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli
|
|
6
|
+
ae-cli experiment report summary --project-id 1 --exp-id exp_123
|
|
7
|
+
ae-cli experiment report summary --project-id 1 --exp-id exp_123 --force-refresh true
|
|
7
8
|
```
|
|
8
9
|
|
|
9
|
-
Required
|
|
10
|
+
Required flags: `--project-id`, `--exp-id`. Optional: `--force-refresh`.
|
|
10
11
|
|
|
11
12
|
Response shape: `data.report`, with recursively snake_case keys.
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# experiment report sample-size
|
|
2
2
|
|
|
3
3
|
Query experiment sample-size report.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
ae-cli
|
|
6
|
+
ae-cli experiment report sample-size --project-id 1 --exp-id exp_123 --start-time 2026-07-01 --end-time 2026-07-07
|
|
7
|
+
ae-cli experiment report sample-size --project-id 1 --exp-id exp_123 --start-time 2026-07-01 --end-time 2026-07-07 --by-hour true
|
|
7
8
|
```
|
|
8
9
|
|
|
9
|
-
Required
|
|
10
|
-
Optional
|
|
10
|
+
Required flags: `--project-id`, `--exp-id`, `--start-time`, `--end-time`.
|
|
11
|
+
Optional: `--request-id`, `--force-refresh`, `--by-hour`.
|
|
11
12
|
|
|
12
|
-
Response shape: `data.report`, with recursively snake_case keys. Preserve `request_id` for cancellation.
|
|
13
|
+
Response shape: `data.report`, with recursively snake_case keys. Preserve `request_id` for cancellation via `capability run experiment.query.cancel`.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# experiment save build-guide
|
|
2
|
+
|
|
3
|
+
Build a read-only save guide for feature, traffic layer, experiment, or metric saves.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
ae-cli experiment save build-guide --project-id <id> --operation-mode save_experiment
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Flags:
|
|
10
|
+
- `--project-id`, `-p`: Project ID.
|
|
11
|
+
- `--operation-mode`: `save_feature`, `save_traffic_layer`, `save_experiment`, or `save_metric`.
|
|
12
|
+
|
|
13
|
+
## CRITICAL — do not copy `example_args.req` keys verbatim
|
|
14
|
+
|
|
15
|
+
Guide responses are recursively snake_cased for display. That wrongly rewrites nested DTO
|
|
16
|
+
placeholders inside `data.guide.example_args.req` (for example `expName` → `exp_name`,
|
|
17
|
+
`metricId` → `metric_id`).
|
|
18
|
+
|
|
19
|
+
Those snake_case keys are **not** valid `--req` fields for the final save commands.
|
|
20
|
+
|
|
21
|
+
Authoritative field names:
|
|
22
|
+
|
|
23
|
+
| Mode | Inspect / final save | Nested `--req` style |
|
|
24
|
+
| --- | --- | --- |
|
|
25
|
+
| `save_experiment` | `experiment.experiment.save` | camelCase (`expName`, `trafficLayerId`, …) |
|
|
26
|
+
| `save_metric` | `experiment.metric.save` | camelCase (`metricId`, `metricDefinition`, …) |
|
|
27
|
+
| `save_feature` | `experiment.feature.save` | camelCase (`featureKey`, `targetPlatform`, …) |
|
|
28
|
+
| `save_traffic_layer` | `experiment.traffic-layer.save` | camelCase (`bucketId`, `layerName`, …) |
|
|
29
|
+
|
|
30
|
+
Before composing `--req`:
|
|
31
|
+
|
|
32
|
+
1. Read `data.guide.required_fields` / `mode_rules` for **what** is required (names there may
|
|
33
|
+
already be camelCase).
|
|
34
|
+
2. Treat `example_args.req` as structure-only placeholders; **rename keys to camelCase**.
|
|
35
|
+
3. Prefer `ae-cli capability inspect <final-save-capability-id>` `input_schema.properties.req`
|
|
36
|
+
when unsure.
|
|
37
|
+
4. Then run `experiment save validate` and the final `experiment … save`.
|
|
38
|
+
|
|
39
|
+
Response shape: `data.guide`.
|
|
@@ -16,6 +16,12 @@ Flags:
|
|
|
16
16
|
- Capability input uses outer `project_id`; nested `req` fields remain native camelCase. Hermes overwrites `req.projectId` with the outer project ID.
|
|
17
17
|
- Never call this with `req=null`, `req={}`, or a modify payload containing only `expId`; those are terminal validation failures.
|
|
18
18
|
- On `valid=false`, do not retry the same payload. Fix the reported field(s) or ask the user for missing input.
|
|
19
|
+
- **Do not** paste `save build-guide` / `save validate` `example_args.req` keys into `--req`.
|
|
20
|
+
Those responses snake_case nested placeholders (`exp_name`). Final save requires camelCase
|
|
21
|
+
(`expName`, `expSupposition`, `trafficLayerId`, `featureKeyList`, `metrics[].metricId`, …).
|
|
22
|
+
If unsure, run `ae-cli capability inspect experiment.experiment.save` and copy
|
|
23
|
+
`input_schema.properties.req` field names. `save validate` may return `valid: true` for
|
|
24
|
+
snake_case `req` and still fail here with `unknown field …`.
|
|
19
25
|
|
|
20
26
|
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
27
|
|
|
@@ -36,6 +42,7 @@ Nested payload fields must match the server DTO types, not just the visible CLI
|
|
|
36
42
|
- `groups[].allocation` rule: each value must be an **integer**, and the **sum of all group allocations must equal `100` exactly** (for example `34 + 33 + 33 = 100`, not `33 + 33 + 33 = 99` and not decimal thirds).
|
|
37
43
|
- `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.
|
|
38
44
|
- `metrics` is an array of metric binding objects. Each object contains `metricId` and `metricRole`.
|
|
45
|
+
- Every `metricId` must come from `experiment metric list` for the same project. If save returns `error_code: METRIC_NOT_FOUND`, create the metric with `experiment metric save`, verify it, and then retry the experiment save.
|
|
39
46
|
|
|
40
47
|
## Modes
|
|
41
48
|
|
|
@@ -103,6 +110,10 @@ ae-cli experiment experiment save --project-id 1 --req '{"expId":"exp_123","allo
|
|
|
103
110
|
`targeting.definitionRequest`. Do not submit the internal `targeting.targetConfig`
|
|
104
111
|
JSON or any `Cxx`/`Axxx` code. Resolve event and property names with Analysis
|
|
105
112
|
metadata first.
|
|
113
|
+
- Avoid redundant adjacent `compound` groups with the same `relation`. Hermes
|
|
114
|
+
safely flattens those groups when an Atlas experiment is saved or submitted so
|
|
115
|
+
the generated cluster QP stays within the backend layer limit. Different
|
|
116
|
+
relations are always preserved.
|
|
106
117
|
|
|
107
118
|
Semantic audience example:
|
|
108
119
|
|
|
@@ -8,10 +8,14 @@ ae-cli experiment metric save --project-id <id> --req '<json>'
|
|
|
8
8
|
|
|
9
9
|
Flags:
|
|
10
10
|
- `--project-id`, `-p`: Project ID.
|
|
11
|
-
- `--req`: Metric save request JSON object.
|
|
11
|
+
- `--req`: Metric save request JSON object (**camelCase** keys such as `metricId`, `metricDefinition`).
|
|
12
12
|
|
|
13
13
|
Create mode requires metric identifiers and metric configuration. Modify mode uses `update=true`.
|
|
14
14
|
|
|
15
|
+
Do not paste `save build-guide` / `save validate` `example_args.req` keys (`metric_id`, …) into
|
|
16
|
+
`--req`. Those responses snake_case nested placeholders; final save requires camelCase.
|
|
17
|
+
See [`save_build_guide.md`](save_build_guide.md) / [`save_validate.md`](save_validate.md).
|
|
18
|
+
|
|
15
19
|
## Semantic Metric Contract
|
|
16
20
|
|
|
17
21
|
- Supply metric QP as `req.metricDefinition`.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# experiment save validate
|
|
2
|
+
|
|
3
|
+
Dry-run helper for save payloads. Does **not** persist data.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
ae-cli experiment save validate --project-id <id> --operation-mode save_experiment --req '{"expName":"Demo"}'
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Flags:
|
|
10
|
+
- `--project-id`, `-p`: Project ID.
|
|
11
|
+
- `--operation-mode`: `save_feature`, `save_traffic_layer`, `save_experiment`, or `save_metric`.
|
|
12
|
+
- `--req`: Candidate save request object. **Must use native camelCase DTO keys.**
|
|
13
|
+
|
|
14
|
+
## CRITICAL — `valid: true` is not a save schema pass
|
|
15
|
+
|
|
16
|
+
`experiment.save.validate` checks operation-mode / outer helper contract. It does **not**
|
|
17
|
+
fully enforce the final save capability `input_schema`.
|
|
18
|
+
|
|
19
|
+
Consequences:
|
|
20
|
+
|
|
21
|
+
- `--req '{"exp_name":"Demo"}'` can return `valid: true`.
|
|
22
|
+
- The same payload fails on `experiment experiment save` with `unknown field exp_name`.
|
|
23
|
+
|
|
24
|
+
Rules:
|
|
25
|
+
|
|
26
|
+
1. Never submit snake_case DTO keys in `--req` (`exp_name`, `metric_id`, `feature_key`, …).
|
|
27
|
+
2. Do not trust `data.validation.example_args.req` key casing; rebuild with camelCase.
|
|
28
|
+
3. After `valid: true`, still use camelCase and prefer
|
|
29
|
+
`ae-cli … save --dry-run` / `capability inspect` before a real write.
|
|
30
|
+
4. On final save `INVALID_CAPABILITY_INPUT` / `unknown field`, fix casing — do not widen
|
|
31
|
+
the payload with more snake_case keys.
|
|
32
|
+
|
|
33
|
+
Response shape: `data.validation`.
|
|
@@ -9,7 +9,7 @@ Turn a business objective into an evidence-backed experiment design, an implemen
|
|
|
9
9
|
|
|
10
10
|
## Hard boundaries
|
|
11
11
|
|
|
12
|
-
- Use `ae-cli` for every AE/TE platform interaction. Do not substitute raw HTTP, browser automation, direct database queries,
|
|
12
|
+
- Use `ae-cli` for every AE/TE platform interaction. Do not substitute raw HTTP, browser automation, direct database queries, or application SDKs.
|
|
13
13
|
- Do not infer an SDK request from the fact that an experiment needs implementation. Load SDK references only when the user explicitly asks about an A/B experiment SDK or client SDK integration.
|
|
14
14
|
- Do not copy general tracking SDK documentation into this Skill. Route generic initialization, event reporting, `track`, user identity, user properties, data upload, LogBus, and REST questions to `ae-data-integration-helper` when that Skill is available.
|
|
15
15
|
- Use only the event-metric calculation contracts defined in
|
|
@@ -4,12 +4,12 @@ Read this reference before any AE/TE platform interaction.
|
|
|
4
4
|
|
|
5
5
|
## Hard boundary
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Use `ae-cli` for all platform operations. Do not call raw APIs, use browser automation, query a database, or fabricate a platform result.
|
|
8
8
|
|
|
9
9
|
Use curated commands when their contract is known. Use the Capability Gateway for experiment capabilities that do not yet have a curated command:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
ae-cli capability search "<terms>" [--project-id <id>]
|
|
12
|
+
ae-cli capability search "<terms>" --domain <domain> [--project-id <id>]
|
|
13
13
|
ae-cli capability inspect <capability-id> --project-id <id>
|
|
14
14
|
ae-cli capability validate <capability-id> --input '<json-object>'
|
|
15
15
|
ae-cli capability dry-run <capability-id> --input '<json-object>'
|
|
@@ -30,10 +30,16 @@ After every `ae-cli` invocation, inspect stderr and `_notice.host_compat`. If a
|
|
|
30
30
|
|
|
31
31
|
## Project gate
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
When the user supplies a project ID, resolve it directly:
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
ae-cli
|
|
36
|
+
ae-cli project info get --project-id <id>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
When the user supplies only a project name, search and disambiguate:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
ae-cli project info list --query "<project name>" --fields '["project_id","project_name"]' --limit 20 --offset 0
|
|
37
43
|
```
|
|
38
44
|
|
|
39
45
|
Reuse a project only when its ID and host were verified in the same continuous conversation. If multiple projects match, stop and ask the user to choose.
|
|
@@ -4,12 +4,12 @@ Read this reference before retrieving any AE/TE experiment evidence.
|
|
|
4
4
|
|
|
5
5
|
## Hard boundary
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Use `ae-cli` for all platform discovery and reads. Do not call raw APIs, use browser automation, query a database, or invent report values.
|
|
8
8
|
|
|
9
9
|
Use the Capability Gateway when no curated experiment command exists:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
ae-cli capability search "<terms>" [--project-id <id>]
|
|
12
|
+
ae-cli capability search "<terms>" --domain <domain> [--project-id <id>]
|
|
13
13
|
ae-cli capability inspect <capability-id> --project-id <id>
|
|
14
14
|
ae-cli capability run <capability-id> --input '<json-object>'
|
|
15
15
|
```
|
|
@@ -22,10 +22,16 @@ After every `ae-cli` invocation, inspect stderr and `_notice.host_compat`. If pr
|
|
|
22
22
|
|
|
23
23
|
## Resolution gates
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
When the user supplies a project ID, resolve it directly:
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
ae-cli
|
|
28
|
+
ae-cli project info get --project-id <id>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
When the user supplies only a project name, search and disambiguate:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
ae-cli project info list --query "<project name>" --fields '["project_id","project_name"]' --limit 20 --offset 0
|
|
29
35
|
```
|
|
30
36
|
|
|
31
37
|
Then discover experiment list/get capabilities and resolve the exact experiment by verified ID or exact-match name. If multiple candidates remain, ask the user.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ae-metadata
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.1
|
|
4
4
|
description: "AE/TE metadata capability-gateway CLI: metadata data-table management and property dimension-table binding. Metadata CLI routes through the analysis gateway. Input-file upload and event/property detail belong to ae-analysis."
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -30,6 +30,7 @@ Safety:
|
|
|
30
30
|
- Ordinary writes (`data-table *-write`, `property-bindings-update`, dimension-table bind/create) execute without `--yes`. Delete commands are `high-risk-write`: dry-run first, summarize impact, wait for explicit confirmation, then execute with `--yes`.
|
|
31
31
|
- **Before any command**, read the matching `references/<name>.md` (filename = command with spaces → underscores, e.g. `metadata data-table list` → `metadata_data_table_list.md`).
|
|
32
32
|
- Never invent `project_id`, event/property names, `input_file_id`, or `data_table_id`. Discover names via `ae-analysis` and data table IDs via `metadata data-table list`.
|
|
33
|
+
- `metadata data-table download` is an async artifact command: plain invocation submits, `--wait` waits, and `--output <file>` waits then streams atomically. Resume with `analysis run wait`; local interruption never cancels the remote run.
|
|
33
34
|
|
|
34
35
|
## When to Use
|
|
35
36
|
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
```bash
|
|
6
6
|
ae-cli metadata data-table download --project-id <project_id> --data-table-id <id>
|
|
7
7
|
ae-cli metadata data-table download --project-id <project_id> --data-table-id <id> --request-id cli_0123456789abcdef0123456789abcdef --timeout-seconds 120
|
|
8
|
+
ae-cli metadata data-table download --project-id <project_id> --data-table-id <id> --output <file>
|
|
8
9
|
```
|
|
9
10
|
|
|
10
11
|
| Parameter | Required | Description |
|
|
@@ -12,6 +13,13 @@ ae-cli metadata data-table download --project-id <project_id> --data-table-id <i
|
|
|
12
13
|
| `--project-id` / `-p` | Yes | Numeric project ID. |
|
|
13
14
|
| `--data-table-id` | Yes | Data table ID. |
|
|
14
15
|
| `--request-id` | No | Optional `cli_<32 lowercase hex>` request ID. |
|
|
15
|
-
| `--timeout-seconds` | No |
|
|
16
|
+
| `--timeout-seconds` | No | Remote runtime in seconds, 1 to 21600. |
|
|
17
|
+
| `--wait` | No | Wait for run `SUCCEEDED` and artifact `COMPLETED`. |
|
|
18
|
+
| `--output` | No | Wait, then stream and atomically publish the artifact to this file. |
|
|
19
|
+
| `--force` | No | Replace an existing `--output` file atomically; invalid without `--output`. |
|
|
16
20
|
|
|
17
|
-
Use this command when the user needs an exported data-table artifact.
|
|
21
|
+
Use this command when the user needs an exported data-table artifact. Plain
|
|
22
|
+
invocation submits only. `--output` implies `--wait`; resume an interrupted
|
|
23
|
+
wait with `ae-cli analysis run wait --run-id <run_id> [--output <file>]`.
|
|
24
|
+
Local interruption never cancels the remote run. Do not use this command for
|
|
25
|
+
inline data-table metadata; use `metadata data-table get` instead.
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
## Command
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
ae-cli metadata data-table list --project-id <project_id>
|
|
8
|
+
ae-cli metadata data-table list --project-id <project_id> --limit 50 --offset 0
|
|
9
9
|
ae-cli metadata data-table list --project-id <project_id> --dry-run
|
|
10
10
|
```
|
|
11
11
|
|
|
@@ -14,14 +14,17 @@ ae-cli metadata data-table list --project-id <project_id> --dry-run
|
|
|
14
14
|
| Parameter | Required | Description |
|
|
15
15
|
|---|---|---|
|
|
16
16
|
| `--project-id` / `-p` | Yes | Numeric project ID. |
|
|
17
|
+
| `--limit` / `-l` | No | Page size. Default: 50, maximum: 200. |
|
|
18
|
+
| `--offset` / `-o` | No | Zero-based page offset. Default: 0. |
|
|
17
19
|
|
|
18
20
|
## Request Body
|
|
19
21
|
|
|
20
22
|
```json
|
|
21
|
-
{ "project_id": 1 }
|
|
23
|
+
{ "project_id": 1, "limit": 50, "offset": 0 }
|
|
22
24
|
```
|
|
23
25
|
|
|
24
26
|
## Decision Rules
|
|
25
27
|
|
|
26
28
|
- Use this command to discover `data_table_id` before get, delete, download, or property binding.
|
|
27
29
|
- If the list is empty, do not invent IDs; create/upload a table first or ask for the target table.
|
|
30
|
+
- Read rows from `data.items`; pagination metadata is always `total`, `limit`, `offset`, `has_more`, and `next_offset`.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ae-system
|
|
3
|
-
version: 1.
|
|
4
|
-
description: "AE Agent system administration CLI for root and agent administrators. Use when the user asks to manage Agent members, sandboxes, company model visibility/defaults, usage statistics, cost quotas, balance alerts, or IM channels. Must use ae-cli system commands, discover real IDs before writes, and never attempt to bypass a permission denial."
|
|
3
|
+
version: 1.1.0
|
|
4
|
+
description: "AE Agent system administration CLI for root and agent administrators. Use when the user asks to manage Agent members, sandboxes and shared tools, company model visibility/defaults/pricing, usage statistics and exports, cost quotas, balance alerts, or IM channels. Must use ae-cli system commands, discover real IDs before writes, and never attempt to bypass a permission denial."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# ae-system
|
|
@@ -19,11 +19,13 @@ ae-cli system +<command> [options]
|
|
|
19
19
|
- Run `ae-cli auth login --host <host>` before using this domain. System administration requires a user access-token session; sandbox identity headers are not an authorization substitute.
|
|
20
20
|
- `+npm-install` is the exception that must also run inside a Linux te-agent sandbox because it packages the installed Linux files. It still requires the logged-in user to be `root` or `agent_admin`.
|
|
21
21
|
- Discover real IDs with a list command before any update or delete. Never guess a user, sandbox, model, quota rule, or channel ID.
|
|
22
|
-
-
|
|
22
|
+
- Before every write, run `--dry-run`, show the target and effect, and obtain explicit user confirmation. The CLI itself prompts only for `high-risk-write`; `--yes` can bypass that prompt and is not a security boundary.
|
|
23
23
|
- Use `--dry-run` to inspect method, path, query, and redacted body without executing.
|
|
24
24
|
- JSON inputs accept inline JSON, `@file`, or `-` for stdin. Prefer `@file` for channel credentials and other sensitive values.
|
|
25
25
|
- Successful output is JSON by default. Use `--format table` only when a human-readable table is more useful.
|
|
26
26
|
- After each command, check stderr and `_notice.host_compat`. If present, show the version warning and its update commands before the business result.
|
|
27
|
+
- Do not treat an absent ae-cli command as proof that an HTTP endpoint is unreachable. An Agent with Bash/network access can construct requests directly; server authentication, role checks, company isolation, and resource ownership are the actual controls.
|
|
28
|
+
- Do not call `DELETE /api/admin/members?openId=...` or `/api/internal/sandboxes/**` through ad-hoc HTTP. They are intentionally excluded from this Skill because other systems own those integration contracts.
|
|
27
29
|
|
|
28
30
|
## Command Groups
|
|
29
31
|
|
|
@@ -37,6 +39,7 @@ ae-cli system +<command> [options]
|
|
|
37
39
|
| `+set-member-status` | write | Enable or disable a member. |
|
|
38
40
|
| `+set-member-role` | write | Change a non-root member between `agent_admin` and `member`. |
|
|
39
41
|
| `+remove-member` | high-risk-write | Remove a non-root member. |
|
|
42
|
+
| `+get-member-stats` | read | Get one member's token usage and recent conversation count. |
|
|
40
43
|
|
|
41
44
|
Examples:
|
|
42
45
|
|
|
@@ -77,6 +80,7 @@ Optional flags are `--rule-id` and `--create-sandbox true|false`.
|
|
|
77
80
|
| Command | Risk | Purpose |
|
|
78
81
|
| --- | --- | --- |
|
|
79
82
|
| `+list-sandboxes` | read | List company sandboxes. |
|
|
83
|
+
| `+get-sandbox-config` | read | Read feature status and create/active seat limits. |
|
|
80
84
|
| `+batch-create-sandboxes` | write | Create personal sandboxes for 1-100 users. |
|
|
81
85
|
| `+update-sandbox` | write | Update a sandbox description. |
|
|
82
86
|
| `+set-sandbox-enabled` | write | Enable or disable a sandbox. |
|
|
@@ -106,9 +110,33 @@ Use Agent database user IDs from `+list-members`, not TE openIds, for sandbox co
|
|
|
106
110
|
| --- | --- | --- |
|
|
107
111
|
| `+upload-sandbox-tool` | write | Validate, ZIP, and upload an existing tool directory. |
|
|
108
112
|
| `+npm-install` | write | Install one exact npm CLI version in a temporary sandbox directory, generate `tool.json`, and upload it. |
|
|
113
|
+
| `+list-sandbox-tools` | read | List preset and custom tools for the current company. |
|
|
114
|
+
| `+sync-sandbox-tools` | write | Synchronize preset tools from the server manifest. |
|
|
115
|
+
| `+get-sandbox-tool-distribution` | read | Read the sandboxes currently receiving one tool. |
|
|
116
|
+
| `+set-sandbox-tool-enabled` | write | Enable or disable one registered tool. |
|
|
117
|
+
| `+remove-sandbox-tool` | high-risk-write | Delete a fully reclaimed tool registration. |
|
|
118
|
+
| `+activate-sandbox-tools` | write | Activate selected commands on selected or all running sandboxes. |
|
|
119
|
+
| `+deactivate-sandbox-tools` | write | Remove managed command shims from selected or all running sandboxes. |
|
|
120
|
+
| `+refresh-sandbox-tool-status` | write | Refresh observed tool state on target sandboxes. |
|
|
121
|
+
| `+list-sandbox-tool-operations` | read | List activation/deactivation history. |
|
|
109
122
|
|
|
110
123
|
Uploaded tools are registered for the current company with `enabled=false`. Upload does not activate the tool in any running sandbox. Review and enable/activate it through sandbox tool management after upload.
|
|
111
124
|
|
|
125
|
+
For activate/deactivate/status operations:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
ae-cli system +activate-sandbox-tools \
|
|
129
|
+
--target-mode selected \
|
|
130
|
+
--sandbox-ids '["<sandbox-id>"]' \
|
|
131
|
+
--tool-ids '["<tool-id>"]'
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
- `--target-mode selected` requires 1-50 `--sandbox-ids`; `all-running` forbids them.
|
|
135
|
+
- `--tool-ids` contains 1-20 real IDs from `+list-sandbox-tools`.
|
|
136
|
+
- `--command-names-by-tool-id` optionally limits an operation to named commands.
|
|
137
|
+
- `--expected-tool-snapshots-by-id` carries the version/package/command snapshot returned by the server for optimistic concurrency checks.
|
|
138
|
+
- JSON maps accept inline JSON, `@file`, or stdin. Use dry-run and user confirmation before distribution changes.
|
|
139
|
+
|
|
112
140
|
#### Preferred npm Flow
|
|
113
141
|
|
|
114
142
|
Run this inside the target Linux te-agent sandbox:
|
|
@@ -189,6 +217,9 @@ Upload contract:
|
|
|
189
217
|
| --- | --- | --- |
|
|
190
218
|
| `+list-system-models` | read | List system models and company visibility. |
|
|
191
219
|
| `+set-system-model-enabled` | write | Toggle a system model for the current company. |
|
|
220
|
+
| `+get-model-sync-settings` | read | Read the default visibility policy for newly synchronized system models. |
|
|
221
|
+
| `+set-model-sync-settings` | write | Update the new-system-model visibility policy. |
|
|
222
|
+
| `+get-system-model-price-rules` | read | Read one managed system model's stored pricing snapshot. |
|
|
192
223
|
| `+list-company-models` | read | List company models, including disabled models. |
|
|
193
224
|
| `+set-company-model-enabled` | write | Toggle a company model for all company users. |
|
|
194
225
|
| `+get-default-models` | read | Read the `AE_AGENT` and `AI_QA` default slots. |
|
|
@@ -211,11 +242,16 @@ ae-cli system +set-default-model --model-id <model-id> --biz-type AE_AGENT
|
|
|
211
242
|
| --- | --- | --- |
|
|
212
243
|
| `+get-usage-summary` | read | Get token/cost summary for a relative or absolute range. |
|
|
213
244
|
| `+get-usage-details` | read | Get paginated usage grouped by user, model, date, or application type. |
|
|
245
|
+
| `+get-agent-tool-calls` | read | Get Agent tool-call count for a range, optionally refreshing the cache. |
|
|
246
|
+
| `+get-usage-combinations` | read | Drill one parent group into the remaining dimensions. |
|
|
247
|
+
| `+export-usage` | read | Stream filtered one-dimension usage groups to CSV. |
|
|
248
|
+
| `+export-usage-details` | read | Stream full or drill-down multi-dimension details to CSV. |
|
|
214
249
|
|
|
215
250
|
Examples:
|
|
216
251
|
|
|
217
252
|
```bash
|
|
218
253
|
ae-cli system +get-usage-summary --days 30
|
|
254
|
+
ae-cli system +get-usage-summary --days 30 --refresh true
|
|
219
255
|
|
|
220
256
|
ae-cli system +get-usage-details \
|
|
221
257
|
--start-date 2026-07-01 \
|
|
@@ -223,12 +259,26 @@ ae-cli system +get-usage-details \
|
|
|
223
259
|
--group-by user \
|
|
224
260
|
--page 1 \
|
|
225
261
|
--page-size 20
|
|
262
|
+
|
|
263
|
+
ae-cli system +get-usage-combinations \
|
|
264
|
+
--start-date 2026-07-01 \
|
|
265
|
+
--end-date 2026-07-24 \
|
|
266
|
+
--parent-dimension user \
|
|
267
|
+
--open-id <open-id>
|
|
268
|
+
|
|
269
|
+
ae-cli system +export-usage \
|
|
270
|
+
--start-date 2026-07-01 \
|
|
271
|
+
--end-date 2026-07-24 \
|
|
272
|
+
--group-by user \
|
|
273
|
+
--output ./system-usage.csv
|
|
226
274
|
```
|
|
227
275
|
|
|
228
276
|
Summary range:
|
|
229
277
|
|
|
230
278
|
- Use `--days 1..365`, or provide both `--start-date` and `--end-date`.
|
|
231
279
|
- Dates use `YYYY-MM-DD`.
|
|
280
|
+
- Do not combine `--days` with an absolute date pair.
|
|
281
|
+
- `--refresh true` is available on `+get-usage-summary` and `+get-agent-tool-calls` and bypasses the overview cache.
|
|
232
282
|
|
|
233
283
|
Details flags:
|
|
234
284
|
|
|
@@ -239,11 +289,22 @@ Details flags:
|
|
|
239
289
|
- `--sort-by`: `totalTokens | cost | share | requestCount`.
|
|
240
290
|
- `--sort-dir`: `asc | desc`.
|
|
241
291
|
|
|
292
|
+
Combination drill-down requires exactly one parent selector:
|
|
293
|
+
|
|
294
|
+
- `user` → `--open-id` only.
|
|
295
|
+
- `model` → `--model-id` and `--model-scope` only.
|
|
296
|
+
- `app_type` → `--app-type` only.
|
|
297
|
+
- `date` → `--date` only, inside the selected range.
|
|
298
|
+
|
|
299
|
+
CSV exports require an explicit `--output`. The target is created exclusively: an existing file is never overwritten, and an HTTP or stream failure removes the incomplete file. The JSON result reports the absolute local path, bytes written, server filename, and content type.
|
|
300
|
+
|
|
242
301
|
### Cost Control
|
|
243
302
|
|
|
244
303
|
| Command | Risk | Purpose |
|
|
245
304
|
| --- | --- | --- |
|
|
246
305
|
| `+get-cost-summary` | read | Get company cost, quota, and usage summary. |
|
|
306
|
+
| `+get-balance` | read | Get the current model account balance and currency. |
|
|
307
|
+
| `+list-over-limit-users` | read | List members over cost or token quota limits. |
|
|
247
308
|
| `+get-balance-alert` | read | Get balance alert config and current status. |
|
|
248
309
|
| `+set-balance-alert` | write | Enable, update, or disable the balance alert. |
|
|
249
310
|
| `+list-quota-rules` | read | List cost/token quota rules. |
|
|
@@ -347,6 +408,8 @@ On this response:
|
|
|
347
408
|
2. Do not recommend re-login unless the server returned 401 instead.
|
|
348
409
|
3. Tell the user that `root` or `agent_admin` is required.
|
|
349
410
|
|
|
411
|
+
An authenticated `root` or `agent_admin` is still scoped to their own company. The current service checks the database role and company against the session, and audited member, channel, sandbox-tool, and sandbox-management routes apply company/resource ownership checks. Never use that statement as a claim that every unreviewed admin route is safe.
|
|
412
|
+
|
|
350
413
|
## Transport Status
|
|
351
414
|
|
|
352
415
|
This is a Transitional L2 domain backed by te-agent `/api/admin/**`.
|