@thinkingai/ae-cli 6.0.29 → 6.0.31

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 (398) hide show
  1. package/README.md +5 -7
  2. package/README.zh.md +5 -7
  3. package/dist/{auth-7TQRGLBC.js → auth-7H3HAAJ3.js} +10 -10
  4. package/dist/{capability-KVA55RMK.js → capability-SEH3JWLN.js} +49 -10
  5. package/dist/{capability-LKHLZQPD.js → capability-SQ2IWKP3.js} +49 -10
  6. package/dist/{chunk-GWZ5MYWE.js → chunk-6LEYLOV3.js} +25 -4
  7. package/dist/{chunk-THBBNYXI.js → chunk-DYOS6YY7.js} +100 -62
  8. package/dist/{chunk-CWZUGF2J.js → chunk-HL2AJQ4Q.js} +15 -0
  9. package/dist/{chunk-OJR23CIK.js → chunk-I4A62X3N.js} +100 -61
  10. package/dist/chunk-N2QORU5D.js +68 -0
  11. package/dist/{chunk-7QQ4233A.js → chunk-PKRD2IEM.js} +25 -4
  12. package/dist/chunk-TKQJQXWT.js +68 -0
  13. package/dist/{chunk-ZAOL36CG.js → chunk-TNW2CI4W.js} +46 -30
  14. package/dist/{config-ZVPARN4R.js → config-7UZWDE74.js} +25 -25
  15. package/dist/index.js +143 -46
  16. package/dist/{metadata-6CCFV4K5.js → metadata-W6JFFMBA.js} +6 -43
  17. package/dist/{metadata-PDOIWH5O.js → metadata-X62TKIVK.js} +6 -43
  18. package/dist/{raw-OHSUK42D.js → raw-CN542NGT.js} +8 -6
  19. package/dist/{sync-ULT5SECP.js → sync-ERNHDPB5.js} +1 -1
  20. package/dist/{te-agent-FAIBM3SA.js → te-agent-FCCWUDTJ.js} +1 -1
  21. package/dist/te-analysis-NJGNWZFC.js +4530 -0
  22. package/dist/te-analysis-YGV5V5EX.js +4530 -0
  23. package/dist/{te-common-SDB3O2QG.js → te-common-5NJLF3XG.js} +1 -1
  24. package/dist/{te-common-CFGQXTFV.js → te-common-7VTJZPII.js} +1 -1
  25. package/dist/{te-community-6A7LKYUH.js → te-community-PEZ2VEF7.js} +1 -1
  26. package/dist/{te-community-GMWFGILT.js → te-community-TSKJ652U.js} +1 -1
  27. package/dist/{te-dataops-Z53CTG2U.js → te-dataops-F36T656A.js} +32 -12
  28. package/dist/{te-dataops-6LIPYNGH.js → te-dataops-ZNJBQ6VT.js} +33 -12
  29. package/dist/{te-engage-M7JQSJDP.js → te-engage-BUWVSSSK.js} +398 -11
  30. package/dist/{te-engage-545HJL6J.js → te-engage-EPE3QKDE.js} +398 -11
  31. package/dist/{te-meta-FADFLTDM.js → te-meta-MAAUHFQO.js} +9 -9
  32. package/dist/{te-meta-PKT27OTN.js → te-meta-VKWNAWO4.js} +9 -9
  33. package/dist/{te-team-RG75PR5D.js → te-team-OKCOX7OE.js} +5 -5
  34. package/package.json +15 -7
  35. package/skills/ae-agent/SKILL.md +6 -8
  36. package/skills/ae-agent/references/accept-skill-share.md +2 -2
  37. package/skills/ae-agent/references/add-attachment.md +3 -3
  38. package/skills/ae-agent/references/add-mcp.md +2 -3
  39. package/skills/ae-agent/references/add-model.md +3 -5
  40. package/skills/ae-agent/references/add-skill.md +2 -3
  41. package/skills/ae-agent/references/approve-skill.md +2 -2
  42. package/skills/ae-agent/references/auto-provision-mcp-credentials.md +3 -3
  43. package/skills/ae-agent/references/cancel-skill-submission.md +2 -2
  44. package/skills/ae-agent/references/copy-skill.md +3 -3
  45. package/skills/ae-agent/references/create-agent.md +3 -4
  46. package/skills/ae-agent/references/create-automation.md +5 -9
  47. package/skills/ae-agent/references/del-agent.md +3 -2
  48. package/skills/ae-agent/references/del-attachment.md +3 -2
  49. package/skills/ae-agent/references/del-mcp.md +3 -2
  50. package/skills/ae-agent/references/del-model.md +3 -2
  51. package/skills/ae-agent/references/del-skill-asset.md +3 -3
  52. package/skills/ae-agent/references/del-skill-reference.md +3 -3
  53. package/skills/ae-agent/references/del-skill-script.md +3 -3
  54. package/skills/ae-agent/references/del-skill.md +3 -2
  55. package/skills/ae-agent/references/edit-skill.md +4 -4
  56. package/skills/ae-agent/references/mcp-auth-disconnect.md +2 -2
  57. package/skills/ae-agent/references/mcp-auth-start.md +3 -3
  58. package/skills/ae-agent/references/reject-skill-share.md +2 -2
  59. package/skills/ae-agent/references/reject-skill.md +2 -2
  60. package/skills/ae-agent/references/rescan-skills.md +2 -2
  61. package/skills/ae-agent/references/set-mcp-credential.md +3 -3
  62. package/skills/ae-agent/references/set-mcp-meta.md +2 -2
  63. package/skills/ae-agent/references/set-skill-meta.md +2 -2
  64. package/skills/ae-agent/references/share-skill.md +3 -3
  65. package/skills/ae-agent/references/submit-skill.md +3 -3
  66. package/skills/ae-agent/references/toggle-mcp.md +3 -3
  67. package/skills/ae-agent/references/toggle-model.md +3 -3
  68. package/skills/ae-agent/references/toggle-skill.md +3 -3
  69. package/skills/ae-agent/references/update-agent.md +2 -2
  70. package/skills/ae-agent/references/update-automation.md +6 -8
  71. package/skills/ae-agent/references/update-mcp.md +4 -4
  72. package/skills/ae-agent/references/update-model.md +2 -3
  73. package/skills/ae-agent/references/upload-skill-asset.md +3 -3
  74. package/skills/ae-agent/references/upload-skill-reference.md +3 -3
  75. package/skills/ae-agent/references/upload-skill-script.md +3 -3
  76. package/skills/ae-agent/references/upload-skill.md +6 -7
  77. package/skills/ae-analysis/SKILL.md +105 -512
  78. package/skills/ae-analysis/references/adhoc_export.md +71 -0
  79. package/skills/ae-analysis/references/adhoc_run.md +58 -0
  80. package/skills/ae-analysis/references/ai_models.md +459 -0
  81. package/skills/ae-analysis/references/analysis_data_retrieval.md +101 -0
  82. package/skills/ae-analysis/references/analysis_gateway_assets.md +72 -12
  83. package/skills/ae-analysis/references/analysis_interpretation.md +38 -0
  84. package/skills/ae-analysis/references/artifact_download.md +13 -7
  85. package/skills/ae-analysis/references/asset_abnormal_get.md +5 -5
  86. package/skills/ae-analysis/references/asset_abnormal_list.md +5 -5
  87. package/skills/ae-analysis/references/asset_authentication_list.md +5 -5
  88. package/skills/ae-analysis/references/asset_authentication_update.md +6 -6
  89. package/skills/ae-analysis/references/asset_batch_dashboard_schedule_freeze.md +26 -0
  90. package/skills/ae-analysis/references/asset_batch_delete.md +26 -0
  91. package/skills/ae-analysis/references/asset_batch_disable_auto_backup.md +26 -0
  92. package/skills/ae-analysis/references/asset_batch_disable_auto_update.md +26 -0
  93. package/skills/ae-analysis/references/asset_batch_handover.md +26 -0
  94. package/skills/ae-analysis/references/asset_batch_info_export.md +25 -0
  95. package/skills/ae-analysis/references/asset_batch_sql_export.md +25 -0
  96. package/skills/ae-analysis/references/asset_dependency_list.md +30 -0
  97. package/skills/ae-analysis/references/asset_export.md +30 -0
  98. package/skills/ae-analysis/references/asset_impact_list.md +30 -0
  99. package/skills/ae-analysis/references/asset_lineage_get.md +25 -0
  100. package/skills/ae-analysis/references/asset_list.md +30 -0
  101. package/skills/ae-analysis/references/asset_query_history_list.md +30 -0
  102. package/skills/ae-analysis/references/asset_recent_list.md +4 -4
  103. package/skills/ae-analysis/references/asset_search.md +4 -4
  104. package/skills/ae-analysis/references/asset_url_get.md +28 -0
  105. package/skills/ae-analysis/references/audience_models.md +42 -0
  106. package/skills/ae-analysis/references/batch_create_metadata.md +5 -1
  107. package/skills/ae-analysis/references/batch_edit_metadata.md +4 -1
  108. package/skills/ae-analysis/references/bi_panel_copy.md +1 -1
  109. package/skills/ae-analysis/references/bi_panel_create.md +1 -1
  110. package/skills/ae-analysis/references/bi_panel_delete.md +2 -0
  111. package/skills/ae-analysis/references/bi_panel_list.md +4 -2
  112. package/skills/ae-analysis/references/bi_panel_page_data_export.md +8 -4
  113. package/skills/ae-analysis/references/bi_panel_page_data_run.md +7 -3
  114. package/skills/ae-analysis/references/bi_panel_share.md +1 -1
  115. package/skills/ae-analysis/references/bi_panel_update.md +1 -1
  116. package/skills/ae-analysis/references/bi_panel_version_publish.md +1 -1
  117. package/skills/ae-analysis/references/cancel_query.md +4 -4
  118. package/skills/ae-analysis/references/command_index.md +209 -0
  119. package/skills/ae-analysis/references/create_alert.md +1 -1
  120. package/skills/ae-analysis/references/create_entity.md +1 -1
  121. package/skills/ae-analysis/references/create_metric.md +11 -15
  122. package/skills/ae-analysis/references/create_project_mark_time.md +2 -1
  123. package/skills/ae-analysis/references/create_virtual_event.md +10 -14
  124. package/skills/ae-analysis/references/create_virtual_property.md +1 -1
  125. package/skills/ae-analysis/references/dashboard_copy.md +1 -1
  126. package/skills/ae-analysis/references/dashboard_create.md +1 -1
  127. package/skills/ae-analysis/references/dashboard_daily_report_send.md +1 -1
  128. package/skills/ae-analysis/references/dashboard_daily_report_update.md +1 -1
  129. package/skills/ae-analysis/references/dashboard_definition_import.md +1 -1
  130. package/skills/ae-analysis/references/dashboard_delete.md +2 -0
  131. package/skills/ae-analysis/references/dashboard_freeze.md +1 -1
  132. package/skills/ae-analysis/references/dashboard_handover.md +1 -1
  133. package/skills/ae-analysis/references/dashboard_list.md +4 -2
  134. package/skills/ae-analysis/references/dashboard_report_add.md +15 -0
  135. package/skills/ae-analysis/references/dashboard_report_data_export.md +15 -7
  136. package/skills/ae-analysis/references/dashboard_report_data_run.md +15 -7
  137. package/skills/ae-analysis/references/dashboard_share.md +11 -2
  138. package/skills/ae-analysis/references/dashboard_update.md +12 -3
  139. package/skills/ae-analysis/references/datatable_columns_get.md +2 -2
  140. package/skills/ae-analysis/references/datatable_influence_list.md +2 -2
  141. package/skills/ae-analysis/references/datatable_version_get.md +2 -2
  142. package/skills/ae-analysis/references/datatable_version_list.md +2 -2
  143. package/skills/ae-analysis/references/delete_alert.md +8 -3
  144. package/skills/ae-analysis/references/delete_metric.md +8 -3
  145. package/skills/ae-analysis/references/delete_project_mark_times.md +5 -3
  146. package/skills/ae-analysis/references/delete_track_items.md +4 -3
  147. package/skills/ae-analysis/references/drilldown_user_events_export.md +20 -0
  148. package/skills/ae-analysis/references/drilldown_user_events_run.md +34 -0
  149. package/skills/ae-analysis/references/drilldown_users_export.md +17 -0
  150. package/skills/ae-analysis/references/drilldown_users_run.md +61 -0
  151. package/skills/ae-analysis/references/entity_detail_export.md +31 -0
  152. package/skills/ae-analysis/references/entity_detail_run.md +50 -0
  153. package/skills/ae-analysis/references/entity_id_import_options.md +20 -0
  154. package/skills/ae-analysis/references/event_changelog_list.md +2 -2
  155. package/skills/ae-analysis/references/event_create.md +4 -4
  156. package/skills/ae-analysis/references/event_delete.md +5 -4
  157. package/skills/ae-analysis/references/event_detail_export.md +31 -0
  158. package/skills/ae-analysis/references/event_detail_run.md +58 -0
  159. package/skills/ae-analysis/references/event_get.md +2 -2
  160. package/skills/ae-analysis/references/event_hide_update.md +3 -3
  161. package/skills/ae-analysis/references/event_influence_list.md +2 -2
  162. package/skills/ae-analysis/references/event_list.md +2 -2
  163. package/skills/ae-analysis/references/{super_metadata_export.md → event_property_bundle_export.md} +7 -7
  164. package/skills/ae-analysis/references/event_property_bundle_import.md +25 -0
  165. package/skills/ae-analysis/references/event_relation_update.md +4 -4
  166. package/skills/ae-analysis/references/event_update.md +2 -2
  167. package/skills/ae-analysis/references/exchange_config_update.md +2 -2
  168. package/skills/ae-analysis/references/exchange_rate_refresh.md +2 -2
  169. package/skills/ae-analysis/references/exchange_rule_list.md +2 -2
  170. package/skills/ae-analysis/references/exchange_rule_update.md +4 -4
  171. package/skills/ae-analysis/references/exchange_rule_validate.md +4 -4
  172. package/skills/ae-analysis/references/favorite_add.md +1 -1
  173. package/skills/ae-analysis/references/favorite_remove.md +1 -1
  174. package/skills/ae-analysis/references/folder_create.md +2 -3
  175. package/skills/ae-analysis/references/folder_share.md +2 -3
  176. package/skills/ae-analysis/references/generate_track_program.md +2 -1
  177. package/skills/ae-analysis/references/generate_track_sdk_sample.md +2 -1
  178. package/skills/ae-analysis/references/get_alert.md +4 -0
  179. package/skills/ae-analysis/references/get_alert_definition_schema.md +1 -0
  180. package/skills/ae-analysis/references/get_metric.md +4 -4
  181. package/skills/ae-analysis/references/get_project_config.md +1 -0
  182. package/skills/ae-analysis/references/get_resource_url.md +1 -0
  183. package/skills/ae-analysis/references/get_track_program.md +3 -0
  184. package/skills/ae-analysis/references/history_tag_batch_refresh.md +19 -0
  185. package/skills/ae-analysis/references/history_tag_clear.md +13 -0
  186. package/skills/ae-analysis/references/history_tag_data_drilldown_export.md +15 -0
  187. package/skills/ae-analysis/references/history_tag_data_drilldown_run.md +13 -0
  188. package/skills/ae-analysis/references/history_tag_data_export.md +15 -0
  189. package/skills/ae-analysis/references/history_tag_data_run.md +15 -0
  190. package/skills/ae-analysis/references/history_tag_list.md +11 -0
  191. package/skills/ae-analysis/references/history_tag_refresh.md +11 -0
  192. package/skills/ae-analysis/references/input_file_inspect.md +9 -0
  193. package/skills/ae-analysis/references/input_file_purpose_list.md +9 -0
  194. package/skills/ae-analysis/references/input_file_upload.md +11 -0
  195. package/skills/ae-analysis/references/list_alerts.md +3 -2
  196. package/skills/ae-analysis/references/list_entities.md +3 -2
  197. package/skills/ae-analysis/references/list_events.md +5 -5
  198. package/skills/ae-analysis/references/list_metrics.md +5 -5
  199. package/skills/ae-analysis/references/list_project_mark_times.md +2 -1
  200. package/skills/ae-analysis/references/list_project_users.md +1 -0
  201. package/skills/ae-analysis/references/list_properties.md +5 -5
  202. package/skills/ae-analysis/references/load_filters.md +3 -0
  203. package/skills/ae-analysis/references/metric_create.md +11 -6
  204. package/skills/ae-analysis/references/metric_delete.md +5 -4
  205. package/skills/ae-analysis/references/metric_get.md +2 -2
  206. package/skills/ae-analysis/references/metric_list.md +2 -2
  207. package/skills/ae-analysis/references/metric_update.md +12 -6
  208. package/skills/ae-analysis/references/operation_record_export.md +25 -0
  209. package/skills/ae-analysis/references/operation_record_list.md +31 -0
  210. package/skills/ae-analysis/references/project_space_create.md +2 -3
  211. package/skills/ae-analysis/references/project_space_list.md +3 -1
  212. package/skills/ae-analysis/references/project_space_share.md +2 -3
  213. package/skills/ae-analysis/references/property_changelog_list.md +2 -2
  214. package/skills/ae-analysis/references/property_create.md +4 -4
  215. package/skills/ae-analysis/references/property_delete.md +5 -4
  216. package/skills/ae-analysis/references/property_get.md +2 -2
  217. package/skills/ae-analysis/references/property_hide_update.md +3 -3
  218. package/skills/ae-analysis/references/property_influence_list.md +2 -2
  219. package/skills/ae-analysis/references/property_list.md +2 -2
  220. package/skills/ae-analysis/references/property_related_events.md +2 -2
  221. package/skills/ae-analysis/references/property_relation_update.md +4 -4
  222. package/skills/ae-analysis/references/property_update.md +2 -2
  223. package/skills/ae-analysis/references/public_link_create.md +1 -1
  224. package/skills/ae-analysis/references/public_link_delete.md +2 -0
  225. package/skills/ae-analysis/references/public_link_list.md +3 -1
  226. package/skills/ae-analysis/references/public_link_offline.md +1 -1
  227. package/skills/ae-analysis/references/public_link_update.md +1 -1
  228. package/skills/ae-analysis/references/query_cancel.md +1 -1
  229. package/skills/ae-analysis/references/query_create_result_cluster.md +47 -0
  230. package/skills/ae-analysis/references/report_abnormal_get.md +15 -0
  231. package/skills/ae-analysis/references/report_change_log_get.md +15 -0
  232. package/skills/ae-analysis/references/report_change_log_list.md +15 -0
  233. package/skills/ae-analysis/references/report_create.md +29 -0
  234. package/skills/ae-analysis/references/report_data_export.md +37 -0
  235. package/skills/ae-analysis/references/report_data_run.md +45 -0
  236. package/skills/ae-analysis/references/report_delete.md +17 -0
  237. package/skills/ae-analysis/references/report_get.md +21 -0
  238. package/skills/ae-analysis/references/report_list.md +17 -0
  239. package/skills/ae-analysis/references/report_list_export.md +15 -0
  240. package/skills/ae-analysis/references/report_update.md +22 -0
  241. package/skills/ae-analysis/references/report_version_rollback.md +15 -0
  242. package/skills/ae-analysis/references/rule_create.md +27 -0
  243. package/skills/ae-analysis/references/rule_delete.md +26 -0
  244. package/skills/ae-analysis/references/rule_list.md +24 -0
  245. package/skills/ae-analysis/references/rule_schema.md +24 -0
  246. package/skills/ae-analysis/references/rule_update.md +28 -0
  247. package/skills/ae-analysis/references/run_inspect.md +10 -4
  248. package/skills/ae-analysis/references/save_track_items.md +4 -1
  249. package/skills/ae-analysis/references/sql_table_columns.md +20 -0
  250. package/skills/ae-analysis/references/sql_table_list.md +33 -0
  251. package/skills/ae-analysis/references/update_alert.md +1 -1
  252. package/skills/ae-analysis/references/update_metric.md +11 -14
  253. package/skills/ae-analysis/references/update_project_mark_time.md +4 -3
  254. package/skills/ae-analysis/references/user_cluster_create.md +15 -0
  255. package/skills/ae-analysis/references/user_cluster_create_id.md +15 -0
  256. package/skills/ae-analysis/references/user_cluster_delete.md +13 -0
  257. package/skills/ae-analysis/references/user_cluster_get.md +11 -0
  258. package/skills/ae-analysis/references/user_cluster_list.md +15 -0
  259. package/skills/ae-analysis/references/user_cluster_member_export.md +15 -0
  260. package/skills/ae-analysis/references/user_cluster_member_list.md +19 -0
  261. package/skills/ae-analysis/references/user_cluster_models.md +87 -0
  262. package/skills/ae-analysis/references/user_cluster_refresh.md +11 -0
  263. package/skills/ae-analysis/references/user_cluster_update.md +13 -0
  264. package/skills/ae-analysis/references/user_cluster_update_id.md +15 -0
  265. package/skills/ae-analysis/references/user_tag_create.md +15 -0
  266. package/skills/ae-analysis/references/user_tag_create_id.md +15 -0
  267. package/skills/ae-analysis/references/user_tag_delete.md +13 -0
  268. package/skills/ae-analysis/references/user_tag_get.md +11 -0
  269. package/skills/ae-analysis/references/user_tag_list.md +17 -0
  270. package/skills/ae-analysis/references/user_tag_member_export.md +15 -0
  271. package/skills/ae-analysis/references/user_tag_member_list.md +19 -0
  272. package/skills/ae-analysis/references/user_tag_models.md +54 -0
  273. package/skills/ae-analysis/references/user_tag_refresh.md +11 -0
  274. package/skills/ae-analysis/references/user_tag_update.md +13 -0
  275. package/skills/ae-analysis/references/user_tag_update_id.md +15 -0
  276. package/skills/ae-analysis/references/virtual_event_create.md +4 -4
  277. package/skills/ae-analysis/references/virtual_event_delete.md +5 -4
  278. package/skills/ae-analysis/references/virtual_event_get.md +2 -2
  279. package/skills/ae-analysis/references/virtual_property_create.md +13 -6
  280. package/skills/ae-analysis/references/virtual_property_sql_rule_delete.md +5 -4
  281. package/skills/ae-analysis/references/virtual_property_sql_rule_update.md +13 -6
  282. package/skills/ae-analysis-global/SKILL.md +6 -8
  283. package/skills/ae-analysis-global/references/list_query_clusters.md +7 -6
  284. package/skills/ae-capability/SKILL.md +68 -15
  285. package/skills/ae-community/SKILL.md +2 -2
  286. package/skills/ae-data-integration-helper/SKILL.md +1 -1
  287. package/skills/ae-dataops/SKILL.md +1 -1
  288. package/skills/ae-engage/SKILL.md +38 -10
  289. package/skills/ae-engage/references/build-task-save-guide.md +11 -9
  290. package/skills/ae-engage/references/channel_touch_limits_list.md +29 -0
  291. package/skills/ae-engage/references/group-list.md +13 -0
  292. package/skills/ae-engage/references/operation-log-query.md +11 -0
  293. package/skills/ae-engage/references/ops-delete.md +14 -0
  294. package/skills/ae-engage/references/push-record-query.md +26 -0
  295. package/skills/ae-engage/references/save-flow.md +5 -4
  296. package/skills/ae-engage/references/save-task.md +24 -20
  297. package/skills/ae-engage/references/segment-list-query.md +18 -0
  298. package/skills/ae-engage/references/task-operation-log-query.md +23 -0
  299. package/skills/ae-engage/references/version-list.md +18 -0
  300. package/skills/ae-generate-tracking-code/SKILL.md +2 -2
  301. package/skills/ae-generate-tracking-code/references/snippet-delivery.md +2 -2
  302. package/skills/ae-generate-tracking-plan/SKILL.md +18 -13
  303. package/skills/ae-generate-tracking-plan/references/te-api.md +2 -1
  304. package/skills/ae-kb/SKILL.md +1 -1
  305. package/skills/ae-metadata/SKILL.md +9 -8
  306. package/skills/ae-metadata/references/metadata_data_table_csv_delete.md +1 -0
  307. package/skills/ae-metadata/references/metadata_data_table_csv_write.md +6 -6
  308. package/skills/ae-metadata/references/metadata_data_table_property_bindings_update.md +2 -2
  309. package/skills/ae-metadata/references/metadata_data_table_sql_delete.md +1 -0
  310. package/skills/ae-metadata/references/metadata_data_table_sql_write.md +21 -7
  311. package/skills/ae-metadata/references/metadata_property_dimension_table_bind_existing.md +3 -3
  312. package/skills/ae-metadata/references/metadata_property_dimension_table_create_and_bind_csv.md +4 -4
  313. package/skills/ae-team/SKILL.md +9 -9
  314. package/skills/ae-team/references/create.md +2 -2
  315. package/skills/ae-team/references/delete.md +3 -3
  316. package/skills/ae-team/references/run-cancel.md +3 -3
  317. package/skills/ae-team/references/run-chat.md +4 -4
  318. package/skills/ae-team/references/run-reply.md +3 -3
  319. package/skills/ae-team/references/run-start.md +4 -5
  320. package/skills/ae-team/references/run-watch.md +1 -1
  321. package/skills/ae-team/references/update.md +2 -2
  322. package/dist/chunk-P2JRP6HJ.js +0 -42
  323. package/dist/chunk-S5XN6KEX.js +0 -42
  324. package/dist/te-analysis-DDXGM7WM.js +0 -3188
  325. package/dist/te-analysis-HCDNYI7E.js +0 -3188
  326. package/dist/te-audience-ECFS4GF4.js +0 -600
  327. package/dist/te-audience-WO377T2J.js +0 -600
  328. package/skills/ae-analysis/references/build_attribution_analysis_qp.md +0 -62
  329. package/skills/ae-analysis/references/build_cluster_definition.md +0 -62
  330. package/skills/ae-analysis/references/build_distribution_analysis_qp.md +0 -67
  331. package/skills/ae-analysis/references/build_entity_details_sql.md +0 -58
  332. package/skills/ae-analysis/references/build_event_analysis_qp.md +0 -134
  333. package/skills/ae-analysis/references/build_event_details_sql.md +0 -61
  334. package/skills/ae-analysis/references/build_funnel_analysis_qp.md +0 -145
  335. package/skills/ae-analysis/references/build_heat_map_analysis_qp.md +0 -54
  336. package/skills/ae-analysis/references/build_interval_analysis_qp.md +0 -60
  337. package/skills/ae-analysis/references/build_path_analysis_qp.md +0 -53
  338. package/skills/ae-analysis/references/build_prop_analysis_qp.md +0 -124
  339. package/skills/ae-analysis/references/build_rank_list_analysis_qp.md +0 -63
  340. package/skills/ae-analysis/references/build_retention_analysis_qp.md +0 -143
  341. package/skills/ae-analysis/references/build_tag_definition.md +0 -65
  342. package/skills/ae-analysis/references/copy_dashboard.md +0 -33
  343. package/skills/ae-analysis/references/create_cluster.md +0 -69
  344. package/skills/ae-analysis/references/create_dashboard.md +0 -49
  345. package/skills/ae-analysis/references/create_id_cluster.md +0 -40
  346. package/skills/ae-analysis/references/create_id_tag.md +0 -39
  347. package/skills/ae-analysis/references/create_or_update_dashboard_note.md +0 -39
  348. package/skills/ae-analysis/references/create_public_access_link.md +0 -43
  349. package/skills/ae-analysis/references/create_report.md +0 -60
  350. package/skills/ae-analysis/references/create_result_cluster.md +0 -73
  351. package/skills/ae-analysis/references/create_space.md +0 -34
  352. package/skills/ae-analysis/references/create_tag.md +0 -61
  353. package/skills/ae-analysis/references/delete_cluster.md +0 -27
  354. package/skills/ae-analysis/references/delete_dashboard.md +0 -30
  355. package/skills/ae-analysis/references/delete_report.md +0 -27
  356. package/skills/ae-analysis/references/delete_tag.md +0 -27
  357. package/skills/ae-analysis/references/drilldown_user_events.md +0 -74
  358. package/skills/ae-analysis/references/drilldown_users.md +0 -80
  359. package/skills/ae-analysis/references/freeze_dashboards.md +0 -29
  360. package/skills/ae-analysis/references/get_analysis_query_schema.md +0 -71
  361. package/skills/ae-analysis/references/get_bi_panel_detail.md +0 -35
  362. package/skills/ae-analysis/references/get_cluster_definition_schema.md +0 -53
  363. package/skills/ae-analysis/references/get_clusters_by_name.md +0 -69
  364. package/skills/ae-analysis/references/get_filter_schema.md +0 -33
  365. package/skills/ae-analysis/references/get_groupby_schema.md +0 -33
  366. package/skills/ae-analysis/references/get_report_definition.md +0 -37
  367. package/skills/ae-analysis/references/get_table_columns.md +0 -37
  368. package/skills/ae-analysis/references/get_tag_definition_schema.md +0 -49
  369. package/skills/ae-analysis/references/get_tags_by_name.md +0 -69
  370. package/skills/ae-analysis/references/list_bi_panels.md +0 -35
  371. package/skills/ae-analysis/references/list_cluster_members.md +0 -45
  372. package/skills/ae-analysis/references/list_clusters.md +0 -46
  373. package/skills/ae-analysis/references/list_dashboards.md +0 -43
  374. package/skills/ae-analysis/references/list_public_access_links.md +0 -41
  375. package/skills/ae-analysis/references/list_reports.md +0 -43
  376. package/skills/ae-analysis/references/list_spaces.md +0 -27
  377. package/skills/ae-analysis/references/list_tag_members.md +0 -46
  378. package/skills/ae-analysis/references/list_tags.md +0 -44
  379. package/skills/ae-analysis/references/move_dashboard.md +0 -33
  380. package/skills/ae-analysis/references/query_adhoc.md +0 -141
  381. package/skills/ae-analysis/references/query_bi_panel_data.md +0 -58
  382. package/skills/ae-analysis/references/query_dashboard_detail.md +0 -35
  383. package/skills/ae-analysis/references/query_dashboard_report_data.md +0 -63
  384. package/skills/ae-analysis/references/query_entity_details.md +0 -63
  385. package/skills/ae-analysis/references/query_event_details.md +0 -66
  386. package/skills/ae-analysis/references/query_report_data.md +0 -99
  387. package/skills/ae-analysis/references/refresh_cluster.md +0 -31
  388. package/skills/ae-analysis/references/refresh_tag.md +0 -31
  389. package/skills/ae-analysis/references/super_metadata_import.md +0 -24
  390. package/skills/ae-analysis/references/update_cluster.md +0 -61
  391. package/skills/ae-analysis/references/update_dashboard.md +0 -45
  392. package/skills/ae-analysis/references/update_id_cluster.md +0 -36
  393. package/skills/ae-analysis/references/update_id_tag.md +0 -37
  394. package/skills/ae-analysis/references/update_public_access_link.md +0 -41
  395. package/skills/ae-analysis/references/update_report.md +0 -35
  396. package/skills/ae-analysis/references/update_tag.md +0 -61
  397. package/skills/ae-analysis-intent/SKILL.md +0 -132
  398. package/skills/ae-metadata/references/metadata_input_file_upload.md +0 -29
