@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.
Files changed (360) hide show
  1. package/README.md +1 -16
  2. package/README.zh.md +1 -16
  3. package/dist/{auth-H2376DEF.js → auth-DYC2BGLM.js} +2 -2
  4. package/dist/{auth-5NSDQFQB.js → auth-GHBMJ5ZR.js} +31 -12
  5. package/dist/{chunk-CLJF7MQA.js → chunk-2DUEAXV3.js} +1 -1
  6. package/dist/chunk-5OC7CYCG.js +98 -0
  7. package/dist/{chunk-SRJIAOBN.js → chunk-6W4QOZAL.js} +10 -0
  8. package/dist/{chunk-LU7SXK4Q.js → chunk-BJX3GXWC.js} +2 -2
  9. package/dist/{chunk-WCHI7725.js → chunk-DMMEPCST.js} +47 -6
  10. package/dist/{chunk-IMBKVXKY.js → chunk-EGEIXA2Z.js} +82 -10
  11. package/dist/{chunk-AD5V3ZPJ.js → chunk-I5CRVM2S.js} +98 -10
  12. package/dist/chunk-NOO24N7W.js +11 -0
  13. package/dist/{chunk-GSJGPNKK.js → chunk-PN3OS34E.js} +1 -1
  14. package/dist/{chunk-CAQYQA4R.js → chunk-RSHMZ3LG.js} +15 -1
  15. package/dist/{client-FCMK3XEK.js → client-2UJ63MVQ.js} +3 -3
  16. package/dist/{config-64G36TJL.js → config-NCUGK6NS.js} +3 -3
  17. package/dist/index.js +2549 -29
  18. package/dist/{model-EZ6K7FXI.js → model-SJSOZTRS.js} +5 -7
  19. package/dist/{raw-VEF3D6UD.js → raw-7NVWSVJP.js} +4 -4
  20. package/dist/{sync-NRODEVNH.js → sync-GRVO4K3U.js} +120 -23
  21. package/dist/{te-agent-7U7JLJKU.js → te-agent-KZRIEN4N.js} +468 -47
  22. package/dist/{te-analysis-A2OSGHQ4.js → te-analysis-VAR4KUOK.js} +145 -28
  23. package/dist/{te-audience-LI67PPGO.js → te-audience-KMKYI2YJ.js} +23 -14
  24. package/dist/{te-common-35WVU3C5.js → te-common-WNCZB7R7.js} +5 -4
  25. package/dist/{te-community-LEAP6PWT.js → te-community-JEEFXPB3.js} +11 -10
  26. package/dist/{te-dataops-N2LGZBOX.js → te-dataops-GD3XBYCS.js} +33 -32
  27. package/dist/{te-engage-H7C72Z46.js → te-engage-4XHCTS6I.js} +5 -4
  28. package/dist/{te-kb-I2OKTBAI.js → te-kb-B62KFP2A.js} +97 -7
  29. package/dist/{te-meta-HBTIEDRO.js → te-meta-EPZGQN56.js} +10 -9
  30. package/dist/{te-team-EM5OWRQL.js → te-team-YY24VORI.js} +16 -12
  31. package/dist/tracking/i18n/resources/cli/en.json +153 -0
  32. package/dist/tracking/i18n/resources/cli/ja.json +153 -0
  33. package/dist/tracking/i18n/resources/cli/ko.json +153 -0
  34. package/dist/tracking/i18n/resources/cli/zh.json +153 -0
  35. package/package.json +9 -3
  36. package/skills/ae-agent/SKILL.md +66 -26
  37. package/skills/ae-analysis/SKILL.md +108 -8
  38. package/skills/ae-analysis/references/cancel_query.md +39 -0
  39. package/skills/ae-analysis/references/drilldown_user_events.md +4 -2
  40. package/skills/ae-analysis/references/drilldown_users.md +4 -2
  41. package/skills/ae-analysis/references/get_bi_panel_detail.md +35 -0
  42. package/skills/ae-analysis/references/list_alerts.md +1 -1
  43. package/skills/ae-analysis/references/list_bi_panels.md +35 -0
  44. package/skills/ae-analysis/references/list_cluster_members.md +4 -1
  45. package/skills/ae-analysis/references/list_dashboards.md +1 -1
  46. package/skills/ae-analysis/references/list_entities.md +1 -1
  47. package/skills/ae-analysis/references/list_events.md +1 -1
  48. package/skills/ae-analysis/references/list_metrics.md +1 -1
  49. package/skills/ae-analysis/references/list_project_mark_times.md +1 -1
  50. package/skills/ae-analysis/references/list_properties.md +1 -1
  51. package/skills/ae-analysis/references/list_public_access_links.md +1 -1
  52. package/skills/ae-analysis/references/list_reports.md +1 -1
  53. package/skills/ae-analysis/references/list_tag_members.md +4 -1
  54. package/skills/ae-analysis/references/query_adhoc.md +6 -5
  55. package/skills/ae-analysis/references/query_bi_panel_data.md +58 -0
  56. package/skills/ae-analysis/references/query_dashboard_report_data.md +4 -1
  57. package/skills/ae-analysis/references/query_entity_details.md +5 -2
  58. package/skills/ae-analysis/references/query_event_details.md +4 -1
  59. package/skills/ae-analysis/references/query_report_data.md +2 -2
  60. package/skills/ae-analysis-global/SKILL.md +3 -1
  61. package/skills/ae-analysis-intent/SKILL.md +132 -0
  62. package/skills/ae-data-integration-helper/SKILL.md +242 -0
  63. package/skills/ae-data-integration-helper/references/android_sdk_faq.md +179 -0
  64. package/skills/ae-data-integration-helper/references/c_sdk_compilation.md +83 -0
  65. package/skills/ae-data-integration-helper/references/c_sdk_faq.md +416 -0
  66. package/skills/ae-data-integration-helper/references/cocoscreator_sdk_faq.md +123 -0
  67. package/skills/ae-data-integration-helper/references/cpp_server_sdk_faq.md +365 -0
  68. package/skills/ae-data-integration-helper/references/index.md +56 -0
  69. package/skills/ae-data-integration-helper/references/ios_sdk_faq.md +118 -0
  70. package/skills/ae-data-integration-helper/references/java_sdk_faq.md +406 -0
  71. package/skills/ae-data-integration-helper/references/javascript_sdk_faq.md +129 -0
  72. package/skills/ae-data-integration-helper/references/logbus2_guide.md +309 -0
  73. package/skills/ae-data-integration-helper/references/logbus2_parser_plugin.md +348 -0
  74. package/skills/ae-data-integration-helper/references/minigame_sdk_faq.md +115 -0
  75. package/skills/ae-data-integration-helper/references/miniprogram_sdk_faq.md +118 -0
  76. package/skills/ae-data-integration-helper/references/python_sdk_faq.md +232 -0
  77. package/skills/ae-data-integration-helper/references/restful_api_notes.md +74 -0
  78. package/skills/ae-data-integration-helper/references/sdk_log_guide.md +316 -0
  79. package/skills/ae-data-integration-helper/references/sdk_usage_notes.md +107 -0
  80. package/skills/ae-data-integration-helper/references/unity_sdk_faq.md +115 -0
  81. package/skills/ae-generate-tracking-code/SKILL.md +629 -0
  82. package/skills/ae-generate-tracking-code/references/autotrack-enum.md +183 -0
  83. package/skills/ae-generate-tracking-code/references/client-sdk-insert.md +202 -0
  84. package/skills/ae-generate-tracking-code/references/datax-config.md +43 -0
  85. package/skills/ae-generate-tracking-code/references/debug-script.md +102 -0
  86. package/skills/ae-generate-tracking-code/references/logbus-config.md +200 -0
  87. package/skills/ae-generate-tracking-code/references/modes.md +83 -0
  88. package/skills/ae-generate-tracking-code/references/restful-call.md +36 -0
  89. package/skills/ae-generate-tracking-code/references/sdk-index.md +128 -0
  90. package/skills/ae-generate-tracking-code/references/server-sdk-insert.md +206 -0
  91. package/skills/ae-generate-tracking-code/references/snippet-delivery.md +394 -0
  92. package/skills/ae-generate-tracking-code/references/te-api.md +181 -0
  93. package/skills/ae-generate-tracking-plan/SKILL.md +1083 -0
  94. package/skills/ae-generate-tracking-plan/references/autotrack-events.md +273 -0
  95. package/skills/ae-generate-tracking-plan/references/business-dimension-mapping.md +425 -0
  96. package/skills/ae-generate-tracking-plan/references/te-api.md +100 -0
  97. package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +152 -0
  98. package/skills/ae-kb/SKILL.md +38 -5
  99. 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
  100. 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
  101. 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
  102. 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
  103. package/tracking-plan-template/RPG/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +72 -0
  104. package/tracking-plan-template/RPG/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
  105. 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
  106. 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
  107. package/tracking-plan-template/Slots/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +80 -0
  108. package/tracking-plan-template/Slots/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
  109. 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
  110. 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
  111. package/tracking-plan-template/TE/345/256/230/346/226/271/346/250/241/346/235/277_dataTrackSample.md +40 -0
  112. package/tracking-plan-template/TE/345/256/230/346/226/271/346/250/241/346/235/277_dataTrackSample.xlsx +0 -0
  113. 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
  114. 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
  115. 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
  116. 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
  117. 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
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. 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
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. 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
  139. package/wiki/te-docs/index.md +225 -0
  140. package/wiki/te-docs/raw/advanced-data-type/first-event-check.md +66 -0
  141. package/wiki/te-docs/raw/advanced-data-type/updated-event.md +87 -0
  142. package/wiki/te-docs/raw/advanced-data-type.md +16 -0
  143. package/wiki/te-docs/raw/data-ingestion-guide/about-gdpr.md +55 -0
  144. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/automatic-event-tracking.md +431 -0
  145. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/debugging-and-logging.md +49 -0
  146. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/multi-instance.md +66 -0
  147. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/preset-properties.md +466 -0
  148. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/third-party-integration.md +127 -0
  149. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced.md +513 -0
  150. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/compliance.md +24 -0
  151. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/release-notes.md +177 -0
  152. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android.md +228 -0
  153. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c/c-advanced.md +419 -0
  154. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c/release-notes.md +45 -0
  155. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c.md +110 -0
  156. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/client-side-sdk-faq.md +52 -0
  157. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp/cpp-advanced.md +366 -0
  158. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp/release-notes.md +103 -0
  159. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp.md +201 -0
  160. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/compliance.md +26 -0
  161. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/automatically-track-events.md +117 -0
  162. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/debugging-and-logging.md +47 -0
  163. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/preset-properties.md +52 -0
  164. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced.md +267 -0
  165. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/release-notes.md +82 -0
  166. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter.md +139 -0
  167. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/compliance.md +26 -0
  168. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/automatically-track-events.md +121 -0
  169. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/debugging-and-logging.md +54 -0
  170. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/preset-properties.md +18 -0
  171. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced.md +305 -0
  172. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/release-notes.md +79 -0
  173. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native.md +137 -0
  174. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/release-notes.md +24 -0
  175. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/automatically-track-events.md +54 -0
  176. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/debugging-and-logging.md +53 -0
  177. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/multi-instance.md +42 -0
  178. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/preset-properties.md +119 -0
  179. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/support-native.md +81 -0
  180. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced.md +331 -0
  181. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app.md +156 -0
  182. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform.md +12 -0
  183. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/automatic-event-tracking.md +29 -0
  184. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/debugging-and-logging.md +47 -0
  185. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/multi-instance.md +21 -0
  186. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/preset-properties.md +249 -0
  187. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced.md +301 -0
  188. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/compliance.md +24 -0
  189. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/release-notes.md +51 -0
  190. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x.md +281 -0
  191. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/automatic-event-tracking.md +70 -0
  192. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/debugging-and-logging.md +57 -0
  193. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/native-support.md +104 -0
  194. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/preset-properties.md +91 -0
  195. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance.md +374 -0
  196. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/compliance.md +35 -0
  197. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/release-notes.md +109 -0
  198. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator.md +170 -0
  199. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/compliance.md +28 -0
  200. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/automatic-event-tracking.md +29 -0
  201. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/debugging-and-logging.md +58 -0
  202. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/preset-properties.md +43 -0
  203. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced.md +204 -0
  204. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/release-notes.md +29 -0
  205. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona.md +269 -0
  206. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/compliance.md +24 -0
  207. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/release-notes.md +177 -0
  208. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/automatic-event-tracking.md +119 -0
  209. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/debugging-and-logging.md +47 -0
  210. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/multi-instance.md +50 -0
  211. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/native-pluggable.md +43 -0
  212. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/preset-properties.md +212 -0
  213. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/third-party-integration.md +77 -0
  214. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced.md +396 -0
  215. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity.md +176 -0
  216. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/compliance.md +24 -0
  217. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/release-notes.md +81 -0
  218. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/automatic-event-tracking.md +79 -0
  219. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/debugging-and-logging.md +31 -0
  220. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/preset-properties.md +25 -0
  221. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/third-party-integrations.md +141 -0
  222. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced.md +278 -0
  223. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal.md +190 -0
  224. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine.md +14 -0
  225. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/h5-and-app-sdk-connection.md +147 -0
  226. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/instant-app-and-game.md +24 -0
  227. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/compliance.md +24 -0
  228. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/automatic-event-tracking.md +272 -0
  229. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/debugging-and-logging.md +77 -0
  230. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/multi-instance.md +142 -0
  231. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/preset-properties.md +484 -0
  232. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/third-party-integrations.md +132 -0
  233. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced.md +682 -0
  234. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/release-notes.md +163 -0
  235. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios.md +304 -0
  236. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/compliance.md +29 -0
  237. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/automatic-event-tracking.md +136 -0
  238. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/debugging-and-logging.md +48 -0
  239. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/multi-instance.md +50 -0
  240. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/preset-properties.md +132 -0
  241. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced.md +462 -0
  242. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/release-notes.md +107 -0
  243. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript.md +208 -0
  244. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced/debugging-and-logging.md +62 -0
  245. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced/preset-properties.md +118 -0
  246. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced.md +556 -0
  247. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos.md +231 -0
  248. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk.md +25 -0
  249. package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/filebeat-logstash-user-guide.md +610 -0
  250. package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/logbus2-user-guide.md +1215 -0
  251. package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/ta-datax-writer-plugin-user-guide.md +278 -0
  252. package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools.md +15 -0
  253. package/wiki/te-docs/raw/data-ingestion-guide/privacy-policy.md +38 -0
  254. package/wiki/te-docs/raw/data-ingestion-guide/restful-api-user-guide.md +155 -0
  255. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging-FM9Cwz.md +37 -0
  256. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging-RSyfw7.md +41 -0
  257. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging.md +89 -0
  258. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties-OxzWw.md +126 -0
  259. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties-VuE3wr.md +126 -0
  260. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties.md +126 -0
  261. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced-IauKwI.md +175 -0
  262. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced-YAilwk.md +210 -0
  263. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced.md +211 -0
  264. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes-PVazwa.md +62 -0
  265. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes-TADbwY.md +50 -0
  266. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes.md +69 -0
  267. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c-V2W3wv.md +131 -0
  268. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c-Zf9Jwl.md +179 -0
  269. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c.md +189 -0
  270. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced/debugging-and-logging.md +38 -0
  271. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced/preset-properties.md +126 -0
  272. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced.md +113 -0
  273. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/release-notes.md +34 -0
  274. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang.md +155 -0
  275. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced/debugging-and-logging.md +42 -0
  276. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced/preset-properties.md +126 -0
  277. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced.md +157 -0
  278. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/release-notes.md +72 -0
  279. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang.md +148 -0
  280. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced/debugging-and-logging.md +49 -0
  281. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced/preset-properties.md +126 -0
  282. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced.md +223 -0
  283. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/release-notes.md +88 -0
  284. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java.md +174 -0
  285. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced/debugging-and-logging.md +46 -0
  286. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced/preset-properties.md +126 -0
  287. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced.md +182 -0
  288. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/release-notes.md +61 -0
  289. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua.md +121 -0
  290. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced/debugging-and-logging.md +55 -0
  291. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced/preset-properties.md +126 -0
  292. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced.md +225 -0
  293. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/release-notes.md +45 -0
  294. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs.md +141 -0
  295. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced/debugging-and-logging.md +41 -0
  296. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced/preset-properties.md +126 -0
  297. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced.md +216 -0
  298. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/release-notes.md +45 -0
  299. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php.md +173 -0
  300. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced/debugging-and-logging.md +40 -0
  301. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced/preset-properties.md +126 -0
  302. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced.md +206 -0
  303. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/release-notes.md +51 -0
  304. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python.md +116 -0
  305. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/release-notes.md +44 -0
  306. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/debugging-and-logging.md +47 -0
  307. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/preset-properties.md +126 -0
  308. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced.md +189 -0
  309. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby.md +142 -0
  310. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk.md +22 -0
  311. package/wiki/te-docs/raw/data-ingestion-guide/thinkingdata-privacy-policy.md +37 -0
  312. package/wiki/te-docs/raw/data-ingestion-guide.md +48 -0
  313. package/wiki/te-docs/raw/preparations-before-data-ingestion/data-rules.md +396 -0
  314. package/wiki/te-docs/raw/preparations-before-data-ingestion/preset-properties-and-system-fields.md +957 -0
  315. package/wiki/te-docs/raw/preparations-before-data-ingestion/user-identification-rules.md +723 -0
  316. package/wiki/te-docs/raw/preparations-before-data-ingestion.md +203 -0
  317. 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
  318. 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
  319. 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
  320. 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
  321. 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
  322. 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
  323. package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony.md +172 -0
  324. 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
  325. 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
  326. 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
  327. 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
  328. 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
  329. 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
  330. 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
  331. 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
  332. 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
  333. 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
  334. 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
  335. 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
  336. 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
  337. 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
  338. 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
  339. 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
  340. 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
  341. 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
  342. 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
  343. 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
  344. 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
  345. 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
  346. 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
  347. 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
  348. 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
  349. 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
  350. 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
  351. 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
  352. 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
  353. package/wiki/te-docs/schema.md +16 -0
  354. package/wiki/te-docs/synthesis/batch-ingest-comparison.md +324 -0
  355. package/wiki/te-docs/synthesis/js-sdk-cheatsheet.md +538 -0
  356. package/wiki/te-docs/synthesis/restful-api-reference.md +363 -0
  357. package/wiki/te-docs/synthesis/sdk-selection.md +372 -0
  358. package/wiki/te-docs/synthesis/server-sdk-overview.md +449 -0
  359. package/dist/chunk-KAEZTSXN.js +0 -99
  360. 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
