@thinkingai/ae-cli 6.0.31 → 6.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/README.zh.md +3 -2
- package/dist/{capability-SQ2IWKP3.js → capability-QW4AVJHI.js} +1 -1
- package/dist/{capability-SEH3JWLN.js → capability-SCRFGODD.js} +1 -1
- package/dist/{chunk-N2QORU5D.js → chunk-7OLGDQQ2.js} +5 -2
- package/dist/{chunk-TKQJQXWT.js → chunk-TBHBYKXZ.js} +5 -2
- package/dist/index.js +51 -24
- package/dist/{metadata-X62TKIVK.js → metadata-BFDL6RUK.js} +2 -2
- package/dist/{metadata-W6JFFMBA.js → metadata-FCLDBXX2.js} +2 -2
- package/dist/{te-analysis-NJGNWZFC.js → te-analysis-PUVF5IF4.js} +1297 -91
- package/dist/{te-analysis-YGV5V5EX.js → te-analysis-UJDOKPAN.js} +1297 -91
- package/dist/te-common-VUX3VOXZ.js +60 -0
- package/dist/te-common-XLAGWNIV.js +60 -0
- package/dist/te-engage-K4AEUPK5.js +3894 -0
- package/dist/te-engage-QBCCME22.js +3894 -0
- package/dist/te-experiment-JINSMHMW.js +606 -0
- package/dist/te-experiment-NWNQHJS5.js +606 -0
- package/dist/{te-kb-NT33UHAE.js → te-kb-AYCODNU6.js} +56 -17
- package/dist/{te-meta-VKWNAWO4.js → te-meta-ARDIW3YI.js} +1 -234
- package/dist/{te-meta-MAAUHFQO.js → te-meta-UUROEODR.js} +1 -234
- package/package.json +2 -1
- package/skills/ae-analysis/SKILL.md +10 -7
- package/skills/ae-analysis/references/adhoc_export.md +3 -6
- package/skills/ae-analysis/references/adhoc_run.md +5 -9
- package/skills/ae-analysis/references/ai_models.md +17 -1
- 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_page_data_export.md +2 -2
- package/skills/ae-analysis/references/bi_panel_page_data_run.md +1 -1
- package/skills/ae-analysis/references/command_index.md +62 -28
- package/skills/ae-analysis/references/create_entity.md +2 -2
- package/skills/ae-analysis/references/dashboard_report_data_export.md +2 -2
- package/skills/ae-analysis/references/dashboard_report_data_run.md +2 -2
- 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_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/list_entities.md +1 -1
- 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/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 +25 -0
- package/skills/ae-analysis/references/project_role_function_list.md +27 -0
- package/skills/ae-analysis/references/project_role_get.md +23 -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 +23 -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 +14 -32
- package/skills/ae-analysis/references/report_create.md +1 -1
- package/skills/ae-analysis/references/report_data_export.md +2 -2
- package/skills/ae-analysis/references/report_data_run.md +2 -2
- 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/user_cluster_create.md +3 -1
- 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 +3 -1
- package/skills/ae-analysis/references/user_tag_create.md +3 -1
- 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 +3 -1
- 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-engage/SKILL.md +202 -7
- 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-experiment/SKILL.md +64 -0
- package/skills/ae-experiment/references/batch_delete_experiment.md +11 -0
- package/skills/ae-experiment/references/batch_delete_feature.md +11 -0
- package/skills/ae-experiment/references/batch_delete_traffic_layer.md +11 -0
- package/skills/ae-experiment/references/cancel_experiment_query_by_request_id.md +10 -0
- package/skills/ae-experiment/references/check_experiment_ready.md +13 -0
- package/skills/ae-experiment/references/delete_metric.md +11 -0
- package/skills/ae-experiment/references/manage_experiment.md +15 -0
- package/skills/ae-experiment/references/manage_feature_status.md +11 -0
- package/skills/ae-experiment/references/query_bucket_list.md +10 -0
- package/skills/ae-experiment/references/query_experiment_detail.md +11 -0
- package/skills/ae-experiment/references/query_experiment_list.md +10 -0
- package/skills/ae-experiment/references/query_experiment_metric_trend.md +16 -0
- package/skills/ae-experiment/references/query_experiment_report_summary.md +12 -0
- package/skills/ae-experiment/references/query_experiment_sample_size_report.md +16 -0
- package/skills/ae-experiment/references/query_feature_detail.md +12 -0
- package/skills/ae-experiment/references/query_feature_list.md +10 -0
- package/skills/ae-experiment/references/query_metric_detail.md +11 -0
- package/skills/ae-experiment/references/query_metric_list.md +10 -0
- package/skills/ae-experiment/references/query_traffic_layer_detail.md +11 -0
- package/skills/ae-experiment/references/query_traffic_layer_list.md +10 -0
- package/skills/ae-experiment/references/save_experiment.md +17 -0
- package/skills/ae-experiment/references/save_feature.md +13 -0
- package/skills/ae-experiment/references/save_metric.md +13 -0
- package/skills/ae-experiment/references/save_submit_experiment.md +13 -0
- package/skills/ae-experiment/references/save_traffic_layer.md +13 -0
- package/skills/ae-generate-tracking-plan/SKILL.md +8 -5
- package/skills/ae-generate-tracking-plan/references/te-api.md +1 -1
- package/skills/ae-kb/SKILL.md +34 -8
- package/skills/ae-metadata/SKILL.md +1 -1
- 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/dist/te-common-5NJLF3XG.js +0 -130
- package/dist/te-common-7VTJZPII.js +0 -130
- 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,15 @@
|
|
|
1
|
+
# +manage_experiment
|
|
2
|
+
|
|
3
|
+
Manage experiment status.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
ae-cli experiment +manage_experiment --project_id <id> --exp_id <expId> --target_status <status> [--remark <text>]
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Flags:
|
|
10
|
+
- `--project_id`, `-p`: Project ID.
|
|
11
|
+
- `--exp_id`: Experiment ID.
|
|
12
|
+
- `--target_status`: One of `draft`, `testing`, `pending`, `running`, `paused`, `ended`, `archive`.
|
|
13
|
+
- `--remark`: Optional operation remark.
|
|
14
|
+
|
|
15
|
+
When target status is `pending`, `testing`, or `running`, the MCP server performs a ready check first.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# +query_experiment_metric_trend
|
|
2
|
+
|
|
3
|
+
Query experiment metric trend report.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
ae-cli experiment +query_experiment_metric_trend --project_id <id> --exp_id <expId> --metric_id <metricId> --start_time 2026-07-01 --end_time 2026-07-07 [--request_id <id>] [--force_refresh true]
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Flags:
|
|
10
|
+
- `--project_id`, `-p`: Project ID.
|
|
11
|
+
- `--exp_id`: Experiment ID.
|
|
12
|
+
- `--metric_id`: Metric ID.
|
|
13
|
+
- `--start_time`: Start date, `yyyy-MM-dd`.
|
|
14
|
+
- `--end_time`: End date, `yyyy-MM-dd`.
|
|
15
|
+
- `--request_id`: Optional request ID for query tracking.
|
|
16
|
+
- `--force_refresh`: Optional boolean for report refresh.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# +query_experiment_report_summary
|
|
2
|
+
|
|
3
|
+
Query experiment report summary.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
ae-cli experiment +query_experiment_report_summary --project_id <id> --exp_id <expId> [--force_refresh true]
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Flags:
|
|
10
|
+
- `--project_id`, `-p`: Project ID.
|
|
11
|
+
- `--exp_id`: Experiment ID.
|
|
12
|
+
- `--force_refresh`: Optional boolean for report refresh.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# +query_experiment_sample_size_report
|
|
2
|
+
|
|
3
|
+
Query experiment sample-size report.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
ae-cli experiment +query_experiment_sample_size_report --project_id <id> --exp_id <expId> --start_time 2026-07-01 --end_time 2026-07-07 [--request_id <id>] [--force_refresh true] [--by_hour true]
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Flags:
|
|
10
|
+
- `--project_id`, `-p`: Project ID.
|
|
11
|
+
- `--exp_id`: Experiment ID.
|
|
12
|
+
- `--start_time`: Start date, `yyyy-MM-dd`.
|
|
13
|
+
- `--end_time`: End date, `yyyy-MM-dd`.
|
|
14
|
+
- `--request_id`: Optional request ID for query tracking.
|
|
15
|
+
- `--force_refresh`: Optional boolean for report refresh.
|
|
16
|
+
- `--by_hour`: Optional boolean to show results by hour.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# +query_feature_detail
|
|
2
|
+
|
|
3
|
+
Query Feature detail by key and optional version.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
ae-cli experiment +query_feature_detail --project_id <id> --feature_key <key> [--version <versionId>]
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Flags:
|
|
10
|
+
- `--project_id`, `-p`: Project ID.
|
|
11
|
+
- `--feature_key`: Feature key.
|
|
12
|
+
- `--version`: Optional Feature version ID.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# +save_experiment
|
|
2
|
+
|
|
3
|
+
Create or update an experiment draft.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
ae-cli experiment +save_experiment --project_id <id> --req '<json>'
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Flags:
|
|
10
|
+
- `--project_id`, `-p`: Project ID.
|
|
11
|
+
- `--req`: Experiment save request JSON object.
|
|
12
|
+
|
|
13
|
+
Notes:
|
|
14
|
+
- Blank `req.expId` creates a draft and returns an experiment ID.
|
|
15
|
+
- Non-blank `req.expId` patches the existing draft.
|
|
16
|
+
- `req.projectId` is overwritten from `--project_id`.
|
|
17
|
+
- Use `+check_experiment_ready` before moving to `pending`, `testing`, or `running`.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# +save_feature
|
|
2
|
+
|
|
3
|
+
Create or update a Feature.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
ae-cli experiment +save_feature --project_id <id> --req '<json>'
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Flags:
|
|
10
|
+
- `--project_id`, `-p`: Project ID.
|
|
11
|
+
- `--req`: Feature save request JSON object.
|
|
12
|
+
|
|
13
|
+
Create mode requires `featureKey`, `type`, and `targetPlatform`. Modify mode uses `id` or `update=true`.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# +save_metric
|
|
2
|
+
|
|
3
|
+
Create or update a metric.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
ae-cli experiment +save_metric --project_id <id> --req '<json>'
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Flags:
|
|
10
|
+
- `--project_id`, `-p`: Project ID.
|
|
11
|
+
- `--req`: Metric save request JSON object.
|
|
12
|
+
|
|
13
|
+
Create mode requires metric identifiers and metric configuration. Modify mode uses `update=true`.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# +save_submit_experiment
|
|
2
|
+
|
|
3
|
+
Create or update a complete experiment and submit it in one call.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
ae-cli experiment +save_submit_experiment --project_id <id> --req '<json>'
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Flags:
|
|
10
|
+
- `--project_id`, `-p`: Project ID.
|
|
11
|
+
- `--req`: Save-and-submit request JSON object.
|
|
12
|
+
|
|
13
|
+
Prefer `+save_experiment` for progressive draft construction.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# +save_traffic_layer
|
|
2
|
+
|
|
3
|
+
Create or update a traffic layer.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
ae-cli experiment +save_traffic_layer --project_id <id> --req '<json>'
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Flags:
|
|
10
|
+
- `--project_id`, `-p`: Project ID.
|
|
11
|
+
- `--req`: Traffic layer save request JSON object.
|
|
12
|
+
|
|
13
|
+
Create mode requires `bucketId`, `layerName`, and `layerType` in the request. Modify mode requires `layerId`.
|
|
@@ -9,7 +9,8 @@ description: "Interactive generation of an AE tracking plan and upload. Trigger
|
|
|
9
9
|
> English input → English reply; Chinese input → Chinese reply; Japanese input → Japanese reply.
|
|
10
10
|
> If uncertain, default to English.
|
|
11
11
|
> This applies to all output: section titles, phase names, template prompts, example text, option lists, etc.
|
|
12
|
-
> **⚠️ CRITICAL: Template localization is CLI-owned. Do NOT manually translate imported template content with the model. Use the `src/tracking`
|
|
12
|
+
> **⚠️ CRITICAL: Template localization is CLI-owned. Do NOT manually translate imported template content with the model. Use the `src/tracking/i18n` module as the source of truth by setting `AE_LANG=<user_lang>`, writing `draft.meta.lang`, and regenerating through `ae-cli tracking code import-template` / `ae-cli tracking plan draft`.**
|
|
13
|
+
> **Before changing any template-owned localized label, first look up the corresponding translation in `src/tracking/i18n` (for example `resources/xlsx/sheets.ts`, `resources/xlsx/headers.ts`, `resources/xlsx/types.ts`, and `resources/cli/*.json`). If no matching translation exists there, preserve the imported text and ask before rewriting business semantics.**
|
|
13
14
|
> Do NOT copy Chinese text verbatim from this document into English/Japanese replies unless it is an identifier, template name needed for CLI import, or original source material quoted for traceability.
|
|
14
15
|
|
|
15
16
|
## Terminology Glossary
|
|
@@ -72,6 +73,7 @@ Phase 0 → 1 → 2 → 3 → 4, do not skip steps.
|
|
|
72
73
|
> property `display_name`, property `desc`, etc.) should be generated in the **user's input language**.
|
|
73
74
|
> For imported templates, do NOT translate those fields manually. Template sheet names, headers, property type display values,
|
|
74
75
|
> CLI messages, and auto-track/i18n-owned labels must come from `src/tracking/i18n` via `AE_LANG=<user_lang>` and `draft.meta.lang`.
|
|
76
|
+
> When a localized label is needed, inspect `src/tracking/i18n` and use the existing resource key/value; do not invent translations from the model.
|
|
75
77
|
> If template business text needs localization and the CLI/i18n resources do not provide it, preserve the imported text and ask the user before rewriting business semantics.
|
|
76
78
|
> Only identifier fields like `event_name`, `prop_name` remain in English snake_case (canonical format).
|
|
77
79
|
> This skill only cares about command behavior, not internal implementation.
|
|
@@ -498,8 +500,9 @@ Priority from low to high: **template → codebase → prd → chat → autotrac
|
|
|
498
500
|
- Import command: `AE_LANG=<user_lang> ae-cli tracking code import-template --template-name "<template name>" --out .ae-cli/draft.json`
|
|
499
501
|
- ⚠️ **Must validate immediately after template import** (see Phase 1.6); template content may not be fully correct
|
|
500
502
|
- ⚠️ **Do not manually translate template content after import**: Do NOT read draft.json and model-translate `display_name`, `event_desc`, `event_tag`, or property `display_name`/`desc`. Keep imported business content as produced by the CLI/template reader unless the user explicitly asks for semantic rewriting.
|
|
501
|
-
- ⚠️ **Use `src/tracking`
|
|
502
|
-
- ⚠️ **
|
|
503
|
+
- ⚠️ **Use `src/tracking/i18n` for localization owned by the CLI**: `AE_LANG=<user_lang>` + `draft.meta.lang` control CLI messages, xlsx sheet names, xlsx headers, property type display values, and auto-track/i18n-owned labels. If these are wrong, inspect the existing translations under `src/tracking/i18n`, then regenerate with the intended locale instead of editing labels by hand.
|
|
504
|
+
- ⚠️ **No model-invented translations for template labels**: When replacing or explaining a localized template-owned label, use the exact value from `src/tracking/i18n` resources. If no corresponding resource exists, preserve the template text and ask the user before changing semantics.
|
|
505
|
+
- ⚠️ **event_tag is not free-form model translation**: Do not manually map `业务事件`/`系统事件` to another language. Preserve template tags, or rely on `src/tracking/i18n` and autotrack generation for system labels when the CLI owns them.
|
|
503
506
|
- **codebase**: Scan project source directory, extract events/properties from business logic; **same-name events merge prop_names without overwriting existing fields**; new items `source: "codebase"`
|
|
504
507
|
- **prd**: Read all user-provided product documents (md / pdf / docx / URL / images), extract events and properties from each file; **same-name events merge prop_names without overwriting existing fields**; image files analyzed via multimodal interpretation of UI elements and interaction flows; all new items `source: "prd"`
|
|
505
508
|
- **prd path is a folder**: Recursively scan all files in the directory:
|
|
@@ -673,7 +676,7 @@ Run the following command to dynamically discover available templates:
|
|
|
673
676
|
AE_LANG=<user_lang> ae-cli tracking plan list-templates --json
|
|
674
677
|
```
|
|
675
678
|
|
|
676
|
-
**Language rules**: Template names and template business content must not be model-translated. Use localized names only when they are returned by the CLI
|
|
679
|
+
**Language rules**: Template names and template business content must not be model-translated. Use localized names only when they are returned by the CLI or found in `src/tracking/i18n` resources. If `list-templates --json` only returns the original template `name`, display that name as-is and keep it unchanged for import. Before presenting or modifying any localized template-owned label, look it up in `src/tracking/i18n`; do not invent a translation.
|
|
677
680
|
|
|
678
681
|
Built-in templates are resolved by ae-cli from the ae-cli package root. User templates are resolved from the ae-cli user template directory. Do **not** manually construct `./tracking-plan-template/...` paths from the user's current workspace.
|
|
679
682
|
|
|
@@ -1116,7 +1119,7 @@ AE_LANG=<user_lang> ae-cli tracking plan upload --project <projectId> --xlsx .ae
|
|
|
1116
1119
|
- **With `--replace`**: Delete existing project plan first then upload (when user chooses "Replace", or severe conflict switches to replace)
|
|
1117
1120
|
- **Without `--replace`**: AE merge-by-name merge (no conflicts, or advisory only with user confirmation to append)
|
|
1118
1121
|
|
|
1119
|
-
Upload
|
|
1122
|
+
Upload commands MUST pass `--lang <user_lang>` explicitly. `--lang` must match the generated xlsx language and `draft.meta.lang`; `AE_LANG` is only used for CLI messages and xlsx regeneration context. Do not call AE user language config APIs and do not use `--switch-lang`. If the xlsx language is wrong, regenerate the xlsx with the intended language before uploading:
|
|
1120
1123
|
```bash
|
|
1121
1124
|
AE_LANG=<user_lang> ae-cli tracking plan draft --in .ae-cli/draft.json --out .ae-cli/draft.xlsx
|
|
1122
1125
|
AE_LANG=<user_lang> ae-cli tracking plan upload --project <projectId> --xlsx .ae-cli/draft.xlsx --draft .ae-cli/draft.json --lang <user_lang> [--replace]
|
|
@@ -99,7 +99,7 @@ Upload is a two-step capability-gateway flow:
|
|
|
99
99
|
{ "project_id": 1603, "input_file_id": "...", "lang": "zh" }
|
|
100
100
|
```
|
|
101
101
|
|
|
102
|
-
- `lang`
|
|
102
|
+
- Agents MUST pass `lang` with the generated xlsx language (`zh` / `en` / `ja` / `ko`) so the backend resolves localized sheet names and headers consistently.
|
|
103
103
|
- Response: `{ return_code: 0, return_message: "success" }` on success.
|
|
104
104
|
|
|
105
105
|
**合并语义**:对事件走 **merge-by-name**(同名不覆盖、新名新增)。若要完全替换,
|
package/skills/ae-kb/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ae-kb
|
|
3
3
|
version: 1.0.0
|
|
4
|
-
description: "AE/TE knowledge base CLI manual for creating, querying, LLM-powered ask, deterministic index/grep/read retrieval, checking status, uploading, compiling, schema generation, URL sources, source deletion, and knowledge base deletion. Use when the user asks to manage TE/AE/ThinkingEngine knowledge bases, upload documents or URLs to a knowledge base, query knowledge, ask knowledge bases with an LLM, inspect knowledge base indexes, search knowledge base pages, read a specific knowledge base page, check knowledge base status, generate schemas, compile knowledge, remove sources, or delete a knowledge base. Must use ae-cli kb commands and must not guess knowledge base names, scopes, page paths, source display names, JSON payload shapes, or URL formats."
|
|
4
|
+
description: "AE/TE knowledge base CLI manual for creating, querying, LLM-powered ask, listing accessible knowledge bases, deterministic index/grep/read retrieval, checking status, uploading, compiling, schema generation, URL sources, source deletion, and knowledge base deletion. Use when the user asks to manage TE/AE/ThinkingEngine knowledge bases, upload documents or URLs to a knowledge base, query knowledge, ask knowledge bases with an LLM, list accessible knowledge bases, inspect knowledge base indexes, search knowledge base pages, read a specific knowledge base page, check knowledge base status, generate schemas, compile knowledge, remove sources, or delete a knowledge base. Must use ae-cli kb commands and must not guess knowledge base names, scopes, page paths, source display names, JSON payload shapes, or URL formats."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# ae-kb
|
|
@@ -14,8 +14,8 @@ ae-cli kb +<command> [options]
|
|
|
14
14
|
|
|
15
15
|
## Global Rules
|
|
16
16
|
|
|
17
|
-
- Use this skill for TE/AE knowledge base tasks: create, query, ask with LLM, inspect indexes, grep pages, read pages, check status, upload sources, add URL sources, generate schema, compile, remove source files, and delete knowledge bases.
|
|
18
|
-
- Read
|
|
17
|
+
- Use this skill for TE/AE knowledge base tasks: create, query, ask with LLM, list accessible knowledge bases, inspect indexes, grep pages, read pages, check status, upload sources, add URL sources, generate schema, compile, remove source files, and delete knowledge bases.
|
|
18
|
+
- Read operations can run directly after required inputs are known. Write operations require explicit user intent and normally keep the confirmation prompt unless the user asks to bypass it.
|
|
19
19
|
- Prefer `--dry-run` before destructive or broad writes when the user has not already validated the target.
|
|
20
20
|
- Do not invent knowledge base names, scopes, source display names, or JSON payloads. Ask the user or query known context when values are missing.
|
|
21
21
|
- JSON flags must be valid JSON strings, usually wrapped in single quotes in shell commands.
|
|
@@ -29,6 +29,7 @@ ae-cli kb +<command> [options]
|
|
|
29
29
|
|---|---:|---|
|
|
30
30
|
| `+query` | read | Query one or more knowledge bases with a natural-language question. |
|
|
31
31
|
| `+ask` | read | LLM-powered Q&A over knowledge bases. Consumes platform tokens. |
|
|
32
|
+
| `+list` | read | List accessible knowledge bases filtered by buildStatus (default: compiled). |
|
|
32
33
|
| `+index` | read | List accessible knowledge bases and their `index.md` navigation maps. |
|
|
33
34
|
| `+grep` | read | Keyword-search knowledge base pages and return matched lines with context. |
|
|
34
35
|
| `+read` | read | Read a full knowledge base page or a line window. |
|
|
@@ -145,21 +146,35 @@ ae-cli kb +ask \
|
|
|
145
146
|
--question "How do we troubleshoot payment alerts?" \
|
|
146
147
|
--sources '[{"scope":"company","name":"engineering-handbook"}]' \
|
|
147
148
|
--model-id claude-sonnet-4-6 \
|
|
148
|
-
--max-turns
|
|
149
|
+
--max-turns 50 \
|
|
149
150
|
--locale zh
|
|
150
151
|
```
|
|
151
152
|
|
|
152
153
|
- `--question`, alias `-q`: required natural-language question (1-2000 characters).
|
|
153
154
|
- `--sources`: optional JSON array of knowledge base refs. Omit to search all accessible knowledge bases.
|
|
154
155
|
- `--model-id`: optional LLM model ID. Omit to use the platform default.
|
|
155
|
-
- `--max-turns`: optional agent turn limit (1-
|
|
156
|
+
- `--max-turns`: optional agent turn limit (1-100, server default 50).
|
|
156
157
|
- `--locale`: optional locale: `zh`, `en`, `ja`, or `ko`.
|
|
157
158
|
|
|
159
|
+
### List Accessible Knowledge Bases
|
|
160
|
+
|
|
161
|
+
Use `+list` when you only need accessible knowledge base metadata without loading `index.md` navigation maps. By default it returns knowledge bases with `buildStatus: compiled`:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
ae-cli kb +list
|
|
165
|
+
ae-cli kb +list --locale zh
|
|
166
|
+
ae-cli kb +list --build-status compiled
|
|
167
|
+
```
|
|
168
|
+
|
|
158
169
|
### Explore Knowledge Base Pages
|
|
159
170
|
|
|
160
171
|
Use the deterministic retrieval primitives when an agent needs to explore knowledge base content like a code repository. These endpoints do not call an LLM on the server side.
|
|
161
172
|
|
|
162
|
-
Start with `+index` to
|
|
173
|
+
Start with `+list` or `+index` to discover accessible knowledge bases. Use `+index` when you also need navigation maps:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
ae-cli kb +list
|
|
177
|
+
```
|
|
163
178
|
|
|
164
179
|
```bash
|
|
165
180
|
ae-cli kb +index \
|
|
@@ -187,6 +202,7 @@ ae-cli kb +read \
|
|
|
187
202
|
|
|
188
203
|
Retrieval rules:
|
|
189
204
|
|
|
205
|
+
- `+list` accepts optional `--build-status` (default `compiled`) and `--locale`. Returns accessible knowledge base metadata including `buildStatus`, without `index.md` navigation maps.
|
|
190
206
|
- `+index` accepts optional `--sources` and `--locale`; omit `--sources` to list all accessible knowledge bases.
|
|
191
207
|
- `+grep` requires `--query` / `-q`; optional `--sources`, `--top-k` (1-50, default 10), and `--locale`.
|
|
192
208
|
- `+read` requires `--source` pointing to exactly one knowledge base and `--path` relative to the knowledge base root; optional `--offset`, `--limit` (1-10000), and `--locale`.
|
|
@@ -226,16 +242,26 @@ ae-cli kb +query --query "<question>" --sources '[{"scope":"company","name":"kb-
|
|
|
226
242
|
### `+ask`
|
|
227
243
|
|
|
228
244
|
```bash
|
|
229
|
-
ae-cli kb +ask --question "<question>" [--sources '[{"scope":"company","name":"kb-name"}]'] [--model-id claude-sonnet-4-6] [--max-turns
|
|
245
|
+
ae-cli kb +ask --question "<question>" [--sources '[{"scope":"company","name":"kb-name"}]'] [--model-id claude-sonnet-4-6] [--max-turns 50] [--locale zh|en|ja|ko]
|
|
230
246
|
```
|
|
231
247
|
|
|
232
248
|
- `--question`, alias `-q`: required natural-language question (1-2000 characters).
|
|
233
249
|
- `--sources`: optional JSON array of knowledge base refs. Omit to search all accessible knowledge bases.
|
|
234
250
|
- `--model-id`: optional LLM model ID. Omit to use the platform default.
|
|
235
|
-
- `--max-turns`: optional agent turn limit
|
|
251
|
+
- `--max-turns`: optional agent turn limit (1-100, server default 50).
|
|
236
252
|
- `--locale`: optional locale: `zh`, `en`, `ja`, or `ko`.
|
|
237
253
|
- **Token cost**: this command invokes an LLM on the server and consumes platform tokens. Prefer `+index` -> `+grep` -> `+read` for token-free deterministic retrieval.
|
|
238
254
|
|
|
255
|
+
### `+list`
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
ae-cli kb +list [--build-status compiled] [--locale zh|en|ja|ko]
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
- `--build-status`: optional build status filter (default: `compiled`).
|
|
262
|
+
- `--locale`: optional locale: `zh`, `en`, `ja`, or `ko`.
|
|
263
|
+
- Response items include `buildStatus`.
|
|
264
|
+
|
|
239
265
|
### `+index`
|
|
240
266
|
|
|
241
267
|
```bash
|
|
@@ -87,5 +87,5 @@ ae-cli analysis input-file purpose list --project-id 1
|
|
|
87
87
|
|
|
88
88
|
## Related Skills
|
|
89
89
|
|
|
90
|
-
- **`ae-analysis`**: `
|
|
90
|
+
- **`ae-analysis`**: `analysis-meta event list` / `analysis-meta property list` to discover names before detail get.
|
|
91
91
|
- **Dev workflow**: `.cursor/skills/te-cli-capability-gateway` — inspect gateway schema when adding new metadata capabilities.
|
|
@@ -35,18 +35,18 @@ Gateway request body uses snake_case `input`:
|
|
|
35
35
|
|
|
36
36
|
## Decision Rules
|
|
37
37
|
|
|
38
|
-
- Prefer **`metadata event get`** over `
|
|
39
|
-
- Use `ae-analysis` → `
|
|
38
|
+
- Prefer **`metadata event get`** over `analysis-meta event list` when you need **full detail + virtual definition**, not browsing or fuzzy search.
|
|
39
|
+
- Use `ae-analysis` → `analysis-meta event list` first when the event name is unknown or you need keyword search / pagination.
|
|
40
40
|
- If the gateway returns `EVENT_NOT_FOUND`, verify `event_name` spelling and `project_id`; do not invent names.
|
|
41
41
|
- Auth: `cli-token` header (ae-cli injects automatically in sandbox; local CLI uses `getCliToken()`).
|
|
42
42
|
|
|
43
43
|
## Recommended Chaining
|
|
44
44
|
|
|
45
|
-
- `ae-analysis`: `
|
|
45
|
+
- `ae-analysis`: `analysis-meta event list` (discover name) → `metadata event get` (detail)
|
|
46
46
|
- `metadata event get` → `metadata property get` (inspect properties listed in response)
|
|
47
47
|
|
|
48
48
|
## Next Steps After Failure
|
|
49
49
|
|
|
50
|
-
- Empty or not found: confirm project id and exact `event_name` from
|
|
50
|
+
- Empty or not found: confirm project id and exact `event_name` from `analysis-meta event list`.
|
|
51
51
|
- Permission error: confirm metadata view permission in the project.
|
|
52
52
|
- Gateway unavailable: confirm nginx routes `/api/cli/metadata/` and backend capability catalog is deployed.
|
|
@@ -22,6 +22,6 @@ ae-cli metadata property bind-existing-dimension-table --project-id <project_id>
|
|
|
22
22
|
|
|
23
23
|
## Decision Rules
|
|
24
24
|
|
|
25
|
-
- Confirm the property with `metadata property get` or `
|
|
25
|
+
- Confirm the property with `metadata property get` or `analysis-meta property list`.
|
|
26
26
|
- Confirm the data table with `metadata data-table get`.
|
|
27
27
|
- This is an ordinary `write` command and does not require CLI confirmation.
|
|
@@ -37,18 +37,18 @@ Gateway request body uses snake_case `input`:
|
|
|
37
37
|
|
|
38
38
|
## Decision Rules
|
|
39
39
|
|
|
40
|
-
- Prefer **`metadata property get`** over `
|
|
41
|
-
- Use `ae-analysis` → `
|
|
40
|
+
- Prefer **`metadata property get`** over `analysis-meta property list` when you need **full detail + virtual definition**, not browsing or fuzzy search.
|
|
41
|
+
- Use `ae-analysis` → `analysis-meta property list` first when the property name is unknown or you need keyword search / pagination.
|
|
42
42
|
- `property_scope` must be exactly `event` or `user` (backend accepts case-insensitive).
|
|
43
43
|
- Virtual / dict / exchange-rate properties are addressed by `property-name` only; do not pass legacy `prop_name`.
|
|
44
44
|
- Event-scoped names like `#account_id` must be passed literally (quote in shell when `#` is present).
|
|
45
45
|
|
|
46
46
|
## Recommended Chaining
|
|
47
47
|
|
|
48
|
-
- `ae-analysis`: `
|
|
48
|
+
- `ae-analysis`: `analysis-meta property list` (discover name + scope) → `metadata property get` (detail)
|
|
49
49
|
- `metadata event get` → `metadata property get` (follow properties from event detail)
|
|
50
50
|
|
|
51
51
|
## Next Steps After Failure
|
|
52
52
|
|
|
53
|
-
- Not found: confirm scope (`event` vs `user`) and exact name from
|
|
53
|
+
- Not found: confirm scope (`event` vs `user`) and exact name from `analysis-meta property list`.
|
|
54
54
|
- Permission error: confirm metadata view permission in the project.
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
callMcpTool,
|
|
3
|
-
parseMcpResult,
|
|
4
|
-
resolveMcpUrl
|
|
5
|
-
} from "./chunk-6LEYLOV3.js";
|
|
6
|
-
import "./chunk-KGJQCYVC.js";
|
|
7
|
-
import "./chunk-NOO24N7W.js";
|
|
8
|
-
import "./chunk-2NDGFQHW.js";
|
|
9
|
-
import "./chunk-AJTH7LT3.js";
|
|
10
|
-
import "./chunk-YCLVYFK7.js";
|
|
11
|
-
|
|
12
|
-
// src/commands/te-common/shared.ts
|
|
13
|
-
function createMcpCommand(config) {
|
|
14
|
-
const toolName = config.command.slice(1);
|
|
15
|
-
const mcpService = config.mcpService || "analysis";
|
|
16
|
-
return {
|
|
17
|
-
service: "analysis_common",
|
|
18
|
-
command: config.command,
|
|
19
|
-
description: config.description,
|
|
20
|
-
flags: config.flags,
|
|
21
|
-
risk: config.risk,
|
|
22
|
-
dryRun: (ctx) => ({
|
|
23
|
-
method: "tools/call",
|
|
24
|
-
url: resolveMcpUrl(ctx.mcpUrl(), ctx.host(), mcpService),
|
|
25
|
-
body: {
|
|
26
|
-
name: toolName,
|
|
27
|
-
arguments: config.buildArgs(ctx)
|
|
28
|
-
}
|
|
29
|
-
}),
|
|
30
|
-
execute: async (ctx) => {
|
|
31
|
-
const url = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), mcpService);
|
|
32
|
-
const result = await callMcpTool(url, toolName, config.buildArgs(ctx), ctx.host());
|
|
33
|
-
return parseMcpResult(result);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// src/commands/te-common/project/list-projects.ts
|
|
39
|
-
var listProjects = createMcpCommand({
|
|
40
|
-
command: "+list_projects",
|
|
41
|
-
description: "List all projects accessible to the current user. No parameters are required. Returns project IDs, names, company IDs, project types, remarks, app IDs, and the user's current role in each project.",
|
|
42
|
-
flags: [],
|
|
43
|
-
risk: "read",
|
|
44
|
-
buildArgs: () => ({})
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
// src/commands/te-common/project/index.ts
|
|
48
|
-
var commands = [
|
|
49
|
-
listProjects
|
|
50
|
-
];
|
|
51
|
-
var project_default = commands;
|
|
52
|
-
|
|
53
|
-
// src/commands/te-common/resource/get-resource-url.ts
|
|
54
|
-
function normalizeResourceUrlFields(node, host) {
|
|
55
|
-
if (!node || typeof node !== "object") return;
|
|
56
|
-
const obj = node;
|
|
57
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
58
|
-
if (typeof value === "string") {
|
|
59
|
-
if (/url|link/i.test(key) || value.includes("/#/")) {
|
|
60
|
-
obj[key] = absolutizeRelativeUrls(value, host);
|
|
61
|
-
}
|
|
62
|
-
} else if (value && typeof value === "object") {
|
|
63
|
-
normalizeResourceUrlFields(value, host);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
function absolutizeRelativeUrls(s, host) {
|
|
68
|
-
const base = host.replace(/\/+$/, "");
|
|
69
|
-
s = s.replace(/\]\((\/(?!\/)[^)]*)\)/g, `](${base}$1)`);
|
|
70
|
-
if (/^\/(?!\/)/.test(s)) s = base + s;
|
|
71
|
-
return s;
|
|
72
|
-
}
|
|
73
|
-
var getResourceUrl = {
|
|
74
|
-
service: "analysis_common",
|
|
75
|
-
command: "+get_resource_url",
|
|
76
|
-
description: "Generate a clickable Markdown link for a resource by ID and type (absolute URL)",
|
|
77
|
-
flags: [
|
|
78
|
-
{ name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
|
|
79
|
-
{ name: "resource_type", type: "string", required: true, desc: "Resource type: dashboard/report/metric/alert/tag/cluster/data_table/super_event/super_prop_user/super_prop_event/virtual_event/user_virtual_prop/event_virtual_prop" },
|
|
80
|
-
{ name: "resource_id", type: "number", required: true, desc: "Numeric resource ID" }
|
|
81
|
-
],
|
|
82
|
-
risk: "read",
|
|
83
|
-
dryRun: (ctx) => ({
|
|
84
|
-
method: "tools/call",
|
|
85
|
-
url: resolveMcpUrl(ctx.mcpUrl(), ctx.host(), "analysis"),
|
|
86
|
-
body: {
|
|
87
|
-
name: "get_resource_url",
|
|
88
|
-
arguments: {
|
|
89
|
-
projectId: ctx.num("project_id"),
|
|
90
|
-
resourceType: ctx.str("resource_type"),
|
|
91
|
-
resourceId: ctx.num("resource_id")
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}),
|
|
95
|
-
execute: async (ctx) => {
|
|
96
|
-
const url = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), "analysis");
|
|
97
|
-
const result = await callMcpTool(
|
|
98
|
-
url,
|
|
99
|
-
"get_resource_url",
|
|
100
|
-
{
|
|
101
|
-
projectId: ctx.num("project_id"),
|
|
102
|
-
resourceType: ctx.str("resource_type"),
|
|
103
|
-
resourceId: ctx.num("resource_id")
|
|
104
|
-
},
|
|
105
|
-
ctx.host()
|
|
106
|
-
);
|
|
107
|
-
const parsed = parseMcpResult(result);
|
|
108
|
-
if (typeof parsed !== "object" || parsed === null) {
|
|
109
|
-
return parsed;
|
|
110
|
-
}
|
|
111
|
-
normalizeResourceUrlFields(parsed, ctx.host());
|
|
112
|
-
return parsed;
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
// src/commands/te-common/resource/index.ts
|
|
117
|
-
var commands2 = [
|
|
118
|
-
getResourceUrl
|
|
119
|
-
];
|
|
120
|
-
var resource_default = commands2;
|
|
121
|
-
|
|
122
|
-
// src/commands/te-common/index.ts
|
|
123
|
-
var commands3 = [
|
|
124
|
-
...project_default,
|
|
125
|
-
...resource_default
|
|
126
|
-
];
|
|
127
|
-
var te_common_default = commands3;
|
|
128
|
-
export {
|
|
129
|
-
te_common_default as default
|
|
130
|
-
};
|