package/README.md CHANGED
@@ -84,7 +84,6 @@ ae-cli auth logout
84
84
  | Domain | Commands | Description |
85
85
  |--------|----------|-------------|
86
86
  | `analysis` | 30+ | Analysis workflows: alerts, reports, dashboards, ad-hoc/drilldown, entity/event details, analysis schema |
87
- | `analysis_audience` | 10+ | Audience operations: clusters, tags, and cluster/tag definition schema |
88
87
  | `analysis_meta` | 20+ | Metadata governance: events/properties, metrics, virtual metadata, project config, tracking plan, mark times, entity catalog |
89
88
  | `engage` | 40+ | Hermes Engage MCP: channels, tasks, configs, flows, strategies |
90
89
  | `dataops_repo` | 1 | DataOps repo utilities: space discovery |
@@ -124,9 +123,10 @@ Retrieval primitives for external agents (`+index` → `+grep` → `+read`); the
124
123
  |--------|-------------|---------|
125
124
  | `--host <url>` | Override active AE host URL | from config |
126
125
  | `--format <json\|table>` | Output format | json |
127
- | `--jq <expr>` | Filter expression | - |
128
- | `--dry-run` | Preview request | false |
129
- | `--yes` | Skip confirmation | false |
126
+ | `--jq <expr>` | jq 1.8 expression (jq-wasm) over command payload before output envelope | - |
127
+ | `--validate` | Fix params: capability gateway `/validate` only (curated gateway commands). Do not combine with `--dry-run` | false |
128
+ | `--dry-run` | Confirm ready to run: capability gateway `/dry-run` (or local transport preview). Do not combine with `--validate` | false |
129
+ | `--yes` | Skip high-risk write confirmation | false |
130
130
  | `--no-update-check` | Skip checking for newer ae-cli versions | false |
