@thinkingai/ae-cli 6.0.27 → 6.0.29

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 (111) hide show
  1. package/dist/capability-KVA55RMK.js +227 -0
  2. package/dist/capability-LKHLZQPD.js +227 -0
  3. package/dist/chunk-CWZUGF2J.js +26 -0
  4. package/dist/{chunk-YNQFYBDB.js → chunk-OJR23CIK.js} +12 -0
  5. package/dist/chunk-OO6XR6LK.js +26 -0
  6. package/dist/{chunk-C4DH76LX.js → chunk-P2JRP6HJ.js} +4 -21
  7. package/dist/{chunk-LG5YT7P7.js → chunk-S5XN6KEX.js} +4 -21
  8. package/dist/{chunk-BXMXMUD7.js → chunk-THBBNYXI.js} +12 -0
  9. package/dist/index.js +22 -11
  10. package/dist/{metadata-IPSPQBX3.js → metadata-6CCFV4K5.js} +11 -8
  11. package/dist/{metadata-N5REJ7R7.js → metadata-PDOIWH5O.js} +11 -8
  12. package/dist/{te-agent-QLIVKRUN.js → te-agent-FAIBM3SA.js} +5 -5
  13. package/dist/{te-analysis-QMZ2UH7F.js → te-analysis-DDXGM7WM.js} +1239 -470
  14. package/dist/{te-analysis-2U5EPXQC.js → te-analysis-HCDNYI7E.js} +1239 -470
  15. package/dist/{te-audience-XMRMVD2V.js → te-audience-ECFS4GF4.js} +11 -10
  16. package/dist/{te-audience-PVMKQAFH.js → te-audience-WO377T2J.js} +11 -10
  17. package/dist/{te-engage-AGREUOW7.js → te-engage-545HJL6J.js} +4 -4
  18. package/dist/{te-engage-MIIUKY6M.js → te-engage-M7JQSJDP.js} +4 -4
  19. package/dist/{te-kb-KQJ53M3A.js → te-kb-NT33UHAE.js} +1 -1
  20. package/dist/{te-meta-QLANJ4B4.js → te-meta-FADFLTDM.js} +3 -3
  21. package/dist/{te-meta-TOA6FWDE.js → te-meta-PKT27OTN.js} +3 -3
  22. package/dist/{te-team-TQGMNHQQ.js → te-team-RG75PR5D.js} +1 -1
  23. package/package.json +2 -1
  24. package/skills/ae-agent/SKILL.md +4 -3
  25. package/skills/ae-analysis/SKILL.md +88 -17
  26. package/skills/ae-analysis/references/analysis_gateway_assets.md +49 -14
  27. package/skills/ae-analysis/references/asset_abnormal_get.md +27 -0
  28. package/skills/ae-analysis/references/asset_abnormal_list.md +24 -0
  29. package/skills/ae-analysis/references/asset_authentication_list.md +23 -0
  30. package/skills/ae-analysis/references/asset_authentication_update.md +24 -0
  31. package/skills/ae-analysis/references/asset_recent_list.md +24 -0
  32. package/skills/ae-analysis/references/asset_search.md +24 -0
  33. package/skills/ae-analysis/references/bi_panel_get.md +5 -0
  34. package/skills/ae-analysis/references/bi_panel_share.md +6 -0
  35. package/skills/ae-analysis/references/bi_panel_update.md +4 -1
  36. package/skills/ae-analysis/references/bi_panel_version_get.md +23 -0
  37. package/skills/ae-analysis/references/bi_panel_version_publish.md +20 -0
  38. package/skills/ae-analysis/references/build_event_analysis_qp.md +1 -1
  39. package/skills/ae-analysis/references/build_funnel_analysis_qp.md +1 -1
  40. package/skills/ae-analysis/references/build_prop_analysis_qp.md +1 -1
  41. package/skills/ae-analysis/references/build_retention_analysis_qp.md +1 -1
  42. package/skills/ae-analysis/references/cancel_query.md +1 -1
  43. package/skills/ae-analysis/references/dashboard_daily_report_send.md +6 -1
  44. package/skills/ae-analysis/references/dashboard_report_data_export.md +6 -0
  45. package/skills/ae-analysis/references/dashboard_report_data_run.md +6 -0
  46. package/skills/ae-analysis/references/datatable_columns_get.md +24 -0
  47. package/skills/ae-analysis/references/datatable_influence_list.md +24 -0
  48. package/skills/ae-analysis/references/datatable_version_get.md +24 -0
  49. package/skills/ae-analysis/references/datatable_version_list.md +24 -0
  50. package/skills/ae-analysis/references/drilldown_user_events.md +4 -4
  51. package/skills/ae-analysis/references/event_changelog_list.md +24 -0
  52. package/skills/ae-analysis/references/event_create.md +24 -0
  53. package/skills/ae-analysis/references/event_delete.md +24 -0
  54. package/skills/ae-analysis/references/event_get.md +24 -0
  55. package/skills/ae-analysis/references/event_hide_update.md +25 -0
  56. package/skills/ae-analysis/references/event_influence_list.md +24 -0
  57. package/skills/ae-analysis/references/event_list.md +23 -0
  58. package/skills/ae-analysis/references/event_relation_update.md +24 -0
  59. package/skills/ae-analysis/references/event_update.md +26 -0
  60. package/skills/ae-analysis/references/exchange_config_update.md +24 -0
  61. package/skills/ae-analysis/references/exchange_rate_refresh.md +23 -0
  62. package/skills/ae-analysis/references/exchange_rule_list.md +23 -0
  63. package/skills/ae-analysis/references/exchange_rule_update.md +24 -0
  64. package/skills/ae-analysis/references/exchange_rule_validate.md +24 -0
  65. package/skills/ae-analysis/references/folder_create.md +18 -6
  66. package/skills/ae-analysis/references/folder_delete.md +21 -6
  67. package/skills/ae-analysis/references/folder_share.md +16 -6
  68. package/skills/ae-analysis/references/get_analysis_query_schema.md +17 -18
  69. package/skills/ae-analysis/references/get_report_definition.md +1 -1
  70. package/skills/ae-analysis/references/list_events.md +1 -1
  71. package/skills/ae-analysis/references/list_metrics.md +1 -1
  72. package/skills/ae-analysis/references/list_properties.md +1 -1
  73. package/skills/ae-analysis/references/metric_create.md +24 -0
  74. package/skills/ae-analysis/references/metric_delete.md +24 -0
  75. package/skills/ae-analysis/references/metric_get.md +24 -0
  76. package/skills/ae-analysis/references/metric_list.md +24 -0
  77. package/skills/ae-analysis/references/metric_update.md +24 -0
  78. package/skills/ae-analysis/references/project_space_create.md +19 -5
  79. package/skills/ae-analysis/references/project_space_delete.md +23 -6
  80. package/skills/ae-analysis/references/project_space_share.md +16 -6
  81. package/skills/ae-analysis/references/property_changelog_list.md +25 -0
  82. package/skills/ae-analysis/references/property_create.md +25 -0
  83. package/skills/ae-analysis/references/property_delete.md +25 -0
  84. package/skills/ae-analysis/references/property_get.md +25 -0
  85. package/skills/ae-analysis/references/property_hide_update.md +26 -0
  86. package/skills/ae-analysis/references/property_influence_list.md +25 -0
  87. package/skills/ae-analysis/references/property_list.md +24 -0
  88. package/skills/ae-analysis/references/property_related_events.md +24 -0
  89. package/skills/ae-analysis/references/property_relation_update.md +25 -0
  90. package/skills/ae-analysis/references/property_update.md +27 -0
  91. package/skills/ae-analysis/references/query_adhoc.md +34 -21
  92. package/skills/ae-analysis/references/super_metadata_export.md +36 -0
  93. package/skills/ae-analysis/references/super_metadata_import.md +24 -0
  94. package/skills/ae-analysis/references/update_report.md +3 -3
  95. package/skills/ae-analysis/references/virtual_event_create.md +25 -0
  96. package/skills/ae-analysis/references/virtual_event_delete.md +24 -0
  97. package/skills/ae-analysis/references/virtual_event_get.md +24 -0
  98. package/skills/ae-analysis/references/virtual_property_create.md +24 -0
  99. package/skills/ae-analysis/references/virtual_property_sql_rule_delete.md +25 -0
  100. package/skills/ae-analysis/references/virtual_property_sql_rule_update.md +24 -0
  101. package/skills/ae-capability/SKILL.md +103 -0
  102. package/skills/ae-community/SKILL.md +1 -1
  103. package/skills/ae-dataops/references/dataops-integration.md +3 -3
  104. package/skills/ae-engage/SKILL.md +5 -5
  105. package/skills/ae-generate-tracking-code/SKILL.md +16 -1
  106. package/skills/ae-generate-tracking-code/references/snippet-delivery.md +17 -1
  107. package/skills/ae-generate-tracking-plan/SKILL.md +30 -8
  108. package/skills/ae-metadata/references/metadata_data_table_sql_write.md +60 -8
  109. package/skills/ae-team/SKILL.md +1 -1
  110. package/skills/ae-analysis/references/folder_members.md +0 -15
  111. package/skills/ae-analysis/references/project_space_members.md +0 -15
