@thinkingai/ae-cli 6.1.19 → 6.1.21
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 +96 -38
- package/README.zh.md +96 -38
- package/dist/{auth-QPEVVBKT.js → auth-XZNXFRJS.js} +236 -127
- package/dist/{capability-ASI62I4A.js → capability-FYTU3X6L.js} +80 -37
- package/dist/{chunk-QL6R6TSK.js → chunk-4NRCTUZJ.js} +27045 -477
- package/dist/{chunk-JYMGHGCE.js → chunk-57RRFUEZ.js} +42 -15
- package/dist/chunk-6ZIQV5GW.js +26 -0
- package/dist/{chunk-KZ6ZHF5J.js → chunk-7FTTULED.js} +14 -14
- package/dist/chunk-7XGFSUOM.js +623 -0
- package/dist/chunk-CCS66K4K.js +155 -0
- package/dist/{chunk-B5HMQAOM.js → chunk-DVMLWQD4.js} +8 -186
- package/dist/{chunk-KEWVSO64.js → chunk-DX5CDO34.js} +28 -18
- package/dist/chunk-EQ255HKO.js +38248 -0
- package/dist/{chunk-6QK7SYYY.js → chunk-HBGADCKA.js} +29 -37
- package/dist/{chunk-GJXRF7Y6.js → chunk-HFGZGYCG.js} +54 -81
- package/dist/chunk-JOCDD4ON.js +15 -0
- package/dist/{chunk-TKHSULJT.js → chunk-KPQY44JQ.js} +6 -0
- package/dist/{chunk-FR2EDAQM.js → chunk-MAPZ7VB6.js} +90 -2
- package/dist/chunk-V2NUHPXF.js +196 -0
- package/dist/{chunk-S5PONFBM.js → chunk-VYXXOKYS.js} +9 -9
- package/dist/{community-report-client-6OL6GBQW.js → community-report-client-CU22W53K.js} +2 -4
- package/dist/{config-XNMACCKX.js → config-XO3LI3SA.js} +8 -9
- package/dist/context-IFJI3LIT.js +46 -0
- package/dist/{data-integration-4NZGZ45E.js → data-integration-HNGUKFIC.js} +55 -44
- package/dist/index.js +122 -112
- package/dist/{local-data-upload-client-EFHDLXFG.js → local-data-upload-client-GTRIT64F.js} +4 -5
- package/dist/{memory-HBJQ2GC5.js → memory-QGPSNCQS.js} +4 -6
- package/dist/{metadata-62EWBEIG.js → metadata-DI5BMYFU.js} +8 -10
- package/dist/{model-BHLJ2QMT.js → model-RNPQXIBI.js} +4 -6
- package/dist/{personal-semantic-preference-JBVMAI7L.js → personal-semantic-preference-5C3WUXFI.js} +11 -10
- package/dist/{project-semantic-BQ4MPUS5.js → project-semantic-3LF6Q6JZ.js} +29 -25
- package/dist/{sync-MUWPRM5I.js → sync-O45NXEQY.js} +7 -8
- package/dist/{te-agent-WQZTMEK4.js → te-agent-K5MSPNHJ.js} +393 -90
- package/dist/{te-analysis-MNCG65LU.js → te-analysis-AISWCOOZ.js} +1175 -377
- package/dist/{te-community-BNE6KREL.js → te-community-4OYU3BDA.js} +10 -33
- package/dist/{te-dataops-TXLKM2W6.js → te-dataops-NFIPB6FX.js} +19 -20
- package/dist/{te-engage-TPKLRVTL.js → te-engage-BAM3GBFX.js} +13 -15
- package/dist/{te-experiment-6BYKTCY7.js → te-experiment-GUTZXZ5Z.js} +132 -16
- package/dist/te-kb-3TS73NO6.js +1992 -0
- package/dist/{te-system-44LZJDTQ.js → te-system-STMHLS5J.js} +12 -9
- package/dist/{te-team-XMP47YXE.js → te-team-3I5AOX3N.js} +6 -8
- package/dist/{update-UODFOZ4P.js → update-RZXLPCRH.js} +7 -8
- package/package.json +29 -19
- package/skills/ae-agent/SKILL.md +30 -13
- package/skills/ae-agent/references/agent-distribution.md +94 -0
- package/skills/ae-agent/references/approval-request.md +4 -0
- package/skills/ae-agent/references/command_index.md +9 -2
- package/skills/ae-agent/references/create-automation.md +20 -2
- package/skills/ae-agent/references/get-agent-context.md +70 -0
- package/skills/ae-agent/references/list-automations.md +18 -3
- package/skills/ae-agent/references/list-mcp-credentials.md +1 -1
- package/skills/ae-agent/references/mcp-token.md +3 -3
- package/skills/ae-agent/references/set-mcp-credential.md +0 -1
- package/skills/ae-agent/references/update-automation.md +18 -0
- package/skills/ae-analysis/SKILL.md +101 -79
- package/skills/ae-analysis/references/adhoc_export.md +11 -18
- package/skills/ae-analysis/references/adhoc_run.md +17 -7
- package/skills/ae-analysis/references/agent_review_detail.md +11 -0
- package/skills/ae-analysis/references/agent_review_evidence.md +46 -0
- package/skills/ae-analysis/references/agent_review_list.md +9 -0
- package/skills/ae-analysis/references/agent_review_preflight.md +96 -0
- package/skills/ae-analysis/references/agent_review_priorities_comparisons.md +76 -0
- package/skills/ae-analysis/references/agent_review_records.md +9 -0
- package/skills/ae-analysis/references/agent_review_retry.md +12 -0
- package/skills/ae-analysis/references/agent_review_review.md +16 -0
- package/skills/ae-analysis/references/agent_review_submit_to_page.md +184 -0
- package/skills/ae-analysis/references/ai_models/attribution.md +29 -0
- package/skills/ae-analysis/references/ai_models/distribution.md +40 -0
- package/skills/ae-analysis/references/ai_models/event.md +108 -0
- package/skills/ae-analysis/references/ai_models/funnel.md +46 -0
- package/skills/ae-analysis/references/ai_models/heat_map.md +26 -0
- package/skills/ae-analysis/references/ai_models/interval.md +20 -0
- package/skills/ae-analysis/references/ai_models/path.md +38 -0
- package/skills/ae-analysis/references/ai_models/prop_analysis.md +39 -0
- package/skills/ae-analysis/references/ai_models/rank_list.md +25 -0
- package/skills/ae-analysis/references/ai_models/retention.md +70 -0
- package/skills/ae-analysis/references/ai_models/revenue.md +28 -0
- package/skills/ae-analysis/references/ai_models/sql.md +74 -0
- package/skills/ae-analysis/references/ai_models/tag.md +19 -0
- package/skills/ae-analysis/references/ai_models.md +32 -453
- package/skills/ae-analysis/references/alert_create.md +7 -7
- package/skills/ae-analysis/references/alert_delete.md +4 -6
- package/skills/ae-analysis/references/alert_detail_list.md +7 -9
- package/skills/ae-analysis/references/alert_get.md +5 -7
- package/skills/ae-analysis/references/alert_job_list.md +4 -6
- package/skills/ae-analysis/references/alert_list.md +6 -8
- package/skills/ae-analysis/references/alert_notice_config_list.md +4 -6
- package/skills/ae-analysis/references/alert_start.md +5 -7
- package/skills/ae-analysis/references/alert_stop.md +5 -7
- package/skills/ae-analysis/references/alert_update.md +8 -8
- package/skills/ae-analysis/references/analysis_data_export.md +72 -0
- package/skills/ae-analysis/references/analysis_data_retrieval.md +32 -196
- package/skills/ae-analysis/references/analysis_gateway_assets.md +23 -180
- package/skills/ae-analysis/references/analysis_interpretation.md +37 -17
- package/skills/ae-analysis/references/asset_abnormal_get.md +0 -1
- package/skills/ae-analysis/references/asset_abnormal_list.md +0 -1
- package/skills/ae-analysis/references/asset_authentication_export.md +4 -0
- package/skills/ae-analysis/references/asset_authentication_list.md +7 -1
- package/skills/ae-analysis/references/asset_authentication_update.md +5 -1
- package/skills/ae-analysis/references/asset_batch_dashboard_schedule_freeze.md +8 -6
- package/skills/ae-analysis/references/asset_batch_delete.md +6 -6
- package/skills/ae-analysis/references/asset_batch_disable_auto_backup.md +4 -5
- package/skills/ae-analysis/references/asset_batch_disable_auto_update.md +5 -6
- package/skills/ae-analysis/references/asset_batch_handover.md +4 -5
- package/skills/ae-analysis/references/asset_batch_info_export.md +4 -5
- package/skills/ae-analysis/references/asset_batch_sql_export.md +5 -6
- package/skills/ae-analysis/references/asset_dependency_list.md +4 -5
- package/skills/ae-analysis/references/asset_export.md +4 -5
- package/skills/ae-analysis/references/asset_impact_list.md +5 -9
- package/skills/ae-analysis/references/asset_lineage_get.md +5 -6
- package/skills/ae-analysis/references/asset_list.md +4 -5
- package/skills/ae-analysis/references/asset_query_history_list.md +4 -8
- package/skills/ae-analysis/references/asset_recent_list.md +0 -1
- package/skills/ae-analysis/references/asset_search.md +12 -9
- package/skills/ae-analysis/references/asset_url_get.md +3 -4
- package/skills/ae-analysis/references/bi_panel_copy.md +2 -2
- package/skills/ae-analysis/references/bi_panel_page_data_export.md +4 -12
- package/skills/ae-analysis/references/bi_panel_page_data_run.md +2 -0
- package/skills/ae-analysis/references/catalog_export.md +4 -17
- package/skills/ae-analysis/references/catalog_list.md +4 -4
- package/skills/ae-analysis/references/check_delete.md +5 -7
- package/skills/ae-analysis/references/check_export.md +11 -11
- package/skills/ae-analysis/references/check_get.md +8 -10
- package/skills/ae-analysis/references/check_list.md +4 -6
- package/skills/ae-analysis/references/check_retry.md +8 -10
- package/skills/ae-analysis/references/check_run.md +2 -4
- package/skills/ae-analysis/references/command_index.md +46 -28
- package/skills/ae-analysis/references/cross_source_config.md +84 -0
- package/skills/ae-analysis/references/dashboard_report_data_export.md +5 -13
- package/skills/ae-analysis/references/dashboard_report_data_run.md +1 -1
- package/skills/ae-analysis/references/dashboard_update.md +15 -4
- package/skills/ae-analysis/references/datatable_columns_get.md +0 -1
- package/skills/ae-analysis/references/datatable_influence_list.md +0 -1
- package/skills/ae-analysis/references/datatable_version_get.md +0 -1
- package/skills/ae-analysis/references/datatable_version_list.md +0 -1
- package/skills/ae-analysis/references/debug_device_add.md +1 -2
- package/skills/ae-analysis/references/drilldown_entities_export.md +3 -3
- package/skills/ae-analysis/references/drilldown_events_export.md +3 -2
- package/skills/ae-analysis/references/drilldown_user_events_export.md +2 -2
- package/skills/ae-analysis/references/entity_detail_export.md +3 -2
- package/skills/ae-analysis/references/entity_detail_run.md +1 -0
- package/skills/ae-analysis/references/event_blacklist_add.md +5 -7
- package/skills/ae-analysis/references/event_blacklist_list.md +4 -6
- package/skills/ae-analysis/references/event_blacklist_update.md +6 -8
- package/skills/ae-analysis/references/event_changelog_list.md +0 -1
- package/skills/ae-analysis/references/event_create.md +0 -1
- package/skills/ae-analysis/references/event_detail_export.md +3 -2
- package/skills/ae-analysis/references/event_detail_run.md +1 -0
- package/skills/ae-analysis/references/event_export.md +0 -1
- package/skills/ae-analysis/references/event_get.md +0 -1
- package/skills/ae-analysis/references/event_hide_update.md +0 -1
- package/skills/ae-analysis/references/event_influence_list.md +0 -1
- package/skills/ae-analysis/references/event_list.md +0 -1
- package/skills/ae-analysis/references/event_property_bundle_export.md +5 -14
- package/skills/ae-analysis/references/event_property_bundle_import.md +2 -6
- package/skills/ae-analysis/references/event_relation_update.md +0 -1
- package/skills/ae-analysis/references/event_update.md +0 -1
- package/skills/ae-analysis/references/exchange_config_update.md +0 -1
- package/skills/ae-analysis/references/exchange_rate_refresh.md +0 -1
- package/skills/ae-analysis/references/exchange_rule_list.md +0 -1
- package/skills/ae-analysis/references/exchange_rule_update.md +0 -1
- package/skills/ae-analysis/references/exchange_rule_validate.md +0 -1
- package/skills/ae-analysis/references/governance_recommendation_decisions.md +23 -0
- package/skills/ae-analysis/references/governance_recommendation_export.md +108 -0
- package/skills/ae-analysis/references/governance_recommendation_submit.md +41 -0
- package/skills/ae-analysis/references/history_tag_data_drilldown_export.md +4 -4
- package/skills/ae-analysis/references/history_tag_data_export.md +3 -3
- package/skills/ae-analysis/references/ingest_error_list.md +7 -9
- package/skills/ae-analysis/references/ingest_summary.md +6 -8
- package/skills/ae-analysis/references/live_data_export.md +10 -10
- package/skills/ae-analysis/references/live_data_list.md +7 -9
- package/skills/ae-analysis/references/metadata_resolution.md +78 -0
- package/skills/ae-analysis/references/metric_export.md +0 -1
- package/skills/ae-analysis/references/metric_get.md +0 -1
- package/skills/ae-analysis/references/metric_list.md +4 -5
- package/skills/ae-analysis/references/metric_update.md +0 -1
- package/skills/ae-analysis/references/operation_record_export.md +4 -5
- package/skills/ae-analysis/references/operation_record_list.md +4 -5
- package/skills/ae-analysis/references/personal_semantic_preference_list.md +18 -1
- package/skills/ae-analysis/references/plan_change_log_export.md +10 -10
- package/skills/ae-analysis/references/plan_change_log_list.md +4 -6
- package/skills/ae-analysis/references/plan_delete_items.md +2 -4
- package/skills/ae-analysis/references/plan_export.md +9 -9
- package/skills/ae-analysis/references/plan_generate.md +2 -4
- package/skills/ae-analysis/references/plan_get.md +4 -6
- package/skills/ae-analysis/references/plan_import_excel.md +6 -8
- package/skills/ae-analysis/references/plan_save_items.md +2 -4
- package/skills/ae-analysis/references/plan_sync_from_meta.md +4 -6
- package/skills/ae-analysis/references/project_access_detail_get.md +0 -1
- package/skills/ae-analysis/references/project_data_power_get.md +0 -1
- package/skills/ae-analysis/references/project_data_power_list.md +0 -1
- package/skills/ae-analysis/references/project_data_power_upsert.md +0 -1
- package/skills/ae-analysis/references/project_entity_create.md +0 -1
- package/skills/ae-analysis/references/project_entity_event_list.md +0 -1
- package/skills/ae-analysis/references/project_entity_get.md +0 -1
- package/skills/ae-analysis/references/project_entity_list.md +0 -1
- package/skills/ae-analysis/references/project_entity_update.md +0 -1
- package/skills/ae-analysis/references/project_function_list.md +0 -1
- package/skills/ae-analysis/references/project_info_get.md +0 -1
- package/skills/ae-analysis/references/project_info_list.md +0 -1
- package/skills/ae-analysis/references/project_info_update.md +0 -1
- package/skills/ae-analysis/references/project_mark_time_create.md +0 -1
- package/skills/ae-analysis/references/project_mark_time_list.md +0 -1
- package/skills/ae-analysis/references/project_mark_time_update.md +0 -1
- package/skills/ae-analysis/references/project_member_add.md +6 -5
- package/skills/ae-analysis/references/project_member_batch_update.md +0 -1
- package/skills/ae-analysis/references/project_member_candidate_list.md +4 -3
- package/skills/ae-analysis/references/project_member_handover_run.md +2 -3
- package/skills/ae-analysis/references/project_member_list.md +0 -1
- package/skills/ae-analysis/references/project_member_receiver_list.md +0 -1
- package/skills/ae-analysis/references/project_member_update.md +0 -1
- package/skills/ae-analysis/references/project_owner_update.md +0 -1
- package/skills/ae-analysis/references/project_permission_binding_list.md +0 -1
- package/skills/ae-analysis/references/project_role_function_list.md +0 -1
- package/skills/ae-analysis/references/project_role_get.md +0 -1
- package/skills/ae-analysis/references/project_role_list.md +0 -1
- package/skills/ae-analysis/references/project_role_upsert.md +32 -2
- package/skills/ae-analysis/references/project_role_user_list.md +0 -1
- package/skills/ae-analysis/references/project_semantic_knowledge_wiki.md +214 -0
- package/skills/ae-analysis/references/project_semantic_knowledge_wiki_plan_schema.md +93 -0
- package/skills/ae-analysis/references/project_timezone_get.md +0 -1
- package/skills/ae-analysis/references/project_timezone_overview.md +0 -1
- package/skills/ae-analysis/references/project_timezone_update.md +0 -1
- package/skills/ae-analysis/references/project_user_id_items_update.md +0 -1
- package/skills/ae-analysis/references/property_changelog_list.md +0 -1
- package/skills/ae-analysis/references/property_create.md +0 -1
- package/skills/ae-analysis/references/property_export.md +0 -1
- package/skills/ae-analysis/references/property_get.md +0 -1
- package/skills/ae-analysis/references/property_hide_update.md +0 -1
- package/skills/ae-analysis/references/property_influence_list.md +0 -1
- package/skills/ae-analysis/references/property_list.md +3 -4
- package/skills/ae-analysis/references/property_related_events.md +0 -1
- package/skills/ae-analysis/references/property_relation_update.md +0 -1
- package/skills/ae-analysis/references/property_update.md +0 -1
- package/skills/ae-analysis/references/report_create.md +4 -2
- package/skills/ae-analysis/references/report_data_export.md +11 -9
- package/skills/ae-analysis/references/report_data_run.md +14 -7
- package/skills/ae-analysis/references/report_get.md +5 -3
- package/skills/ae-analysis/references/report_list.md +2 -0
- package/skills/ae-analysis/references/report_update.md +5 -3
- package/skills/ae-analysis/references/rule_create.md +5 -6
- package/skills/ae-analysis/references/rule_delete.md +5 -5
- package/skills/ae-analysis/references/rule_list.md +3 -4
- package/skills/ae-analysis/references/rule_schema.md +3 -4
- package/skills/ae-analysis/references/rule_update.md +5 -6
- package/skills/ae-analysis/references/sdk_sample_generate.md +2 -4
- package/skills/ae-analysis/references/sql_table_columns.md +1 -1
- package/skills/ae-analysis/references/super_metadata_batch_create.md +1 -1
- package/skills/ae-analysis/references/super_metadata_batch_edit.md +1 -1
- package/skills/ae-analysis/references/system_member_add.md +1 -2
- package/skills/ae-analysis/references/system_member_status_update.md +1 -1
- package/skills/ae-analysis/references/system_ops_alert_contact_list.md +1 -1
- package/skills/ae-analysis/references/system_ops_alert_contact_test.md +0 -1
- package/skills/ae-analysis/references/system_query_monitor_overview.md +3 -3
- package/skills/ae-analysis/references/system_query_task_export.md +4 -14
- package/skills/ae-analysis/references/system_query_task_get.md +1 -1
- package/skills/ae-analysis/references/system_query_task_list.md +5 -6
- package/skills/ae-analysis/references/system_receiver_address_upsert.md +3 -3
- package/skills/ae-analysis/references/system_receiver_detection_get.md +1 -1
- package/skills/ae-analysis/references/system_third_party_login_disable.md +1 -1
- package/skills/ae-analysis/references/system_usage_trend_export.md +3 -12
- package/skills/ae-analysis/references/user_cluster_list.md +1 -1
- package/skills/ae-analysis/references/user_cluster_member_export.md +4 -4
- package/skills/ae-analysis/references/user_tag_create.md +23 -1
- package/skills/ae-analysis/references/user_tag_list.md +1 -1
- package/skills/ae-analysis/references/user_tag_member_export.md +4 -4
- package/skills/ae-analysis/references/user_tag_models.md +9 -1
- package/skills/ae-analysis/references/user_tag_update.md +14 -2
- package/skills/ae-analysis/references/virtual_event_create.md +10 -5
- package/skills/ae-analysis/references/virtual_event_get.md +0 -1
- package/skills/ae-analysis/references/virtual_property_create.md +0 -1
- package/skills/ae-analysis/references/virtual_property_sql_rule_update.md +0 -1
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/build-project-semantic-wiki.mjs +1054 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/company-kb.mjs +112 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/default-compile-rules.md +30 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/generate-build-ir.mjs +2735 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/package-wiki-source-zip.mjs +376 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/plan-kb-source-sync.mjs +264 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/precompiled-source.mjs +49 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/upload-kb-sources-concurrently.mjs +200 -0
- package/skills/ae-analysis/scripts/read_results.py +197 -0
- package/skills/ae-analysis-global/SKILL.md +1 -1
- package/skills/ae-capability/SKILL.md +1 -1
- package/skills/ae-community/SKILL.md +1 -1
- package/skills/ae-current-context/SKILL.md +53 -0
- package/skills/ae-data-integration/SKILL.md +6 -4
- package/skills/ae-data-integration/references/dimension-routing.md +36 -0
- package/skills/ae-data-integration/references/lark-bitable-source.md +288 -0
- package/skills/ae-data-integration/references/lark-sheet-source.md +130 -0
- package/skills/ae-data-integration/references/local-analysis.md +2 -0
- package/skills/ae-data-integration/references/manual-export-source.md +83 -0
- package/skills/ae-data-integration/references/reuse.md +2 -0
- package/skills/ae-data-integration/references/sink-upload.md +32 -0
- package/skills/ae-data-integration/references/source-inspect.md +1 -1
- package/skills/ae-data-integration/references/tracking-plan.md +5 -2
- package/skills/ae-data-integration/references/transform.md +1 -1
- package/skills/ae-data-integration/references/ue-mapping.md +7 -4
- package/skills/ae-data-integration/references/ue-routing.md +17 -1
- package/skills/ae-data-integration-helper/SKILL.md +5 -5
- package/skills/ae-data-integration-helper/references/android_sdk_faq.md +3 -3
- package/skills/ae-data-integration-helper/references/c_sdk_faq.md +3 -3
- package/skills/ae-data-integration-helper/references/cocoscreator_sdk_faq.md +1 -1
- package/skills/ae-data-integration-helper/references/cpp_server_sdk_faq.md +3 -3
- package/skills/ae-data-integration-helper/references/ios_sdk_faq.md +1 -1
- package/skills/ae-data-integration-helper/references/java_sdk_faq.md +3 -3
- package/skills/ae-data-integration-helper/references/javascript_sdk_faq.md +1 -1
- package/skills/ae-data-integration-helper/references/logbus2_guide.md +1 -1
- package/skills/ae-data-integration-helper/references/logbus2_parser_plugin.md +2 -2
- package/skills/ae-data-integration-helper/references/minigame_sdk_faq.md +2 -2
- package/skills/ae-data-integration-helper/references/miniprogram_sdk_faq.md +1 -1
- package/skills/ae-data-integration-helper/references/python_sdk_faq.md +2 -2
- package/skills/ae-data-integration-helper/references/restful_api_notes.md +2 -2
- package/skills/ae-data-integration-helper/references/sdk_log_guide.md +3 -3
- package/skills/ae-data-integration-helper/references/sdk_usage_notes.md +11 -11
- package/skills/ae-data-integration-helper/references/unity_sdk_faq.md +1 -1
- package/skills/ae-dataops/SKILL.md +1 -1
- package/skills/ae-engage/SKILL.md +4 -3
- package/skills/ae-engage/references/build-task-save-guide.md +3 -0
- package/skills/ae-engage/references/flow-metric-update.md +115 -1
- package/skills/ae-engage/references/save-flow.md +3 -0
- package/skills/ae-engage/references/save-task.md +21 -0
- package/skills/ae-engage/references/task-metric-update.md +151 -0
- package/skills/ae-experiment/SKILL.md +14 -7
- package/skills/ae-experiment/references/save_submit_external_experiment.md +52 -0
- package/skills/ae-experiment-design/SKILL.md +3 -3
- package/skills/ae-experiment-design/references/platform-operations.md +1 -1
- package/skills/ae-experiment-insight/SKILL.md +2 -2
- package/skills/ae-experiment-insight/references/platform-operations.md +1 -1
- package/skills/ae-generate-tracking-code/SKILL.md +2 -1
- package/skills/ae-generate-tracking-code/references/client-sdk-insert.md +1 -1
- package/skills/ae-generate-tracking-code/references/datax-config.md +1 -1
- package/skills/ae-generate-tracking-code/references/logbus-config.md +1 -1
- package/skills/ae-generate-tracking-code/references/modes.md +1 -1
- package/skills/ae-generate-tracking-code/references/server-sdk-insert.md +5 -5
- package/skills/ae-generate-tracking-code/references/snippet-delivery.md +3 -3
- package/skills/ae-generate-tracking-plan/SKILL.md +27 -15
- package/skills/ae-generate-tracking-plan/references/business-dimension-mapping.md +1 -1
- package/skills/ae-generate-tracking-plan/references/te-api.md +1 -0
- package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +3 -2
- package/skills/ae-kb/SKILL.md +147 -37
- package/skills/ae-kb/references/analysis-workflow.md +292 -0
- package/skills/ae-kb/references/query-workflow.md +59 -29
- package/skills/ae-kb/references/source-mutations.md +95 -0
- package/skills/ae-kb/references/versions.md +46 -0
- package/skills/ae-kb-discovery/SKILL.md +5 -1
- package/skills/ae-metadata/SKILL.md +1 -1
- package/skills/ae-migrate-tracking-code/SKILL.md +195 -0
- package/skills/ae-migrate-tracking-code/references/ae-preset-properties.md +76 -0
- package/skills/ae-migrate-tracking-code/references/ir.md +167 -0
- package/skills/ae-migrate-tracking-code/references/mapping-framework.md +112 -0
- package/skills/ae-migrate-tracking-code/references/providers/README.md +58 -0
- package/skills/ae-migrate-tracking-code/references/providers/amplitude.md +208 -0
- package/skills/ae-migrate-tracking-code/references/providers/firebase.md +160 -0
- package/skills/ae-migrate-tracking-code/references/providers/ga4.md +92 -0
- package/skills/ae-migrate-tracking-code/references/providers/mixpanel.md +150 -0
- package/skills/ae-migrate-tracking-code/references/providers/sensors-data.md +146 -0
- package/skills/ae-project-semantic/SKILL.md +1 -1
- package/skills/ae-system/SKILL.md +5 -5
- package/skills/ae-team/SKILL.md +2 -2
- package/skills/ae-use-agent/SKILL.md +42 -0
- package/skills/ae-use-agent/references/local-agent.md +114 -0
- package/dist/auth-UMJAA72O.js +0 -15
- package/dist/chunk-533JK3YX.js +0 -72
- package/dist/chunk-DKEXH6Q5.js +0 -72
- package/dist/chunk-O6K2ODUE.js +0 -318
- package/dist/chunk-RWXIXOZG.js +0 -326
- package/dist/client-N7NGZUNI.js +0 -204
- package/dist/te-kb-BUD6N3NI.js +0 -1222
- package/skills/ae-agent/references/auto-provision-mcp-credentials.md +0 -57
- package/skills/ae-analysis/metadata_resolution.md +0 -184
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
__commonJS,
|
|
4
|
+
__require
|
|
5
|
+
} from "./chunk-MAPZ7VB6.js";
|
|
6
|
+
|
|
7
|
+
// node_modules/process-nextick-args/index.js
|
|
8
|
+
var require_process_nextick_args = __commonJS({
|
|
9
|
+
"node_modules/process-nextick-args/index.js"(exports, module) {
|
|
10
|
+
"use strict";
|
|
11
|
+
if (typeof process === "undefined" || !process.version || process.version.indexOf("v0.") === 0 || process.version.indexOf("v1.") === 0 && process.version.indexOf("v1.8.") !== 0) {
|
|
12
|
+
module.exports = { nextTick };
|
|
13
|
+
} else {
|
|
14
|
+
module.exports = process;
|
|
15
|
+
}
|
|
16
|
+
function nextTick(fn, arg1, arg2, arg3) {
|
|
17
|
+
if (typeof fn !== "function") {
|
|
18
|
+
throw new TypeError('"callback" argument must be a function');
|
|
19
|
+
}
|
|
20
|
+
var len = arguments.length;
|
|
21
|
+
var args, i;
|
|
22
|
+
switch (len) {
|
|
23
|
+
case 0:
|
|
24
|
+
case 1:
|
|
25
|
+
return process.nextTick(fn);
|
|
26
|
+
case 2:
|
|
27
|
+
return process.nextTick(function afterTickOne() {
|
|
28
|
+
fn.call(null, arg1);
|
|
29
|
+
});
|
|
30
|
+
case 3:
|
|
31
|
+
return process.nextTick(function afterTickTwo() {
|
|
32
|
+
fn.call(null, arg1, arg2);
|
|
33
|
+
});
|
|
34
|
+
case 4:
|
|
35
|
+
return process.nextTick(function afterTickThree() {
|
|
36
|
+
fn.call(null, arg1, arg2, arg3);
|
|
37
|
+
});
|
|
38
|
+
default:
|
|
39
|
+
args = new Array(len - 1);
|
|
40
|
+
i = 0;
|
|
41
|
+
while (i < args.length) {
|
|
42
|
+
args[i++] = arguments[i];
|
|
43
|
+
}
|
|
44
|
+
return process.nextTick(function afterTick() {
|
|
45
|
+
fn.apply(null, args);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
// node_modules/isarray/index.js
|
|
53
|
+
var require_isarray = __commonJS({
|
|
54
|
+
"node_modules/isarray/index.js"(exports, module) {
|
|
55
|
+
"use strict";
|
|
56
|
+
var toString = {}.toString;
|
|
57
|
+
module.exports = Array.isArray || function(arr) {
|
|
58
|
+
return toString.call(arr) == "[object Array]";
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// node_modules/core-util-is/lib/util.js
|
|
64
|
+
var require_util = __commonJS({
|
|
65
|
+
"node_modules/core-util-is/lib/util.js"(exports) {
|
|
66
|
+
"use strict";
|
|
67
|
+
function isArray(arg) {
|
|
68
|
+
if (Array.isArray) {
|
|
69
|
+
return Array.isArray(arg);
|
|
70
|
+
}
|
|
71
|
+
return objectToString(arg) === "[object Array]";
|
|
72
|
+
}
|
|
73
|
+
exports.isArray = isArray;
|
|
74
|
+
function isBoolean(arg) {
|
|
75
|
+
return typeof arg === "boolean";
|
|
76
|
+
}
|
|
77
|
+
exports.isBoolean = isBoolean;
|
|
78
|
+
function isNull(arg) {
|
|
79
|
+
return arg === null;
|
|
80
|
+
}
|
|
81
|
+
exports.isNull = isNull;
|
|
82
|
+
function isNullOrUndefined(arg) {
|
|
83
|
+
return arg == null;
|
|
84
|
+
}
|
|
85
|
+
exports.isNullOrUndefined = isNullOrUndefined;
|
|
86
|
+
function isNumber(arg) {
|
|
87
|
+
return typeof arg === "number";
|
|
88
|
+
}
|
|
89
|
+
exports.isNumber = isNumber;
|
|
90
|
+
function isString(arg) {
|
|
91
|
+
return typeof arg === "string";
|
|
92
|
+
}
|
|
93
|
+
exports.isString = isString;
|
|
94
|
+
function isSymbol(arg) {
|
|
95
|
+
return typeof arg === "symbol";
|
|
96
|
+
}
|
|
97
|
+
exports.isSymbol = isSymbol;
|
|
98
|
+
function isUndefined(arg) {
|
|
99
|
+
return arg === void 0;
|
|
100
|
+
}
|
|
101
|
+
exports.isUndefined = isUndefined;
|
|
102
|
+
function isRegExp(re) {
|
|
103
|
+
return objectToString(re) === "[object RegExp]";
|
|
104
|
+
}
|
|
105
|
+
exports.isRegExp = isRegExp;
|
|
106
|
+
function isObject(arg) {
|
|
107
|
+
return typeof arg === "object" && arg !== null;
|
|
108
|
+
}
|
|
109
|
+
exports.isObject = isObject;
|
|
110
|
+
function isDate(d) {
|
|
111
|
+
return objectToString(d) === "[object Date]";
|
|
112
|
+
}
|
|
113
|
+
exports.isDate = isDate;
|
|
114
|
+
function isError(e) {
|
|
115
|
+
return objectToString(e) === "[object Error]" || e instanceof Error;
|
|
116
|
+
}
|
|
117
|
+
exports.isError = isError;
|
|
118
|
+
function isFunction(arg) {
|
|
119
|
+
return typeof arg === "function";
|
|
120
|
+
}
|
|
121
|
+
exports.isFunction = isFunction;
|
|
122
|
+
function isPrimitive(arg) {
|
|
123
|
+
return arg === null || typeof arg === "boolean" || typeof arg === "number" || typeof arg === "string" || typeof arg === "symbol" || // ES6 symbol
|
|
124
|
+
typeof arg === "undefined";
|
|
125
|
+
}
|
|
126
|
+
exports.isPrimitive = isPrimitive;
|
|
127
|
+
exports.isBuffer = __require("buffer").Buffer.isBuffer;
|
|
128
|
+
function objectToString(o) {
|
|
129
|
+
return Object.prototype.toString.call(o);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
// node_modules/inherits/inherits_browser.js
|
|
135
|
+
var require_inherits_browser = __commonJS({
|
|
136
|
+
"node_modules/inherits/inherits_browser.js"(exports, module) {
|
|
137
|
+
"use strict";
|
|
138
|
+
if (typeof Object.create === "function") {
|
|
139
|
+
module.exports = function inherits(ctor, superCtor) {
|
|
140
|
+
if (superCtor) {
|
|
141
|
+
ctor.super_ = superCtor;
|
|
142
|
+
ctor.prototype = Object.create(superCtor.prototype, {
|
|
143
|
+
constructor: {
|
|
144
|
+
value: ctor,
|
|
145
|
+
enumerable: false,
|
|
146
|
+
writable: true,
|
|
147
|
+
configurable: true
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
} else {
|
|
153
|
+
module.exports = function inherits(ctor, superCtor) {
|
|
154
|
+
if (superCtor) {
|
|
155
|
+
ctor.super_ = superCtor;
|
|
156
|
+
var TempCtor = function() {
|
|
157
|
+
};
|
|
158
|
+
TempCtor.prototype = superCtor.prototype;
|
|
159
|
+
ctor.prototype = new TempCtor();
|
|
160
|
+
ctor.prototype.constructor = ctor;
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
// node_modules/inherits/inherits.js
|
|
168
|
+
var require_inherits = __commonJS({
|
|
169
|
+
"node_modules/inherits/inherits.js"(exports, module) {
|
|
170
|
+
"use strict";
|
|
171
|
+
try {
|
|
172
|
+
util = __require("util");
|
|
173
|
+
if (typeof util.inherits !== "function") throw "";
|
|
174
|
+
module.exports = util.inherits;
|
|
175
|
+
} catch (e) {
|
|
176
|
+
module.exports = require_inherits_browser();
|
|
177
|
+
}
|
|
178
|
+
var util;
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
// node_modules/util-deprecate/node.js
|
|
183
|
+
var require_node = __commonJS({
|
|
184
|
+
"node_modules/util-deprecate/node.js"(exports, module) {
|
|
185
|
+
"use strict";
|
|
186
|
+
module.exports = __require("util").deprecate;
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
export {
|
|
191
|
+
require_process_nextick_args,
|
|
192
|
+
require_isarray,
|
|
193
|
+
require_util,
|
|
194
|
+
require_inherits,
|
|
195
|
+
require_node
|
|
196
|
+
};
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
CapabilityGatewayError,
|
|
4
|
+
fetchCapabilityGateway,
|
|
5
|
+
requestCapabilityGateway
|
|
6
|
+
} from "./chunk-HFGZGYCG.js";
|
|
2
7
|
import {
|
|
3
8
|
resolveGatewayDomain
|
|
4
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-KPQY44JQ.js";
|
|
5
10
|
import {
|
|
6
11
|
readOutputMetadata,
|
|
7
12
|
unwrapOutputData,
|
|
8
13
|
withOutputMetadata
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import {
|
|
11
|
-
CapabilityGatewayError,
|
|
12
|
-
fetchCapabilityGateway,
|
|
13
|
-
requestCapabilityGateway
|
|
14
|
-
} from "./chunk-GJXRF7Y6.js";
|
|
14
|
+
} from "./chunk-DX5CDO34.js";
|
|
15
15
|
import {
|
|
16
16
|
PermissionError
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-MAPZ7VB6.js";
|
|
18
18
|
|
|
19
19
|
// src/core/analysis-async-artifact.ts
|
|
20
20
|
import { randomBytes } from "crypto";
|
|
@@ -263,7 +263,7 @@ async function downloadAnalysisArtifact(host, runId, artifactId, output, options
|
|
|
263
263
|
}
|
|
264
264
|
tempPresent = true;
|
|
265
265
|
const source = Readable.fromWeb(response.body);
|
|
266
|
-
await pipeline(source, createWriteStream(tempPath, { flags: "wx" }), {
|
|
266
|
+
await pipeline(source, createWriteStream(tempPath, { flags: "wx", mode: options.mode }), {
|
|
267
267
|
signal: options.signal
|
|
268
268
|
});
|
|
269
269
|
const file = await stat(tempPath);
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
-
CommunityReportError
|
|
4
|
-
} from "./chunk-533JK3YX.js";
|
|
5
|
-
import {
|
|
3
|
+
CommunityReportError,
|
|
6
4
|
logger
|
|
7
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-MAPZ7VB6.js";
|
|
8
6
|
|
|
9
7
|
// src/core/community-report-client.ts
|
|
10
8
|
var DEFAULT_TIMEOUT_MS = 3e4;
|
|
@@ -3,15 +3,15 @@ import {
|
|
|
3
3
|
MultiselectCancelled,
|
|
4
4
|
promptSingleSelect
|
|
5
5
|
} from "./chunk-7K24F7T2.js";
|
|
6
|
-
import {
|
|
7
|
-
printError,
|
|
8
|
-
printOutput
|
|
9
|
-
} from "./chunk-KEWVSO64.js";
|
|
10
|
-
import "./chunk-RWXIXOZG.js";
|
|
11
6
|
import {
|
|
12
7
|
AE_TRIAL_URL,
|
|
13
8
|
missingAeHostHint
|
|
14
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-6ZIQV5GW.js";
|
|
10
|
+
import {
|
|
11
|
+
printError,
|
|
12
|
+
printOutput
|
|
13
|
+
} from "./chunk-DX5CDO34.js";
|
|
14
|
+
import "./chunk-7XGFSUOM.js";
|
|
15
15
|
import {
|
|
16
16
|
addHost,
|
|
17
17
|
listHosts,
|
|
@@ -21,9 +21,8 @@ import {
|
|
|
21
21
|
resolveHostSelector,
|
|
22
22
|
setActiveHost,
|
|
23
23
|
updateHostLabel
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-FR2EDAQM.js";
|
|
24
|
+
} from "./chunk-7FTTULED.js";
|
|
25
|
+
import "./chunk-MAPZ7VB6.js";
|
|
27
26
|
|
|
28
27
|
// src/commands/config.ts
|
|
29
28
|
import * as readline2 from "readline";
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
getFromMainApp
|
|
4
|
+
} from "./chunk-HBGADCKA.js";
|
|
5
|
+
import "./chunk-Y74WTIKJ.js";
|
|
6
|
+
import "./chunk-7XGFSUOM.js";
|
|
7
|
+
import "./chunk-7FTTULED.js";
|
|
8
|
+
import {
|
|
9
|
+
CliValidationError
|
|
10
|
+
} from "./chunk-MAPZ7VB6.js";
|
|
11
|
+
|
|
12
|
+
// src/commands/context/current.ts
|
|
13
|
+
var CURRENT_PAGE_CONTEXT_PATH = "/api/sandbox/agent/context/current";
|
|
14
|
+
function createCurrentPageContextCommand(read = getFromMainApp, readConversationId = () => process.env.TE_AGENT_CONVERSATION_ID) {
|
|
15
|
+
return {
|
|
16
|
+
service: "context",
|
|
17
|
+
command: "+current",
|
|
18
|
+
description: "Read the current page context bound to the active Agent Run",
|
|
19
|
+
flags: [],
|
|
20
|
+
risk: "read",
|
|
21
|
+
usesAeHost: false,
|
|
22
|
+
execute: async () => {
|
|
23
|
+
const conversationId = readConversationId()?.trim();
|
|
24
|
+
if (!conversationId) {
|
|
25
|
+
throw new CliValidationError(
|
|
26
|
+
"Current page context is available only inside an active Agent Run.",
|
|
27
|
+
{
|
|
28
|
+
code: "CURRENT_PAGE_CONTEXT_RUN_REQUIRED",
|
|
29
|
+
hint: "Open AE Agent from a supported product page and ask about the current page."
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
const query = new URLSearchParams({ conversationId });
|
|
34
|
+
return read(`${CURRENT_PAGE_CONTEXT_PATH}?${query.toString()}`);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
var currentPageContext = createCurrentPageContextCommand();
|
|
39
|
+
|
|
40
|
+
// src/commands/context/index.ts
|
|
41
|
+
var commands = [currentPageContext];
|
|
42
|
+
var context_default = commands;
|
|
43
|
+
export {
|
|
44
|
+
currentPageContext,
|
|
45
|
+
context_default as default
|
|
46
|
+
};
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
+
readFileSync,
|
|
3
4
|
require_excel,
|
|
4
5
|
require_styles_xform,
|
|
5
6
|
require_worksheet_reader,
|
|
7
|
+
set_fs,
|
|
8
|
+
utils,
|
|
6
9
|
validateAndFix,
|
|
7
10
|
validateDraft
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-4NRCTUZJ.js";
|
|
12
|
+
import "./chunk-DVMLWQD4.js";
|
|
13
|
+
import {
|
|
14
|
+
require_archiver
|
|
15
|
+
} from "./chunk-EQ255HKO.js";
|
|
16
|
+
import "./chunk-V2NUHPXF.js";
|
|
10
17
|
import {
|
|
11
18
|
getConfigDir
|
|
12
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-7FTTULED.js";
|
|
13
20
|
import {
|
|
14
21
|
CliValidationError,
|
|
15
|
-
LocalDataUploadError
|
|
16
|
-
} from "./chunk-533JK3YX.js";
|
|
17
|
-
import {
|
|
22
|
+
LocalDataUploadError,
|
|
18
23
|
__toESM
|
|
19
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-MAPZ7VB6.js";
|
|
20
25
|
|
|
21
26
|
// src/commands/data-integration/inspect.ts
|
|
22
27
|
import { basename as basename3 } from "path";
|
|
@@ -114,18 +119,18 @@ var import_exceljs = __toESM(require_excel(), 1);
|
|
|
114
119
|
var import_worksheet_reader = __toESM(require_worksheet_reader(), 1);
|
|
115
120
|
var import_styles_xform = __toESM(require_styles_xform(), 1);
|
|
116
121
|
import { createHash } from "crypto";
|
|
122
|
+
import * as nodeFs from "fs";
|
|
117
123
|
import { createReadStream as createReadStream2, statSync } from "fs";
|
|
118
124
|
import { extname, basename } from "path";
|
|
119
125
|
import { createInterface } from "readline";
|
|
120
126
|
import { StringDecoder } from "string_decoder";
|
|
121
127
|
import { pipeline } from "stream/promises";
|
|
122
|
-
import XLSXMod from "xlsx";
|
|
123
128
|
import { parse as parseCsv } from "csv-parse";
|
|
124
129
|
import { parse as parseCsvSync } from "csv-parse/sync";
|
|
125
130
|
import createJsonParser from "stream-json";
|
|
126
|
-
import
|
|
127
|
-
import
|
|
128
|
-
import
|
|
131
|
+
import pick from "stream-json/filters/pick.js";
|
|
132
|
+
import streamArray from "stream-json/streamers/stream-array.js";
|
|
133
|
+
import streamValues from "stream-json/streamers/stream-values.js";
|
|
129
134
|
import * as unzipper from "unzipper";
|
|
130
135
|
import { SaxesParser } from "saxes";
|
|
131
136
|
|
|
@@ -550,7 +555,9 @@ function buildObjectChildren(objects, parentPath) {
|
|
|
550
555
|
}
|
|
551
556
|
function buildNode(path, name, values, nonEmpty) {
|
|
552
557
|
const arrays = values.filter(Array.isArray);
|
|
553
|
-
const objects = values.filter(
|
|
558
|
+
const objects = values.filter(
|
|
559
|
+
(value) => value !== null && typeof value === "object" && !Array.isArray(value)
|
|
560
|
+
);
|
|
554
561
|
const structural = arrays.length + objects.length;
|
|
555
562
|
if (structural > 0 && structural >= values.length - structural) {
|
|
556
563
|
if (arrays.length > objects.length) {
|
|
@@ -635,7 +642,7 @@ function isStrongDateTime(value) {
|
|
|
635
642
|
}
|
|
636
643
|
|
|
637
644
|
// src/commands/data-integration/input.ts
|
|
638
|
-
|
|
645
|
+
set_fs(nodeFs);
|
|
639
646
|
function resolveLocalDataInputMeta(filePath) {
|
|
640
647
|
let format = resolveFormat(filePath);
|
|
641
648
|
let delimiter;
|
|
@@ -921,7 +928,7 @@ async function discoverDataSets(filePath, format) {
|
|
|
921
928
|
return { visible: [{ id: "$", kind: "file", label: basename(filePath), selector: "$" }], hidden: [] };
|
|
922
929
|
}
|
|
923
930
|
if (format === "xls") {
|
|
924
|
-
const workbook =
|
|
931
|
+
const workbook = readFileSync(filePath, { dense: true });
|
|
925
932
|
return {
|
|
926
933
|
visible: workbook.SheetNames.map((name) => ({ id: `sheet:${name}`, kind: "sheet", label: name, selector: name })),
|
|
927
934
|
hidden: []
|
|
@@ -1057,9 +1064,9 @@ async function streamJsonLines(filePath, onRow, options) {
|
|
|
1057
1064
|
async function streamJson(filePath, selector, onRow, options) {
|
|
1058
1065
|
let count = 0;
|
|
1059
1066
|
const parser = createJsonParser();
|
|
1060
|
-
const streamer = selector === "$object" ?
|
|
1067
|
+
const streamer = selector === "$object" ? streamValues.asStream() : streamArray.asStream();
|
|
1061
1068
|
const source = decodeTextStream(filePath, options.encoding ?? "utf-8");
|
|
1062
|
-
const chain = selector === "$" || selector === "$object" ? source.pipe(parser).pipe(streamer) : source.pipe(parser).pipe(
|
|
1069
|
+
const chain = selector === "$" || selector === "$object" ? source.pipe(parser).pipe(streamer) : source.pipe(parser).pipe(pick.asStream({ filter: selector })).pipe(streamer);
|
|
1063
1070
|
for await (const item of chain) {
|
|
1064
1071
|
count += 1;
|
|
1065
1072
|
await onRow(flattenLocalDataRow(item.value, options.flattenRules, options.flattenMisses), count);
|
|
@@ -1224,10 +1231,10 @@ async function readExcelSheetHeaders(filePath, format) {
|
|
|
1224
1231
|
return format === "xls" ? readXlsSheetHeaders(filePath) : readXlsxSheetHeaders(filePath);
|
|
1225
1232
|
}
|
|
1226
1233
|
function readXlsSheetHeaders(filePath) {
|
|
1227
|
-
const workbook =
|
|
1234
|
+
const workbook = readFileSync(filePath, { dense: true });
|
|
1228
1235
|
return workbook.SheetNames.map((name) => {
|
|
1229
1236
|
const sheet = workbook.Sheets[name];
|
|
1230
|
-
const rows = sheet ?
|
|
1237
|
+
const rows = sheet ? utils.sheet_to_json(sheet, { header: 1, raw: true, defval: null }) : [];
|
|
1231
1238
|
return { name, headers: firstRowHeaders(rows[0] ?? []) };
|
|
1232
1239
|
});
|
|
1233
1240
|
}
|
|
@@ -1489,7 +1496,7 @@ function decodeXml(source) {
|
|
|
1489
1496
|
return source.replace(/"/g, '"').replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&");
|
|
1490
1497
|
}
|
|
1491
1498
|
async function streamXls(filePath, sheetName, onRow, options) {
|
|
1492
|
-
const workbook =
|
|
1499
|
+
const workbook = readFileSync(filePath, { cellDates: true, dense: true });
|
|
1493
1500
|
const names = options.mergeSheets ? workbook.SheetNames : workbook.SheetNames.includes(sheetName) ? [sheetName] : [];
|
|
1494
1501
|
if (names.length === 0) {
|
|
1495
1502
|
throw new CliValidationError("The requested Excel Sheet was not found.", { code: "LOCAL_DATA_SET_NOT_FOUND" });
|
|
@@ -1499,7 +1506,7 @@ async function streamXls(filePath, sheetName, onRow, options) {
|
|
|
1499
1506
|
for (const name of names) {
|
|
1500
1507
|
const sheet = workbook.Sheets[name];
|
|
1501
1508
|
if (!sheet) continue;
|
|
1502
|
-
const allRows =
|
|
1509
|
+
const allRows = utils.sheet_to_json(sheet, { header: 1, raw: true, defval: null });
|
|
1503
1510
|
const rows = allRows.slice(skipRows);
|
|
1504
1511
|
if (rows.length === 0) continue;
|
|
1505
1512
|
let headers = options.headerNames;
|
|
@@ -1678,7 +1685,7 @@ async function firstNonWhitespaceCharacter(filePath, encoding) {
|
|
|
1678
1685
|
}
|
|
1679
1686
|
|
|
1680
1687
|
// src/commands/data-integration/mapping.ts
|
|
1681
|
-
import { readFileSync } from "fs";
|
|
1688
|
+
import { readFileSync as readFileSync2 } from "fs";
|
|
1682
1689
|
|
|
1683
1690
|
// src/commands/data-integration/types.ts
|
|
1684
1691
|
var MAPPING_VERSION = "ae-data-integration-mapping/v1";
|
|
@@ -1686,6 +1693,7 @@ var MAPPING_VERSION = "ae-data-integration-mapping/v1";
|
|
|
1686
1693
|
// src/commands/data-integration/mapping.ts
|
|
1687
1694
|
var VALID_PROPERTY_NAME = /^[a-z][a-z0-9_]{0,49}$/;
|
|
1688
1695
|
var VALID_CHILD_PROPERTY_NAME = /^[a-z][a-z0-9_]{0,49}(\.[a-z][a-z0-9_]{0,49})+$/;
|
|
1696
|
+
var VALID_EVENT_NAME = /^[A-Za-z][A-Za-z0-9_]{0,49}$/;
|
|
1689
1697
|
var FLATTEN_SUPPORTED_FORMATS = ["csv", "tsv", "json", "jsonl", "xls", "xlsx"];
|
|
1690
1698
|
var SKIP_ROWS_SUPPORTED_FORMATS = ["csv", "tsv", "xls", "xlsx"];
|
|
1691
1699
|
var XLSX_STRUCTURE_SUPPORTED_FORMATS = ["xlsx"];
|
|
@@ -1698,7 +1706,7 @@ function readLocalDataMapping(raw, options) {
|
|
|
1698
1706
|
text = trimmed;
|
|
1699
1707
|
} else {
|
|
1700
1708
|
const filePath = trimmed.startsWith("@") ? trimmed.slice(1) : trimmed;
|
|
1701
|
-
text =
|
|
1709
|
+
text = readFileSync2(filePath, "utf8");
|
|
1702
1710
|
}
|
|
1703
1711
|
} catch {
|
|
1704
1712
|
throw new CliValidationError("The local-data mapping could not be read.", {
|
|
@@ -1745,7 +1753,7 @@ function validateMapping(value, options) {
|
|
|
1745
1753
|
if (value.mode !== "user_set" && !value.event_name_field && !value.default_event_name) {
|
|
1746
1754
|
throw mappingError("Track mappings require an event field or default event name.");
|
|
1747
1755
|
}
|
|
1748
|
-
if (value.default_event_name && !
|
|
1756
|
+
if (value.default_event_name && !VALID_EVENT_NAME.test(value.default_event_name)) {
|
|
1749
1757
|
throw mappingError("The default event name is not a legal AE event name.");
|
|
1750
1758
|
}
|
|
1751
1759
|
if (!Array.isArray(value.properties)) throw mappingError("Mapping properties must be an array.");
|
|
@@ -1779,7 +1787,7 @@ function validateMapping(value, options) {
|
|
|
1779
1787
|
if (value.event_meta !== void 0) {
|
|
1780
1788
|
if (!isRecord(value.event_meta)) throw mappingError("event_meta must be an object keyed by AE event name.");
|
|
1781
1789
|
for (const [name, meta] of Object.entries(value.event_meta)) {
|
|
1782
|
-
if (!
|
|
1790
|
+
if (!VALID_EVENT_NAME.test(name) || !isRecord(meta) || meta.desc !== void 0 && (typeof meta.desc !== "string" || !meta.desc.trim() || meta.desc.length > 200) || meta.tag !== void 0 && (typeof meta.tag !== "string" || !meta.tag.trim() || meta.tag.length > 64)) {
|
|
1783
1791
|
throw mappingError("event_meta entries need a legal AE event name and non-empty desc/tag strings.");
|
|
1784
1792
|
}
|
|
1785
1793
|
}
|
|
@@ -1792,7 +1800,7 @@ function validateMapping(value, options) {
|
|
|
1792
1800
|
if (!isStringMap(map)) throw mappingError(`value_mapping.${key} must map strings to strings.`);
|
|
1793
1801
|
if (key === "event_name") {
|
|
1794
1802
|
for (const target of Object.values(map)) {
|
|
1795
|
-
if (!
|
|
1803
|
+
if (!VALID_EVENT_NAME.test(target)) {
|
|
1796
1804
|
throw mappingError("value_mapping.event_name values must be legal AE event names.");
|
|
1797
1805
|
}
|
|
1798
1806
|
}
|
|
@@ -1876,6 +1884,9 @@ function validateMapping(value, options) {
|
|
|
1876
1884
|
function isValidAeName(value) {
|
|
1877
1885
|
return VALID_PROPERTY_NAME.test(value);
|
|
1878
1886
|
}
|
|
1887
|
+
function isValidEventName(value) {
|
|
1888
|
+
return VALID_EVENT_NAME.test(value);
|
|
1889
|
+
}
|
|
1879
1890
|
function sourceColumns(mapping) {
|
|
1880
1891
|
const columns = /* @__PURE__ */ new Set();
|
|
1881
1892
|
const flattenOut = new Set(Object.keys(mapping.flatten_rules ?? {}));
|
|
@@ -3145,7 +3156,7 @@ function splitHeaders(raw) {
|
|
|
3145
3156
|
// src/commands/data-integration/plan.ts
|
|
3146
3157
|
import { writeFile } from "fs/promises";
|
|
3147
3158
|
var VALID_LOCALES = /* @__PURE__ */ new Set(["zh", "en", "ja", "ko"]);
|
|
3148
|
-
var EVENT_NAME_RE = /^[
|
|
3159
|
+
var EVENT_NAME_RE = /^[A-Za-z][A-Za-z0-9_]*$/;
|
|
3149
3160
|
function toPropType(type) {
|
|
3150
3161
|
switch (type) {
|
|
3151
3162
|
case "number":
|
|
@@ -3222,7 +3233,7 @@ function resolveEventNames(options) {
|
|
|
3222
3233
|
if (!EVENT_NAME_RE.test(name)) {
|
|
3223
3234
|
throw new CliValidationError(`The event name "${name}" is not a legal AE event name.`, {
|
|
3224
3235
|
code: "LOCAL_DATA_PLAN_INVALID_EVENT_NAME",
|
|
3225
|
-
hint: "Event names must match ^[
|
|
3236
|
+
hint: "Event names must match ^[A-Za-z][A-Za-z0-9_]*$.",
|
|
3226
3237
|
location: { field: "event-name" }
|
|
3227
3238
|
});
|
|
3228
3239
|
}
|
|
@@ -3320,7 +3331,7 @@ import {
|
|
|
3320
3331
|
existsSync,
|
|
3321
3332
|
mkdirSync,
|
|
3322
3333
|
readdirSync,
|
|
3323
|
-
readFileSync as
|
|
3334
|
+
readFileSync as readFileSync3,
|
|
3324
3335
|
renameSync,
|
|
3325
3336
|
statSync as statSync2,
|
|
3326
3337
|
unlinkSync,
|
|
@@ -3593,7 +3604,7 @@ function convertRow(row, rowNumber, mapping, now) {
|
|
|
3593
3604
|
if (recordType === "track") {
|
|
3594
3605
|
const rawEvent = String(stripQuotes(mapping.event_name_field ? row[mapping.event_name_field] ?? "" : mapping.default_event_name ?? ""));
|
|
3595
3606
|
eventName = mapping.value_mapping?.event_name && mapping.value_mapping.event_name[rawEvent] !== void 0 ? mapping.value_mapping.event_name[rawEvent] : rawEvent;
|
|
3596
|
-
if (!
|
|
3607
|
+
if (!isValidEventName(eventName)) {
|
|
3597
3608
|
errors.push({ code: "INVALID_EVENT_NAME", field: mapping.event_name_field });
|
|
3598
3609
|
}
|
|
3599
3610
|
}
|
|
@@ -3688,7 +3699,7 @@ function readZoneOffset(row, field) {
|
|
|
3688
3699
|
function readSalvageRowNumbers(path) {
|
|
3689
3700
|
let text;
|
|
3690
3701
|
try {
|
|
3691
|
-
text =
|
|
3702
|
+
text = readFileSync3(path, "utf8");
|
|
3692
3703
|
} catch {
|
|
3693
3704
|
throw new CliValidationError("The salvage file could not be read.", {
|
|
3694
3705
|
code: "LOCAL_DATA_SALVAGE_INVALID",
|
|
@@ -3710,13 +3721,14 @@ function readSalvageRowNumbers(path) {
|
|
|
3710
3721
|
location: { field: "salvage-from", record: lineNumber }
|
|
3711
3722
|
});
|
|
3712
3723
|
}
|
|
3713
|
-
|
|
3724
|
+
const rowNumber = typeof value === "object" && value !== null && !Array.isArray(value) ? value.row_number : void 0;
|
|
3725
|
+
if (typeof rowNumber !== "number" || !Number.isInteger(rowNumber) || rowNumber <= 0) {
|
|
3714
3726
|
throw new CliValidationError("The salvage file is not an invalid.rows.jsonl quarantine file.", {
|
|
3715
3727
|
code: "LOCAL_DATA_SALVAGE_INVALID",
|
|
3716
3728
|
location: { field: "salvage-from", record: lineNumber }
|
|
3717
3729
|
});
|
|
3718
3730
|
}
|
|
3719
|
-
rows.add(
|
|
3731
|
+
rows.add(rowNumber);
|
|
3720
3732
|
}
|
|
3721
3733
|
if (rows.size === 0) {
|
|
3722
3734
|
throw new CliValidationError("The salvage file contains no rows.", {
|
|
@@ -4089,7 +4101,7 @@ var dataIntegrationConvert = {
|
|
|
4089
4101
|
};
|
|
4090
4102
|
|
|
4091
4103
|
// src/commands/data-integration/upload.ts
|
|
4092
|
-
import { createReadStream as createReadStream4, readFileSync as
|
|
4104
|
+
import { createReadStream as createReadStream4, readFileSync as readFileSync4, statSync as statSync3 } from "fs";
|
|
4093
4105
|
import { basename as basename5, dirname, resolve as resolve2 } from "path";
|
|
4094
4106
|
import { createInterface as createInterface3 } from "readline";
|
|
4095
4107
|
var DEFAULT_BATCH_SIZE = 500;
|
|
@@ -4323,7 +4335,7 @@ async function prepareUpload(ctx, enforceReady) {
|
|
|
4323
4335
|
function readManifest(path) {
|
|
4324
4336
|
let value;
|
|
4325
4337
|
try {
|
|
4326
|
-
value = JSON.parse(
|
|
4338
|
+
value = JSON.parse(readFileSync4(path, "utf8"));
|
|
4327
4339
|
} catch {
|
|
4328
4340
|
throw new CliValidationError("The local-data manifest could not be read as JSON.", {
|
|
4329
4341
|
code: "LOCAL_DATA_MANIFEST_INVALID",
|
|
@@ -4435,18 +4447,18 @@ function isRecord3(value) {
|
|
|
4435
4447
|
|
|
4436
4448
|
// src/commands/data-integration/handoff.ts
|
|
4437
4449
|
import { createHash as createHash3 } from "crypto";
|
|
4438
|
-
import { chmodSync as chmodSync2, mkdirSync as mkdirSync2, mkdtempSync, readFileSync as
|
|
4450
|
+
import { chmodSync as chmodSync2, mkdirSync as mkdirSync2, mkdtempSync, readFileSync as readFileSync5, renameSync as renameSync2, rmSync, writeFileSync as writeFileSync2 } from "fs";
|
|
4439
4451
|
import { dirname as dirname2, join as join3, resolve as resolve3 } from "path";
|
|
4440
4452
|
import { tmpdir } from "os";
|
|
4441
4453
|
|
|
4442
4454
|
// src/commands/data-integration/archive.ts
|
|
4443
|
-
|
|
4455
|
+
var import_archiver = __toESM(require_archiver(), 1);
|
|
4444
4456
|
import { createWriteStream as createWriteStream2, readdirSync as readdirSync2, statSync as statSync4 } from "fs";
|
|
4445
4457
|
import { join as join2, relative, sep } from "path";
|
|
4446
4458
|
async function zipPackage(dir, zipPath) {
|
|
4447
4459
|
await new Promise((resolvePromise, rejectPromise) => {
|
|
4448
4460
|
const output = createWriteStream2(zipPath, { mode: 384 });
|
|
4449
|
-
const zip =
|
|
4461
|
+
const zip = (0, import_archiver.default)("zip", { zlib: { level: 9 } });
|
|
4450
4462
|
output.on("close", resolvePromise);
|
|
4451
4463
|
output.on("error", rejectPromise);
|
|
4452
4464
|
zip.on("error", rejectPromise);
|
|
@@ -5367,7 +5379,7 @@ function buildHandoffPackage(outDir, mapping, planFile) {
|
|
|
5367
5379
|
function readHandoffIndex(path) {
|
|
5368
5380
|
let raw;
|
|
5369
5381
|
try {
|
|
5370
|
-
raw =
|
|
5382
|
+
raw = readFileSync5(path, "utf8");
|
|
5371
5383
|
} catch {
|
|
5372
5384
|
return { version: HANDOFF_INDEX_VERSION, entries: [] };
|
|
5373
5385
|
}
|
|
@@ -5391,7 +5403,7 @@ function readHandoffIndex(path) {
|
|
|
5391
5403
|
function readPlanFile(path) {
|
|
5392
5404
|
let raw;
|
|
5393
5405
|
try {
|
|
5394
|
-
raw =
|
|
5406
|
+
raw = readFileSync5(path, "utf8");
|
|
5395
5407
|
} catch {
|
|
5396
5408
|
throw new CliValidationError("The tracking-plan file could not be read.", {
|
|
5397
5409
|
code: "LOCAL_DATA_HANDOFF_PLAN_NOT_FOUND",
|
|
@@ -5483,7 +5495,7 @@ var dataIntegrationHandoff = {
|
|
|
5483
5495
|
index_file: join3(outDir, "index.json"),
|
|
5484
5496
|
pipeline_file: join3(outDir, "pipeline.json"),
|
|
5485
5497
|
shape_file: join3(outDir, "shape.json"),
|
|
5486
|
-
zip_path: zipPathFor(outDir, fingerprints[0])
|
|
5498
|
+
zip_path: fingerprints[0] ? zipPathFor(outDir, fingerprints[0]) : void 0
|
|
5487
5499
|
};
|
|
5488
5500
|
},
|
|
5489
5501
|
execute: async (ctx) => {
|
|
@@ -5539,7 +5551,6 @@ var dataIntegrationHandoff = {
|
|
|
5539
5551
|
}
|
|
5540
5552
|
};
|
|
5541
5553
|
function zipPathFor(outDir, fingerprint) {
|
|
5542
|
-
if (!fingerprint) return void 0;
|
|
5543
5554
|
return join3(dirname2(resolve3(outDir)), `ae-data-integration-handoff-${fingerprint.slice(0, 8)}.zip`);
|
|
5544
5555
|
}
|
|
5545
5556
|
var RELAY_FILE_PATHS = [
|
|
@@ -5600,7 +5611,7 @@ function stageScopedPackage(outDir, mappingDirs, entries, relayFiles) {
|
|
|
5600
5611
|
for (const rel of mappingDirFiles(dirName, planFile)) {
|
|
5601
5612
|
const dest = join3(staging, rel);
|
|
5602
5613
|
mkdirSync2(dirname2(dest), { recursive: true, mode: 448 });
|
|
5603
|
-
writeFileSync2(dest,
|
|
5614
|
+
writeFileSync2(dest, readFileSync5(join3(outDir, rel), "utf8"), { encoding: "utf8", mode: 384 });
|
|
5604
5615
|
chmodSync2(dest, 384);
|
|
5605
5616
|
}
|
|
5606
5617
|
}
|
|
@@ -5608,7 +5619,7 @@ function stageScopedPackage(outDir, mappingDirs, entries, relayFiles) {
|
|
|
5608
5619
|
}
|
|
5609
5620
|
|
|
5610
5621
|
// src/commands/data-integration/reuse.ts
|
|
5611
|
-
import { readFileSync as
|
|
5622
|
+
import { readFileSync as readFileSync6 } from "fs";
|
|
5612
5623
|
import { dirname as dirname4, join as join5, resolve as resolve5 } from "path";
|
|
5613
5624
|
|
|
5614
5625
|
// src/commands/data-integration/handoff-root.ts
|
|
@@ -5667,7 +5678,7 @@ function detectReuse(mapping, outDir) {
|
|
|
5667
5678
|
function readFrozenEventName(path) {
|
|
5668
5679
|
let value;
|
|
5669
5680
|
try {
|
|
5670
|
-
value = JSON.parse(
|
|
5681
|
+
value = JSON.parse(readFileSync6(path, "utf8"));
|
|
5671
5682
|
} catch {
|
|
5672
5683
|
return {};
|
|
5673
5684
|
}
|