131
131
 
132
132
  ## Skills
@@ -188,7 +188,7 @@ ae-cli is built with:
188
188
  - **TypeScript** (~8000 lines of code)
189
189
  - **Commander.js** for CLI framework
190
190
  - **WebSocket** for MCP server integration
191
- - **Node.js** runtime (v18+)
191
+ - **Node.js** runtime (v20+)
192
192
 
193
193
  The project structure:
194
194
  ```
@@ -200,7 +200,6 @@ src/
200
200
  ├── auth.ts
201
201
  ├── config.ts
202
202
  ├── te-analysis/
203
- ├── te-audience/
204
203
  ├── te-meta/
205
204
  ├── te-engage/
206
205
  ├── te-dataops/
@@ -213,7 +212,6 @@ src/
213
212
 
214
213
  ```bash
215
214
  npm run verify:analysis-tools
216
- npm run verify:analysis-audience-tools
217
215
  npm run verify:analysis-meta-tools
218
216
  npm run verify:analysis-common-tools
219
217
  ```
package/README.zh.md CHANGED
@@ -84,7 +84,6 @@ ae-cli auth logout
84
84
  | 域 | 命令数 | 描述 |
85
85
  |---|---|---|
86
86
  | `analysis` | 30+ | 分析工作流:告警、报表、仪表板、即时分析/下钻、实体/事件详情、分析模型 |
87
- | `analysis_audience` | 10+ | 受众运营:分群、标签及其定义模型 |
88
87
  | `analysis_meta` | 20+ | 元数据治理:事件/属性、指标、虚拟元数据、项目配置、埋点方案、标记时间、实体目录 |
89
88
  | `engage` | 40+ | Hermes Engage MCP:渠道、任务、配置、流程、策略 |
90
89
  | `dataops_repo` | 1 | DataOps 仓库辅助:空间发现 |
@@ -125,9 +124,10 @@ ae-cli auth logout
125
124
  |---|---|---|
126
125
  | `--host <url>` | 覆盖当前 AE 主机 URL | 从配置读取 |
127
126
  | `--format <json\|table>` | 输出格式 | json |
128
- | `--jq <expr>` | 过滤表达式 | - |
129
- | `--dry-run` | 预览请求 | false |
130
- | `--yes` | 跳过确认 | false |
127
+ | `--jq <expr>` | jq 1.8 表达式(jq-wasm),作用于命令业务结果,再包进输出信封 | - |
128
+ | `--validate` | 改对参数:仅能力网关 `/validate`(精选网关命令)。勿与 `--dry-run` 同用 | false |
129
+ | `--dry-run` | 确认可以跑:能力网关 `/dry-run`(或其它传输的请求预览)。勿与 `--validate` 同用 | false |
130
+ | `--yes` | 跳过高风险写操作确认 | false |
131
131
  | `--no-update-check` | 跳过 ae-cli 新版本检查 | false |
132
132
 
133
133
  ## Skills
@@ -189,7 +189,7 @@ ae-cli 基于:
189
189
  - **TypeScript**(约 8000 行代码)
190
190
  - **Commander.js** 作为 CLI 框架
191
191
  - **WebSocket** 用于 MCP 服务器集成
192
- - **Node.js** 运行时(v18+)
192
+ - **Node.js** 运行时(v20+)
193
193
 
194
194
  项目结构:
195
195
  ```
