@thinkingai/ae-cli 6.0.20 → 6.0.22
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 +1 -4
- package/README.zh.md +1 -4
- package/dist/{auth-DYC2BGLM.js → auth-I2G7OAU2.js} +2 -4
- package/dist/{auth-GHBMJ5ZR.js → auth-RDN6D5HU.js} +32 -104
- package/dist/{chunk-5OC7CYCG.js → chunk-2W7HULUD.js} +14 -14
- package/dist/chunk-4EUZRJPO.js +163 -0
- package/dist/{chunk-DMMEPCST.js → chunk-5FBLRSMU.js} +25 -115
- package/dist/{chunk-BJX3GXWC.js → chunk-E34XH4GW.js} +2 -2
- package/dist/chunk-FPE5LGVU.js +105 -0
- package/dist/{chunk-I5CRVM2S.js → chunk-H52CSLJW.js} +44 -17
- package/dist/{chunk-RSHMZ3LG.js → chunk-U6QPKCN3.js} +6 -20
- package/dist/{chunk-6W4QOZAL.js → chunk-WPXHCP4A.js} +23 -13
- package/dist/{chunk-PN3OS34E.js → chunk-XE2PI5DS.js} +1 -1
- package/dist/{chunk-2DUEAXV3.js → chunk-YACCPUNQ.js} +1 -1
- package/dist/cli-token-6AGEDJF4.js +14 -0
- package/dist/{client-2UJ63MVQ.js → client-VTJMUZ4O.js} +3 -3
- package/dist/{config-NCUGK6NS.js → config-2SDTLGOC.js} +3 -3
- package/dist/index.js +309 -197
- package/dist/metadata-JZ2OTWBK.js +420 -0
- package/dist/{model-SJSOZTRS.js → model-ZYMRN4VS.js} +2 -2
- package/dist/{raw-7NVWSVJP.js → raw-NGYHAL3F.js} +4 -4
- package/dist/{sync-GRVO4K3U.js → sync-JVLX6TGW.js} +3 -3
- package/dist/{te-agent-CYZUC4US.js → te-agent-QPZTLHPH.js} +2 -2
- package/dist/{te-analysis-HJ22TUAA.js → te-analysis-WWX3Z6RP.js} +46 -24
- package/dist/{te-audience-MYDE5WEH.js → te-audience-UXGHUVBB.js} +27 -18
- package/dist/{te-common-WNCZB7R7.js → te-common-7XXH73MF.js} +5 -4
- package/dist/{te-community-JEEFXPB3.js → te-community-QKE67HR2.js} +5 -4
- package/dist/{te-dataops-ZTS7XMXM.js → te-dataops-6W7NNYST.js} +4 -5
- package/dist/{te-engage-4XHCTS6I.js → te-engage-NCFAQFX3.js} +5 -4
- package/dist/{te-kb-OWM3RQRH.js → te-kb-K5BQYUCM.js} +4 -5
- package/dist/{te-meta-JVO4QJBH.js → te-meta-LJZBOSMO.js} +26 -19
- package/dist/{te-team-YY24VORI.js → te-team-DHK5R7MV.js} +5 -6
- package/package.json +3 -2
- package/skills/ae-analysis/SKILL.md +9 -2
- package/skills/ae-analysis/references/build_attribution_analysis_qp.md +2 -0
- package/skills/ae-analysis/references/build_cluster_definition.md +2 -0
- package/skills/ae-analysis/references/build_distribution_analysis_qp.md +2 -0
- package/skills/ae-analysis/references/build_event_analysis_qp.md +2 -0
- package/skills/ae-analysis/references/build_funnel_analysis_qp.md +2 -0
- package/skills/ae-analysis/references/build_heat_map_analysis_qp.md +2 -0
- package/skills/ae-analysis/references/build_interval_analysis_qp.md +2 -0
- package/skills/ae-analysis/references/build_path_analysis_qp.md +2 -0
- package/skills/ae-analysis/references/build_prop_analysis_qp.md +2 -0
- package/skills/ae-analysis/references/build_rank_list_analysis_qp.md +2 -0
- package/skills/ae-analysis/references/build_retention_analysis_qp.md +2 -0
- package/skills/ae-analysis/references/build_tag_definition.md +2 -0
- package/skills/ae-analysis/references/list_clusters.md +3 -1
- package/skills/ae-analysis/references/list_events.md +5 -2
- package/skills/ae-analysis/references/list_metrics.md +4 -2
- package/skills/ae-analysis/references/list_properties.md +4 -2
- package/skills/ae-analysis/references/list_tags.md +3 -1
- package/skills/ae-generate-tracking-code/SKILL.md +68 -31
- package/skills/ae-generate-tracking-code/references/snippet-delivery.md +26 -1
- package/skills/ae-generate-tracking-code/references/te-api.md +47 -164
- package/skills/ae-generate-tracking-plan/SKILL.md +109 -32
- package/skills/ae-generate-tracking-plan/references/te-api.md +57 -27
- package/skills/ae-metadata/SKILL.md +90 -0
- package/skills/ae-metadata/references/metadata_data_table_csv_delete.md +15 -0
- package/skills/ae-metadata/references/metadata_data_table_csv_write.md +29 -0
- package/skills/ae-metadata/references/metadata_data_table_download.md +17 -0
- package/skills/ae-metadata/references/metadata_data_table_get.md +24 -0
- package/skills/ae-metadata/references/metadata_data_table_list.md +27 -0
- package/skills/ae-metadata/references/metadata_data_table_property_bindings_update.md +17 -0
- package/skills/ae-metadata/references/metadata_data_table_sql_delete.md +15 -0
- package/skills/ae-metadata/references/metadata_data_table_sql_write.md +31 -0
- package/skills/ae-metadata/references/metadata_event_get.md +52 -0
- package/skills/ae-metadata/references/metadata_input_file_upload.md +29 -0
- package/skills/ae-metadata/references/metadata_property_dimension_table_bind_existing.md +27 -0
- package/skills/ae-metadata/references/metadata_property_dimension_table_create_and_bind_csv.md +30 -0
- package/skills/ae-metadata/references/metadata_property_get.md +54 -0
|
@@ -33,6 +33,7 @@ ae-cli analysis_audience +build_cluster_definition --dry-run
|
|
|
33
33
|
| Parameter | Required | Description |
|
|
34
34
|
| --------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
35
35
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
36
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the definition. |
|
|
36
37
|
| `--type` | Yes | Cluster type. Supported values: `condition`, `sql` |
|
|
37
38
|
| `--conditions` | No | For type=condition: main condition group JSON (required when type=condition). See `+get_cluster_definition_schema` for the structure. |
|
|
38
39
|
| `--include_filter` | No | For type=condition: global include condition group JSON. |
|
|
@@ -40,6 +41,7 @@ ae-cli analysis_audience +build_cluster_definition --dry-run
|
|
|
40
41
|
| `--sql` | No | For type=sql: SQL query returning a single column named `#user_id`. |
|
|
41
42
|
|
|
42
43
|
## Decision Rules
|
|
44
|
+
- Use `--authenticated_only true` when the definition should only resolve authenticated events/properties/metrics/clusters/tags.
|
|
43
45
|
|
|
44
46
|
- Determine `--type` first, then pass the corresponding parameters.
|
|
45
47
|
- For type=condition, `--conditions` is effectively required; `--include_filter` and `--exclude_filter` are optional global filters.
|
|
@@ -27,6 +27,7 @@ ae-cli analysis +build_distribution_analysis_qp --project_id <project_id> --time
|
|
|
27
27
|
| Parameter | Required | Description |
|
|
28
28
|
|---|---|---|
|
|
29
29
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
30
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the QP. Do not pass this flag to `+query_adhoc`. |
|
|
30
31
|
| `--time_range` | Yes | Time range JSON |
|
|
31
32
|
| `--distribution_metrics` | Yes | Distribution metrics JSON array |
|
|
32
33
|
| `--time_particle_size` | No | Time granularity. Allowed values: day, week, month, total. Defaults to day. |
|
|
@@ -58,6 +59,7 @@ ae-cli analysis +build_distribution_analysis_qp --project_id 3137 --time_range '
|
|
|
58
59
|
```
|
|
59
60
|
|
|
60
61
|
## Decision Rules
|
|
62
|
+
- Use `--authenticated_only true` only when the user explicitly wants authenticated assets; do not add this flag to `+query_adhoc`.
|
|
61
63
|
- After successful build (`status=generated`), call `+query_adhoc --model_type distribution --qp '<response.qp>'`.
|
|
62
64
|
- If non-generated status, stop and ask user to clarify.
|
|
63
65
|
|
|
@@ -33,6 +33,7 @@ ae-cli analysis +build_event_analysis_qp --project_id <project_id> --time_range
|
|
|
33
33
|
| Parameter | Required | Description |
|
|
34
34
|
|---|---|---|
|
|
35
35
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
36
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the QP. Do not pass this flag to `+query_adhoc`. |
|
|
36
37
|
| `--time_range` | Yes | Event analysis time range JSON |
|
|
37
38
|
| `--metrics` | Yes | Event metrics JSON array |
|
|
38
39
|
| `--time_particle_size` | No | Time granularity. Default: total |
|
|
@@ -122,6 +123,7 @@ ae-cli analysis +build_event_analysis_qp --project_id 3137 --time_range '{"mode"
|
|
|
122
123
|
```
|
|
123
124
|
|
|
124
125
|
## Decision Rules
|
|
126
|
+
- Use `--authenticated_only true` only when the user explicitly wants authenticated assets; do not add this flag to `+query_adhoc`.
|
|
125
127
|
- After successful build, call `+query_adhoc --model_type event --qp '<response.qp>'`.
|
|
126
128
|
- If build returns non-generated status, stop and ask user to clarify; do not call `+query_adhoc`.
|
|
127
129
|
- Wrap JSON parameters in single quotes to avoid shell escaping issues.
|
|
@@ -33,6 +33,7 @@ ae-cli analysis +build_funnel_analysis_qp --project_id <project_id> --time_range
|
|
|
33
33
|
| Parameter | Required | Description |
|
|
34
34
|
|---|---|---|
|
|
35
35
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
36
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the QP. Do not pass this flag to `+query_adhoc`. |
|
|
36
37
|
| `--time_range` | Yes | Funnel analysis time range JSON |
|
|
37
38
|
| `--funnel` | Yes | Funnel intent JSON |
|
|
38
39
|
| `--relation` | No | Top-level funnel filter relation. Supported values: and, or. Default: and |
|
|
@@ -131,6 +132,7 @@ ae-cli analysis +query_adhoc --project_id 3137 --model_type funnel --qp '<respon
|
|
|
131
132
|
```
|
|
132
133
|
|
|
133
134
|
## Decision Rules
|
|
135
|
+
- Use `--authenticated_only true` only when the user explicitly wants authenticated assets; do not add this flag to `+query_adhoc`.
|
|
134
136
|
- After successful build, call `+query_adhoc --model_type funnel --qp '<response.qp>'`.
|
|
135
137
|
- If build returns non-generated status, stop and ask user to clarify; do not call `+query_adhoc`.
|
|
136
138
|
- Wrap JSON parameters in single quotes to avoid shell escaping issues.
|
|
@@ -25,6 +25,7 @@ ae-cli analysis +build_heat_map_analysis_qp --project_id <project_id> --time_ran
|
|
|
25
25
|
| Parameter | Required | Description |
|
|
26
26
|
|---|---|---|
|
|
27
27
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
28
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the QP. Do not pass this flag to `+query_adhoc`. |
|
|
28
29
|
| `--time_range` | Yes | Time range JSON |
|
|
29
30
|
| `--heat_map` | Yes | Heatmap intent JSON |
|
|
30
31
|
|
|
@@ -45,6 +46,7 @@ ae-cli analysis +build_heat_map_analysis_qp --project_id 3137 --time_range '{"mo
|
|
|
45
46
|
```
|
|
46
47
|
|
|
47
48
|
## Decision Rules
|
|
49
|
+
- Use `--authenticated_only true` only when the user explicitly wants authenticated assets; do not add this flag to `+query_adhoc`.
|
|
48
50
|
- After successful build (`status=generated`), call `+query_adhoc --model_type heat_map --qp '<response.qp>'`.
|
|
49
51
|
- If non-generated status, stop and ask user to clarify.
|
|
50
52
|
|
|
@@ -27,6 +27,7 @@ ae-cli analysis +build_interval_analysis_qp --project_id <project_id> --time_ran
|
|
|
27
27
|
| Parameter | Required | Description |
|
|
28
28
|
|---|---|---|
|
|
29
29
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
30
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the QP. Do not pass this flag to `+query_adhoc`. |
|
|
30
31
|
| `--time_range` | Yes | Time range JSON |
|
|
31
32
|
| `--interval` | Yes | Interval intent JSON |
|
|
32
33
|
| `--relation` | No | Filter relation for top-level filters. Values: and, or. Default: and. |
|
|
@@ -51,6 +52,7 @@ ae-cli analysis +build_interval_analysis_qp --project_id 3137 --time_range '{"mo
|
|
|
51
52
|
```
|
|
52
53
|
|
|
53
54
|
## Decision Rules
|
|
55
|
+
- Use `--authenticated_only true` only when the user explicitly wants authenticated assets; do not add this flag to `+query_adhoc`.
|
|
54
56
|
- After successful build (`status=generated`), call `+query_adhoc --model_type interval --qp '<response.qp>'`.
|
|
55
57
|
- If non-generated status, stop and ask user to clarify.
|
|
56
58
|
|
|
@@ -26,6 +26,7 @@ ae-cli analysis +build_path_analysis_qp --project_id <project_id> --time_range '
|
|
|
26
26
|
| Parameter | Required | Description |
|
|
27
27
|
|---|---|---|
|
|
28
28
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
29
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the QP. Do not pass this flag to `+query_adhoc`. |
|
|
29
30
|
| `--time_range` | Yes | Time range JSON |
|
|
30
31
|
| `--path` | Yes | Path intent JSON |
|
|
31
32
|
|
|
@@ -44,6 +45,7 @@ ae-cli analysis +build_path_analysis_qp --project_id 3137 --time_range '{"mode":
|
|
|
44
45
|
```
|
|
45
46
|
|
|
46
47
|
## Decision Rules
|
|
48
|
+
- Use `--authenticated_only true` only when the user explicitly wants authenticated assets; do not add this flag to `+query_adhoc`.
|
|
47
49
|
- After successful build (`status=generated`), call `+query_adhoc --model_type path --qp '<response.qp>'`.
|
|
48
50
|
- If non-generated status, stop and ask user to clarify.
|
|
49
51
|
|
|
@@ -32,6 +32,7 @@ ae-cli analysis +build_prop_analysis_qp --project_id <project_id> --prop_analysi
|
|
|
32
32
|
| Parameter | Required | Description |
|
|
33
33
|
|---|---|---|
|
|
34
34
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
35
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the QP. Do not pass this flag to `+query_adhoc`. |
|
|
35
36
|
| `--prop_analysis` | Yes | User property analysis intent JSON |
|
|
36
37
|
|
|
37
38
|
## JSON Shape
|
|
@@ -110,6 +111,7 @@ ae-cli analysis +build_prop_analysis_qp --project_id 3137 --prop_analysis '{"met
|
|
|
110
111
|
```
|
|
111
112
|
|
|
112
113
|
## Decision Rules
|
|
114
|
+
- Use `--authenticated_only true` only when the user explicitly wants authenticated assets; do not add this flag to `+query_adhoc`.
|
|
113
115
|
- After successful build, call `+query_adhoc --model_type prop_analysis --qp '<response.qp>'`.
|
|
114
116
|
- If build returns non-generated status, stop and ask user to clarify; do not call `+query_adhoc`.
|
|
115
117
|
- Wrap JSON parameters in single quotes to avoid shell escaping issues.
|
|
@@ -26,6 +26,7 @@ ae-cli analysis +build_rank_list_analysis_qp --project_id <project_id> --time_ra
|
|
|
26
26
|
| Parameter | Required | Description |
|
|
27
27
|
|---|---|---|
|
|
28
28
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
29
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the QP. Do not pass this flag to `+query_adhoc`. |
|
|
29
30
|
| `--time_range` | Yes | Time range JSON |
|
|
30
31
|
| `--rank_list` | Yes | Rank list intent JSON |
|
|
31
32
|
|
|
@@ -54,6 +55,7 @@ ae-cli analysis +build_rank_list_analysis_qp --project_id 3137 --time_range '{"m
|
|
|
54
55
|
```
|
|
55
56
|
|
|
56
57
|
## Decision Rules
|
|
58
|
+
- Use `--authenticated_only true` only when the user explicitly wants authenticated assets; do not add this flag to `+query_adhoc`.
|
|
57
59
|
- After successful build (`status=generated`), call `+query_adhoc --model_type rank_list --qp '<response.qp>'`.
|
|
58
60
|
- If non-generated status, stop and ask user to clarify.
|
|
59
61
|
|
|
@@ -33,6 +33,7 @@ ae-cli analysis +build_retention_analysis_qp --project_id <project_id> --time_ra
|
|
|
33
33
|
| Parameter | Required | Description |
|
|
34
34
|
|---|---|---|
|
|
35
35
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
36
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the QP. Do not pass this flag to `+query_adhoc`. |
|
|
36
37
|
| `--time_range` | Yes | Retention analysis time range JSON |
|
|
37
38
|
| `--retention` | Yes | Retention intent JSON |
|
|
38
39
|
| `--relation` | No | Top-level retention filter relation. Supported values: and, or. Default: and |
|
|
@@ -129,6 +130,7 @@ ae-cli analysis +build_retention_analysis_qp --project_id 3137 --time_range '{"m
|
|
|
129
130
|
```
|
|
130
131
|
|
|
131
132
|
## Decision Rules
|
|
133
|
+
- Use `--authenticated_only true` only when the user explicitly wants authenticated assets; do not add this flag to `+query_adhoc`.
|
|
132
134
|
- After successful build, call `+query_adhoc --model_type retention --qp '<response.qp>'`.
|
|
133
135
|
- If build returns non-generated status, stop and ask user to clarify; do not call `+query_adhoc`.
|
|
134
136
|
- Wrap JSON parameters in single quotes to avoid shell escaping issues.
|
|
@@ -34,6 +34,7 @@ ae-cli analysis_audience +build_tag_definition --dry-run
|
|
|
34
34
|
| Parameter | Required | Description |
|
|
35
35
|
| --------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
36
36
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
37
|
+
| `--authenticated_only` | No | Resolve only authenticated assets while building the definition. |
|
|
37
38
|
| `--type` | Yes | Tag type. Supported values: `condition`, `metric`, `first_last`, `sql` |
|
|
38
39
|
| `--condition_values` | No | For type=condition: list of tag value definitions JSON array. Each item defines a segment label and its conditions. See `+get_tag_definition_schema` for the structure. |
|
|
39
40
|
| `--metric` | No | For type=metric: metric definition JSON. Fields: `eventName`, `analysis`, `quota` (property name), `recentDay`/`startTime`/`endTime`. |
|
|
@@ -41,6 +42,7 @@ ae-cli analysis_audience +build_tag_definition --dry-run
|
|
|
41
42
|
| `--sql` | No | For type=sql: SQL query returning two columns: `#user_id` and the tag value. |
|
|
42
43
|
|
|
43
44
|
## Decision Rules
|
|
45
|
+
- Use `--authenticated_only true` when the definition should only resolve authenticated events/properties/metrics/clusters/tags.
|
|
44
46
|
|
|
45
47
|
- Determine `--type` first, then pass only the corresponding parameter.
|
|
46
48
|
- For type=condition, `--condition_values` is effectively required.
|
|
@@ -28,11 +28,13 @@ ae-cli analysis_audience +list_clusters --dry-run
|
|
|
28
28
|
|---|---|---|
|
|
29
29
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
30
30
|
| `--query` / `-q` | No | Optional keyword filter. Performs fuzzy matching against clusterName, displayName, and remarks; if omitted, all clusters are returned. |
|
|
31
|
-
| `--fields` | No | Optional return field list (JSON array). Supported fields: `id`, `clusterName`, `displayName`, `clusterType`, `progress`, `usersNum`, `refreshStatus`, `remarks`. Default fields when omitted: `id`, `clusterName`, `displayName`, `remarks`, `clusterType`, `progress`, `usersNum`. Invalid fields will fail with `INVALID_FIELDS`. |
|
|
31
|
+
| `--fields` | No | Optional return field list (JSON array). Supported fields: `id`, `clusterName`, `displayName`, `clusterType`, `progress`, `usersNum`, `refreshStatus`, `remarks`, `authenticationStatus`. Default fields when omitted: `id`, `clusterName`, `displayName`, `remarks`, `clusterType`, `progress`, `usersNum`, `authenticationStatus`. Invalid fields will fail with `INVALID_FIELDS`. |
|
|
32
32
|
| `--limit` | No | Optional page size. Default: 20, max: 50. |
|
|
33
33
|
| `--offset` | No | Optional page offset. Default: 0. |
|
|
34
|
+
| `--authenticated_only` | No | When true, return only authenticated clusters. |
|
|
34
35
|
|
|
35
36
|
## Decision Rules
|
|
37
|
+
- Use `--authenticated_only true` only when the user explicitly asks for authenticated assets. `authenticationStatus` is `1` for authenticated and `0` for unauthenticated.
|
|
36
38
|
- For the first execution, it is recommended to pass only the required parameters (`--project_id`) and add optional parameters after confirming the path works.
|
|
37
39
|
- When troubleshooting across projects, first confirm whether `--project_id` matches the current permissions and target environment.
|
|
38
40
|
|
|
@@ -27,10 +27,13 @@ ae-cli analysis_meta +list_events --dry-run
|
|
|
27
27
|
|---|---|---|
|
|
28
28
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
29
29
|
| `--query` / `-q` | No | Optional keyword filter. Performs fuzzy matching against eventName, eventDesc, and remark; if omitted, all events are returned. |
|
|
30
|
-
| `--fields` / `-f` | No | Optional fields to return (JSON array). Supported fields: `eventId`, `eventName`, `eventDesc`, `remark`, `eventTag`. Default fields when omitted: `eventId`, `eventName`, `eventDesc`, `remark`. |
|
|
31
|
-
| `--limit` / `-l` | No | Optional page size. Default: 20, maximum:
|
|
30
|
+
| `--fields` / `-f` | No | Optional fields to return (JSON array). Supported fields: `eventId`, `eventName`, `eventDesc`, `remark`, `eventTag`, `authenticationStatus`. Default fields when omitted: `eventId`, `eventName`, `eventDesc`, `remark`, `authenticationStatus`. |
|
|
31
|
+
| `--limit` / `-l` | No | Optional page size. Default: 20, maximum: 50. |
|
|
32
32
|
| `--offset` / `-o` | No | Optional page offset. Default: 0. |
|
|
33
|
+
| `--authenticated_only` | No | When true, return only authenticated events. |
|
|
34
|
+
|
|
33
35
|
## Decision Rules
|
|
36
|
+
- Use `--authenticated_only true` only when the user explicitly asks for authenticated assets. `authenticationStatus` is `1` for authenticated and `0` for unauthenticated.
|
|
34
37
|
- For the first run, pass only the required parameter (`--project_id`) to confirm the path works, then add optional parameters.
|
|
35
38
|
- For builder-supported ad-hoc analysis, pass the user's event wording to the builder instead of pre-querying event metadata.
|
|
36
39
|
- For cross-project troubleshooting, first confirm whether `--project_id` matches the current permissions and target environment.
|
|
@@ -29,11 +29,13 @@ ae-cli analysis_meta +list_metrics --dry-run
|
|
|
29
29
|
|---|---|---|
|
|
30
30
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
31
31
|
| `--query` / `-q` | No | Optional keyword filter. Fuzzy match on metricName, metricDesc, metricRemark. |
|
|
32
|
-
| `--fields` | No | Optional fields to return. Supported: metricId, metricName, metricDesc, metricRemark, metricMode, openId, creator, creatorLoginName, updateOpenId, updateCreator, updateLoginName, createTime, updateTime. Default fields when omitted: metricId, metricName, metricDesc, metricRemark, metricMode. Invalid fields cause INVALID_FIELDS error. |
|
|
33
|
-
| `--limit` | No | Optional limit. Default: 20, maximum:
|
|
32
|
+
| `--fields` | No | Optional fields to return. Supported: metricId, metricName, metricDesc, metricRemark, metricMode, authenticationStatus, openId, creator, creatorLoginName, updateOpenId, updateCreator, updateLoginName, createTime, updateTime. Default fields when omitted: metricId, metricName, metricDesc, metricRemark, metricMode, authenticationStatus. Invalid fields cause INVALID_FIELDS error. |
|
|
33
|
+
| `--limit` | No | Optional limit. Default: 20, maximum: 50. |
|
|
34
34
|
| `--offset` | No | Optional offset. Default: 0. |
|
|
35
|
+
| `--authenticated_only` | No | When true, return only authenticated metrics. |
|
|
35
36
|
|
|
36
37
|
## Decision Rules
|
|
38
|
+
- Use `--authenticated_only true` only when the user explicitly asks for authenticated assets. `authenticationStatus` is `1` for authenticated and `0` for unauthenticated.
|
|
37
39
|
- First run should only pass the required parameter (`--project_id`), and add optional parameters only after the path is confirmed to work.
|
|
38
40
|
- For pagination, use `--limit` and `--offset` together. Default limit is 20.
|
|
39
41
|
- Use `--fields` to select specific columns for lighter response payloads.
|
|
@@ -27,12 +27,14 @@ ae-cli analysis_meta +list_properties --dry-run
|
|
|
27
27
|
| `--scope` | No | Optional property scope. event means event properties, user means user properties. If omitted, all scopes are queried. |
|
|
28
28
|
| `--event_name` | No | Optional event name. If provided, only event properties available for that event are returned. |
|
|
29
29
|
| `--query` / `-q` | No | Optional keyword filter. Fuzzy match is applied to propName, propDesc, and remark; if omitted, all matched properties are returned. |
|
|
30
|
-
| `--fields` / `-f` | No | Optional fields to return (JSON array). Supported fields: `propId`, `propName`, `propDesc`, `remark`, `selectType`, `tableType`, `subTableType`. Default fields when omitted: `propId`, `propName`, `propDesc`, `remark`, `selectType`, `tableType`. |
|
|
31
|
-
| `--limit` / `-l` | No | Optional page size. Default: 20, maximum:
|
|
30
|
+
| `--fields` / `-f` | No | Optional fields to return (JSON array). Supported fields: `propId`, `propName`, `propDesc`, `remark`, `selectType`, `tableType`, `subTableType`, `authenticationStatus`. Default fields when omitted: `propId`, `propName`, `propDesc`, `remark`, `selectType`, `tableType`, `authenticationStatus`. |
|
|
31
|
+
| `--limit` / `-l` | No | Optional page size. Default: 20, maximum: 50. |
|
|
32
32
|
| `--offset` / `-o` | No | Optional page offset. Default: 0. |
|
|
33
|
+
| `--authenticated_only` | No | When true, return only authenticated properties. |
|
|
33
34
|
|
|
34
35
|
|
|
35
36
|
## Decision Rules
|
|
37
|
+
- Use `--authenticated_only true` only when the user explicitly asks for authenticated assets. `authenticationStatus` is `1` for authenticated and `0` for unauthenticated.
|
|
36
38
|
- For the first run, pass only the required parameter (`--project_id`) to confirm the path works, then add optional parameters.
|
|
37
39
|
- For builder-supported ad-hoc analysis, pass the user's property wording to the builder instead of pre-querying property metadata.
|
|
38
40
|
- For cross-project troubleshooting, first confirm whether `--project_id` matches the current permissions and target environment.
|
|
@@ -26,11 +26,13 @@ ae-cli analysis_audience +list_tags --dry-run
|
|
|
26
26
|
|---|---|---|
|
|
27
27
|
| `--project_id` / `-p` | Yes | Project ID |
|
|
28
28
|
| `--query` / `-q` | No | Optional keyword filter. Performs fuzzy matching against tag names, display names, and remarks; if omitted, all tags are returned. |
|
|
29
|
-
| `--fields` | No | Optional return field list (JSON array). Supported fields: `id`, `clusterName`, `displayName`, `clusterType`, `subConditionTabType`, `progress`, `usersNum`, `remarks`. Default fields when omitted: `id`, `clusterName`, `displayName`, `remarks`, `clusterType`, `subConditionTabType`, `progress`, `usersNum`. Invalid fields will fail with `INVALID_FIELDS`. |
|
|
29
|
+
| `--fields` | No | Optional return field list (JSON array). Supported fields: `id`, `clusterName`, `displayName`, `clusterType`, `subConditionTabType`, `progress`, `usersNum`, `remarks`, `authenticationStatus`. Default fields when omitted: `id`, `clusterName`, `displayName`, `remarks`, `clusterType`, `subConditionTabType`, `progress`, `usersNum`, `authenticationStatus`. Invalid fields will fail with `INVALID_FIELDS`. |
|
|
30
30
|
| `--limit` | No | Optional page size. Default: 20, max: 50. |
|
|
31
31
|
| `--offset` | No | Optional page offset. Default: 0. |
|
|
32
|
+
| `--authenticated_only` | No | When true, return only authenticated tags. |
|
|
32
33
|
|
|
33
34
|
## Decision Rules
|
|
35
|
+
- Use `--authenticated_only true` only when the user explicitly asks for authenticated assets. `authenticationStatus` is `1` for authenticated and `0` for unauthenticated.
|
|
34
36
|
- For the first execution, it is recommended to pass only the required parameters (`--project_id`) and add optional parameters after confirming the path works.
|
|
35
37
|
- When troubleshooting across projects, first confirm whether `--project_id` matches the current permissions and target environment.
|
|
36
38
|
|
|
@@ -58,14 +58,14 @@ First, check if `.ae-cli/draft.json` exists and read existing configuration:
|
|
|
58
58
|
|---|---|---|
|
|
59
59
|
| AE projectId | `meta.project_id` | Has value → confirm; missing → ask |
|
|
60
60
|
| AE web address | `meta.host` | Has value → confirm; missing → ask |
|
|
61
|
-
| **SERVER_URL** | `meta.server_url` |
|
|
62
|
-
| **APP_ID** | `meta.app_id` |
|
|
61
|
+
| **SERVER_URL** | `meta.server_url` | Has value → confirm; missing → try lookup from project config, then ask if unavailable |
|
|
62
|
+
| **APP_ID** | `meta.app_id` | Has value → confirm; missing → try lookup from accessible project list, then ask if unavailable |
|
|
63
63
|
| SDK integration mode | `meta.sdk_integration_mode` | Has value → use directly |
|
|
64
64
|
| Client SDK type | `meta.client_platforms` (preferred) or `meta.client_sdk_type` | Has value → use directly |
|
|
65
65
|
| Server language | `meta.server_language` | Has value → use directly |
|
|
66
66
|
| User identity system | `meta.user_identity` | Has value → use directly |
|
|
67
67
|
|
|
68
|
-
**Important**: `project_id` ≠ `APP_ID`, and `host` ≠ `SERVER_URL`. Even if project_id and host are already set, SERVER_URL and APP_ID must still be
|
|
68
|
+
**Important**: `project_id` ≠ `APP_ID`, and `host` ≠ `SERVER_URL`. Even if project_id and host are already set, SERVER_URL and APP_ID must still be resolved and confirmed separately. Prefer lookup first; ask the user only when lookup is unavailable or ambiguous.
|
|
69
69
|
|
|
70
70
|
**Multi-platform support**:
|
|
71
71
|
- If `client_platforms` exists (array): multi-platform scenario — generate code for each platform
|
|
@@ -86,14 +86,21 @@ First, check if `.ae-cli/draft.json` exists and read existing configuration:
|
|
|
86
86
|
- User says `yes` → use draft value
|
|
87
87
|
- User enters new value → update draft.json and use new value
|
|
88
88
|
|
|
89
|
-
### Required configuration (must confirm each item)
|
|
89
|
+
### Required configuration (must resolve and confirm each item)
|
|
90
90
|
|
|
91
|
-
**⚠️ Key: SERVER_URL and APP_ID are independent config items. Even if draft.json has project_id and host, you MUST
|
|
91
|
+
**⚠️ Key: SERVER_URL and APP_ID are independent config items. Even if draft.json has project_id and host, you MUST resolve and confirm them. `project_id` ≠ `APP_ID`, `host` ≠ `SERVER_URL`.**
|
|
92
92
|
|
|
93
|
-
1. **
|
|
93
|
+
1. **APP_ID** — Prefer automatic lookup before asking:
|
|
94
|
+
- If `meta.project_id` is known, run `ae-cli analysis_common +list_projects` once for the current host.
|
|
95
|
+
- Find the project whose `projectId` matches `meta.project_id`.
|
|
96
|
+
- If the matched project has `appId`, ask: **"I found APP_ID `<appId>` for project `<projectId>`. Use it? yes / enter new value"**
|
|
97
|
+
- If the project is missing, ambiguous, or has no `appId`, ask the user to copy APP_ID from AE Admin → "Project Settings" → "Integration Config".
|
|
98
|
+
2. **SERVER_URL** — Data ingestion endpoint (**different from web URL**; go to AE Admin → "Project Settings" → "Integration Config" → fill in "Public URL")
|
|
99
|
+
- If `meta.project_id` is known, you may try `ae-cli analysis_meta +get_project_config --project_id <project_id>` once.
|
|
100
|
+
- Use the returned value only if the response explicitly contains a receiver URL field such as `serverUrl`, `pushUrl`, `push_url`, `receiverUrl`, `publicUrl`, or equivalent ingestion endpoint field.
|
|
101
|
+
- If a value is found, ask: **"I found SERVER_URL `<url>` for project `<projectId>`. Use it? yes / enter new value"**
|
|
94
102
|
- ⚠️ "Public URL" only shows if previously filled in; if empty, this field won't display
|
|
95
103
|
- Solution: ask ops for the URL, or **skip this step** (use `SERVER_URL` or `PUSH_URL` placeholder in code)
|
|
96
|
-
2. **APP_ID** — Go to AE Admin → "Project Settings" → "Integration Config" → copy "APP_ID"
|
|
97
104
|
|
|
98
105
|
**host handling** (optional):
|
|
99
106
|
- If you need to fetch plan from AE (no local draft.json) → ask for host
|
|
@@ -194,7 +201,7 @@ Ask in order, one item per message:
|
|
|
194
201
|
- Account ID source: user_account / role_id / none
|
|
195
202
|
- Visitor ID strategy: auto / device_id / custom
|
|
196
203
|
|
|
197
|
-
5. **
|
|
204
|
+
5. **APP_ID / SERVER_URL**: resolve them with the lookup-first flow above, confirm any found values with the user, and ask only for values that cannot be found or are rejected by the user.
|
|
198
205
|
|
|
199
206
|
**Step 4: Merge configuration and proceed to Phase 1**
|
|
200
207
|
|
|
@@ -224,26 +231,31 @@ Without `.ae-cli/draft.json` or `.ae-cli/remote-plan.json`:
|
|
|
224
231
|
|
|
225
232
|
**Client platforms** (corresponding to client SDKs):
|
|
226
233
|
|
|
227
|
-
| plan field | Platform | SDK |
|
|
228
|
-
|
|
229
|
-
| `android` | Android | Android SDK |
|
|
230
|
-
| `ios` | iOS | iOS SDK |
|
|
231
|
-
| `openharmony` | OpenHarmony | OpenHarmony SDK |
|
|
232
|
-
| `javascript` | Web / H5 | JavaScript SDK |
|
|
233
|
-
| `miniprogram` | Mini-program | Mini-program SDK |
|
|
234
|
-
| `unity` | Unity | Unity SDK |
|
|
235
|
-
| `game_engine` | Game Engine | Cocos / Laya / Unreal |
|
|
234
|
+
| plan field | Platform | SDK |
|
|
235
|
+
|---|---|---|
|
|
236
|
+
| `android` | Android | Android SDK |
|
|
237
|
+
| `ios` | iOS | iOS SDK |
|
|
238
|
+
| `openharmony` | OpenHarmony | OpenHarmony SDK |
|
|
239
|
+
| `javascript` | Web / H5 | JavaScript SDK |
|
|
240
|
+
| `miniprogram` | Mini-program | Mini-program SDK |
|
|
241
|
+
| `unity` | Unity | Unity SDK |
|
|
242
|
+
| `game_engine` | Game Engine | Cocos / Laya / Unreal |
|
|
236
243
|
|
|
237
244
|
**Server languages** (corresponding to server SDKs):
|
|
238
245
|
|
|
239
|
-
| plan field | Language | SDK |
|
|
240
|
-
|
|
241
|
-
| `java` | Java | Java SDK |
|
|
242
|
-
| `python` | Python | Python SDK |
|
|
243
|
-
| `go` | Go | Go SDK |
|
|
244
|
-
| `nodejs` | Node.js | Node SDK |
|
|
245
|
-
| `php` | PHP | PHP SDK |
|
|
246
|
-
| `csharp` | C# | C# SDK |
|
|
246
|
+
| plan field | Language | SDK |
|
|
247
|
+
|---|---|---|
|
|
248
|
+
| `java` | Java | Java SDK |
|
|
249
|
+
| `python` | Python | Python SDK |
|
|
250
|
+
| `go` | Go | Go SDK |
|
|
251
|
+
| `nodejs` | Node.js | Node SDK |
|
|
252
|
+
| `php` | PHP | PHP SDK |
|
|
253
|
+
| `csharp` | C# | C# SDK |
|
|
254
|
+
|
|
255
|
+
**SDK document paths**:
|
|
256
|
+
- Do not use hard-coded wiki paths from this section.
|
|
257
|
+
- Always read `references/sdk-index.md` first and use the path listed there for the selected SDK.
|
|
258
|
+
- If the path from `references/sdk-index.md` does not exist in the local wiki mirror, search under `~/.ae-cli/wiki/te-docs/raw/` with SDK-specific keywords and use the best matching latest main document.
|
|
247
259
|
|
|
248
260
|
---
|
|
249
261
|
|
|
@@ -437,7 +449,7 @@ test -z "$(git status --porcelain)" || echo "uncommitted changes present"
|
|
|
437
449
|
**Only generate events where `platform === "client"` or `platform === "both"`**
|
|
438
450
|
|
|
439
451
|
**⚠️ Hard rule: Never guess SDK imports**
|
|
440
|
-
- Before generating, MUST read the corresponding SDK wiki document
|
|
452
|
+
- Before generating, MUST read `references/sdk-index.md`, resolve the corresponding SDK wiki main document, verify the path exists, and then read that main document
|
|
441
453
|
- **MUST copy import statements and package names from the wiki main document**, never guess
|
|
442
454
|
- Example: JavaScript SDK npm package is `thinkingdata-browser`, import variable is `ta`
|
|
443
455
|
- If generated code doesn't match wiki docs (e.g. `TDAnalytics`/`te`/`@thinkingdata/web-sdk`), re-read wiki and fix
|
|
@@ -460,7 +472,7 @@ test -z "$(git status --porcelain)" || echo "uncommitted changes present"
|
|
|
460
472
|
- **Always provide LogBus2 official docs link**: https://docs-v2.thinkingdata.cn/?version=latest&code=logbus2_installation&lan=en-US
|
|
461
473
|
|
|
462
474
|
**⚠️ Hard rule: Never guess SDK imports**
|
|
463
|
-
- Before generating, MUST read the corresponding SDK wiki document
|
|
475
|
+
- Before generating, MUST read `references/sdk-index.md`, resolve the corresponding SDK wiki main document, verify the path exists, and then read that main document
|
|
464
476
|
- **MUST copy import statements and package names from the wiki main document**, never guess
|
|
465
477
|
- **Re-read docs before every code generation**, never rely on "remembered" code
|
|
466
478
|
|
|
@@ -478,6 +490,25 @@ test -z "$(git status --porcelain)" || echo "uncommitted changes present"
|
|
|
478
490
|
|
|
479
491
|
Show deliverables based on selected output modes:
|
|
480
492
|
|
|
493
|
+
### Attachment upload
|
|
494
|
+
|
|
495
|
+
After all `.ae-cli/output/` files are generated, upload every generated output file to the Agent attachment library so the user can download them from the file/attachment management entry.
|
|
496
|
+
|
|
497
|
+
Use the existing attachment command:
|
|
498
|
+
|
|
499
|
+
```bash
|
|
500
|
+
ae-cli agent +add-attachment --yes --files '<json-array-of-generated-output-files>'
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
Upload list rules:
|
|
504
|
+
- Include all generated snippet files under `.ae-cli/output/`.
|
|
505
|
+
- Include generated server config files such as `.ae-cli/output/daemon.json` and LogBus README files.
|
|
506
|
+
- Include `.ae-cli/output/README.md`.
|
|
507
|
+
- Include generated debug scripts if the user selected the debug option.
|
|
508
|
+
- Do not upload files inserted directly into the user's project; only upload generated output artifacts.
|
|
509
|
+
|
|
510
|
+
If upload succeeds, include the attachment upload result in the final response and tell the user the files are available from the file/attachment management entry. If upload fails because Agent attachment credentials are unavailable, keep the local `.ae-cli/output/` files and tell the user the upload did not complete.
|
|
511
|
+
|
|
481
512
|
### All snippets
|
|
482
513
|
|
|
483
514
|
```
|
|
@@ -496,6 +527,8 @@ Standalone:
|
|
|
496
527
|
- .ae-cli/output/te-debug.java (validation script)
|
|
497
528
|
|
|
498
529
|
README: .ae-cli/output/README.md (usage instructions)
|
|
530
|
+
|
|
531
|
+
Attachment upload: uploaded generated output files to the file/attachment management entry
|
|
499
532
|
```
|
|
500
533
|
|
|
501
534
|
### Mixed (some insert + some snippet)
|
|
@@ -514,6 +547,8 @@ LogBus2 official docs: https://docs-v2.thinkingdata.cn/?version=latest&code=logb
|
|
|
514
547
|
|
|
515
548
|
Standalone:
|
|
516
549
|
- .ae-cli/output/te-debug.java (validation script)
|
|
550
|
+
|
|
551
|
+
Attachment upload: uploaded generated output files to the file/attachment management entry
|
|
517
552
|
```
|
|
518
553
|
|
|
519
554
|
### Markdown code snippet display
|
|
@@ -623,7 +658,9 @@ All output mode rules are in `references/*.md`. This SKILL.md only handles phase
|
|
|
623
658
|
- `~/.ae-cli/wiki/te-docs/synthesis/` — LLM-synthesized overview documents
|
|
624
659
|
|
|
625
660
|
**Document reading order during code generation**:
|
|
626
|
-
1. Read `references/sdk-index.md` to find the SDK's
|
|
627
|
-
2.
|
|
628
|
-
3.
|
|
629
|
-
4.
|
|
661
|
+
1. Read `references/sdk-index.md` to find the selected SDK's main document and advanced guide paths.
|
|
662
|
+
2. Verify the main document path exists in the local wiki mirror before reading it.
|
|
663
|
+
3. If the indexed path is missing, search under `~/.ae-cli/wiki/te-docs/raw/` with SDK-specific keywords such as SDK name, platform name, language name, and `main doc`; choose the latest main document, not historical/versioned documents.
|
|
664
|
+
4. Read the wiki main doc first (initialization, imports, package names, basic API).
|
|
665
|
+
5. Read the advanced guide only after the main doc (LoggerConsumer, user properties, auto-track, preset properties, etc.).
|
|
666
|
+
6. Check advanced guide sub-documents if needed.
|
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
## Deliverables
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Three outputs:
|
|
8
8
|
1. **Markdown response**: code snippets grouped by platform (for reading)
|
|
9
9
|
2. **Code files**: `.ae-cli/output/<platform>-sdk.<ext>` (for copy-paste use)
|
|
10
|
+
3. **Attachment library upload**: generated files uploaded with `ae-cli agent +add-attachment` so the user can download them from the file/attachment management entry
|
|
10
11
|
|
|
11
12
|
---
|
|
12
13
|
|
|
@@ -230,6 +231,26 @@ AE Debug mode requires the device ID to be added in AE Admin before data can be
|
|
|
230
231
|
|
|
231
232
|
---
|
|
232
233
|
|
|
234
|
+
## Attachment Library Upload
|
|
235
|
+
|
|
236
|
+
After all snippet output files are written, upload generated output artifacts to the Agent attachment library:
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
ae-cli agent +add-attachment --yes --files '<json-array-of-generated-output-files>'
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Upload list must include:
|
|
243
|
+
- Every generated platform snippet file under `.ae-cli/output/`
|
|
244
|
+
- `.ae-cli/output/README.md`
|
|
245
|
+
- Server-side config files, including `.ae-cli/output/daemon.json` and related README files
|
|
246
|
+
- Generated debug scripts, if any
|
|
247
|
+
|
|
248
|
+
Only upload generated output artifacts. Do not upload files inserted directly into the user's project.
|
|
249
|
+
|
|
250
|
+
If upload succeeds, report that the files are available from the file/attachment management entry. If upload fails because Agent attachment credentials are unavailable, preserve the local output files and report the upload failure separately.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
233
254
|
## Generation Workflow
|
|
234
255
|
|
|
235
256
|
### ⚠️ Mandatory Pre-checks (do not skip)
|
|
@@ -302,6 +323,10 @@ After generation, perform language style checks on each output file:
|
|
|
302
323
|
1. Additionally generate `daemon.json` for server-side
|
|
303
324
|
2. **Must always provide LogBus2 official documentation link**
|
|
304
325
|
|
|
326
|
+
#### Step 5: Upload Generated Artifacts
|
|
327
|
+
|
|
328
|
+
Upload all generated `.ae-cli/output/` artifacts to the Agent attachment library using `ae-cli agent +add-attachment --yes --files '<json-array>'`.
|
|
329
|
+
|
|
305
330
|
---
|
|
306
331
|
|
|
307
332
|
## Code Style
|