@thinkingai/ae-cli 6.0.31 → 6.0.33
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-SEH3JWLN.js → capability-AJC5CBRT.js} +50 -18
- package/dist/{capability-SQ2IWKP3.js → capability-TQ5KU5Q6.js} +50 -18
- 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-TKQJQXWT.js → chunk-6CHYBI64.js} +7 -4
- 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-N2QORU5D.js → chunk-ISY6HMHM.js} +7 -4
- 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 +541 -234
- package/dist/{metadata-W6JFFMBA.js → metadata-3M5F2AED.js} +15 -14
- package/dist/{metadata-X62TKIVK.js → metadata-W2MEOI4Z.js} +15 -14
- 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-NJGNWZFC.js → te-analysis-I73ZS4NK.js} +2196 -120
- package/dist/{te-analysis-YGV5V5EX.js → te-analysis-Q7AZCDU4.js} +2196 -120
- package/dist/te-common-ST3QPSXJ.js +61 -0
- package/dist/te-common-WSLIKKPC.js +61 -0
- 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-GJRVQMK3.js +3895 -0
- package/dist/te-engage-JIXX3WBI.js +3895 -0
- package/dist/{te-kb-NT33UHAE.js → te-kb-CIZXRWMO.js} +105 -23
- package/dist/{te-meta-VKWNAWO4.js → te-meta-Q4L6EE3Q.js} +8 -240
- package/dist/{te-meta-MAAUHFQO.js → te-meta-VHCN4Q62.js} +8 -240
- 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 +6 -2
- package/skills/ae-agent/SKILL.md +2 -1
- package/skills/ae-analysis/SKILL.md +21 -7
- package/skills/ae-analysis/references/adhoc_export.md +5 -6
- package/skills/ae-analysis/references/adhoc_run.md +7 -9
- package/skills/ae-analysis/references/ai_models.md +17 -1
- 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/analysis_data_retrieval.md +11 -11
- package/skills/ae-analysis/references/analysis_drilldown_contract.md +93 -0
- package/skills/ae-analysis/references/analysis_gateway_assets.md +9 -8
- package/skills/ae-analysis/references/asset_url_get.md +4 -3
- package/skills/ae-analysis/references/bi_panel_create.md +3 -3
- package/skills/ae-analysis/references/bi_panel_page_data_export.md +2 -2
- package/skills/ae-analysis/references/bi_panel_page_data_run.md +1 -1
- 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 +114 -46
- package/skills/ae-analysis/references/create_entity.md +2 -2
- 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 +4 -4
- package/skills/ae-analysis/references/dashboard_report_data_run.md +4 -4
- package/skills/ae-analysis/references/drilldown_entities_export.md +26 -0
- package/skills/ae-analysis/references/drilldown_entities_run.md +33 -0
- package/skills/ae-analysis/references/drilldown_events_export.md +21 -0
- package/skills/ae-analysis/references/drilldown_events_run.md +23 -0
- package/skills/ae-analysis/references/drilldown_user_events_export.md +6 -3
- package/skills/ae-analysis/references/drilldown_user_events_run.md +6 -6
- package/skills/ae-analysis/references/entity_detail_export.md +2 -0
- package/skills/ae-analysis/references/entity_detail_run.md +8 -1
- 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/event_detail_export.md +2 -0
- package/skills/ae-analysis/references/event_detail_run.md +2 -0
- package/skills/ae-analysis/references/event_list.md +10 -2
- 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/list_entities.md +1 -1
- 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/metric_create.md +13 -4
- package/skills/ae-analysis/references/metric_delete.md +7 -0
- package/skills/ae-analysis/references/metric_get.md +6 -0
- package/skills/ae-analysis/references/metric_list.md +16 -3
- package/skills/ae-analysis/references/metric_update.md +12 -1
- 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_access_detail_get.md +23 -0
- package/skills/ae-analysis/references/project_data_power_delete.md +26 -0
- package/skills/ae-analysis/references/project_data_power_get.md +24 -0
- package/skills/ae-analysis/references/project_data_power_list.md +23 -0
- package/skills/ae-analysis/references/project_data_power_upsert.md +24 -0
- package/skills/ae-analysis/references/project_entity_create.md +27 -0
- package/skills/ae-analysis/references/project_entity_delete.md +25 -0
- package/skills/ae-analysis/references/project_entity_event_list.md +24 -0
- package/skills/ae-analysis/references/project_entity_get.md +24 -0
- package/skills/ae-analysis/references/project_entity_list.md +28 -0
- package/skills/ae-analysis/references/project_entity_update.md +28 -0
- package/skills/ae-analysis/references/project_function_list.md +24 -0
- package/skills/ae-analysis/references/project_info_get.md +23 -0
- package/skills/ae-analysis/references/project_info_list.md +26 -0
- package/skills/ae-analysis/references/project_info_update.md +25 -0
- package/skills/ae-analysis/references/project_mark_time_create.md +27 -0
- package/skills/ae-analysis/references/project_mark_time_delete.md +25 -0
- package/skills/ae-analysis/references/project_mark_time_list.md +28 -0
- package/skills/ae-analysis/references/project_mark_time_update.md +28 -0
- package/skills/ae-analysis/references/project_member_add.md +25 -0
- package/skills/ae-analysis/references/project_member_batch_update.md +24 -0
- package/skills/ae-analysis/references/project_member_candidate_list.md +25 -0
- package/skills/ae-analysis/references/project_member_handover_export.md +27 -0
- package/skills/ae-analysis/references/project_member_handover_run.md +24 -0
- package/skills/ae-analysis/references/project_member_import.md +25 -0
- package/skills/ae-analysis/references/project_member_list.md +23 -0
- package/skills/ae-analysis/references/project_member_receiver_list.md +23 -0
- package/skills/ae-analysis/references/project_member_remove.md +26 -0
- package/skills/ae-analysis/references/project_member_update.md +25 -0
- package/skills/ae-analysis/references/project_owner_update.md +27 -0
- package/skills/ae-analysis/references/project_permission_binding_list.md +24 -0
- package/skills/ae-analysis/references/project_receive_status_update.md +25 -0
- package/skills/ae-analysis/references/project_role_delete.md +26 -0
- package/skills/ae-analysis/references/project_role_function_list.md +27 -0
- package/skills/ae-analysis/references/project_role_get.md +24 -0
- package/skills/ae-analysis/references/project_role_list.md +25 -0
- package/skills/ae-analysis/references/project_role_upsert.md +24 -0
- package/skills/ae-analysis/references/project_role_user_list.md +24 -0
- package/skills/ae-analysis/references/project_timezone_get.md +23 -0
- package/skills/ae-analysis/references/project_timezone_overview.md +23 -0
- package/skills/ae-analysis/references/project_timezone_update.md +25 -0
- package/skills/ae-analysis/references/project_user_id_items_update.md +24 -0
- package/skills/ae-analysis/references/property_list.md +21 -6
- package/skills/ae-analysis/references/public_link_create.md +1 -1
- package/skills/ae-analysis/references/query_create_result_cluster.md +15 -32
- package/skills/ae-analysis/references/report_create.md +1 -1
- package/skills/ae-analysis/references/report_data_export.md +5 -3
- package/skills/ae-analysis/references/report_data_run.md +13 -3
- package/skills/ae-analysis/references/report_get.md +2 -0
- package/skills/ae-analysis/references/report_update.md +1 -1
- package/skills/ae-analysis/references/sdk_sample_generate.md +24 -0
- package/skills/ae-analysis/references/user_cluster_create.md +5 -1
- package/skills/ae-analysis/references/user_cluster_create_id.md +2 -0
- package/skills/ae-analysis/references/user_cluster_get.md +4 -0
- package/skills/ae-analysis/references/user_cluster_refresh.md +4 -2
- package/skills/ae-analysis/references/user_cluster_update.md +5 -1
- package/skills/ae-analysis/references/user_cluster_update_id.md +2 -0
- package/skills/ae-analysis/references/user_tag_create.md +5 -1
- package/skills/ae-analysis/references/user_tag_create_id.md +2 -0
- package/skills/ae-analysis/references/user_tag_get.md +4 -0
- package/skills/ae-analysis/references/user_tag_refresh.md +4 -2
- package/skills/ae-analysis/references/user_tag_update.md +5 -1
- package/skills/ae-analysis/references/user_tag_update_id.md +2 -0
- package/skills/ae-analysis/references/virtual_event_create.md +22 -3
- package/skills/ae-analysis/references/virtual_property_create.md +23 -2
- 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 +204 -8
- package/skills/ae-engage/references/activity-activity-type.md +42 -0
- package/skills/ae-engage/references/activity-activity.md +70 -0
- package/skills/ae-engage/references/activity-approval.md +53 -0
- package/skills/ae-engage/references/activity-task.md +87 -0
- package/skills/ae-engage/references/activity-topic.md +98 -0
- package/skills/ae-engage/references/approval-approver-delete.md +26 -0
- package/skills/ae-engage/references/channel-test-send.md +37 -0
- package/skills/ae-engage/references/channel-touch-limits-batch-update.md +28 -0
- package/skills/ae-engage/references/channel-touch-limits-save.md +37 -0
- package/skills/ae-engage/references/channel-touch-limits-toggle.md +28 -0
- package/skills/ae-engage/references/channel-update-config.md +36 -0
- package/skills/ae-engage/references/client-param.md +58 -0
- package/skills/ae-engage/references/common-metric.md +75 -0
- package/skills/ae-engage/references/config-table.md +92 -0
- package/skills/ae-engage/references/engage-scene-config-item.md +69 -0
- package/skills/ae-engage/references/operation-log-query.md +1 -1
- package/skills/ae-engage/references/preset-event.md +42 -0
- package/skills/ae-engage/references/push-language.md +39 -0
- package/skills/ae-engage/references/scene-config-channel.md +58 -0
- package/skills/ae-engage/references/scene-config-group.md +62 -0
- package/skills/ae-engage/references/scene-config-item.md +68 -0
- package/skills/ae-engage/references/scene-config-metric.md +79 -0
- package/skills/ae-engage/references/scene-config-param.md +72 -0
- package/skills/ae-engage/references/scene-preset-metric.md +45 -0
- package/skills/ae-engage/references/scene-strategy.md +47 -0
- package/skills/ae-engage/references/scene-template.md +71 -0
- package/skills/ae-engage/references/{ops-delete.md → task-delete.md} +3 -3
- package/skills/ae-engage/references/whitelist.md +72 -0
- package/skills/ae-engage/references/workbench-workbench.md +48 -0
- package/skills/ae-generate-tracking-code/SKILL.md +4 -4
- package/skills/ae-generate-tracking-plan/SKILL.md +140 -16
- package/skills/ae-generate-tracking-plan/references/business-dimension-mapping.md +98 -33
- package/skills/ae-generate-tracking-plan/references/te-api.md +1 -1
- package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +16 -14
- package/skills/ae-kb/SKILL.md +36 -9
- package/skills/ae-metadata/SKILL.md +3 -2
- package/skills/ae-metadata/references/metadata_event_get.md +4 -4
- package/skills/ae-metadata/references/metadata_property_dimension_table_bind_existing.md +1 -1
- package/skills/ae-metadata/references/metadata_property_get.md +4 -4
- 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-common-5NJLF3XG.js +0 -130
- package/dist/te-common-7VTJZPII.js +0 -130
- package/dist/te-community-PEZ2VEF7.js +0 -687
- package/dist/te-community-TSKJ652U.js +0 -687
- package/dist/te-engage-BUWVSSSK.js +0 -1912
- package/dist/te-engage-EPE3QKDE.js +0 -1912
- package/skills/ae-analysis/references/create_metric.md +0 -58
- package/skills/ae-analysis/references/create_virtual_event.md +0 -60
- package/skills/ae-analysis/references/create_virtual_property.md +0 -69
- package/skills/ae-analysis/references/delete_metric.md +0 -32
- package/skills/ae-analysis/references/drilldown_users_export.md +0 -17
- package/skills/ae-analysis/references/drilldown_users_run.md +0 -61
- package/skills/ae-analysis/references/get_metric.md +0 -38
- package/skills/ae-analysis/references/get_resource_url.md +0 -33
- package/skills/ae-analysis/references/list_events.md +0 -46
- package/skills/ae-analysis/references/list_metrics.md +0 -52
- package/skills/ae-analysis/references/list_properties.md +0 -47
- package/skills/ae-analysis/references/update_metric.md +0 -58
- package/dist/{chunk-HL2AJQ4Q.js → chunk-PTE56QPL.js} +3 -3
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
# Community Data Reporting
|
|
2
|
+
|
|
3
|
+
Use `ae-cli community data report` to validate, normalize, and submit community records directly to an authorized Iris ingress endpoint. This is an ingestion data-plane command, not an AE analysis-host command.
|
|
4
|
+
|
|
5
|
+
## Contents
|
|
6
|
+
|
|
7
|
+
- [Safety and delivery contract](#safety-and-delivery-contract)
|
|
8
|
+
- [Endpoint and identifiers](#endpoint-and-identifiers)
|
|
9
|
+
- [Input modes](#input-modes)
|
|
10
|
+
- [Chat example](#chat-example)
|
|
11
|
+
- [Mixed payload example](#mixed-payload-example)
|
|
12
|
+
- [Common record rules](#common-record-rules)
|
|
13
|
+
- [Schemas](#schemas)
|
|
14
|
+
- [Normalization](#normalization)
|
|
15
|
+
- [Dry-run and output](#dry-run-and-output)
|
|
16
|
+
- [Errors and retry policy](#errors-and-retry-policy)
|
|
17
|
+
- [Privacy](#privacy)
|
|
18
|
+
|
|
19
|
+
## Safety and delivery contract
|
|
20
|
+
|
|
21
|
+
- The command has `risk: write`. A clear user request to report the data is sufficient; do not add `--yes` or ask for a second confirmation.
|
|
22
|
+
- Run a redacted `--dry-run` before the first submission of a dataset.
|
|
23
|
+
- A successful response means only that Iris queued the request. It does not prove that every record passed asynchronous processing or reached durable storage.
|
|
24
|
+
- Never describe `status: "queued"` as accepted, imported, persisted, or queryable.
|
|
25
|
+
- The client makes at most one POST, never follows redirects, and never retries automatically.
|
|
26
|
+
- After a timeout, the delivery state is unknown. Check the downstream query or storage side before deciding whether a manual resubmission is safe.
|
|
27
|
+
|
|
28
|
+
## Endpoint and identifiers
|
|
29
|
+
|
|
30
|
+
The endpoint precedence is:
|
|
31
|
+
|
|
32
|
+
1. `--endpoint`
|
|
33
|
+
2. `AE_IRIS_SYNC_ENDPOINT`
|
|
34
|
+
|
|
35
|
+
The endpoint must be a complete `http` or `https` URL whose path ends in `/sync_content`. It must not contain credentials, a query string, or a fragment. Never guess, concatenate, or derive this URL from `--host`; `--host` is unrelated to this command.
|
|
36
|
+
|
|
37
|
+
Verify all three identifiers with the user or an authoritative system:
|
|
38
|
+
|
|
39
|
+
| Flag | Iris field | Contract |
|
|
40
|
+
|------|------------|----------|
|
|
41
|
+
| `--space-id` | `game_id` | Positive signed int64 |
|
|
42
|
+
| `--channel-id` | `channel_id` | Positive signed int64 |
|
|
43
|
+
| `--source-id` | `source_id` | Positive signed int64 |
|
|
44
|
+
|
|
45
|
+
The CLI reads these flags as strings to preserve precision, then emits JSON numeric values without quotes. It fixes `source_type` to `#standard` and `version` to `5.0.0`. `--zone-id` defaults to `Asia/Shanghai` and accepts a valid IANA time-zone ID.
|
|
46
|
+
|
|
47
|
+
The reporting command does not provide a `--game-id` alias. It also does not accept `zone_offset` or top-level `timestamp`/`datetime` request overrides.
|
|
48
|
+
|
|
49
|
+
## Input modes
|
|
50
|
+
|
|
51
|
+
Choose exactly one mode:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
--data-type <type> --data <inline|path|@path|->
|
|
55
|
+
--payload <inline|path|@path|->
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
`--data` accepts one record object or a non-empty record array. `--payload` accepts one segment object or a non-empty segment array. A segment has this shape:
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"data_type": "chat",
|
|
63
|
+
"data": [
|
|
64
|
+
{ "chat_uuid": "example" }
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Supported `data_type` values are `post`, `video`, `reply`, `danmu`, `live_room`, `live_interaction`, `chat`, and `interaction`.
|
|
70
|
+
|
|
71
|
+
Before constructing records, run `ae-cli community data report --help`. The installed command's schema summary is the source of truth for the required fields of every supported `data_type`; use the schema sections below for field limits and normalization behavior.
|
|
72
|
+
|
|
73
|
+
For either input flag:
|
|
74
|
+
|
|
75
|
+
- Inline JSON is accepted for non-sensitive examples.
|
|
76
|
+
- `@path/to/file.json` is the preferred, unambiguous file form.
|
|
77
|
+
- A plain existing path is also accepted.
|
|
78
|
+
- `-` reads JSON from stdin.
|
|
79
|
+
- JSONL is not supported.
|
|
80
|
+
|
|
81
|
+
## Chat example
|
|
82
|
+
|
|
83
|
+
Store records in `chat.json` so message content does not enter shell history:
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
[
|
|
87
|
+
{
|
|
88
|
+
"chat_uuid": "wecom-chat-0001",
|
|
89
|
+
"user_id": "user-001",
|
|
90
|
+
"user_name": "Example User",
|
|
91
|
+
"chat_room_type": "wecom_group",
|
|
92
|
+
"chat_room_id": "room-001",
|
|
93
|
+
"chat_room": "Example support group",
|
|
94
|
+
"content": "Example redacted message",
|
|
95
|
+
"publish_time": "2026-07-21 09:30:00",
|
|
96
|
+
"extras": {
|
|
97
|
+
"source": "wecom"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Run the redacted preview, then submit only if the endpoint and IDs are verified:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
ae-cli --dry-run community data report \
|
|
107
|
+
--endpoint https://<iris-ingress>/sync_content \
|
|
108
|
+
--space-id <space-id> \
|
|
109
|
+
--channel-id <channel-id> \
|
|
110
|
+
--source-id <source-id> \
|
|
111
|
+
--data-type chat \
|
|
112
|
+
--data @chat.json
|
|
113
|
+
|
|
114
|
+
ae-cli community data report \
|
|
115
|
+
--endpoint https://<iris-ingress>/sync_content \
|
|
116
|
+
--space-id <space-id> \
|
|
117
|
+
--channel-id <channel-id> \
|
|
118
|
+
--source-id <source-id> \
|
|
119
|
+
--data-type chat \
|
|
120
|
+
--data @chat.json
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Mixed payload example
|
|
124
|
+
|
|
125
|
+
Use `--payload` when one request contains multiple data types. For example, `mixed.json` can contain a post with a sidecar interaction plus a standalone interaction snapshot:
|
|
126
|
+
|
|
127
|
+
```json
|
|
128
|
+
[
|
|
129
|
+
{
|
|
130
|
+
"data_type": "post",
|
|
131
|
+
"data": [
|
|
132
|
+
{
|
|
133
|
+
"post_uuid": "post-0001",
|
|
134
|
+
"user_id": "author-001",
|
|
135
|
+
"title": "Example post",
|
|
136
|
+
"content": "Example body",
|
|
137
|
+
"publish_time": "2026-07-21 10:00:00",
|
|
138
|
+
"interaction": {
|
|
139
|
+
"collect_time": "2026-07-21 10:05:00",
|
|
140
|
+
"metrics": {
|
|
141
|
+
"views": 100,
|
|
142
|
+
"likes": 8
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
]
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"data_type": "interaction",
|
|
150
|
+
"data": [
|
|
151
|
+
{
|
|
152
|
+
"content_uuid": "post-0001",
|
|
153
|
+
"content_type": 0,
|
|
154
|
+
"collect_time": "2026-07-21 11:00:00",
|
|
155
|
+
"metrics": {
|
|
156
|
+
"views": "125",
|
|
157
|
+
"comments": 3
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
}
|
|
162
|
+
]
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
AE_IRIS_SYNC_ENDPOINT=https://<iris-ingress>/sync_content \
|
|
167
|
+
ae-cli --dry-run community data report \
|
|
168
|
+
--space-id <space-id> --channel-id <channel-id> --source-id <source-id> \
|
|
169
|
+
--payload @mixed.json
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Common record rules
|
|
173
|
+
|
|
174
|
+
- Each record and segment must be a JSON object; arrays must be non-empty.
|
|
175
|
+
- Text fields accept only JSON strings. Numbers and booleans are not coerced to text.
|
|
176
|
+
- Optional `null` fields are treated as omitted.
|
|
177
|
+
- Unknown record fields are preserved.
|
|
178
|
+
- Signed int64 inputs may be JSON integer numbers or canonical decimal strings. The wire body contains lossless, unquoted JSON numbers.
|
|
179
|
+
- Fields constrained to non-negative int64 reject negative values, fractions, and values above `9223372036854775807`.
|
|
180
|
+
- Date/time strings accept only `yyyy-MM-dd HH:mm:ss`, `yyyy-MM-dd HH:mm:ss.SSS`, `yyyy-MM-dd HH:mm`, or `yyyy-MM-dd` where the field permits a date-only value.
|
|
181
|
+
- `extras` and `user_extra` accept an object or a JSON-encoded object string. Missing, null, or invalid values normalize to `{}`. Serialized `user_extra` must not exceed 1024 UTF-16 code units.
|
|
182
|
+
- `subtitle` accepts an object array or a JSON-encoded object array. Every element must be an object.
|
|
183
|
+
- Lengths and truncation use UTF-16 code units, matching Iris/Java string behavior.
|
|
184
|
+
- A field with an Iris truncation fallback is truncated and counted in normalization statistics. An overlong field without a fallback is rejected.
|
|
185
|
+
|
|
186
|
+
## Schemas
|
|
187
|
+
|
|
188
|
+
Only the key ingestion constraints are listed below. Unknown fields remain on the record after validation.
|
|
189
|
+
|
|
190
|
+
### `post`
|
|
191
|
+
|
|
192
|
+
Required: `post_uuid`, a string no longer than 32 UTF-16 code units.
|
|
193
|
+
|
|
194
|
+
Optional normalized fields include `user_id` (64), `user_name` (80), `title` (200), `content` (65533), `publish_time`, and `extras`. Values in parentheses are truncation limits. An optional `interaction` sidecar requires `collect_time` and a non-empty `metrics` object using the same metric rules as standalone `interaction` with `content_type=0`.
|
|
195
|
+
|
|
196
|
+
### `video`
|
|
197
|
+
|
|
198
|
+
Required: `video_uuid`, a string no longer than 32 UTF-16 code units.
|
|
199
|
+
|
|
200
|
+
Optional normalized fields include `user_id` (64), `user_name` (80), `title` (1000), `description` (65533), `publish_time`, `subtitle`, and `extras`. An optional `interaction` sidecar uses the standalone metric rules with `content_type=1`.
|
|
201
|
+
|
|
202
|
+
### `reply`
|
|
203
|
+
|
|
204
|
+
Required: `reply_uuid` (maximum 32), `root_id` (maximum 32), and `root_type`, which must be `post`, `video`, or `live`.
|
|
205
|
+
|
|
206
|
+
Optional normalized fields include `user_id` (64), `user_name` (80), `content` (65533), `publish_time`, `parent_id` (32), and `extras`.
|
|
207
|
+
|
|
208
|
+
### `danmu`
|
|
209
|
+
|
|
210
|
+
Required: `danmu_uuid` (maximum 32), non-negative int64 `timestamp`, `root_id` (maximum 32), and `root_type`, which must be `post`, `video`, or `live`.
|
|
211
|
+
|
|
212
|
+
Optional normalized fields include `user_id` (64), `user_name` (80), `content` (65533), and `publish_time`.
|
|
213
|
+
|
|
214
|
+
### `live_room`
|
|
215
|
+
|
|
216
|
+
Required: non-negative int64 `uuid`, `room_id` (maximum 32), `room_name` (maximum 80), `room_avatar` (maximum 65533), non-negative int64 `fans`, and date/time `timestamp`.
|
|
217
|
+
|
|
218
|
+
Optional room/stream fields include `room_type` (truncated to 128), `stream_cover` (65533), `stream_title` (80), `stream_status`, `stream_start_time`, `stream_end_time`, and `stream_notice` (maximum 255, rejected if longer). Missing or `2` `stream_status` becomes `0`; only normalized values `0` and `1` are allowed.
|
|
219
|
+
|
|
220
|
+
The optional metrics `online`, `heat`, `noble_count`, `guardian_count`, `diamond_fan_count`, and `dfans_count` are non-negative int64 values. At most one of the three guardian aliases may be present. If stream details or metrics are present, `stream_start_time` is required and must include a time component; a date-only value is rejected. The derived `stream_id` must not exceed 64 UTF-16 code units, and every derived metric ID (`uuid * 5 + metric_type`) must remain within signed int64 range.
|
|
221
|
+
|
|
222
|
+
### `live_interaction`
|
|
223
|
+
|
|
224
|
+
Required: non-negative int64 `uuid`, `activity_type`, `activity_content`, `room_id`, `stream_start_time`, and date/time `timestamp`.
|
|
225
|
+
|
|
226
|
+
`activity_type` must be `danmu`, `gift`, `superchat`, or `premium`. `activity_content` is truncated to 1024. `room_id` is at most 32. `stream_start_time` must include a time component. Optional normalized fields include `user_id` (80), `user_name` (80), and `user_extra`.
|
|
227
|
+
|
|
228
|
+
### `chat`
|
|
229
|
+
|
|
230
|
+
The six required string fields are:
|
|
231
|
+
|
|
232
|
+
| Field | Limit |
|
|
233
|
+
|-------|-------|
|
|
234
|
+
| `chat_uuid` | 36 UTF-16 code units; overlong values are truncated |
|
|
235
|
+
| `user_id` | 80 |
|
|
236
|
+
| `chat_room_type` | 16; no enum restriction |
|
|
237
|
+
| `chat_room_id` | 80 |
|
|
238
|
+
| `content` | 65533 |
|
|
239
|
+
| `publish_time` | One supported date/time format |
|
|
240
|
+
|
|
241
|
+
Optional normalized fields are `user_name`, `chat_room`, `chat_server`, and `chat_server_id` (each 80), plus `extras`.
|
|
242
|
+
|
|
243
|
+
`chat_uuid` is a required JSON string. If it exceeds 36 UTF-16 code units, the client keeps the first 36 units and reports the change under `chat.chat_uuid` in the normalization statistics; it does not reject the record for length. Supply source identifiers that already fit the limit to avoid truncation changing record identity or collapsing distinct identifiers to the same normalized value.
|
|
244
|
+
|
|
245
|
+
### `interaction`
|
|
246
|
+
|
|
247
|
+
Required: `content_uuid` (maximum 32), integer `content_type` from 0 through 7, `collect_time`, and a non-empty `metrics` object.
|
|
248
|
+
|
|
249
|
+
Every metric value must be a non-negative int64. A single invalid metric rejects the whole record; it is never silently dropped. Metric names must match `content_type`:
|
|
250
|
+
|
|
251
|
+
| `content_type` | Meaning | Allowed metric names |
|
|
252
|
+
|----------------|---------|----------------------|
|
|
253
|
+
| `0`, `1` | post, video | `views`, `likes`, `comments`, `shares`, `favorites`, `coins`, `danmaku`, `dislikes` |
|
|
254
|
+
| `2`-`6` | live, chat, comment, reply, danmu | `favorites`, `coins`, `danmaku`, `dislikes` |
|
|
255
|
+
| `7` | user | `followers`, `total_views`, `total_likes` |
|
|
256
|
+
|
|
257
|
+
## Normalization
|
|
258
|
+
|
|
259
|
+
The CLI normalizes the input before dry-run or submission:
|
|
260
|
+
|
|
261
|
+
- A single record becomes a one-element `data` array; a single segment becomes a one-element `payload` array.
|
|
262
|
+
- Fixed request metadata is `source_type: "#standard"` and `version: "5.0.0"`.
|
|
263
|
+
- Integer strings become lossless JSON numeric literals.
|
|
264
|
+
- Optional `null` properties are removed.
|
|
265
|
+
- Fields with Iris truncation fallbacks are truncated by UTF-16 code units.
|
|
266
|
+
- Invalid or missing `extras`/`user_extra` becomes `{}`; encoded objects and `subtitle` arrays become native JSON structures.
|
|
267
|
+
- Missing or legacy `stream_status: 2` becomes `0`.
|
|
268
|
+
|
|
269
|
+
The summary counts truncated, defaulted, and integer-converted fields without exposing their original values.
|
|
270
|
+
|
|
271
|
+
## Dry-run and output
|
|
272
|
+
|
|
273
|
+
`--dry-run` performs local parsing, schema validation, and normalization, but sends no network request. Its redacted output contains endpoint, data types, segment/record counts, encoded byte count, and normalization statistics. It never prints the business payload.
|
|
274
|
+
|
|
275
|
+
A successful live submission has these semantics:
|
|
276
|
+
|
|
277
|
+
```json
|
|
278
|
+
{
|
|
279
|
+
"status": "queued",
|
|
280
|
+
"persistence_verified": false,
|
|
281
|
+
"next_step": "After asynchronous processing, verify the submitted record identifiers through an authorized downstream query or storage path before treating this submission as persisted."
|
|
282
|
+
}
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
The complete output also reports submission counts and normalization statistics. Treat them as submitted-to-queue counts, not per-record acceptance counts. Iris does not currently return a query URL or trace ID in this response, so the CLI does not invent one; use the submitted identifiers with an authorized downstream query or storage path.
|
|
286
|
+
|
|
287
|
+
## Errors and retry policy
|
|
288
|
+
|
|
289
|
+
- Input, schema, file, identifier, and endpoint failures use a `validation` error envelope. Locations identify segment, record, and field but do not echo the invalid business value.
|
|
290
|
+
- Iris HTTP 400 errors expose the safe `return_message` when available.
|
|
291
|
+
- HTTP 5xx responses, non-JSON responses, missing `return_code`, non-zero `return_code`, redirects, and buffer-full responses use a standard API error envelope. Server stack traces are not echoed.
|
|
292
|
+
- The request timeout is 30 seconds. A timeout does not establish whether Iris queued the request.
|
|
293
|
+
- Never automate a retry. For timeout or ambiguous transport failure, check downstream state first and ask the user before any deliberate resubmission.
|
|
294
|
+
|
|
295
|
+
## Privacy
|
|
296
|
+
|
|
297
|
+
- Prefer `@file` or stdin for chat text, usernames, identifiers, and other sensitive content. Inline JSON can remain in shell history or process listings.
|
|
298
|
+
- The reporting client sends only `Content-Type: application/json` and `Accept: application/json`. It does not send AE access tokens, CLI tokens, or custom authorization headers.
|
|
299
|
+
- Request and response bodies are excluded from CLI HTTP logs. Logs contain only endpoint, status, and byte counts.
|
|
300
|
+
- Dry-run output is redacted by default. Do not paste raw records into reports or error explanations.
|
|
301
|
+
- An endpoint URL must not contain embedded credentials, query parameters, or fragments.
|
|
@@ -39,8 +39,9 @@ Global parameters:
|
|
|
39
39
|
| `--host <url>` | Override the active AE host. Available on every command and may be placed after the subcommand, e.g. `ae-cli dataops_ide +<command> --host <url>`. |
|
|
40
40
|
|
|
41
41
|
Output and errors:
|
|
42
|
-
- Successful commands return machine-readable JSON by default.
|
|
42
|
+
- Successful commands return machine-readable JSON by default. Envelope may include optional `_notice.host_compat`.
|
|
43
43
|
- Failed commands return `{ "ok": false, "error": { "type": "...", "message": "...", "hint": "..." } }` and exit non-zero.
|
|
44
|
+
- **CRITICAL — Host compat (do this first):** After each `ae-cli` run, check stderr and `_notice.host_compat`. If either is present, open the user reply with a short ⚠️ version warning and **quote the `npm i -g` / `npx skills add` (or update-cluster) lines verbatim**, then present the business result. Soft tip; `ok: true` can still carry the notice.
|
|
44
45
|
|
|
45
46
|
Safety constraints:
|
|
46
47
|
- Read commands can execute directly after required IDs and references are verified.
|
|
@@ -21,8 +21,9 @@ Global parameters:
|
|
|
21
21
|
| `--host <url>` | Override the active AE host. Available on every command and may be placed after the subcommand, e.g. `ae-cli engage +<command> --host <url>`. |
|
|
22
22
|
|
|
23
23
|
Output and errors:
|
|
24
|
-
- Successful commands return machine-readable JSON by default.
|
|
24
|
+
- Successful commands return machine-readable JSON by default. Envelope may include optional `_notice.host_compat`.
|
|
25
25
|
- Failed commands return `{ "ok": false, "error": { "type": "...", "message": "...", "hint": "..." } }` and exit non-zero.
|
|
26
|
+
- **CRITICAL — Host compat (do this first):** After each `ae-cli` run, check stderr and `_notice.host_compat`. If either is present, open the user reply with a short ⚠️ version warning and **quote the `npm i -g` / `npx skills add` (or update-cluster) lines verbatim**, then present the business result. Soft tip; `ok: true` can still carry the notice.
|
|
26
27
|
|
|
27
28
|
Safety constraints:
|
|
28
29
|
- Read commands can execute directly after required IDs and references are verified.
|
|
@@ -76,6 +77,53 @@ ae-cli engage +config_channel_list --project_id 1
|
|
|
76
77
|
|
|
77
78
|
# Query project channel touch-limit rules
|
|
78
79
|
ae-cli engage-setting channel-touch-limits list --project-id <project_id>
|
|
80
|
+
|
|
81
|
+
# Update a channel's config / reach-funnel settings
|
|
82
|
+
ae-cli engage-setting channel update-config --project-id <project_id> --channel-id <channel_id> --enable-touch-event 1
|
|
83
|
+
|
|
84
|
+
# Send a test message to a channel
|
|
85
|
+
ae-cli engage-setting channel test-send --project-id <project_id> --channel-id <channel_id> --push-id <send_id> --content-list '[{"key":"title","value":"hello"}]'
|
|
86
|
+
|
|
87
|
+
# Batch update / toggle / save channel touch-limit (fatigue-control) rules
|
|
88
|
+
ae-cli engage-setting channel-touch-limits batch-update --project-id <project_id> --items '[{"rule_id":"r1","enable":true,"rule_def":"[]"}]'
|
|
89
|
+
ae-cli engage-setting channel-touch-limits toggle --project-id <project_id> --rule-id <rule_id> --enable false
|
|
90
|
+
ae-cli engage-setting channel-touch-limits save --project-id <project_id> --channel-biz-type <biz_type> --rule-def '[]' --enable true
|
|
91
|
+
|
|
92
|
+
# Remove an approver from a project
|
|
93
|
+
ae-cli engage-setting approval-approver delete --project-id <project_id> --approver <open_id> --yes
|
|
94
|
+
|
|
95
|
+
# Whitelist add / update / delete / verify
|
|
96
|
+
ae-cli engage-setting whitelist add --project-id <project_id> --prop-code <prop_code> --column-name <column_name> --column-type string --whitelist-list '[{"entity_id":"u1","source_value":"v1"}]'
|
|
97
|
+
ae-cli engage-setting whitelist update --project-id <project_id> --whitelist-id <id> --note-name <name>
|
|
98
|
+
ae-cli engage-setting whitelist delete --project-id <project_id> --whitelist-ids '["wl-1"]' --yes
|
|
99
|
+
ae-cli engage-setting whitelist verify --project-id <project_id> --prop-code <prop_code> --column-type string --whitelist-prop-list '["v1"]'
|
|
100
|
+
|
|
101
|
+
# Push-language (本地化) get / set
|
|
102
|
+
ae-cli engage-setting push-language get --project-id <project_id>
|
|
103
|
+
ae-cli engage-setting push-language set --project-id <project_id> --push-language-column <prop_code>
|
|
104
|
+
|
|
105
|
+
# Client param (客户端参数) update / delete / list
|
|
106
|
+
ae-cli engage-setting client-param update --project-id <project_id> --column-name level --column-type string --select-type single --column-desc Level
|
|
107
|
+
ae-cli engage-setting client-param delete --project-id <project_id> --column-name level --yes
|
|
108
|
+
ae-cli engage-setting client-param list --project-id <project_id>
|
|
109
|
+
|
|
110
|
+
# Config table (配置表) upload / save / list / query-data / update-data / delete
|
|
111
|
+
ae-cli engage-setting config-table upload --project-id <project_id> --request-id <rid> --file-name data.csv --file-content "$(base64 -i data.csv)"
|
|
112
|
+
ae-cli engage-setting config-table save --project-id <project_id> --request-id <rid> --info-name <table_name>
|
|
113
|
+
ae-cli engage-setting config-table list --project-id <project_id>
|
|
114
|
+
ae-cli engage-setting config-table query-data --project-id <project_id> --info-id <info_id>
|
|
115
|
+
ae-cli engage-setting config-table update-data --project-id <project_id> --request-id <rid> --info-name <table_name> --info-id <info_id>
|
|
116
|
+
ae-cli engage-setting config-table delete --project-id <project_id> --info-id <info_id> --yes
|
|
117
|
+
|
|
118
|
+
# Preset event (预置事件) list / update
|
|
119
|
+
ae-cli engage-setting preset-event list --project-id <project_id>
|
|
120
|
+
ae-cli engage-setting preset-event update --project-id <project_id> --add-event-desc <qp>
|
|
121
|
+
|
|
122
|
+
# Common metric (常用指标) list / get / update / delete
|
|
123
|
+
ae-cli engage-setting common-metric list --project-id <project_id>
|
|
124
|
+
ae-cli engage-setting common-metric get --project-id <project_id> --metric-name <name>
|
|
125
|
+
ae-cli engage-setting common-metric update --project-id <project_id> --metric-type <type> --metric-name <name> --metric-qp <qp> --metric-window-num 1 --metric-window-time-unit DAY --display-name <display>
|
|
126
|
+
ae-cli engage-setting common-metric delete --project-id <project_id> --metric-name <name> --yes
|
|
79
127
|
```
|
|
80
128
|
|
|
81
129
|
### 2. task
|
|
@@ -122,7 +170,7 @@ ae-cli engage +flow_list --project_id 1
|
|
|
122
170
|
ae-cli engage +flow_detail --project_id 1 --flow_uuid flow_uuid_123
|
|
123
171
|
|
|
124
172
|
# Query flow operation records and application logs
|
|
125
|
-
ae-cli engage-flow operation-log query --project-id 1 --flow-
|
|
173
|
+
ae-cli engage-flow operation-log query --project-id 1 --flow-id flow_id_123
|
|
126
174
|
|
|
127
175
|
# Query flow versions and task push records
|
|
128
176
|
ae-cli engage-flow version list --project-id 1 --flow-id flow_id_123
|
|
@@ -132,12 +180,123 @@ ae-cli engage-task segment-list query --project-id 1 --task-id task_id_123
|
|
|
132
180
|
ae-cli engage-task group list --project-id 1
|
|
133
181
|
ae-cli engage-task metric list --project-id 1 --task-id task_id_123
|
|
134
182
|
ae-cli engage-task channel-ref stats --project-id 1 --channel-id channel_123
|
|
135
|
-
ae-cli engage-task
|
|
183
|
+
ae-cli engage-task task delete --project-id 1 --task-id task_id_123 --yes
|
|
136
184
|
|
|
137
185
|
# Query the node schema
|
|
138
186
|
ae-cli engage +flow_node_config_schema --node_type message_push
|
|
139
187
|
```
|
|
140
188
|
|
|
189
|
+
### 5. scene (场景管理 / 配置中心)
|
|
190
|
+
|
|
191
|
+
New capability-gateway command group `engage-scene` covers 配置中心 (config center): config items, params, groups, preset/related metrics, config channels, strategies, and templates. Complex DTOs are passed with `--payload` (native camelCase JSON).
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# Config item (配置项) list / create / update
|
|
195
|
+
ae-cli engage-scene config-item list --project-id <project_id>
|
|
196
|
+
ae-cli engage-scene config-item create --project-id <project_id> --config-id <config_id> --config-name <name> --business-type params
|
|
197
|
+
ae-cli engage-scene config-item update --project-id <project_id> --config-id <config_id> --config-name <name>
|
|
198
|
+
|
|
199
|
+
# Config param (配置项参数) list / batch-add / update / batch-delete
|
|
200
|
+
ae-cli engage-scene config-param list --project-id <project_id> --config-id <config_id>
|
|
201
|
+
ae-cli engage-scene config-param batch-add --project-id <project_id> --config-id <config_id> --params '[{"param_name":"a","param_type":"string"}]'
|
|
202
|
+
ae-cli engage-scene config-param update --project-id <project_id> --config-id <config_id> --param-id <param_id> --param-name a
|
|
203
|
+
ae-cli engage-scene config-param batch-delete --project-id <project_id> --param-ids '[1,2]' --yes
|
|
204
|
+
|
|
205
|
+
# Config group (配置项分组) list / batch-add / update / batch-delete
|
|
206
|
+
ae-cli engage-scene config-group list --project-id <project_id>
|
|
207
|
+
ae-cli engage-scene config-group batch-add --project-id <project_id> --group-names '["g1"]'
|
|
208
|
+
ae-cli engage-scene config-group update --project-id <project_id> --group-id <group_id> --group-name g2
|
|
209
|
+
ae-cli engage-scene config-group batch-delete --project-id <project_id> --group-ids '[1,2]' --yes
|
|
210
|
+
|
|
211
|
+
# Preset metric (预置指标) get / set
|
|
212
|
+
ae-cli engage-scene preset-metric get --project-id <project_id> --config-id <config_id>
|
|
213
|
+
ae-cli engage-scene preset-metric set --project-id <project_id> --config-id <config_id> --impression-event-qp '<qp>'
|
|
214
|
+
|
|
215
|
+
# Config metric (关联指标) list / get / batch-add / update-rule / batch-delete
|
|
216
|
+
ae-cli engage-scene config-metric list --project-id <project_id> --config-id <config_id>
|
|
217
|
+
ae-cli engage-scene config-metric get --project-id <project_id> --metric-id <metric_id>
|
|
218
|
+
ae-cli engage-scene config-metric batch-add --project-id <project_id> --config-id <config_id> --ta-metric-ids '[1,2]'
|
|
219
|
+
ae-cli engage-scene config-metric update-rule --project-id <project_id> --metric-id <metric_id> --event-list '[{"event_name":"e1","filter":"true"}]'
|
|
220
|
+
ae-cli engage-scene config-metric batch-delete --project-id <project_id> --config-id <config_id> --metric-ids '[1,2]' --yes
|
|
221
|
+
|
|
222
|
+
# Config channel (配置通道) create / update / query-log
|
|
223
|
+
ae-cli engage-scene config-channel create --project-id <project_id> --channel-name <name> --channel-type 0 --config '<json>'
|
|
224
|
+
ae-cli engage-scene config-channel update --project-id <project_id> --channel-id <channel_id> --channel-name <name> [--config '<json>']
|
|
225
|
+
ae-cli engage-scene config-channel query-log --project-id <project_id> --channel-id <channel_id>
|
|
226
|
+
|
|
227
|
+
# Strategy (策略) create / update / log / batch-copy
|
|
228
|
+
ae-cli engage-scene strategy create --project-id <project_id> --payload '{"configId":"cfg-1","templateId":"tpl-1","strategyName":"s1"}'
|
|
229
|
+
ae-cli engage-scene strategy update --project-id <project_id> --payload '{"strategyUuid":"uuid-1"}'
|
|
230
|
+
ae-cli engage-scene strategy log --project-id <project_id> --strategy-uuid <uuid>
|
|
231
|
+
ae-cli engage-scene strategy batch-copy --project-id <project_id> --config-id <config_id> --strategy-ids '["s1"]'
|
|
232
|
+
|
|
233
|
+
# Template (模板) list / get / create / update / update-status / delete
|
|
234
|
+
ae-cli engage-scene template list --project-id <project_id> --config-id <config_id>
|
|
235
|
+
ae-cli engage-scene template get --project-id <project_id> --config-id <config_id> --template-id <template_id>
|
|
236
|
+
ae-cli engage-scene template create --project-id <project_id> --payload '{"configId":"cfg-1","templateId":"tpl-1","templateName":"t1"}'
|
|
237
|
+
ae-cli engage-scene template update --project-id <project_id> --payload '{"configId":"cfg-1","templateId":"tpl-1","config":[]}'
|
|
238
|
+
ae-cli engage-scene template update-status --project-id <project_id> --config-id <config_id> --template-id <template_id> --status 1
|
|
239
|
+
ae-cli engage-scene template delete --project-id <project_id> --config-id <config_id> --template-id <template_id> --yes
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### 6. activity (运营活动)
|
|
243
|
+
|
|
244
|
+
New capability-gateway command group `engage-activity` covers 运营活动: activities, approval workflow, topics, activity types, and standalone tasks. Complex DTOs are passed with `--payload` (native camelCase JSON).
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# Activity (运营活动) create / update / delete / list / get / pause / end / stats / info-list
|
|
248
|
+
ae-cli engage-activity activity create --project-id <project_id> --payload '{"activityName":"a1","activityType":"other_type","tzOffset":8,"periodType":0}'
|
|
249
|
+
ae-cli engage-activity activity update --project-id <project_id> --payload '{"activityId":"act-1","activityName":"a1","activityType":"other_type","tzOffset":8,"periodType":0}'
|
|
250
|
+
ae-cli engage-activity activity delete --project-id <project_id> --activity-id <activity_id> --yes
|
|
251
|
+
ae-cli engage-activity activity list --project-id <project_id> --page 1 --page-size 20
|
|
252
|
+
ae-cli engage-activity activity get --project-id <project_id> --activity-id <activity_id>
|
|
253
|
+
ae-cli engage-activity activity pause --project-id <project_id> --activity-id <activity_id>
|
|
254
|
+
ae-cli engage-activity activity end --project-id <project_id> --activity-id <activity_id>
|
|
255
|
+
ae-cli engage-activity activity stats --project-id <project_id>
|
|
256
|
+
ae-cli engage-activity activity info-list --project-id <project_id> --activity-id <activity_id>
|
|
257
|
+
|
|
258
|
+
# Approval (活动审批) submit / approve / reject / cancel
|
|
259
|
+
ae-cli engage-activity approval submit --project-id <project_id> --activity-id <activity_id>
|
|
260
|
+
ae-cli engage-activity approval approve --project-id <project_id> --activity-id <activity_id>
|
|
261
|
+
ae-cli engage-activity approval reject --project-id <project_id> --activity-id <activity_id> --reason <reason>
|
|
262
|
+
ae-cli engage-activity approval cancel --project-id <project_id> --activity-id <activity_id>
|
|
263
|
+
|
|
264
|
+
# Topic (活动主题) remove-task / delete / get / copy
|
|
265
|
+
# Temporarily disabled: topic create / topic update
|
|
266
|
+
# See references/activity-topic.md for topicClusterKey vs task clusterKey and remaining commands.
|
|
267
|
+
# ae-cli engage-activity topic create --project-id <project_id> --payload '{"activityId":"act-1","topicName":"t1","targetClusterType":2,"topicClusterKey":"<cluster>","channelType":1,"channelId":"c1","triggerType":0,"enableChannelTouchLimits":false,"frequencyLimits":"{}","tasks":[...]}'
|
|
268
|
+
# ae-cli engage-activity topic update --project-id <project_id> --payload '{"topicId":"topic-1", ...}'
|
|
269
|
+
ae-cli engage-activity topic remove-task --project-id <project_id> --task-id <task_id> --yes
|
|
270
|
+
ae-cli engage-activity topic delete --project-id <project_id> --topic-id <topic_id> --yes
|
|
271
|
+
ae-cli engage-activity topic get --project-id <project_id> --topic-id <topic_id>
|
|
272
|
+
ae-cli engage-activity topic copy --project-id <project_id> --topic-id <topic_id> [--new-name <name>]
|
|
273
|
+
|
|
274
|
+
# Activity type (活动类型) list / batch-add / update / batch-delete
|
|
275
|
+
ae-cli engage-activity activity-type list --project-id <project_id>
|
|
276
|
+
ae-cli engage-activity activity-type batch-add --project-id <project_id> --type-names '["t1","t2"]'
|
|
277
|
+
ae-cli engage-activity activity-type update --project-id <project_id> --id <type_id> --type-name t3
|
|
278
|
+
ae-cli engage-activity activity-type batch-delete --project-id <project_id> --ids '["id1","id2"]' --yes
|
|
279
|
+
|
|
280
|
+
# Standalone task (独立任务) get / copy
|
|
281
|
+
# Temporarily disabled: task create / task update
|
|
282
|
+
ae-cli engage-activity task get --project-id <project_id> --task-id <task_id>
|
|
283
|
+
# ae-cli engage-activity task create --project-id <project_id> --payload '{"taskName":"t1","activityId":"act-1", ...}'
|
|
284
|
+
# ae-cli engage-activity task update --project-id <project_id> --payload '{"taskId":"task-1", ...}'
|
|
285
|
+
ae-cli engage-activity task copy --project-id <project_id> --task-id <task_id> [--new-name <name>]
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### 7. workbench (工作台)
|
|
289
|
+
|
|
290
|
+
New capability-gateway command group `engage-workbench` covers 工作台 metric slots (指标卡槽): each user configures up to 4 metric cards per project. Slots are per-user; `update`/`delete` only affect the caller's own slots. The first `list` auto-initialises 4 default slots.
|
|
291
|
+
|
|
292
|
+
```bash
|
|
293
|
+
# Workbench slot (工作台卡槽) list / add / update / delete
|
|
294
|
+
ae-cli engage-workbench workbench list --project-id <project_id>
|
|
295
|
+
ae-cli engage-workbench workbench add --project-id <project_id> --metric-type <metric_type> --date-type <date_type> --order-id 1
|
|
296
|
+
ae-cli engage-workbench workbench update --project-id <project_id> --slot-id <slot_id> --metric-type <metric_type> --date-type <date_type> --order-id 1
|
|
297
|
+
ae-cli engage-workbench workbench delete --project-id <project_id> --slot-id <slot_id> --yes
|
|
298
|
+
```
|
|
299
|
+
|
|
141
300
|
## `+save_flow` Critical Constraints
|
|
142
301
|
|
|
143
302
|
When the user wants to "create a flow / generate a flow canvas / save a flow", do not treat `+save_flow` as a normal single command. You must follow the workflow below.
|
|
@@ -215,6 +374,32 @@ More detailed single-command guidance is available in the business-oriented `ref
|
|
|
215
374
|
|
|
216
375
|
- `references/channel-list.md`
|
|
217
376
|
- `references/channel_touch_limits_list.md` (`engage-setting.channel-touch-limits.list`)
|
|
377
|
+
- `references/channel-touch-limits-batch-update.md` (`engage-setting.channel-touch-limits.batch-update`)
|
|
378
|
+
- `references/channel-touch-limits-toggle.md` (`engage-setting.channel-touch-limits.toggle`)
|
|
379
|
+
- `references/channel-touch-limits-save.md` (`engage-setting.channel-touch-limits.save`)
|
|
380
|
+
- `references/channel-update-config.md` (`engage-setting.channel.update-config`)
|
|
381
|
+
- `references/channel-test-send.md` (`engage-setting.channel.test-send`)
|
|
382
|
+
- `references/approval-approver-delete.md` (`engage-setting.approval-approver.delete`)
|
|
383
|
+
- `references/whitelist.md` (`engage-setting.whitelist.{add,update,delete,verify}`)
|
|
384
|
+
- `references/push-language.md` (`engage-setting.push-language.{get,set}`)
|
|
385
|
+
- `references/client-param.md` (`engage-setting.client-param.{update,delete,list}`; create temporarily disabled)
|
|
386
|
+
- `references/config-table.md` (`engage-setting.config-table.{upload,save,list,query-data,update-data,delete}`)
|
|
387
|
+
- `references/preset-event.md` (`engage-setting.preset-event.{list,update}`)
|
|
388
|
+
- `references/common-metric.md` (`engage-setting.common-metric.{list,get,update,delete}`; create temporarily disabled)
|
|
389
|
+
- `references/scene-config-item.md` (`engage-scene.config-item.{list,create,update}`)
|
|
390
|
+
- `references/scene-config-param.md` (`engage-scene.config-param.{list,batch-add,update,batch-delete}`)
|
|
391
|
+
- `references/scene-config-group.md` (`engage-scene.config-group.{list,batch-add,update,batch-delete}`)
|
|
392
|
+
- `references/scene-preset-metric.md` (`engage-scene.preset-metric.{get,set}`)
|
|
393
|
+
- `references/scene-config-metric.md` (`engage-scene.config-metric.{list,get,batch-add,update-rule,batch-delete}`)
|
|
394
|
+
- `references/scene-config-channel.md` (`engage-scene.config-channel.{create,update,query-log}`)
|
|
395
|
+
- `references/scene-strategy.md` (`engage-scene.strategy.{create,update,log,batch-copy}`)
|
|
396
|
+
- `references/scene-template.md` (`engage-scene.template.{list,get,create,update,update-status,delete}`)
|
|
397
|
+
- `references/activity-activity.md` (`engage-activity.activity.{create,update,delete,list,get,pause,end,stats,info-list}`)
|
|
398
|
+
- `references/activity-approval.md` (`engage-activity.approval.{submit,approve,reject,cancel}`)
|
|
399
|
+
- `references/activity-topic.md` (`engage-activity.topic.{remove-task,delete,get,copy}`; create/update temporarily disabled)
|
|
400
|
+
- `references/activity-activity-type.md` (`engage-activity.activity-type.{list,batch-add,update,batch-delete}`)
|
|
401
|
+
- `references/activity-task.md` (`engage-activity.task.{get,copy}`; create/update temporarily disabled)
|
|
402
|
+
- `references/workbench-workbench.md` (`engage-workbench.workbench.{list,add,update,delete}`)
|
|
218
403
|
- `references/build-task-save-guide.md`
|
|
219
404
|
- `references/save-task.md`
|
|
220
405
|
- `references/task-list.md`
|
|
@@ -226,7 +411,7 @@ More detailed single-command guidance is available in the business-oriented `ref
|
|
|
226
411
|
- `references/push-record-query.md` (`engage-task.push-record.query`)
|
|
227
412
|
- `references/segment-list-query.md` (`engage-task.segment-list.query`)
|
|
228
413
|
- `references/group-list.md` (`engage-task.group.list`)
|
|
229
|
-
- `references/
|
|
414
|
+
- `references/task-delete.md` (`engage-task.task.delete`)
|
|
230
415
|
|
|
231
416
|
This split documentation structure is easier to extend later, because commands with more complex object inputs can stay centralized in the `references/` root directory.
|
|
232
417
|
|
|
@@ -234,18 +419,29 @@ This split documentation structure is easier to extend later, because commands w
|
|
|
234
419
|
|
|
235
420
|
### setting
|
|
236
421
|
|
|
237
|
-
`channel-touch-limits list` (via `engage-setting`), `+channel_list`, `+channel_detail`, `+update_channel_status`, `+delete_channel`, `+add_channel`, `+whitelist_list`, `+add_approver`, `+approver_list`, `+cancel_query_by_request_id`, `+config_channel_detail`, `+config_channel_list`, `+delete_config_channel`, `+update_config_channel_status`
|
|
422
|
+
`channel-touch-limits list` / `channel-touch-limits batch-update` / `channel-touch-limits toggle` / `channel-touch-limits save` / `channel update-config` / `channel test-send` / `approval-approver delete` / `whitelist add` / `whitelist update` / `whitelist delete` / `whitelist verify` / `push-language get` / `push-language set` / `client-param update` / `client-param delete` / `client-param list` / `config-table upload` / `config-table save` / `config-table list` / `config-table query-data` / `config-table update-data` / `config-table delete` / `preset-event list` / `preset-event update` / `common-metric list` / `common-metric get` / `common-metric update` / `common-metric delete` (via `engage-setting`), `+channel_list`, `+channel_detail`, `+update_channel_status`, `+delete_channel`, `+add_channel`, `+whitelist_list`, `+add_approver`, `+approver_list`, `+cancel_query_by_request_id`, `+config_channel_detail`, `+config_channel_list`, `+delete_config_channel`, `+update_config_channel_status`
|
|
238
423
|
|
|
239
424
|
### task
|
|
240
425
|
|
|
241
|
-
`operation-log query` / `push-record query` / `segment-list
|
|
242
|
-
|
|
243
|
-
> Temporarily disabled engage-task commands (do not use): `group delete`, `segment-list set-visibility`, `ops submit-approval`, `race release`.
|
|
426
|
+
`operation-log query` / `push-record query` / `segment-list *` / `ops *` / `metric *` / `race release` / `channel-ref stats` / `group *` (via `engage-task`), `+task_data_overview`, `+task_data_detail`, `+task_metric_detail`, `+task_experiment_report`, `+task_detail`, `+task_list`, `+task_stats`, `+build_task_save_guide`, `+save_task`, `+manage_task`
|
|
244
427
|
|
|
245
428
|
### config
|
|
246
429
|
|
|
247
430
|
`+config_item_trigger_report`, `+config_item_analysis_report`, `+config_item_strategy_comparison`, `+config_item_list`, `+config_item_detail`, `+delete_config_item`, `+copy_config_template`, `+strategy_list`, `+strategy_detail`, `+manage_strategy`
|
|
248
431
|
|
|
432
|
+
### scene
|
|
433
|
+
|
|
434
|
+
`config-item list` / `config-item create` / `config-item update` / `config-param list` / `config-param batch-add` / `config-param update` / `config-param batch-delete` / `config-group list` / `config-group batch-add` / `config-group update` / `config-group batch-delete` / `preset-metric get` / `preset-metric set` / `config-metric list` / `config-metric get` / `config-metric batch-add` / `config-metric update-rule` / `config-metric batch-delete` / `config-channel create` / `config-channel update` / `config-channel query-log` / `strategy create` / `strategy update` / `strategy log` / `strategy batch-copy` / `template list` / `template get` / `template create` / `template update` / `template update-status` / `template delete` (via `engage-scene`), capability ids `engage-scene.config-item.{list,create,update}`, `engage-scene.config-param.{list,batch-add,update,batch-delete}`, `engage-scene.config-group.{list,batch-add,update,batch-delete}`, `engage-scene.preset-metric.{get,set}`, `engage-scene.config-metric.{list,get,batch-add,update-rule,batch-delete}`, `engage-scene.config-channel.{create,update,query-log}`, `engage-scene.strategy.{create,update,log,batch-copy}`, `engage-scene.template.{list,get,create,update,update-status,delete}`
|
|
435
|
+
|
|
436
|
+
### activity
|
|
437
|
+
|
|
438
|
+
`activity create` / `activity update` / `activity delete` / `activity list` / `activity get` / `activity pause` / `activity end` / `activity stats` / `activity info-list` / `approval submit` / `approval approve` / `approval reject` / `approval cancel` / `topic remove-task` / `topic delete` / `topic get` / `topic copy` / `activity-type list` / `activity-type batch-add` / `activity-type update` / `activity-type batch-delete` / `task get` / `task copy` (via `engage-activity`), capability ids `engage-activity.activity.{create,update,delete,list,get,pause,end,stats,info-list}`, `engage-activity.approval.{submit,approve,reject,cancel}`, `engage-activity.topic.{remove-task,delete,get,copy}`, `engage-activity.activity-type.{list,batch-add,update,batch-delete}`, `engage-activity.task.{get,copy}`
|
|
439
|
+
<!-- Temporarily disabled: topic create / topic update / task create / task update -->
|
|
440
|
+
|
|
441
|
+
### workbench
|
|
442
|
+
|
|
443
|
+
`workbench list` / `workbench add` / `workbench update` / `workbench delete` (via `engage-workbench`), capability ids `engage-workbench.workbench.{list,add,update,delete}`
|
|
444
|
+
|
|
249
445
|
### flow
|
|
250
446
|
|
|
251
447
|
`operation-log query` / `version list` (via `engage-flow`), `+save_flow`, `+flow_node_config_schema`, `+flow_detail`, `+flow_list`, `+flow_node_overview_report`, `+manage_flow`, `+flow_ab_split_node_report`, `+flow_process_report`, `+validate_flow_node_config`, `+flow_node_detail_report`, `+delete_flow`, `+modify_flow_base_info`
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# engage-activity activity-type
|
|
2
|
+
|
|
3
|
+
> Capability ids: `engage-activity.activity-type.{list,batch-add,update,batch-delete}` · Domain: `engage`.
|
|
4
|
+
|
|
5
|
+
运营活动 - 活动类型(系统 + 自定义)。批量增删在 capability service 内循环调用现有单条后端方法(无批量后端 API)。
|
|
6
|
+
|
|
7
|
+
## Commands
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# List activity types
|
|
11
|
+
ae-cli engage-activity activity-type list --project-id <project_id>
|
|
12
|
+
|
|
13
|
+
# Batch-add custom activity types
|
|
14
|
+
ae-cli engage-activity activity-type batch-add --project-id <project_id> --type-names '["t1","t2"]'
|
|
15
|
+
|
|
16
|
+
# Update a custom activity type name
|
|
17
|
+
ae-cli engage-activity activity-type update --project-id <project_id> --id <type_id> --type-name t3
|
|
18
|
+
|
|
19
|
+
# Batch-delete custom activity types (high-risk)
|
|
20
|
+
ae-cli engage-activity activity-type batch-delete --project-id <project_id> --ids '["id1","id2"]' --yes
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Parameters
|
|
24
|
+
|
|
25
|
+
| Command | Required flags | Notes |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| list | `--project-id` | read. |
|
|
28
|
+
| batch-add | `--project-id`, `--type-names` | `--type-names` = JSON array of names. |
|
|
29
|
+
| update | `--project-id`, `--id`, `--type-name` | write. |
|
|
30
|
+
| batch-delete | `--project-id`, `--ids` | high-risk; `--ids` = JSON array; requires `--yes`; no dry-run. |
|
|
31
|
+
|
|
32
|
+
## Output
|
|
33
|
+
|
|
34
|
+
- `list`: `data.total`, `data.items`.
|
|
35
|
+
- `batch-add`: `data.total`, `data.ids`.
|
|
36
|
+
- `update`: `data.success`.
|
|
37
|
+
- `batch-delete`: `data.total`, `data.deleted`.
|
|
38
|
+
|
|
39
|
+
## Decision Rules
|
|
40
|
+
|
|
41
|
+
- `batch-delete` is `high-risk-write` — requires `--yes`, no dry-run; loops single delete (non-atomic).
|
|
42
|
+
- Only custom types are editable; system types are read-only.
|