@@ -201,7 +201,6 @@ src/
201
201
  ├── auth.ts
202
202
  ├── config.ts
203
203
  ├── te-analysis/
204
- ├── te-audience/
205
204
  ├── te-meta/
206
205
  ├── te-engage/
207
206
  ├── te-dataops/
@@ -214,7 +213,6 @@ src/
214
213
 
215
214
  ```bash
216
215
  npm run verify:analysis-tools
217
- npm run verify:analysis-audience-tools
218
216
  npm run verify:analysis-meta-tools
219
217
  npm run verify:analysis-common-tools
220
218
  ```
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  printError,
3
3
  printOutput
4
- } from "./chunk-ZAOL36CG.js";
4
+ } from "./chunk-TNW2CI4W.js";
5
5
  import {
6
6
  clearCliToken,
7
7
  mintCliToken
@@ -302,12 +302,12 @@ function registerAuth(program) {
302
302
  activateHostAfterLogin(host, explicitHost);
303
303
  logger.info(`Device flow login successful for ${host} (resumed)`);
304
304
  emit("Login successful! Token saved securely.");
305
- printOutput(loginSummary(host, tokens2), fmt);
305
+ await printOutput(loginSummary(host, tokens2), fmt);
306
306
  return;
307
307
  }
308
308
  if (opts.wait === false) {
309
309
  const authResp = await authorizeDevice(teClaudeBase);
310
- printOutput(
310
+ await printOutput(
311
311
  {
312
312
  device_code: authResp.device_code,
313
313
  user_code: authResp.user_code,
@@ -325,7 +325,7 @@ function registerAuth(program) {
325
325
  activateHostAfterLogin(host, explicitHost);
326
326
  logger.info(`Device flow login successful for ${host}`);
327
327
  emit("Login successful! Token saved securely.");
328
- printOutput(loginSummary(host, tokens), fmt);
328
+ await printOutput(loginSummary(host, tokens), fmt);
329
329
  } catch (err) {
330
330
  if (err instanceof DeviceFlowUnsupportedError) {
331
331
  printError(
@@ -342,13 +342,13 @@ function registerAuth(program) {
342
342
  auth.command("status").description("Show authentication status for a host (--host or active host)").option("--host <url>", HOST_OPTION_DESC).action(async (opts) => {
343
343
  const host = resolveAuthHost(program, opts);
344
344
  if (!host) {
345
- printOutput({ authenticated: false, host: "(none)", hint: "Run: ae-cli config set-host <url>" }, program.opts().format || "json");
345
+ await printOutput({ authenticated: false, host: "(none)", hint: "Run: ae-cli config set-host <url>" }, program.opts().format || "json");
346
346
  return;
347
347
  }
348
348
  const secureEntry = load(host);
349
349
  if (secureEntry) {
350
350
  const pastStaticExpiry = new Date(secureEntry.accessExpiresAt).getTime() < Date.now();
351
- printOutput(
351
+ await printOutput(
352
352
  {
353
353
  authenticated: true,
354
354
  host,
@@ -364,7 +364,7 @@ function registerAuth(program) {
364
364
  }
365
365
  const fallbackCliToken = getFallbackCliToken(host);
366
366
  if (fallbackCliToken) {
367
- printOutput(
367
+ await printOutput(
368
368
  {
369
369
  authenticated: true,
370
370
  host,
@@ -376,9 +376,9 @@ function registerAuth(program) {
376
376
  );
377
377
  return;
378
378
  }
379
- printOutput({ authenticated: false, host, source: "none" }, program.opts().format || "json");
379
+ await printOutput({ authenticated: false, host, source: "none" }, program.opts().format || "json");
380
380
  });
381
- auth.command("logout").description("Clear stored credentials (access token, CLI token, and host config) for a host (--host or active host)").option("--host <url>", HOST_OPTION_DESC).action((opts) => {
381
+ auth.command("logout").description("Clear stored credentials (access token, CLI token, and host config) for a host (--host or active host)").option("--host <url>", HOST_OPTION_DESC).action(async (opts) => {
382
382
  const host = resolveAuthHost(program, opts);
383
383
  if (!host) {
384
384
  printError("config", "No AE host configured.", "Run: ae-cli config set-host <url>");
@@ -389,7 +389,7 @@ function registerAuth(program) {
389
389
  removeHost(host);
390
390
  process.stderr.write(`[ae-cli] Credentials and config cleared for ${host}
391
391
  `);
392
- printOutput({ cleared: true, host }, program.opts().format || "json");
392
+ await printOutput({ cleared: true, host }, program.opts().format || "json");
393
393
  });
394
394
  }
395
395
  export {
@@ -2,20 +2,21 @@ import {
2
2
  normalizeRiskLevel,
3
3
  requiresConfirmation
4
4
  } from "./chunk-OO6XR6LK.js";
5
- import {
6
- printError,
7
- printOutput
8
- } from "./chunk-ZAOL36CG.js";
9
5
  import {
10
6
  findGatewayDomain
11
- } from "./chunk-CWZUGF2J.js";
7
+ } from "./chunk-HL2AJQ4Q.js";
12
8
  import {
13
9
  CapabilityGatewayError,
14
10
  dryRunCapability,
15
11
  executeCapability,
16
12
  inspectCapability,
17
- listCapabilities
18
- } from "./chunk-OJR23CIK.js";
13
+ listCapabilities,
14
+ validateCapability
15
+ } from "./chunk-I4A62X3N.js";
16
+ import {
17
+ printError,
18
+ printOutput
19
+ } from "./chunk-TNW2CI4W.js";
19
20
  import {
20
21
  PermissionError
21
22
  } from "./chunk-NOO24N7W.js";
@@ -135,7 +136,31 @@ function registerCapability(program) {
135
136
  return inspectCapability(host, gatewayDomain, capabilityId);
136
137
  });
137
138
  }).addHelpText("after", "\nExample:\n ae-cli capability inspect analysis.dashboard.list");
138
- capability.command("dry-run").description("Validate and preview one capability invocation without executing it").argument("<capability-id>", "Capability ID, such as analysis.query.export").option("--domain <domain>", "Override the capability namespace used for gateway routing").option("--input <json-or-path>", "Input JSON object, file path, @<path>, or - for stdin").action(async (capabilityId, opts) => {
139
+ capability.command("validate").description(
140
+ "Validate and normalize capability input only (schema/params). Does not execute business logic. Use when crafting complex payloads (nested objects, qp, share/member payloads) before dry-run/run. Success data: valid, capability_id, normalized_input. Unlike dry-run, does not return risk/output_mode/supports_cancel preview."
141
+ ).argument("<capability-id>", "Capability ID, such as metadata.data_table.sql_write").option("--domain <domain>", "Override the capability namespace used for gateway routing").option("--input <json-or-path>", "Input JSON object, file path, @<path>, or - for stdin").action(async (capabilityId, opts) => {
142
+ await executeAndPrint(program, async (host) => {
143
+ const gatewayDomain = resolveCapabilityGatewayDomain(capabilityId, opts.domain);
144
+ return validateCapability(host, gatewayDomain, capabilityId, parseCapabilityInput(opts.input));
145
+ });
146
+ }).addHelpText(
147
+ "after",
148
+ `
149
+ When to use:
150
+ Prefer validate while iterating complex input (required fields, types, qp shape), then run.
151
+ Prefer dry-run alone when you need risk / output mode / cancelability or a delete gate.
152
+ Motto: validate = fix params; dry-run = confirm ready to run.
153
+ Do not stack validate + dry-run on the same final input by default (dry-run already validates params).
154
+ Neither mutates business data. Curated gateway commands: global --validate / --dry-run.
155
+
156
+ Examples:
157
+ ae-cli capability validate metadata.data_table.sql_write --input '{"project_id":1,"operation":"create",...}'
158
+ ae-cli metadata data-table sql-write --project-id 1 ... --validate
159
+ ae-cli capability validate analysis.project_space.create --input input.json`
160
+ );
161
+ capability.command("dry-run").description(
162
+ "Full pre-execution confirmation without running business logic: validates/normalizes input and returns risk, output_mode, and supports_cancel. Use alone when you need that preview or a delete gate (do not stack after validate on the same final input by default). Global --dry-run on curated/capability run also hits this endpoint."
163
+ ).argument("<capability-id>", "Capability ID, such as analysis.query.export").option("--domain <domain>", "Override the capability namespace used for gateway routing").option("--input <json-or-path>", "Input JSON object, file path, @<path>, or - for stdin").action(async (capabilityId, opts) => {
139
164
  await executeAndPrint(program, async (host) => {
140
165
  const gatewayDomain = resolveCapabilityGatewayDomain(capabilityId, opts.domain);
141
166
  return dryRunCapability(host, gatewayDomain, capabilityId, parseCapabilityInput(opts.input));
@@ -151,6 +176,15 @@ Examples:
151
176
  await executeAndPrint(program, async (host, globalOpts) => {
152
177
  const gatewayDomain = resolveCapabilityGatewayDomain(capabilityId, opts.domain);
153
178
  const input = parseCapabilityInput(opts.input);
179
+ if (globalOpts.validate && globalOpts.dryRun) {
180
+ throw new CapabilityCommandValidationError(
181
+ "Cannot combine --validate and --dry-run.",
182
+ "Use --validate to fix parameters; use --dry-run as the pre-execution confirmation."
183
+ );
184
+ }
185
+ if (globalOpts.validate) {
186
+ return validateCapability(host, gatewayDomain, capabilityId, input);
187
+ }
154
188
  if (globalOpts.dryRun) {
155
189
  return dryRunCapability(host, gatewayDomain, capabilityId, input);
156
190
  }
@@ -172,7 +206,7 @@ Examples:
172
206
  `
173
207
  Examples:
174
208
  ae-cli capability run analysis.dashboard.list --input '{"project_id":1}'
175
- ae-cli capability run analysis.dashboard.list --input input.json --yes`
209
+ ae-cli capability run analysis.dashboard.list --input input.json`
176
210
  );
177
211
  }
178
212
  async function executeAndPrint(program, action) {
@@ -186,9 +220,14 @@ async function executeAndPrint(program, action) {
186
220
  try {
187
221
  const result = await action(host, globalOpts);
188
222
  if (result !== void 0) {
189
- printOutput(result, globalOpts.format ?? "json", globalOpts.jq);
223
+ await printOutput(result, globalOpts.format ?? "json", globalOpts.jq);
190
224
  }
191
225
  } catch (error) {
226
+ if (error?.type === "validation" && String(error?.message || "").includes("--jq")) {
227
+ printError("validation", error.message, error.hint);
228
+ process.exitCode = 1;
229
+ return;
230
+ }
192
231
  printCapabilityError(error);
193
232
  process.exitCode = 1;
194
233
  }
@@ -2,20 +2,21 @@ import {
2
2
  normalizeRiskLevel,
3
3
  requiresConfirmation
4
4
  } from "./chunk-OO6XR6LK.js";
5
- import {
6
- printError,
7
- printOutput
8
- } from "./chunk-ZAOL36CG.js";
9
5
  import {
10
6
  findGatewayDomain
11
- } from "./chunk-CWZUGF2J.js";
7
+ } from "./chunk-HL2AJQ4Q.js";
12
8
  import {
13
9
  CapabilityGatewayError,
14
10
  dryRunCapability,
15
11
  executeCapability,
16
12
  inspectCapability,
17
- listCapabilities
18
- } from "./chunk-THBBNYXI.js";
13
+ listCapabilities,
14
+ validateCapability
15
+ } from "./chunk-DYOS6YY7.js";
16
+ import {
17
+ printError,
18
+ printOutput
19
+ } from "./chunk-TNW2CI4W.js";
19
20
  import {
20
21
  PermissionError
21
22
  } from "./chunk-NOO24N7W.js";
@@ -135,7 +136,31 @@ function registerCapability(program) {
135
136
  return inspectCapability(host, gatewayDomain, capabilityId);
136
137
  });
137
138
  }).addHelpText("after", "\nExample:\n ae-cli capability inspect analysis.dashboard.list");
138
- capability.command("dry-run").description("Validate and preview one capability invocation without executing it").argument("<capability-id>", "Capability ID, such as analysis.query.export").option("--domain <domain>", "Override the capability namespace used for gateway routing").option("--input <json-or-path>", "Input JSON object, file path, @<path>, or - for stdin").action(async (capabilityId, opts) => {
139
+ capability.command("validate").description(
140
+ "Validate and normalize capability input only (schema/params). Does not execute business logic. Use when crafting complex payloads (nested objects, qp, share/member payloads) before dry-run/run. Success data: valid, capability_id, normalized_input. Unlike dry-run, does not return risk/output_mode/supports_cancel preview."
141
+ ).argument("<capability-id>", "Capability ID, such as metadata.data_table.sql_write").option("--domain <domain>", "Override the capability namespace used for gateway routing").option("--input <json-or-path>", "Input JSON object, file path, @<path>, or - for stdin").action(async (capabilityId, opts) => {
142
+ await executeAndPrint(program, async (host) => {
143
+ const gatewayDomain = resolveCapabilityGatewayDomain(capabilityId, opts.domain);
144
+ return validateCapability(host, gatewayDomain, capabilityId, parseCapabilityInput(opts.input));
145
+ });
146
+ }).addHelpText(
147
+ "after",
148
+ `
149
+ When to use:
150
+ Prefer validate while iterating complex input (required fields, types, qp shape), then run.
151
+ Prefer dry-run alone when you need risk / output mode / cancelability or a delete gate.
152
+ Motto: validate = fix params; dry-run = confirm ready to run.
153
+ Do not stack validate + dry-run on the same final input by default (dry-run already validates params).
154
+ Neither mutates business data. Curated gateway commands: global --validate / --dry-run.
155
+
156
+ Examples:
157
+ ae-cli capability validate metadata.data_table.sql_write --input '{"project_id":1,"operation":"create",...}'
158
+ ae-cli metadata data-table sql-write --project-id 1 ... --validate
159
+ ae-cli capability validate analysis.project_space.create --input input.json`
160
+ );
161
+ capability.command("dry-run").description(
162
+ "Full pre-execution confirmation without running business logic: validates/normalizes input and returns risk, output_mode, and supports_cancel. Use alone when you need that preview or a delete gate (do not stack after validate on the same final input by default). Global --dry-run on curated/capability run also hits this endpoint."
163
+ ).argument("<capability-id>", "Capability ID, such as analysis.query.export").option("--domain <domain>", "Override the capability namespace used for gateway routing").option("--input <json-or-path>", "Input JSON object, file path, @<path>, or - for stdin").action(async (capabilityId, opts) => {
139
164
  await executeAndPrint(program, async (host) => {
140
165
  const gatewayDomain = resolveCapabilityGatewayDomain(capabilityId, opts.domain);
141
166
  return dryRunCapability(host, gatewayDomain, capabilityId, parseCapabilityInput(opts.input));
@@ -151,6 +176,15 @@ Examples:
151
176
  await executeAndPrint(program, async (host, globalOpts) => {
152
177
  const gatewayDomain = resolveCapabilityGatewayDomain(capabilityId, opts.domain);
153
178
  const input = parseCapabilityInput(opts.input);
179
+ if (globalOpts.validate && globalOpts.dryRun) {
180
+ throw new CapabilityCommandValidationError(
181
+ "Cannot combine --validate and --dry-run.",
182
+ "Use --validate to fix parameters; use --dry-run as the pre-execution confirmation."
183
+ );
184
+ }
185
+ if (globalOpts.validate) {
186
+ return validateCapability(host, gatewayDomain, capabilityId, input);
187
+ }
154
188
  if (globalOpts.dryRun) {
155
189
  return dryRunCapability(host, gatewayDomain, capabilityId, input);
156
190
  }
@@ -172,7 +206,7 @@ Examples:
172
206
  `
173
207
  Examples:
174
208
  ae-cli capability run analysis.dashboard.list --input '{"project_id":1}'
175
- ae-cli capability run analysis.dashboard.list --input input.json --yes`
209
+ ae-cli capability run analysis.dashboard.list --input input.json`
176
210
  );
177
211
  }
178
212
  async function executeAndPrint(program, action) {
@@ -186,9 +220,14 @@ async function executeAndPrint(program, action) {
186
220
  try {
187
221
  const result = await action(host, globalOpts);
188
222
  if (result !== void 0) {
189
- printOutput(result, globalOpts.format ?? "json", globalOpts.jq);
223
+ await printOutput(result, globalOpts.format ?? "json", globalOpts.jq);
190
224
  }
191
225
  } catch (error) {
226
+ if (error?.type === "validation" && String(error?.message || "").includes("--jq")) {
227
+ printError("validation", error.message, error.hint);
228
+ process.exitCode = 1;
229
+ return;
230
+ }
192
231
  printCapabilityError(error);
193
232
  process.exitCode = 1;
194
233
  }
@@ -168,6 +168,16 @@ async function callMcpTool(url, toolName, args = {}, hostOverride) {
168
168
  };
169
169
  }
170
170
  function parseMcpResult(result) {
171
+ if (result.isError) {
172
+ const firstText = result.content.find((item) => item.type === "text")?.text || "";
173
+ let errorMessage = firstText.trim() || "MCP tool call failed";
174
+ try {
175
+ const parsed = safeJsonParse(firstText);
176
+ errorMessage = mcpResultErrorMessage(parsed) || errorMessage;
177
+ } catch {
178
+ }
179
+ throwMcpError(errorMessage);
180
+ }
171
181
  if (result.content.length > 0 && result.content[0].type === "text") {
172
182
  const text = result.content[0].text || "";
173
183
  let parsed;
@@ -178,10 +188,7 @@ function parseMcpResult(result) {
178
188
  }
179
189
  const errMsg = mcpResultErrorMessage(parsed);
180
190
  if (errMsg !== null) {
181
- if (/no_auth|auth_error|permission|forbidden|unauthor|\u65e0\u6743/i.test(errMsg)) {
182
- throw new PermissionError(errMsg);
183
- }
184
- throw new Error(errMsg);
191
+ throwMcpError(errMsg);
185
192
  }
186
193
  return parsed;
187
194
  }
@@ -190,6 +197,7 @@ function parseMcpResult(result) {
190
197
  function mcpResultErrorMessage(parsed) {
191
198
  if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return null;
192
199
  if (parsed.success === true || parsed.ok === true) return null;
200
+ const explicitlyFailed = parsed.success === false || parsed.ok === false;
193
201
  const e = parsed.error;
194
202
  if (typeof e === "string" && e.trim()) return e;
195
203
  if (e && typeof e === "object") {
@@ -198,8 +206,21 @@ function mcpResultErrorMessage(parsed) {
198
206
  if (msg && code) return `${code}: ${msg}`;
199
207
  if (msg || code) return msg || code;
200
208
  }
209
+ if (explicitlyFailed) {
210
+ const msg = typeof parsed.message === "string" && parsed.message.trim() ? parsed.message.trim() : void 0;
211
+ const codeValue = parsed.errorCode ?? parsed.error_code ?? parsed.code;
212
+ const code = typeof codeValue === "string" && codeValue.trim() ? codeValue.trim() : void 0;
213
+ if (msg && code) return `${code}: ${msg}`;
214
+ return msg || code || "MCP tool call failed";
215
+ }
201
216
  return null;
202
217
  }
218
+ function throwMcpError(message) {
219
+ if (/no_auth|auth_error|permission|forbidden|unauthor|\u65e0\u6743/i.test(message)) {
220
+ throw new PermissionError(message);
221
+ }
222
+ throw new Error(message);
223
+ }
203
224
 
204
225
  export {
205
226
  registerMcpMappings,