- # First run — interactive host setup + auto-login
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
@@ -7,8 +7,8 @@ import {
7
7
  saveToken,
8
8
  setTokenManual,
9
9
  validateToken
10
- } from "./chunk-CAQYQA4R.js";
11
- import "./chunk-SRJIAOBN.js";
10
+ } from "./chunk-RSHMZ3LG.js";
11
+ import "./chunk-6W4QOZAL.js";
12
12
  export {
13
13
  clearToken,
14
14
  getAuthStatus,
@@ -1,13 +1,14 @@
1
1
  import {
2
2
  printError,
3
3
  printOutput
4
- } from "./chunk-CLJF7MQA.js";
4
+ } from "./chunk-2DUEAXV3.js";
5
5
  import {
6
6
  clearMcpToken,
7
7
  setMcpTokenManual,
8
8
  validateMcpToken
9
- } from "./chunk-WCHI7725.js";
10
- import "./chunk-GSJGPNKK.js";
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-CAQYQA4R.js";
21
+ } from "./chunk-RSHMZ3LG.js";
21
22
  import {
22
23
  loadConfig,
23
24
  logger,
25
+ removeHost,
24
26
  saveConfig
25
- } from "./chunk-SRJIAOBN.js";
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(opts.host || program.opts().host);
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 resolveTeClaudeBase(host) {
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 = resolveTeClaudeBase(host);
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
- process.stderr.write(`[ae-cli] Token cleared for ${host}
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
- registerAuth
470
+ activateHostAfterLogin,
471
+ registerAuth,
472
+ resolveLoginTeClaudeBase
454
473
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  logger
3
- } from "./chunk-SRJIAOBN.js";
3
+ } from "./chunk-6W4QOZAL.js";
4
4
 
5
5
  // src/framework/output.ts
6
6
  import Table from "cli-table3";
@@ -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-CAQYQA4R.js";
6
+ } from "./chunk-RSHMZ3LG.js";
7
7
  import {
8
8
  logger,
9
9
  safeJsonParse
10
- } from "./chunk-SRJIAOBN.js";
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-GSJGPNKK.js";
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-CAQYQA4R.js";
10
+ } from "./chunk-RSHMZ3LG.js";
8
11
  import {
9
12
  getActiveHost,
10
13
  getFallbackMcpToken,
11
14
  logger,
12
15
  safeJsonParse
13
- } from "./chunk-SRJIAOBN.js";
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
- logger.warn(`MCP request failed (HTTP ${resp.status}) for ${hostUrl}, re-minting token`);
182
- if (resp.status === 401 || resp.status === 403) {
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
- return safeJsonParse(text);
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 = { filterScope: true }) {
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.filterScope && (raw._scope === "system" || raw._scope === "company")) continue;
402
- const transport = raw.type === "http" || raw.transport === "http" || typeof raw.url === "string" ? "http" : "stdio";
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
- out.push(...parseMcpServers(scopedMcpJson?.mcpServers, "workspace", workspace.name, { filterScope: true }));
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(projectMcpServers(workspaceClaudeJson, workspace.dir), "workspace", workspace.name, {
451
- filterScope: false
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(projectMcpServers(globalClaudeJson, workspace.dir), "global", void 0, {
457
- filterScope: false
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
  };