@@ -142,14 +142,12 @@ var buildClusterDefinition = createMcpCommand({
142
142
  ],
143
143
  risk: "read",
144
144
  buildArgs: (ctx) => ({
145
- request: {
146
- projectId: ctx.num("project_id"),
147
- type: ctx.str("type"),
148
- conditions: optionalJson(ctx, "conditions"),
149
- includeFilter: optionalJson(ctx, "include_filter"),
150
- excludeFilter: optionalJson(ctx, "exclude_filter"),
151
- sql: optionalString(ctx, "sql")
152
- },
145
+ projectId: ctx.num("project_id"),
146
+ type: ctx.str("type"),
147
+ conditions: optionalJson(ctx, "conditions"),
148
+ includeFilter: optionalJson(ctx, "include_filter"),
149
+ excludeFilter: optionalJson(ctx, "exclude_filter"),
150
+ sql: optionalString(ctx, "sql"),
153
151
  authenticatedOnly: optionalBoolean(ctx, "authenticated_only")
154
152
  })
155
153
  });
@@ -234,6 +232,7 @@ var createIdCluster = createMcpCommand({
234
232
  { name: "main_column_name", type: "string", required: false, desc: "Optional main column name for ID matching" }
235
233
  ],
236
234
  risk: "write",
235
+ mcpService: "te_analysis_extend",
237
236
  buildArgs: (ctx) => ({
238
237
  projectId: ctx.num("project_id"),
239
238
  displayName: ctx.str("display_name"),
@@ -248,6 +247,7 @@ var createIdCluster = createMcpCommand({
248
247
  // src/commands/te-audience/cluster/update-id-cluster.ts
249
248
  var updateIdCluster = createMcpCommand({
250
249
  command: "+update_id_cluster",
250
+ mcpService: "te_analysis_extend",
251
251
  description: "Update an existing ID cluster by re-uploading CSV file content as plain text. The cluster is identified by cluster_name. The operation is asynchronous.",
252
252
  flags: [
253
253
  { name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
@@ -271,13 +271,14 @@ var updateIdCluster = createMcpCommand({
271
271
  // src/commands/te-audience/cluster/delete-cluster.ts
272
272
  var deleteCluster = createMcpCommand({
273
273
  command: "+delete_cluster",
274
+ mcpService: "te_analysis_extend",
274
275
  description: "Delete a cluster by clusterName. If dependencies exist, shows an influence list and requires --confirmed to proceed.",
275
276
  flags: [
276
277
  { name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
277
278
  { name: "cluster_name", type: "string", required: true, desc: "Cluster name to delete" },
278
279
  { name: "confirmed", type: "boolean", required: false, desc: "Pass after user explicitly confirms deletion despite listed dependencies" }
279
280
  ],
280
- risk: "write",
281
+ risk: "high-risk-write",
281
282
  buildArgs: (ctx) => ({
282
283
  projectId: ctx.num("project_id"),
283
284
  clusterName: ctx.str("cluster_name"),
@@ -523,7 +524,7 @@ var deleteTag = createMcpCommand({
523
524
  { name: "tag_name", type: "string", required: true, desc: "Tag name to delete" },
524
525
  { name: "confirmed", type: "boolean", required: false, desc: "Pass after user explicitly confirms deletion despite listed dependencies" }
525
526
  ],
526
- risk: "write",
527
+ risk: "high-risk-write",
527
528
  buildArgs: (ctx) => ({
528
529
  projectId: ctx.num("project_id"),
529
530
  tagName: ctx.str("tag_name"),
@@ -142,14 +142,12 @@ var buildClusterDefinition = createMcpCommand({
142
142
  ],
143
143
  risk: "read",
144
144
  buildArgs: (ctx) => ({
145
- request: {
146
- projectId: ctx.num("project_id"),
147
- type: ctx.str("type"),
148
- conditions: optionalJson(ctx, "conditions"),
149
- includeFilter: optionalJson(ctx, "include_filter"),
150
- excludeFilter: optionalJson(ctx, "exclude_filter"),
151
- sql: optionalString(ctx, "sql")
152
- },
145
+ projectId: ctx.num("project_id"),
146
+ type: ctx.str("type"),
147
+ conditions: optionalJson(ctx, "conditions"),
148
+ includeFilter: optionalJson(ctx, "include_filter"),
149
+ excludeFilter: optionalJson(ctx, "exclude_filter"),
150
+ sql: optionalString(ctx, "sql"),
153
151
  authenticatedOnly: optionalBoolean(ctx, "authenticated_only")
154
152
  })
155
153
  });
@@ -234,6 +232,7 @@ var createIdCluster = createMcpCommand({
234
232
  { name: "main_column_name", type: "string", required: false, desc: "Optional main column name for ID matching" }
235
233
  ],
236
234
  risk: "write",
235
+ mcpService: "te_analysis_extend",
237
236
  buildArgs: (ctx) => ({
238
237
  projectId: ctx.num("project_id"),
239
238
  displayName: ctx.str("display_name"),
@@ -248,6 +247,7 @@ var createIdCluster = createMcpCommand({
248
247
  // src/commands/te-audience/cluster/update-id-cluster.ts
249
248
  var updateIdCluster = createMcpCommand({
250
249
  command: "+update_id_cluster",
250
+ mcpService: "te_analysis_extend",
251
251
  description: "Update an existing ID cluster by re-uploading CSV file content as plain text. The cluster is identified by cluster_name. The operation is asynchronous.",
252
252
  flags: [
253
253
  { name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
@@ -271,13 +271,14 @@ var updateIdCluster = createMcpCommand({
271
271
  // src/commands/te-audience/cluster/delete-cluster.ts
272
272
  var deleteCluster = createMcpCommand({
273
273
  command: "+delete_cluster",
274
+ mcpService: "te_analysis_extend",
274
275
  description: "Delete a cluster by clusterName. If dependencies exist, shows an influence list and requires --confirmed to proceed.",
275
276
  flags: [
276
277
  { name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
277
278
  { name: "cluster_name", type: "string", required: true, desc: "Cluster name to delete" },
278
279
  { name: "confirmed", type: "boolean", required: false, desc: "Pass after user explicitly confirms deletion despite listed dependencies" }
279
280
  ],
280
- risk: "write",
281
+ risk: "high-risk-write",
281
282
  buildArgs: (ctx) => ({
282
283
  projectId: ctx.num("project_id"),
283
284
  clusterName: ctx.str("cluster_name"),
@@ -523,7 +524,7 @@ var deleteTag = createMcpCommand({
523
524
  { name: "tag_name", type: "string", required: true, desc: "Tag name to delete" },
524
525
  { name: "confirmed", type: "boolean", required: false, desc: "Pass after user explicitly confirms deletion despite listed dependencies" }
525
526
  ],
526
- risk: "write",
527
+ risk: "high-risk-write",
527
528
  buildArgs: (ctx) => ({
528
529
  projectId: ctx.num("project_id"),
529
530
  tagName: ctx.str("tag_name"),
@@ -294,7 +294,7 @@ var deleteConfigItem = {
294
294
  { name: "config_id", type: "string", required: true, desc: "Config item ID" },
295
295
  { name: "open_id", type: "string", required: true, desc: "Operator open ID" }
296
296
  ],
297
- risk: "write",
297
+ risk: "high-risk-write",
298
298
  dryRun: (ctx) => buildMcpDryRun(ctx, serviceName7, toolName7, buildArgs7(ctx)),
299
299
  execute: async (ctx) => executeMcpCommand(ctx, serviceName7, toolName7, buildArgs7(ctx))
300
300
  };
@@ -426,7 +426,7 @@ var deleteFlow = {
426
426
  { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
427
427
  { name: "flow_uuid_list", type: "json", required: true, desc: "Flow UUID list as JSON array" }
428
428
  ],
429
- risk: "write",
429
+ risk: "high-risk-write",
430
430
  validate: (ctx) => {
431
431
  readRequiredJsonArray(ctx, "flow_uuid_list");
432
432
  },
@@ -1053,7 +1053,7 @@ var deleteChannel = {
1053
1053
  { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
1054
1054
  { name: "channel_id", type: "string", required: true, desc: "Channel ID" }
1055
1055
  ],
1056
- risk: "write",
1056
+ risk: "high-risk-write",
1057
1057
  dryRun: (ctx) => buildMcpDryRun(ctx, serviceName31, toolName31, buildArgs31(ctx)),
1058
1058
  execute: async (ctx) => executeMcpCommand(ctx, serviceName31, toolName31, buildArgs31(ctx))
1059
1059
  };
@@ -1075,7 +1075,7 @@ var deleteConfigChannel = {
1075
1075
  { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
1076
1076
  { name: "channel_id", type: "string", required: true, desc: "Config channel ID" }
1077
1077
  ],
1078
- risk: "write",
1078
+ risk: "high-risk-write",
1079
1079
  dryRun: (ctx) => buildMcpDryRun(ctx, serviceName32, toolName32, buildArgs32(ctx)),
1080
1080
  execute: async (ctx) => executeMcpCommand(ctx, serviceName32, toolName32, buildArgs32(ctx))
1081
1081
  };
@@ -294,7 +294,7 @@ var deleteConfigItem = {
294
294
  { name: "config_id", type: "string", required: true, desc: "Config item ID" },
295
295
  { name: "open_id", type: "string", required: true, desc: "Operator open ID" }
296
296
  ],
297
- risk: "write",
297
+ risk: "high-risk-write",
298
298
  dryRun: (ctx) => buildMcpDryRun(ctx, serviceName7, toolName7, buildArgs7(ctx)),
299
299
  execute: async (ctx) => executeMcpCommand(ctx, serviceName7, toolName7, buildArgs7(ctx))
300
300
  };
@@ -426,7 +426,7 @@ var deleteFlow = {
426
426
  { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
427
427
  { name: "flow_uuid_list", type: "json", required: true, desc: "Flow UUID list as JSON array" }
428
428
  ],
429
- risk: "write",
429
+ risk: "high-risk-write",
430
430
  validate: (ctx) => {
431
431
  readRequiredJsonArray(ctx, "flow_uuid_list");
432
432
  },
@@ -1053,7 +1053,7 @@ var deleteChannel = {
1053
1053
  { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
1054
1054
  { name: "channel_id", type: "string", required: true, desc: "Channel ID" }
1055
1055
  ],
1056
- risk: "write",
1056
+ risk: "high-risk-write",
1057
1057
  dryRun: (ctx) => buildMcpDryRun(ctx, serviceName31, toolName31, buildArgs31(ctx)),
1058
1058
  execute: async (ctx) => executeMcpCommand(ctx, serviceName31, toolName31, buildArgs31(ctx))
1059
1059
  };
@@ -1075,7 +1075,7 @@ var deleteConfigChannel = {
1075
1075
  { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
1076
1076
  { name: "channel_id", type: "string", required: true, desc: "Config channel ID" }
1077
1077
  ],
1078
- risk: "write",
1078
+ risk: "high-risk-write",
1079
1079
  dryRun: (ctx) => buildMcpDryRun(ctx, serviceName32, toolName32, buildArgs32(ctx)),
1080
1080
  execute: async (ctx) => executeMcpCommand(ctx, serviceName32, toolName32, buildArgs32(ctx))
1081
1081
  };
@@ -315,7 +315,7 @@ var remove = {
315
315
  flags: [
316
316
  { name: "name", type: "string", required: true, desc: "Knowledge base name to delete" }
317
317
  ],
318
- risk: "write",
318
+ risk: "high-risk-write",
319
319
  dryRun: (ctx) => ({
320
320
  method: "DELETE",
321
321
  url: `${ctx.host().replace(/\/$/, "")}${API_PATH4}`,
@@ -304,7 +304,7 @@ var deleteMetric = createMcpCommand({
304
304
  { name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
305
305
  { name: "metric_id", type: "number", required: true, desc: "Metric ID to delete" }
306
306
  ],
307
- risk: "write",
307
+ risk: "high-risk-write",
308
308
  mcpService: "te_analysis_extend",
309
309
  buildArgs: (ctx) => ({
310
310
  projectId: ctx.num("project_id"),
@@ -392,7 +392,7 @@ var deleteTrackItems = createMcpCommand({
392
392
  { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
393
393
  { name: "delete_data", type: "json", required: true, desc: "Delete payload JSON object with events/eventPropNames/userPropNames/commonEventPropNames" }
394
394
  ],
395
- risk: "write",
395
+ risk: "high-risk-write",
396
396
  mcpService: "te_analysis_extend",
397
397
  buildArgs: (ctx) => ({
398
398
  projectId: ctx.num("project_id"),
@@ -512,7 +512,7 @@ var deleteProjectMarkTimes = createMcpCommand({
512
512
  { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
513
513
  { name: "mark_time_ids", type: "json", required: true, desc: "Marker ID list JSON array" }
514
514
  ],
515
- risk: "write",
515
+ risk: "high-risk-write",
516
516
  mcpService: "te_analysis_extend",
517
517
  buildArgs: (ctx) => ({
518
518
  projectId: ctx.num("project_id"),
@@ -304,7 +304,7 @@ var deleteMetric = createMcpCommand({
304
304
  { name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
305
305
  { name: "metric_id", type: "number", required: true, desc: "Metric ID to delete" }
306
306
  ],
307
- risk: "write",
307
+ risk: "high-risk-write",
308
308
  mcpService: "te_analysis_extend",
309
309
  buildArgs: (ctx) => ({
310
310
  projectId: ctx.num("project_id"),
@@ -392,7 +392,7 @@ var deleteTrackItems = createMcpCommand({
392
392
  { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
393
393
  { name: "delete_data", type: "json", required: true, desc: "Delete payload JSON object with events/eventPropNames/userPropNames/commonEventPropNames" }
394
394
  ],
395
- risk: "write",
395
+ risk: "high-risk-write",
396
396
  mcpService: "te_analysis_extend",
397
397
  buildArgs: (ctx) => ({
398
398
  projectId: ctx.num("project_id"),
@@ -512,7 +512,7 @@ var deleteProjectMarkTimes = createMcpCommand({
512
512
  { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
513
513
  { name: "mark_time_ids", type: "json", required: true, desc: "Marker ID list JSON array" }
514
514
  ],
515
- risk: "write",
515
+ risk: "high-risk-write",
516
516
  mcpService: "te_analysis_extend",
517
517
  buildArgs: (ctx) => ({
518
518
  projectId: ctx.num("project_id"),
@@ -120,7 +120,7 @@ var deleteTeam = {
120
120
  flags: [
121
121
  { name: "id", type: "string", required: true, desc: "Team ID" }
122
122
  ],
123
- risk: "write",
123
+ risk: "high-risk-write",
124
124
  dryRun: (ctx) => ({
125
125
  method: "DELETE",
126
126
  url: `${ctx.host().replace(/\/$/, "")}${BASE_TEAM_PATH}/${ctx.str("id")}`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkingai/ae-cli",
3
- "version": "6.0.27",
3
+ "version": "6.0.29",
4
4
  "description": "CLI tool for ThinkingAI (AE) analytics platform",
5
5
  "type": "module",
6
6
  "bin": {
@@ -20,6 +20,7 @@
20
20
  "build": "tsup src/index.ts --format esm --outDir dist && node scripts/copy-tracking-assets.mjs",
21
21
  "verify:config": "node test/config-commands.test.mjs",
22
22
  "verify:analysis-tools": "tsx scripts/verify-te-analysis-tools.mjs",
23
+ "verify:analysis-contract-regressions": "node test/analysis-contract-regressions.test.mjs",
23
24
  "verify:analysis-cluster-routing": "node scripts/verify-analysis-cluster-routing.mjs",
24
25
  "verify:multi-cluster-mode": "node test/multi-cluster-mode.test.mjs",
25
26
  "verify:metadata-capability": "node test/metadata-capability-commands.test.mjs",
@@ -28,8 +28,9 @@ ae-cli agent +create-automation --help
28
28
 
29
29
  - Use this skill for Agent platform resource management: Agents, automations, models, MCP servers, Skills, attachments, the MCP/Skill market, and Skill copy/approval/share flows.
30
30
  - **Read operations** (`+list-*`) can run directly once required IDs are known.
31
- - **Write operations** require explicit user intent and keep the confirmation prompt by default. Pass `--yes` only in fully automated pipelines.
32
- - Prefer `--dry-run` before destructive writes to inspect the request shape without executing.
31
+ - **Write operations** (`risk: write`) can run directly once required IDs and references are verified.
32
+ - **Delete operations** (`risk: high-risk-write`) require explicit user authorization. Pass `--yes` only after the user confirms.
33
+ - Prefer `--dry-run` before delete operations to inspect the request shape without executing.
33
34
  - Personal and company scope resources can be created/updated/deleted; company scope requires root/agent_admin role; system resources are read-only (exception: root users can approve/reject submissions and set company-scope meta).
34
35
  - Toggle operations on company/system resources only affect the current user's preference, not the global state.
35
36
  - Never invent record IDs. Discover them with `+list-*` commands or accept them from the user.
@@ -41,7 +42,7 @@ ae-cli agent +create-automation --help
41
42
  |---|---|
42
43
  | `--format <json\|table>` | Output format. Default is JSON. |
43
44
  | `--host <url>` | Override the active AE host. Available on every command and may be placed after the subcommand, e.g. `ae-cli agent +<command> --host <url>`. |
44
- | `--yes` | Skip confirmation for write operations. |
45
+ | `--yes` | Skip confirmation for `high-risk-write` (delete) operations. |
45
46
  | `--dry-run` | Show request details (method + URL + body) without executing. |
46
47
 
47
48
  ### Output and Errors
@@ -10,7 +10,9 @@ description: "AE/TE/ThinkingEngine/ThinkingAI ae-cli manual for analysis-side ta
10
10
  > **CRITICAL - For all commands that require `project_id`, you MUST satisfy `PROJECT_ID_GATE` first (no guessing): verify the project by ID/name with `analysis_common +list_projects` only when there is no valid project context yet, when the user switches project/host/environment, or when the supplied project is ambiguous. Reuse a project already verified in the same continuous conversation and same host/environment.**
11
11
  > **CRITICAL - For write operations in this skill, you MUST complete the post-write link loop when applicable:** after success and extractable `resource_id`, call `analysis_common +get_resource_url` and return the main result + resource link (or explicit link-failure reason).
12
12
  > **CRITICAL - Before running any `+<tool_name>` command, you MUST first read the corresponding `references/<tool_name>.md`.** The reference filename always equals the command name without the leading `+`, for example `+query_adhoc` -> `references/query_adhoc.md`.
13
- > **CRITICAL - Before running any capability-gateway asset command such as `ae-cli analysis dashboard list`, `ae-cli analysis bi-panel get`, `ae-cli analysis project-space create`, or `ae-cli analysis public-link list`, read the matching `references/<resource>_<action>.md` file. Replace hyphens with underscores, for example `analysis dashboard list` -> `references/dashboard_list.md`, `analysis bi-panel get` -> `references/bi_panel_get.md`. Use [`references/analysis_gateway_assets.md`](references/analysis_gateway_assets.md) only as the overview matrix.**
13
+ > **CRITICAL - Before running any capability-gateway L2 command such as `ae-cli analysis dashboard list`, `ae-cli analysis bi-panel get`, `ae-cli analysis project-space list`, or `ae-cli analysis public-link list`, read the matching `references/<resource>_<action>.md` file. Replace hyphens with underscores, for example `analysis dashboard list` -> `references/dashboard_list.md`, `analysis bi-panel get` -> `references/bi_panel_get.md`. Use [`references/analysis_gateway_assets.md`](references/analysis_gateway_assets.md) as the overview matrix.**
14
+ > **CRITICAL - Project-space and folder create/delete/share are L3 capabilities only.** Do not use `ae-cli analysis project-space create` or `ae-cli analysis folder create`. Read the matching `references/<resource>_<action>.md` file and invoke via `ae-cli capability inspect/dry-run/run`. For `*.members` read capabilities, use `capability search/inspect/run` per [`ae-capability`](../../ae-capability/SKILL.md) and the L3 matrix in `analysis_gateway_assets.md` — no standalone reference file (see `te-cli/docs/capability-command-admission.md` §10).
15
+ > **CRITICAL - L3 delete capabilities:** user intent is not execution authorization. For `risk=high-risk-write`, dry-run first, summarize in chat, ask for confirmation, and call `capability run ... --yes` only in a later turn after the user explicitly confirms. For `risk=write`, run directly after dry-run. Follow [`ae-capability`](../../ae-capability/SKILL.md) High-Risk Confirmation Workflow.
14
16
 
15
17
  ## Global AE CLI Rules
16
18
 
@@ -31,9 +33,9 @@ Output and errors:
31
33
 
32
34
  Safety constraints:
33
35
 
34
- - Read commands can execute directly after required IDs and references are verified.
35
- - Write commands require explicit user intent and normally keep the confirmation prompt.
36
- - Never invent command names, flags, JSON payloads, `project_id`, resource IDs, field names, event names, property names, metric definitions, or date formats. For builder-supported ad-hoc models (`event`, `retention`, `funnel`, `prop_analysis`), do not pre-discover metadata; pass the user's event/property/metric wording to the matching QP builder and let the builder resolve metadata or return clarification. For non-builder/manual workflows, read the matching command reference and discover real project metadata first.
36
+ - Read and write commands can execute directly after required IDs and references are verified.
37
+ - Delete commands (`high-risk-write`) require explicit user authorization. For L3 `capability run` with `risk=high-risk-write`, dry-run first, then chat confirmation, then `--yes` only after the user authorizes execution in a follow-up message.
38
+ - Never invent command names, flags, JSON payloads, `project_id`, resource IDs, field names, event names, property names, metric definitions, or date formats. For every non-SQL ad-hoc model, do not pre-discover metadata; pass the user's intent to the matching QP builder and let the builder resolve metadata or return clarification. For the SQL manual workflow, read the matching command reference and verify the real project definition first.
37
39
  - **NEVER fabricate or guess resource names** (reports, dashboards, events, properties, metrics, clusters, tags, alerts). Always use list commands to discover real resources first. If a resource is not found after fuzzy search and full list fallback, explicitly tell the user "resource not found" and stop - do not proceed with fabricated names.
38
40
 
39
41
  ## When to Use
@@ -41,6 +43,7 @@ Safety constraints:
41
43
  Use `ae-analysis` for all AE analysis-side work below:
42
44
 
43
45
  - Domain `analysis`: alerts, reports/dashboards, ad-hoc model analysis, drilldown, entity/event details, schema helpers.
46
+ - Domain `analysis-meta`: capability-gateway metadata assets, events, properties, virtual metadata, metrics, data tables, exchange rules, and super metadata.
44
47
  - Domain `analysis_audience`: clusters/tags and definition schemas.
45
48
  - Domain `analysis_meta`: metadata governance, metrics, virtual metadata, project config, tracking plans, mark times, entity catalog (MCP). For **single** super-event / super-property **detail** on the capability gateway, switch to **`ae-metadata`** skill (`metadata event get`, `metadata property get`).
46
49
  - Domain `analysis_common`: project listing and post-write resource links.
@@ -53,7 +56,9 @@ If user intent is Engage/DataOps/Community/metadata gateway detail, switch to `a
53
56
  - `ae-cli analysis_audience +<tool_name> [options]`
54
57
  - `ae-cli analysis_meta +<tool_name> [options]`
55
58
  - `ae-cli analysis_common +<tool_name> [options]`
56
- - `ae-cli analysis <resource> <action> [options]` for capability-gateway dashboard, BI panel, project-space, folder, favorite, public-link, dashboard-definition, dashboard-daily-report, and async asset data commands.
59
+ - `ae-cli analysis-meta <resource> <action> [options]` for capability-gateway metadata assets, events, properties, virtual metadata, metrics, data tables, exchange rules, and super metadata.
60
+ - `ae-cli analysis <resource> <action> [options]` for curated capability-gateway dashboard, BI panel, project-space list/get, favorite, public-link, dashboard-definition, dashboard-daily-report, and async asset data commands.
61
+ - `ae-cli capability inspect/dry-run/run <capability-id>` for L3 project-space and folder create/delete/share/members capabilities.
57
62
 
58
63
  Conventions:
59
64
 
@@ -61,7 +66,12 @@ Conventions:
61
66
  - Capability-gateway command flags use kebab-case, e.g. `--project-id`, `--dashboard-id`, `--request-id`. The CLI sends snake_case JSON to the gateway.
62
67
  - MCP params map automatically to camelCase.
63
68
  - JSON args pass as JSON string literals.
64
- - Write operations require confirmation unless `--yes`.
69
+ - Write operations require chat confirmation before `--yes`. User describing the desired action does not count as authorization to skip confirmation.
70
+
71
+ Credential lifecycle:
72
+
73
+ - Use `ae-cli auth login`, `ae-cli auth status`, and `ae-cli auth logout` for authentication. There is no separate MCP-token command.
74
+ - After login, the CLI automatically mints, stores, and refreshes the CLI token used by MCP and capability-gateway commands. Never ask the user to set an `mcp-token` manually.
65
75
 
66
76
  ## Capability Gateway Asset Commands
67
77
 
@@ -75,6 +85,7 @@ ae-cli analysis dashboard-report-data export --project-id <project_id> --dashboa
75
85
  ae-cli analysis run inspect --run-id <run_id>
76
86
  ae-cli analysis artifact download --run-id <run_id> --artifact-id <artifact_id> --output <file>
77
87
  ae-cli analysis bi-panel-page-data run --project-id <project_id> --panel-id <panel_id> --page-key <page_key> --result-type charts
88
+ ae-cli analysis bi-panel-version get --project-id <project_id> --panel-id <panel_id> --version-type draft
78
89
  ae-cli analysis project-space list --project-id <project_id>
79
90
  ae-cli analysis query cancel --run-id <run_id>
80
91
  ```
@@ -85,13 +96,14 @@ Use capability-gateway asset commands when the user wants to manage or inspect:
85
96
  - Dashboard report data that may be large or long-running. Prefer `dashboard-report-data export` for large results; use `run` only for bounded inline results.
86
97
  - Dashboard definition export/import. Use `dashboard-definition import --validate-only true` for import pre-checks; do not look for a separate import-check command.
87
98
  - Dashboard daily report update or immediate send.
88
- - BI panel list/detail/create/update/delete/share/copy and BI page data. Prefer `bi-panel-page-data export` for large results.
89
- - Project spaces, folders, favorites, and public links.
99
+ - BI panel list/detail/create/update/delete/share/copy, BI panel release/draft version get/publish, and BI page data. Prefer `bi-panel-page-data export` for large results.
100
+ - Project spaces and folders: use `project-space list/get` for discovery; use L3 capability run for create/delete/share/members.
101
+ - Favorites and public links.
90
102
 
91
103
  Do **not** use these commands for:
92
104
 
93
105
  - Ad-hoc model analysis, report definition, report data, drilldown, entity/event details, metadata/schema helpers, alerts, audience clusters/tags, or project lookup. Use the existing `+<tool_name>` commands for those.
94
- - Dashboard locks, BI panel version/lock, dashboard filter module, UI reorder/move/tree operations, daily report retry/download/get-config, public-link logs/source-list/get, or other product-manager-red-marked abilities.
106
+ - Dashboard locks, BI panel lock, dashboard filter module, UI reorder/move/tree operations, daily report retry/download/get-config, public-link logs/source-list/get, or other product-manager-red-marked abilities.
95
107
  - Internal-only or UI-only payloads unless the gateway command reference explicitly exposes them through `--payload`.
96
108
 
97
109
  Capability-gateway output:
@@ -102,7 +114,7 @@ Capability-gateway output:
102
114
  - Export commands return `run_id`, `artifact_id`, status fields, and expiration fields. Use `--artifact-format jsonl` for the artifact format; `--format` is reserved for CLI output formatting. Poll with `ae-cli analysis run inspect --run-id <run_id>` until the run and artifact are complete, then download with `ae-cli analysis artifact download --run-id <run_id> --artifact-id <artifact_id> --output <file>`. Do not call raw inspect/download API paths directly. Cancel with `ae-cli analysis query cancel --run-id <run_id>`.
103
115
  - Unknown input fields and camelCase external fields are rejected by the gateway; use kebab-case CLI flags only.
104
116
 
105
- See [`references/analysis_gateway_assets.md`](references/analysis_gateway_assets.md) for the command matrix. Before running one command, read its dedicated reference file named as `<resource>_<action>.md`.
117
+ See [`references/analysis_gateway_assets.md`](references/analysis_gateway_assets.md) for the command matrix. Before running an L2 command, read its dedicated reference file named as `<resource>_<action>.md`. L3 capabilities without a dedicated reference use dynamic discovery per [`ae-capability`](../../ae-capability/SKILL.md).
106
118
 
107
119
  ## Mandatory Constraints
108
120
 
@@ -169,7 +181,7 @@ Before executing ad-hoc queries (`query_adhoc`), MUST check for existing reports
169
181
  2. **Search existing reports** - Use `list_reports --query <keyword>` to find matching reports
170
182
  3. **Search existing dashboards** - Use `analysis dashboard list --query <keyword>` to find matching dashboards
171
183
  4. **If found** - Use `query_report_data` or `analysis dashboard-report-data run/export` to get data from existing assets
172
- 5. **If not found** - For QP builder-supported models (`event`, `retention`, `funnel`, `prop_analysis`), call the matching builder first and then call `query_adhoc` with builder `qp`; do not call schema or metadata tools between the report/dashboard miss and the builder. For all other `query_adhoc` models, use the legacy schema/metadata path.
184
+ 5. **If not found** - For every non-SQL model (`event`, `retention`, `funnel`, `prop_analysis`, `attribution`, `distribution`, `heat_map`, `interval`, `path`, `rank_list`), call the matching builder first and then call `query_adhoc` with builder `qp`; do not call schema or metadata tools between the report/dashboard miss and the builder. Only SQL uses the manual schema/verified-definition path.
173
185
 
174
186
  **Rationale:**
175
187
 
@@ -194,14 +206,20 @@ Before executing ad-hoc queries (`query_adhoc`), MUST check for existing reports
194
206
 
195
207
  ### E. QP_BUILDER_SUPPORTED_MODELS_ONLY
196
208
 
197
- QP builder supports exactly four ad-hoc model types: `event`, `retention`, `funnel`, and `prop_analysis`.
209
+ QP builder supports ten ad-hoc model types: `event`, `retention`, `funnel`, `prop_analysis`, `attribution`, `distribution`, `heat_map`, `interval`, `path`, and `rank_list`.
198
210
 
199
- For these four model types, QP builder is mandatory before `query_adhoc`. Do not handcraft QP from `get_analysis_query_schema`, examples, or prior knowledge.
211
+ For these ten model types, QP builder is mandatory before `query_adhoc`. Do not handcraft QP from `get_analysis_query_schema`, examples, or prior knowledge.
200
212
 
201
213
  1. `event` -> `+build_event_analysis_qp`
202
214
  2. `retention` -> `+build_retention_analysis_qp`
203
215
  3. `funnel` -> `+build_funnel_analysis_qp`
204
216
  4. `prop_analysis` -> `+build_prop_analysis_qp`
217
+ 5. `attribution` -> `+build_attribution_analysis_qp`
218
+ 6. `distribution` -> `+build_distribution_analysis_qp`
219
+ 7. `heat_map` -> `+build_heat_map_analysis_qp`
220
+ 8. `interval` -> `+build_interval_analysis_qp`
221
+ 9. `path` -> `+build_path_analysis_qp`
222
+ 10. `rank_list` -> `+build_rank_list_analysis_qp`
205
223
 
206
224
  Builder-supported model routing is:
207
225
 
@@ -236,7 +254,7 @@ Execution rule:
236
254
 
237
255
  - If builder result `status=generated`, call `+query_adhoc` with the same `model_type` and the returned `qp`.
238
256
  - If builder returns non-generated status (`need_clarification`, `invalid_argument`, `unsupported_feature`, `validation_error`), stop and ask the user for clarification instead of calling `query_adhoc`.
239
- - Never bypass a failed builder by manually assembling QP for `event`, `retention`, `funnel`, or `prop_analysis`.
257
+ - Never bypass a failed builder by manually assembling QP for any non-SQL model.
240
258
 
241
259
  Builder payload rules:
242
260
 
@@ -361,7 +379,59 @@ After outputting attribution results, verify that dimension contributions sum to
361
379
 
362
380
  ## Tool Groups (100)
363
381
 
364
- ### analysis (61)
382
+ ### analysis-meta (47)
383
+
384
+ Metadata Capabilities (47):
385
+
386
+ - `asset abnormal-get` ([doc](references/asset_abnormal_get.md))
387
+ - `asset abnormal-list` ([doc](references/asset_abnormal_list.md))
388
+ - `asset authentication-list` ([doc](references/asset_authentication_list.md))
389
+ - `asset authentication-update` ([doc](references/asset_authentication_update.md))
390
+ - `asset recent-list` ([doc](references/asset_recent_list.md))
391
+ - `asset search` ([doc](references/asset_search.md))
392
+ - `datatable columns-get` ([doc](references/datatable_columns_get.md))
393
+ - `datatable influence-list` ([doc](references/datatable_influence_list.md))
394
+ - `datatable version-get` ([doc](references/datatable_version_get.md))
395
+ - `datatable version-list` ([doc](references/datatable_version_list.md))
396
+ - `event changelog-list` ([doc](references/event_changelog_list.md))
397
+ - `event create` ([doc](references/event_create.md))
398
+ - `event delete` ([doc](references/event_delete.md))
399
+ - `event get` ([doc](references/event_get.md))
400
+ - `event hide-update` ([doc](references/event_hide_update.md))
401
+ - `event influence-list` ([doc](references/event_influence_list.md))
402
+ - `event list` ([doc](references/event_list.md))
403
+ - `event relation-update` ([doc](references/event_relation_update.md))
404
+ - `event update` ([doc](references/event_update.md))
405
+ - `exchange config-update` ([doc](references/exchange_config_update.md))
406
+ - `exchange rate-refresh` ([doc](references/exchange_rate_refresh.md))
407
+ - `exchange rule-list` ([doc](references/exchange_rule_list.md))
408
+ - `exchange rule-update` ([doc](references/exchange_rule_update.md))
409
+ - `exchange rule-validate` ([doc](references/exchange_rule_validate.md))
410
+ - `metric create` ([doc](references/metric_create.md))
411
+ - `metric delete` ([doc](references/metric_delete.md))
412
+ - `metric get` ([doc](references/metric_get.md))
413
+ - `metric list` ([doc](references/metric_list.md))
414
+ - `metric update` ([doc](references/metric_update.md))
415
+ - `property changelog-list` ([doc](references/property_changelog_list.md))
416
+ - `property create` ([doc](references/property_create.md))
417
+ - `property delete` ([doc](references/property_delete.md))
418
+ - `property get` ([doc](references/property_get.md))
419
+ - `property hide-update` ([doc](references/property_hide_update.md))
420
+ - `property influence-list` ([doc](references/property_influence_list.md))
421
+ - `property list` ([doc](references/property_list.md))
422
+ - `property related-events` ([doc](references/property_related_events.md))
423
+ - `property relation-update` ([doc](references/property_relation_update.md))
424
+ - `property update` ([doc](references/property_update.md))
425
+ - `super-metadata export` ([doc](references/super_metadata_export.md))
426
+ - `super-metadata import` ([doc](references/super_metadata_import.md))
427
+ - `virtual-event create` ([doc](references/virtual_event_create.md))
428
+ - `virtual-event delete` ([doc](references/virtual_event_delete.md))
429
+ - `virtual-event get` ([doc](references/virtual_event_get.md))
430
+ - `virtual-property create` ([doc](references/virtual_property_create.md))
431
+ - `virtual-property sql-rule-delete` ([doc](references/virtual_property_sql_rule_delete.md))
432
+ - `virtual-property sql-rule-update` ([doc](references/virtual_property_sql_rule_update.md))
433
+
434
+ ### analysis
365
435
 
366
436
  Alerts (6):
367
437
  - `+get_alert_definition_schema` ([doc](references/get_alert_definition_schema.md))
@@ -379,7 +449,7 @@ Reports:
379
449
  - `+update_report` ([doc](references/update_report.md))
380
450
  - `+delete_report` ([doc](references/delete_report.md))
381
451
 
382
- Dashboard, BI panel, project-space, folder, favorite, public-link, dashboard-definition, dashboard-daily-report, run, artifact, and dashboard/BI data commands are capability-gateway commands. Use `ae-cli analysis <resource> <action>` after reading [`references/analysis_gateway_assets.md`](references/analysis_gateway_assets.md); do not use old `+` dashboard/space/BI/public-link command names.
452
+ Dashboard, BI panel, project-space list/get, favorite, public-link, dashboard-definition, dashboard-daily-report, run, artifact, and dashboard/BI data commands are curated capability-gateway commands. Use `ae-cli analysis <resource> <action>` after reading [`references/analysis_gateway_assets.md`](references/analysis_gateway_assets.md). Project-space and folder create/delete/share are L3 only; use `ae-cli capability ...` after reading the matching reference. `*.members` read capabilities use L3 dynamic discovery via the gateway matrix (no standalone reference). Do not use old `+` dashboard/space/BI/public-link command names.
383
453
 
384
454
  Model Analysis (17):
385
455
  - `+build_event_analysis_qp` ([doc](references/build_event_analysis_qp.md))
@@ -487,6 +557,7 @@ Entity Catalog (2):
487
557
 
488
558
  ```bash
489
559
  ae-cli analysis --help
560
+ ae-cli analysis-meta --help
490
561
  ae-cli analysis_audience --help
491
562
  ae-cli analysis_meta --help
492
563
  ae-cli analysis_common --help
@@ -498,4 +569,4 @@ npm run verify:analysis-common-tools
498
569
 
499
570
  ## Reference Docs
500
571
 
501
- See the unified `references/` directory (79 command docs total).
572
+ See the unified `references/` directory (124 command docs total).