@thinkingai/ae-cli 1.0.28 → 6.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -16
- package/README.zh.md +1 -16
- package/dist/{auth-H2376DEF.js → auth-DYC2BGLM.js} +2 -2
- package/dist/{auth-5NSDQFQB.js → auth-GHBMJ5ZR.js} +31 -12
- package/dist/{chunk-CLJF7MQA.js → chunk-2DUEAXV3.js} +1 -1
- package/dist/chunk-5OC7CYCG.js +98 -0
- package/dist/{chunk-SRJIAOBN.js → chunk-6W4QOZAL.js} +10 -0
- package/dist/{chunk-LU7SXK4Q.js → chunk-BJX3GXWC.js} +2 -2
- package/dist/{chunk-WCHI7725.js → chunk-DMMEPCST.js} +47 -6
- package/dist/{chunk-IMBKVXKY.js → chunk-EGEIXA2Z.js} +82 -10
- package/dist/{chunk-AD5V3ZPJ.js → chunk-I5CRVM2S.js} +98 -10
- package/dist/chunk-NOO24N7W.js +11 -0
- package/dist/{chunk-GSJGPNKK.js → chunk-PN3OS34E.js} +1 -1
- package/dist/{chunk-CAQYQA4R.js → chunk-RSHMZ3LG.js} +15 -1
- package/dist/{client-FCMK3XEK.js → client-2UJ63MVQ.js} +3 -3
- package/dist/{config-64G36TJL.js → config-NCUGK6NS.js} +3 -3
- package/dist/index.js +2549 -29
- package/dist/{model-EZ6K7FXI.js → model-SJSOZTRS.js} +5 -7
- package/dist/{raw-VEF3D6UD.js → raw-7NVWSVJP.js} +4 -4
- package/dist/{sync-NRODEVNH.js → sync-GRVO4K3U.js} +120 -23
- package/dist/{te-agent-7U7JLJKU.js → te-agent-KZRIEN4N.js} +468 -47
- package/dist/{te-analysis-A2OSGHQ4.js → te-analysis-VAR4KUOK.js} +145 -28
- package/dist/{te-audience-LI67PPGO.js → te-audience-KMKYI2YJ.js} +23 -14
- package/dist/{te-common-35WVU3C5.js → te-common-WNCZB7R7.js} +5 -4
- package/dist/{te-community-LEAP6PWT.js → te-community-JEEFXPB3.js} +11 -10
- package/dist/{te-dataops-N2LGZBOX.js → te-dataops-GD3XBYCS.js} +33 -32
- package/dist/{te-engage-H7C72Z46.js → te-engage-4XHCTS6I.js} +5 -4
- package/dist/{te-kb-I2OKTBAI.js → te-kb-B62KFP2A.js} +97 -7
- package/dist/{te-meta-HBTIEDRO.js → te-meta-EPZGQN56.js} +10 -9
- package/dist/{te-team-EM5OWRQL.js → te-team-YY24VORI.js} +16 -12
- package/dist/tracking/i18n/resources/cli/en.json +153 -0
- package/dist/tracking/i18n/resources/cli/ja.json +153 -0
- package/dist/tracking/i18n/resources/cli/ko.json +153 -0
- package/dist/tracking/i18n/resources/cli/zh.json +153 -0
- package/package.json +9 -3
- package/skills/ae-agent/SKILL.md +66 -26
- package/skills/ae-analysis/SKILL.md +108 -8
- package/skills/ae-analysis/references/cancel_query.md +39 -0
- package/skills/ae-analysis/references/drilldown_user_events.md +4 -2
- package/skills/ae-analysis/references/drilldown_users.md +4 -2
- package/skills/ae-analysis/references/get_bi_panel_detail.md +35 -0
- package/skills/ae-analysis/references/list_alerts.md +1 -1
- package/skills/ae-analysis/references/list_bi_panels.md +35 -0
- package/skills/ae-analysis/references/list_cluster_members.md +4 -1
- package/skills/ae-analysis/references/list_dashboards.md +1 -1
- package/skills/ae-analysis/references/list_entities.md +1 -1
- package/skills/ae-analysis/references/list_events.md +1 -1
- package/skills/ae-analysis/references/list_metrics.md +1 -1
- package/skills/ae-analysis/references/list_project_mark_times.md +1 -1
- package/skills/ae-analysis/references/list_properties.md +1 -1
- package/skills/ae-analysis/references/list_public_access_links.md +1 -1
- package/skills/ae-analysis/references/list_reports.md +1 -1
- package/skills/ae-analysis/references/list_tag_members.md +4 -1
- package/skills/ae-analysis/references/query_adhoc.md +6 -5
- package/skills/ae-analysis/references/query_bi_panel_data.md +58 -0
- package/skills/ae-analysis/references/query_dashboard_report_data.md +4 -1
- package/skills/ae-analysis/references/query_entity_details.md +5 -2
- package/skills/ae-analysis/references/query_event_details.md +4 -1
- package/skills/ae-analysis/references/query_report_data.md +2 -2
- package/skills/ae-analysis-global/SKILL.md +3 -1
- package/skills/ae-analysis-intent/SKILL.md +132 -0
- package/skills/ae-data-integration-helper/SKILL.md +242 -0
- package/skills/ae-data-integration-helper/references/android_sdk_faq.md +179 -0
- package/skills/ae-data-integration-helper/references/c_sdk_compilation.md +83 -0
- package/skills/ae-data-integration-helper/references/c_sdk_faq.md +416 -0
- package/skills/ae-data-integration-helper/references/cocoscreator_sdk_faq.md +123 -0
- package/skills/ae-data-integration-helper/references/cpp_server_sdk_faq.md +365 -0
- package/skills/ae-data-integration-helper/references/index.md +56 -0
- package/skills/ae-data-integration-helper/references/ios_sdk_faq.md +118 -0
- package/skills/ae-data-integration-helper/references/java_sdk_faq.md +406 -0
- package/skills/ae-data-integration-helper/references/javascript_sdk_faq.md +129 -0
- package/skills/ae-data-integration-helper/references/logbus2_guide.md +309 -0
- package/skills/ae-data-integration-helper/references/logbus2_parser_plugin.md +348 -0
- package/skills/ae-data-integration-helper/references/minigame_sdk_faq.md +115 -0
- package/skills/ae-data-integration-helper/references/miniprogram_sdk_faq.md +118 -0
- package/skills/ae-data-integration-helper/references/python_sdk_faq.md +232 -0
- package/skills/ae-data-integration-helper/references/restful_api_notes.md +74 -0
- package/skills/ae-data-integration-helper/references/sdk_log_guide.md +316 -0
- package/skills/ae-data-integration-helper/references/sdk_usage_notes.md +107 -0
- package/skills/ae-data-integration-helper/references/unity_sdk_faq.md +115 -0
- package/skills/ae-generate-tracking-code/SKILL.md +629 -0
- package/skills/ae-generate-tracking-code/references/autotrack-enum.md +183 -0
- package/skills/ae-generate-tracking-code/references/client-sdk-insert.md +202 -0
- package/skills/ae-generate-tracking-code/references/datax-config.md +43 -0
- package/skills/ae-generate-tracking-code/references/debug-script.md +102 -0
- package/skills/ae-generate-tracking-code/references/logbus-config.md +200 -0
- package/skills/ae-generate-tracking-code/references/modes.md +83 -0
- package/skills/ae-generate-tracking-code/references/restful-call.md +36 -0
- package/skills/ae-generate-tracking-code/references/sdk-index.md +128 -0
- package/skills/ae-generate-tracking-code/references/server-sdk-insert.md +206 -0
- package/skills/ae-generate-tracking-code/references/snippet-delivery.md +394 -0
- package/skills/ae-generate-tracking-code/references/te-api.md +181 -0
- package/skills/ae-generate-tracking-plan/SKILL.md +1083 -0
- package/skills/ae-generate-tracking-plan/references/autotrack-events.md +273 -0
- package/skills/ae-generate-tracking-plan/references/business-dimension-mapping.md +425 -0
- package/skills/ae-generate-tracking-plan/references/te-api.md +100 -0
- package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +152 -0
- package/skills/ae-kb/SKILL.md +38 -5
- package/tracking-plan-template/MMO/346/211/213/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +104 -0
- package/tracking-plan-template/MMO/346/211/213/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template/MMO/351/241/265/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v2.md +117 -0
- package/tracking-plan-template/MMO/351/241/265/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v2.xlsx +0 -0
- package/tracking-plan-template/RPG/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +72 -0
- package/tracking-plan-template/RPG/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template/SLG/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +86 -0
- package/tracking-plan-template/SLG/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template/Slots/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +80 -0
- package/tracking-plan-template/Slots/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template/TE /345/237/213/347/202/271/347/244/272/344/276/213/346/250/241/346/235/277.md" +40 -0
- package/tracking-plan-template/TE /345/237/213/347/202/271/347/244/272/344/276/213/346/250/241/346/235/277.xlsx +0 -0
- package/tracking-plan-template/TE/345/256/230/346/226/271/346/250/241/346/235/277_dataTrackSample.md +40 -0
- package/tracking-plan-template/TE/345/256/230/346/226/271/346/250/241/346/235/277_dataTrackSample.xlsx +0 -0
- package/tracking-plan-template//344/274/221/351/227/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v2.md +92 -0
- package/tracking-plan-template//344/274/221/351/227/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v2.xlsx +0 -0
- package/tracking-plan-template//345/215/241/347/211/214/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +119 -0
- package/tracking-plan-template//345/215/241/347/211/214/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//345/241/224/351/230/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_V1.md +130 -0
- package/tracking-plan-template//345/241/224/351/230/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_V1.xlsx +0 -0
- package/tracking-plan-template//345/276/256/344/277/241/345/260/217/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +52 -0
- package/tracking-plan-template//345/276/256/344/277/241/345/260/217/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//346/215/225/351/261/274/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +68 -0
- package/tracking-plan-template//346/215/225/351/261/274/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/215/241/347/211/214/346/270/270/346/210/217_/345/237/213/347/202/271/346/250/241/347/211/210v1.md +108 -0
- package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/215/241/347/211/214/346/270/270/346/210/217_/345/237/213/347/202/271/346/250/241/347/211/210v1.xlsx +0 -0
- package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +119 -0
- package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/346/226/227/345/234/260/344/270/273/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +63 -0
- package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/346/226/227/345/234/260/344/270/273/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/351/272/273/345/260/206/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v2.md +101 -0
- package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/351/272/273/345/260/206/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v2.xlsx +0 -0
- package/tracking-plan-template//347/224/265/345/225/206/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.md +84 -0
- package/tracking-plan-template//347/224/265/345/225/206/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//347/237/255/345/211/247/344/272/247/345/223/201/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.md +79 -0
- package/tracking-plan-template//347/237/255/345/211/247/344/272/247/345/223/201/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//347/244/276/344/272/244/350/201/212/345/244/251/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +105 -0
- package/tracking-plan-template//347/244/276/344/272/244/350/201/212/345/244/251/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//351/230/205/350/257/273/347/261/273APP/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +83 -0
- package/tracking-plan-template//351/230/205/350/257/273/347/261/273APP/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/wiki/te-docs/index.md +225 -0
- package/wiki/te-docs/raw/advanced-data-type/first-event-check.md +66 -0
- package/wiki/te-docs/raw/advanced-data-type/updated-event.md +87 -0
- package/wiki/te-docs/raw/advanced-data-type.md +16 -0
- package/wiki/te-docs/raw/data-ingestion-guide/about-gdpr.md +55 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/automatic-event-tracking.md +431 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/debugging-and-logging.md +49 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/multi-instance.md +66 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/preset-properties.md +466 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/third-party-integration.md +127 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced.md +513 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/release-notes.md +177 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android.md +228 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c/c-advanced.md +419 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c/release-notes.md +45 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c.md +110 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/client-side-sdk-faq.md +52 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp/cpp-advanced.md +366 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp/release-notes.md +103 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp.md +201 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/compliance.md +26 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/automatically-track-events.md +117 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/preset-properties.md +52 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced.md +267 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/release-notes.md +82 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter.md +139 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/compliance.md +26 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/automatically-track-events.md +121 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/debugging-and-logging.md +54 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/preset-properties.md +18 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced.md +305 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/release-notes.md +79 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native.md +137 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/release-notes.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/automatically-track-events.md +54 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/debugging-and-logging.md +53 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/multi-instance.md +42 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/preset-properties.md +119 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/support-native.md +81 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced.md +331 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app.md +156 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform.md +12 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/automatic-event-tracking.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/multi-instance.md +21 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/preset-properties.md +249 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced.md +301 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/release-notes.md +51 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x.md +281 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/automatic-event-tracking.md +70 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/debugging-and-logging.md +57 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/native-support.md +104 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/preset-properties.md +91 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance.md +374 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/compliance.md +35 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/release-notes.md +109 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator.md +170 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/compliance.md +28 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/automatic-event-tracking.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/debugging-and-logging.md +58 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/preset-properties.md +43 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced.md +204 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/release-notes.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona.md +269 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/release-notes.md +177 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/automatic-event-tracking.md +119 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/multi-instance.md +50 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/native-pluggable.md +43 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/preset-properties.md +212 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/third-party-integration.md +77 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced.md +396 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity.md +176 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/release-notes.md +81 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/automatic-event-tracking.md +79 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/debugging-and-logging.md +31 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/preset-properties.md +25 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/third-party-integrations.md +141 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced.md +278 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal.md +190 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine.md +14 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/h5-and-app-sdk-connection.md +147 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/instant-app-and-game.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/automatic-event-tracking.md +272 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/debugging-and-logging.md +77 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/multi-instance.md +142 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/preset-properties.md +484 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/third-party-integrations.md +132 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced.md +682 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/release-notes.md +163 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios.md +304 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/compliance.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/automatic-event-tracking.md +136 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/debugging-and-logging.md +48 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/multi-instance.md +50 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/preset-properties.md +132 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced.md +462 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/release-notes.md +107 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript.md +208 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced/debugging-and-logging.md +62 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced/preset-properties.md +118 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced.md +556 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos.md +231 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk.md +25 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/filebeat-logstash-user-guide.md +610 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/logbus2-user-guide.md +1215 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/ta-datax-writer-plugin-user-guide.md +278 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools.md +15 -0
- package/wiki/te-docs/raw/data-ingestion-guide/privacy-policy.md +38 -0
- package/wiki/te-docs/raw/data-ingestion-guide/restful-api-user-guide.md +155 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging-FM9Cwz.md +37 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging-RSyfw7.md +41 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging.md +89 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties-OxzWw.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties-VuE3wr.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced-IauKwI.md +175 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced-YAilwk.md +210 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced.md +211 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes-PVazwa.md +62 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes-TADbwY.md +50 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes.md +69 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c-V2W3wv.md +131 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c-Zf9Jwl.md +179 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c.md +189 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced/debugging-and-logging.md +38 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced.md +113 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/release-notes.md +34 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang.md +155 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced/debugging-and-logging.md +42 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced.md +157 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/release-notes.md +72 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang.md +148 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced/debugging-and-logging.md +49 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced.md +223 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/release-notes.md +88 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java.md +174 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced/debugging-and-logging.md +46 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced.md +182 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/release-notes.md +61 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua.md +121 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced/debugging-and-logging.md +55 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced.md +225 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/release-notes.md +45 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs.md +141 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced/debugging-and-logging.md +41 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced.md +216 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/release-notes.md +45 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php.md +173 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced/debugging-and-logging.md +40 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced.md +206 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/release-notes.md +51 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python.md +116 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/release-notes.md +44 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced.md +189 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby.md +142 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk.md +22 -0
- package/wiki/te-docs/raw/data-ingestion-guide/thinkingdata-privacy-policy.md +37 -0
- package/wiki/te-docs/raw/data-ingestion-guide.md +48 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion/data-rules.md +396 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion/preset-properties-and-system-fields.md +957 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion/user-identification-rules.md +723 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion.md +203 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//345/220/210/350/247/204/346/214/207/345/215/227.md +96 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//346/233/264/346/226/260/346/227/245/345/277/227.md +97 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +52 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +48 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +447 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227.md +370 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony.md +172 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//345/220/210/350/247/204/346/214/207/345/215/227.md +37 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//346/233/264/346/226/260/346/227/245/345/277/227.md +209 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +71 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +49 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +125 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +498 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227.md +612 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217.md +373 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//345/220/210/350/247/204/346/214/207/345/215/227.md +26 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//346/233/264/346/226/260/346/227/245/345/277/227.md +32 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +48 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +30 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +61 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227.md +236 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua.md +200 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//346/233/264/346/226/260/346/227/245/345/277/227.md +83 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +66 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +54 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +62 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +358 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227.md +615 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret.md +166 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//346/233/264/346/226/260/346/227/245/345/277/227.md +87 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +71 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +54 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +61 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +406 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227.md +597 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair.md +179 -0
- package/wiki/te-docs/schema.md +16 -0
- package/wiki/te-docs/synthesis/batch-ingest-comparison.md +324 -0
- package/wiki/te-docs/synthesis/js-sdk-cheatsheet.md +538 -0
- package/wiki/te-docs/synthesis/restful-api-reference.md +363 -0
- package/wiki/te-docs/synthesis/sdk-selection.md +372 -0
- package/wiki/te-docs/synthesis/server-sdk-overview.md +449 -0
- package/dist/chunk-KAEZTSXN.js +0 -99
- package/dist/chunk-OJDNO5QY.js +0 -63
package/README.md
CHANGED
|
@@ -31,24 +31,9 @@ npx skills add ThinkingAIAgenticEngine/ae-cli -g -y
|
|
|
31
31
|
## Quick Start
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
|
|
35
|
-
ae-cli config
|
|
34
|
+
ae-cli auth login --host xxxxx
|
|
36
35
|
```
|
|
37
36
|
|
|
38
|
-
The `config` command opens an interactive terminal UI:
|
|
39
|
-
- First run: prompts you to add a AE host URL and label, then auto-authenticates
|
|
40
|
-
- Subsequent runs: shows all configured hosts, lets you switch, edit, delete, or add new ones
|
|
41
|
-
|
|
42
|
-
```
|
|
43
|
-
AE Host Manager (↑↓ select · Enter switch · e edit label · d delete · a add · q quit)
|
|
44
|
-
|
|
45
|
-
❯ ● Production https://ta.thinkingdata.cn ✓
|
|
46
|
-
○ Staging https://ta-staging.example.com:8080 ✗
|
|
47
|
-
+ Add new host...
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
After selecting a host, ae-cli automatically checks if the token is valid. If not, it triggers `auth login` for you.
|
|
51
|
-
|
|
52
37
|
## Usage
|
|
53
38
|
|
|
54
39
|
```bash
|
package/README.zh.md
CHANGED
|
@@ -31,24 +31,9 @@ npx skills add ThinkingAIAgenticEngine/ae-cli -g -y
|
|
|
31
31
|
## 快速开始
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
|
|
35
|
-
ae-cli config
|
|
34
|
+
ae-cli auth login --host xxxxx
|
|
36
35
|
```
|
|
37
36
|
|
|
38
|
-
`config` 命令会打开一个交互式终端界面:
|
|
39
|
-
- 首次运行:提示您添加 AE 主机 URL 和标签,然后自动进行身份验证
|
|
40
|
-
- 后续运行:显示所有已配置的主机,可以切换、编辑、删除或添加新主机
|
|
41
|
-
|
|
42
|
-
```
|
|
43
|
-
AE Host Manager (↑↓ 选择 · Enter 切换 · e 编辑标签 · d 删除 · a 添加 · q 退出)
|
|
44
|
-
|
|
45
|
-
❯ ● Production https://ta.thinkingdata.cn ✓
|
|
46
|
-
○ Staging https://ta-staging.example.com:8080 ✗
|
|
47
|
-
+ Add new host...
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
选择主机后,ae-cli 会自动检查 token 是否有效。如果无效,会自动触发 `auth login`。
|
|
51
|
-
|
|
52
37
|
## 使用方法
|
|
53
38
|
|
|
54
39
|
```bash
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
printError,
|
|
3
3
|
printOutput
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2DUEAXV3.js";
|
|
5
5
|
import {
|
|
6
6
|
clearMcpToken,
|
|
7
7
|
setMcpTokenManual,
|
|
8
8
|
validateMcpToken
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-DMMEPCST.js";
|
|
10
|
+
import "./chunk-PN3OS34E.js";
|
|
11
|
+
import "./chunk-NOO24N7W.js";
|
|
11
12
|
import {
|
|
12
13
|
clear,
|
|
13
14
|
clearToken,
|
|
@@ -17,12 +18,13 @@ import {
|
|
|
17
18
|
save,
|
|
18
19
|
setTokenManual,
|
|
19
20
|
validateToken
|
|
20
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-RSHMZ3LG.js";
|
|
21
22
|
import {
|
|
22
23
|
loadConfig,
|
|
23
24
|
logger,
|
|
25
|
+
removeHost,
|
|
24
26
|
saveConfig
|
|
25
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-6W4QOZAL.js";
|
|
26
28
|
|
|
27
29
|
// src/core/device-auth.ts
|
|
28
30
|
import { execFileSync } from "child_process";
|
|
@@ -228,8 +230,21 @@ function sleep(ms) {
|
|
|
228
230
|
|
|
229
231
|
// src/commands/auth.ts
|
|
230
232
|
var HOST_OPTION_DESC = "Override active AE host URL (e.g., https://ta.thinkingdata.cn)";
|
|
233
|
+
function getExplicitAuthHostOverride(program, opts) {
|
|
234
|
+
return opts.host || program.opts().host;
|
|
235
|
+
}
|
|
231
236
|
function resolveAuthHost(program, opts) {
|
|
232
|
-
return resolveHost(
|
|
237
|
+
return resolveHost(getExplicitAuthHostOverride(program, opts));
|
|
238
|
+
}
|
|
239
|
+
function activateHostAfterLogin(host, explicitHostOverride) {
|
|
240
|
+
if (!explicitHostOverride) return;
|
|
241
|
+
const config = loadConfig();
|
|
242
|
+
if (!config.hosts[host]) {
|
|
243
|
+
config.hosts[host] = { label: host };
|
|
244
|
+
}
|
|
245
|
+
config.activeHost = host;
|
|
246
|
+
saveConfig(config);
|
|
247
|
+
logger.info(`Active host set to ${host} after login`);
|
|
233
248
|
}
|
|
234
249
|
function persistDeviceTokens(host, tokens) {
|
|
235
250
|
const DEFAULT_EXPIRES_IN = 72e3;
|
|
@@ -255,9 +270,7 @@ function loginSummary(host, tokens) {
|
|
|
255
270
|
mcpToken: tokens.mcp_token ? tokens.mcp_token.slice(0, 8) + "..." : null
|
|
256
271
|
};
|
|
257
272
|
}
|
|
258
|
-
function
|
|
259
|
-
const override = process.env.TE_CLAUDE_BASE_URL;
|
|
260
|
-
if (override) return override.replace(/\/+$/, "");
|
|
273
|
+
function resolveLoginTeClaudeBase(host) {
|
|
261
274
|
const base = host.replace(/\/+$/, "");
|
|
262
275
|
const basePath = process.env.TE_CLAUDE_BASE_PATH || "/agent";
|
|
263
276
|
return base.endsWith(basePath) ? base : base + basePath;
|
|
@@ -265,6 +278,7 @@ function resolveTeClaudeBase(host) {
|
|
|
265
278
|
function registerAuth(program) {
|
|
266
279
|
const auth = program.command("auth").description("Authentication management");
|
|
267
280
|
auth.command("login").description("Log in to AE using the device code flow (cross-platform; --no-browser to print URL only)").option("--host <url>", HOST_OPTION_DESC).option("--no-browser", "Do not auto-open the browser; only print the authorization URL (headless / Linux)").option("--no-wait", "Request the device code and print the authorization URL as JSON, then exit without polling (for AI agents / split-flow). Resume with --device-code").option("--device-code <code>", "Resume a split-flow login: poll for the given device code until authorized, then save the token").action(async (opts) => {
|
|
281
|
+
const explicitHost = getExplicitAuthHostOverride(program, opts);
|
|
268
282
|
const host = resolveAuthHost(program, opts);
|
|
269
283
|
if (!host) {
|
|
270
284
|
printError("config", "No AE host configured.", "Run: ae-cli config set-host <url>");
|
|
@@ -283,13 +297,14 @@ function registerAuth(program) {
|
|
|
283
297
|
}
|
|
284
298
|
const noBrowser = !opts.browser;
|
|
285
299
|
const fmt = program.opts().format || "json";
|
|
286
|
-
const teClaudeBase =
|
|
300
|
+
const teClaudeBase = resolveLoginTeClaudeBase(host);
|
|
287
301
|
const emit = (msg) => process.stderr.write(`[ae-cli] ${msg}
|
|
288
302
|
`);
|
|
289
303
|
try {
|
|
290
304
|
if (opts.deviceCode) {
|
|
291
305
|
const tokens2 = await pollDeviceFlow(teClaudeBase, opts.deviceCode, {}, emit);
|
|
292
306
|
persistDeviceTokens(host, tokens2);
|
|
307
|
+
activateHostAfterLogin(host, explicitHost);
|
|
293
308
|
logger.info(`Device flow login successful for ${host} (resumed)`);
|
|
294
309
|
emit("Login successful! Token saved securely.");
|
|
295
310
|
printOutput(loginSummary(host, tokens2), fmt);
|
|
@@ -312,6 +327,7 @@ function registerAuth(program) {
|
|
|
312
327
|
}
|
|
313
328
|
const tokens = await runDeviceFlow(teClaudeBase, { noBrowser }, emit);
|
|
314
329
|
persistDeviceTokens(host, tokens);
|
|
330
|
+
activateHostAfterLogin(host, explicitHost);
|
|
315
331
|
logger.info(`Device flow login successful for ${host}`);
|
|
316
332
|
emit("Login successful! Token saved securely.");
|
|
317
333
|
printOutput(loginSummary(host, tokens), fmt);
|
|
@@ -396,7 +412,8 @@ function registerAuth(program) {
|
|
|
396
412
|
}
|
|
397
413
|
clearToken(host);
|
|
398
414
|
clear(host);
|
|
399
|
-
|
|
415
|
+
removeHost(host);
|
|
416
|
+
process.stderr.write(`[ae-cli] Token and config cleared for ${host}
|
|
400
417
|
`);
|
|
401
418
|
printOutput({ cleared: true, host }, program.opts().format || "json");
|
|
402
419
|
});
|
|
@@ -450,5 +467,7 @@ function registerAuth(program) {
|
|
|
450
467
|
});
|
|
451
468
|
}
|
|
452
469
|
export {
|
|
453
|
-
|
|
470
|
+
activateHostAfterLogin,
|
|
471
|
+
registerAuth,
|
|
472
|
+
resolveLoginTeClaudeBase
|
|
454
473
|
};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getMcpToken
|
|
3
|
+
} from "./chunk-DMMEPCST.js";
|
|
4
|
+
import {
|
|
5
|
+
PermissionError
|
|
6
|
+
} from "./chunk-NOO24N7W.js";
|
|
7
|
+
import {
|
|
8
|
+
safeJsonParse
|
|
9
|
+
} from "./chunk-6W4QOZAL.js";
|
|
10
|
+
|
|
11
|
+
// src/core/mcp-access.ts
|
|
12
|
+
function buildUrl(host, path, params = {}) {
|
|
13
|
+
const base = host.replace(/\/$/, "");
|
|
14
|
+
const p = path.startsWith("/") ? path : `/${path}`;
|
|
15
|
+
const url = new URL(`${base}${p}`);
|
|
16
|
+
for (const [key, value] of Object.entries(params)) {
|
|
17
|
+
if (value !== void 0 && value !== null) {
|
|
18
|
+
url.searchParams.set(key, String(value));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return url.toString();
|
|
22
|
+
}
|
|
23
|
+
function parseKbResponse(resp, text) {
|
|
24
|
+
if (resp.status === 403) {
|
|
25
|
+
let msg = "Permission denied for this resource (HTTP 403)";
|
|
26
|
+
try {
|
|
27
|
+
const d = safeJsonParse(text);
|
|
28
|
+
const m = d && (typeof d.error === "string" ? d.error : d.error?.message || d.message);
|
|
29
|
+
if (m && typeof m === "string") msg = m;
|
|
30
|
+
} catch {
|
|
31
|
+
}
|
|
32
|
+
throw new PermissionError(msg);
|
|
33
|
+
}
|
|
34
|
+
if (resp.status === 401) {
|
|
35
|
+
throw new Error(
|
|
36
|
+
`KB MCP token auth failed: HTTP ${resp.status} ${resp.statusText}`
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
const data = safeJsonParse(text);
|
|
40
|
+
if (data.return_code === -1001) {
|
|
41
|
+
throw new Error(
|
|
42
|
+
`KB MCP token auth failed: ${data.return_message || "unauthorized"} (code: ${data.return_code})`
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
if (data.return_code !== 0 && data.return_code !== void 0) {
|
|
46
|
+
throw new Error(
|
|
47
|
+
`AE API error: ${data.return_message || "unknown"} (code: ${data.return_code})`
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
if (data && typeof data === "object" && typeof data.error === "string" && data.error.trim() && data.return_code === void 0 && data.success === void 0) {
|
|
51
|
+
throw new Error(data.error);
|
|
52
|
+
}
|
|
53
|
+
return data.data !== void 0 ? data.data : data;
|
|
54
|
+
}
|
|
55
|
+
async function fetchWithMcpToken(input, init, mcpToken) {
|
|
56
|
+
const headers = new Headers(init.headers);
|
|
57
|
+
headers.set("mcp-token", mcpToken);
|
|
58
|
+
const resp = await fetch(input, { ...init, headers });
|
|
59
|
+
return parseKbResponse(resp, await resp.text());
|
|
60
|
+
}
|
|
61
|
+
async function getAuthHeaders(ctx) {
|
|
62
|
+
const mcpToken = await getMcpToken(ctx.host());
|
|
63
|
+
return { "mcp-token": mcpToken };
|
|
64
|
+
}
|
|
65
|
+
async function kbApi(ctx, method, path, params = {}, body) {
|
|
66
|
+
const host = ctx.host();
|
|
67
|
+
const mcpToken = await getMcpToken(host);
|
|
68
|
+
const upperMethod = method.toUpperCase();
|
|
69
|
+
return fetchWithMcpToken(
|
|
70
|
+
buildUrl(host, path, params),
|
|
71
|
+
{
|
|
72
|
+
method: upperMethod,
|
|
73
|
+
headers: {
|
|
74
|
+
"Content-Type": "application/json"
|
|
75
|
+
},
|
|
76
|
+
body: upperMethod === "GET" ? void 0 : JSON.stringify(body ?? {})
|
|
77
|
+
},
|
|
78
|
+
mcpToken
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
async function kbUpload(ctx, path, form, params = {}) {
|
|
82
|
+
const host = ctx.host();
|
|
83
|
+
const mcpToken = await getMcpToken(host);
|
|
84
|
+
return fetchWithMcpToken(
|
|
85
|
+
buildUrl(host, path, params),
|
|
86
|
+
{
|
|
87
|
+
method: "POST",
|
|
88
|
+
body: form
|
|
89
|
+
},
|
|
90
|
+
mcpToken
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export {
|
|
95
|
+
getAuthHeaders,
|
|
96
|
+
kbApi,
|
|
97
|
+
kbUpload
|
|
98
|
+
};
|
|
@@ -224,6 +224,15 @@ function assertUniqueHostLabel(config, label, excludeUrl) {
|
|
|
224
224
|
throw new Error(`Label already exists: ${label}. Rename the existing label first: ${duplicate[0]}`);
|
|
225
225
|
}
|
|
226
226
|
}
|
|
227
|
+
function removeHost(url) {
|
|
228
|
+
const config = loadConfig();
|
|
229
|
+
delete config.hosts[url];
|
|
230
|
+
if (config.activeHost === url) {
|
|
231
|
+
const remaining = Object.keys(config.hosts);
|
|
232
|
+
config.activeHost = remaining.length > 0 ? remaining[0] : "";
|
|
233
|
+
}
|
|
234
|
+
saveConfig(config);
|
|
235
|
+
}
|
|
227
236
|
function getConfigDir() {
|
|
228
237
|
return CONFIG_DIR;
|
|
229
238
|
}
|
|
@@ -240,5 +249,6 @@ export {
|
|
|
240
249
|
getActiveHost,
|
|
241
250
|
setActiveHost,
|
|
242
251
|
addHost,
|
|
252
|
+
removeHost,
|
|
243
253
|
getConfigDir
|
|
244
254
|
};
|
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
clearToken,
|
|
4
4
|
getToken,
|
|
5
5
|
resolveHost
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RSHMZ3LG.js";
|
|
7
7
|
import {
|
|
8
8
|
logger,
|
|
9
9
|
safeJsonParse
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-6W4QOZAL.js";
|
|
11
11
|
|
|
12
12
|
// src/core/client.ts
|
|
13
13
|
import WebSocket from "ws";
|
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getAnalysisMappingPathForClusterMode
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-PN3OS34E.js";
|
|
4
|
+
import {
|
|
5
|
+
PermissionError
|
|
6
|
+
} from "./chunk-NOO24N7W.js";
|
|
4
7
|
import {
|
|
5
8
|
getToken,
|
|
6
9
|
loadMcpToken
|
|
7
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-RSHMZ3LG.js";
|
|
8
11
|
import {
|
|
9
12
|
getActiveHost,
|
|
10
13
|
getFallbackMcpToken,
|
|
11
14
|
logger,
|
|
12
15
|
safeJsonParse
|
|
13
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-6W4QOZAL.js";
|
|
14
17
|
|
|
15
18
|
// src/core/mcp.ts
|
|
19
|
+
async function permissionMessage(resp) {
|
|
20
|
+
const text = await resp.text().catch(() => "");
|
|
21
|
+
try {
|
|
22
|
+
const d = safeJsonParse(text);
|
|
23
|
+
const msg = d && (d.error?.message || (typeof d.error === "string" ? d.error : void 0) || d.message);
|
|
24
|
+
if (msg && typeof msg === "string") return msg;
|
|
25
|
+
} catch {
|
|
26
|
+
}
|
|
27
|
+
return "Permission denied for this resource (HTTP 403)";
|
|
28
|
+
}
|
|
16
29
|
var MCP_PROTOCOL_VERSION = "2025-11-25";
|
|
17
30
|
var JSONRPC_VERSION = "2.0";
|
|
18
31
|
var serviceMappingMap = /* @__PURE__ */ new Map();
|
|
@@ -178,8 +191,11 @@ async function mcpRequest(url, method, params = {}, hostOverride) {
|
|
|
178
191
|
body: JSON.stringify(body)
|
|
179
192
|
});
|
|
180
193
|
if (!resp.ok) {
|
|
181
|
-
|
|
182
|
-
|
|
194
|
+
if (resp.status === 403) {
|
|
195
|
+
throw new PermissionError(await permissionMessage(resp));
|
|
196
|
+
}
|
|
197
|
+
if (resp.status === 401) {
|
|
198
|
+
logger.warn(`MCP request failed (HTTP 401) for ${hostUrl}, re-minting token`);
|
|
183
199
|
_mcpTokenCache.delete(hostUrl);
|
|
184
200
|
const fallbackToken = getFallbackMcpToken(hostUrl);
|
|
185
201
|
const newToken = fallbackToken ?? await generateMcpToken(hostUrl);
|
|
@@ -193,6 +209,9 @@ async function mcpRequest(url, method, params = {}, hostOverride) {
|
|
|
193
209
|
headers,
|
|
194
210
|
body: JSON.stringify(body)
|
|
195
211
|
});
|
|
212
|
+
if (retryResp.status === 403) {
|
|
213
|
+
throw new PermissionError(await permissionMessage(retryResp));
|
|
214
|
+
}
|
|
196
215
|
if (!retryResp.ok) {
|
|
197
216
|
throw new Error(`MCP HTTP error: ${retryResp.status} ${retryResp.statusText}`);
|
|
198
217
|
}
|
|
@@ -236,14 +255,36 @@ async function callMcpTool(url, toolName, args = {}, hostOverride) {
|
|
|
236
255
|
function parseMcpResult(result) {
|
|
237
256
|
if (result.content.length > 0 && result.content[0].type === "text") {
|
|
238
257
|
const text = result.content[0].text || "";
|
|
258
|
+
let parsed;
|
|
239
259
|
try {
|
|
240
|
-
|
|
260
|
+
parsed = safeJsonParse(text);
|
|
241
261
|
} catch {
|
|
242
262
|
return text;
|
|
243
263
|
}
|
|
264
|
+
const errMsg = mcpResultErrorMessage(parsed);
|
|
265
|
+
if (errMsg !== null) {
|
|
266
|
+
if (/no_auth|auth_error|permission|forbidden|unauthor|\u65e0\u6743/i.test(errMsg)) {
|
|
267
|
+
throw new PermissionError(errMsg);
|
|
268
|
+
}
|
|
269
|
+
throw new Error(errMsg);
|
|
270
|
+
}
|
|
271
|
+
return parsed;
|
|
244
272
|
}
|
|
245
273
|
return result;
|
|
246
274
|
}
|
|
275
|
+
function mcpResultErrorMessage(parsed) {
|
|
276
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return null;
|
|
277
|
+
if (parsed.success === true || parsed.ok === true) return null;
|
|
278
|
+
const e = parsed.error;
|
|
279
|
+
if (typeof e === "string" && e.trim()) return e;
|
|
280
|
+
if (e && typeof e === "object") {
|
|
281
|
+
const msg = typeof e.message === "string" && e.message || void 0;
|
|
282
|
+
const code = typeof e.code === "string" && e.code || void 0;
|
|
283
|
+
if (msg && code) return `${code}: ${msg}`;
|
|
284
|
+
if (msg || code) return msg || code;
|
|
285
|
+
}
|
|
286
|
+
return null;
|
|
287
|
+
}
|
|
247
288
|
|
|
248
289
|
export {
|
|
249
290
|
registerMcpMappings,
|
|
@@ -293,8 +293,33 @@ function writeSkillManifestEntries(manifestPath, entries) {
|
|
|
293
293
|
);
|
|
294
294
|
}
|
|
295
295
|
|
|
296
|
+
// src/commands/sync/validation.ts
|
|
297
|
+
var SKILL_SLUG_RE = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
298
|
+
var MCP_NAME_RE = /^[a-zA-Z][a-zA-Z0-9_-]*$/;
|
|
299
|
+
function isValidSkillSlug(slug) {
|
|
300
|
+
return slug.length > 0 && slug.length <= 48 && SKILL_SLUG_RE.test(slug);
|
|
301
|
+
}
|
|
302
|
+
function assertValidSkillSlug(slug) {
|
|
303
|
+
if (!isValidSkillSlug(slug)) {
|
|
304
|
+
throw new Error(
|
|
305
|
+
`Invalid Skill slug: ${slug}. Skill slugs may only contain lowercase letters, digits, and non-consecutive hyphens (-), must be at most 48 characters, and must not start or end with a hyphen`
|
|
306
|
+
);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
function isValidMcpName(name) {
|
|
310
|
+
return name.length >= 2 && name.length <= 64 && MCP_NAME_RE.test(name);
|
|
311
|
+
}
|
|
312
|
+
function assertValidMcpName(name) {
|
|
313
|
+
if (!isValidMcpName(name)) {
|
|
314
|
+
throw new Error(
|
|
315
|
+
`Invalid MCP name: ${name}. MCP names may only contain letters, digits, underscores, and hyphens, must be 2-64 characters, and must start with a letter`
|
|
316
|
+
);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
296
320
|
// src/commands/sync/scanners.ts
|
|
297
321
|
var SECRET_PATTERN = /TOKEN|SECRET|KEY|PASSWORD/i;
|
|
322
|
+
var MCP_MANIFEST_FILE = ".mcp-manifest.json";
|
|
298
323
|
function safeLstat(p) {
|
|
299
324
|
try {
|
|
300
325
|
return lstatSync(p);
|
|
@@ -360,6 +385,7 @@ function scanSkillsInDir(dir, source, workspacePath) {
|
|
|
360
385
|
if (!isDir) continue;
|
|
361
386
|
const filePath = join(slugDir, "SKILL.md");
|
|
362
387
|
if (!existsSync2(filePath)) continue;
|
|
388
|
+
assertValidSkillSlug(slug);
|
|
363
389
|
const file = readSkillFile(filePath);
|
|
364
390
|
if (!file) continue;
|
|
365
391
|
out.push({
|
|
@@ -389,23 +415,42 @@ function readJsonSafe(p) {
|
|
|
389
415
|
return null;
|
|
390
416
|
}
|
|
391
417
|
}
|
|
418
|
+
function isMcpManifestScope(value) {
|
|
419
|
+
return value === "personal" || value === "company" || value === "system";
|
|
420
|
+
}
|
|
421
|
+
function readMcpManifestScopes(workspaceDir) {
|
|
422
|
+
const parsed = readJsonSafe(join(workspaceDir, MCP_MANIFEST_FILE));
|
|
423
|
+
const scopes = /* @__PURE__ */ new Map();
|
|
424
|
+
if (!Array.isArray(parsed)) return scopes;
|
|
425
|
+
for (const item of parsed) {
|
|
426
|
+
if (!item || typeof item !== "object") continue;
|
|
427
|
+
const entry = item;
|
|
428
|
+
if (typeof entry.name !== "string" || !isMcpManifestScope(entry.scope)) continue;
|
|
429
|
+
if (scopes.has(entry.name)) continue;
|
|
430
|
+
scopes.set(entry.name, entry.scope);
|
|
431
|
+
}
|
|
432
|
+
return scopes;
|
|
433
|
+
}
|
|
392
434
|
function detectSecrets(env) {
|
|
393
435
|
if (!env) return false;
|
|
394
436
|
return Object.keys(env).some((k) => SECRET_PATTERN.test(k));
|
|
395
437
|
}
|
|
396
|
-
function parseMcpServers(servers, source, workspacePath, options = {
|
|
438
|
+
function parseMcpServers(servers, source, workspacePath, workspaceDir, options = {}) {
|
|
397
439
|
if (!servers || typeof servers !== "object") return [];
|
|
398
440
|
const out = [];
|
|
399
441
|
for (const [slug, raw] of Object.entries(servers)) {
|
|
400
442
|
if (!raw || typeof raw !== "object") continue;
|
|
401
|
-
if (options.
|
|
402
|
-
|
|
443
|
+
if (options.excludedNames?.has(slug)) continue;
|
|
444
|
+
assertValidMcpName(slug);
|
|
445
|
+
const rawTransport = raw.transport ?? raw.type;
|
|
446
|
+
const transport = rawTransport === "sse" ? "sse" : rawTransport === "http" || typeof raw.url === "string" ? "http" : "stdio";
|
|
403
447
|
const env = raw.env && typeof raw.env === "object" ? raw.env : void 0;
|
|
404
448
|
const headers = raw.headers && typeof raw.headers === "object" ? raw.headers : void 0;
|
|
405
449
|
out.push({
|
|
406
450
|
slug,
|
|
407
451
|
source,
|
|
408
452
|
workspacePath,
|
|
453
|
+
workspaceDir,
|
|
409
454
|
transport,
|
|
410
455
|
url: typeof raw.url === "string" ? raw.url : void 0,
|
|
411
456
|
command: typeof raw.command === "string" ? raw.command : void 0,
|
|
@@ -444,21 +489,45 @@ function scanMcps() {
|
|
|
444
489
|
if (!workspace) return [];
|
|
445
490
|
const out = [];
|
|
446
491
|
const scopedMcpJson = readJsonSafe(join(workspace.dir, ".mcp.json"));
|
|
447
|
-
|
|
492
|
+
const projectManifestScopes = readMcpManifestScopes(workspace.dir);
|
|
493
|
+
const excludedProjectMcps = new Set(
|
|
494
|
+
[...projectManifestScopes.entries()].filter(([, scope]) => scope === "system" || scope === "company").map(([name]) => name)
|
|
495
|
+
);
|
|
496
|
+
out.push(
|
|
497
|
+
...parseMcpServers(
|
|
498
|
+
scopedMcpJson?.mcpServers,
|
|
499
|
+
"project",
|
|
500
|
+
workspace.name,
|
|
501
|
+
workspace.dir,
|
|
502
|
+
{ excludedNames: excludedProjectMcps }
|
|
503
|
+
)
|
|
504
|
+
);
|
|
448
505
|
const workspaceClaudeJson = readJsonSafe(join(workspace.dir, ".claude", ".claude.json"));
|
|
449
506
|
out.push(
|
|
450
|
-
...parseMcpServers(
|
|
451
|
-
|
|
452
|
-
|
|
507
|
+
...parseMcpServers(
|
|
508
|
+
projectMcpServers(workspaceClaudeJson, workspace.dir),
|
|
509
|
+
"local",
|
|
510
|
+
workspace.name,
|
|
511
|
+
void 0
|
|
512
|
+
)
|
|
453
513
|
);
|
|
454
514
|
const globalClaudeJson = readJsonSafe(join(home, ".claude.json"));
|
|
455
515
|
out.push(
|
|
456
|
-
...parseMcpServers(
|
|
457
|
-
|
|
458
|
-
|
|
516
|
+
...parseMcpServers(
|
|
517
|
+
projectMcpServers(globalClaudeJson, workspace.dir),
|
|
518
|
+
"user",
|
|
519
|
+
void 0,
|
|
520
|
+
void 0
|
|
521
|
+
)
|
|
459
522
|
);
|
|
460
523
|
return out;
|
|
461
524
|
}
|
|
525
|
+
function splitPushableMcps(candidates) {
|
|
526
|
+
return {
|
|
527
|
+
supported: candidates.filter((mcp) => mcp.transport === "http" || mcp.transport === "sse"),
|
|
528
|
+
unsupportedStdio: candidates.filter((mcp) => mcp.transport === "stdio")
|
|
529
|
+
};
|
|
530
|
+
}
|
|
462
531
|
function describeSource(_c) {
|
|
463
532
|
return void 0;
|
|
464
533
|
}
|
|
@@ -471,8 +540,11 @@ export {
|
|
|
471
540
|
SKILL_MANIFEST_FILE,
|
|
472
541
|
readSkillManifestEntries,
|
|
473
542
|
writeSkillManifestEntries,
|
|
543
|
+
assertValidSkillSlug,
|
|
544
|
+
assertValidMcpName,
|
|
474
545
|
getCurrentWorkspace,
|
|
475
546
|
scanSkills,
|
|
476
547
|
scanMcps,
|
|
548
|
+
splitPushableMcps,
|
|
477
549
|
describeSource
|
|
478
550
|
};
|