@thinkingai/ae-cli 6.1.11 → 6.1.13

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 (150) hide show
  1. package/README.md +0 -2
  2. package/README.zh.md +0 -2
  3. package/dist/{auth-NN55553T.js → auth-GBMV6TEJ.js} +2 -2
  4. package/dist/{auth-GDV3H5I4.js → auth-NDSXE54J.js} +4 -4
  5. package/dist/{capability-TPORIKRQ.js → capability-TAMDRZYV.js} +23 -10
  6. package/dist/{capability-VQNC5CF7.js → capability-U7TDEEEG.js} +23 -10
  7. package/dist/{chunk-GJJA4CQZ.js → chunk-3FY3RJ26.js} +0 -4
  8. package/dist/{chunk-GS2P7LFD.js → chunk-5XUSIK27.js} +2 -2
  9. package/dist/{chunk-7KQWSBSL.js → chunk-753BUTNZ.js} +3 -3
  10. package/dist/{chunk-VTXHDCBW.js → chunk-AFXA7BRK.js} +2 -2
  11. package/dist/chunk-IBH3LDAH.js +556 -0
  12. package/dist/{chunk-RBNKI5ZW.js → chunk-JUW4AJXN.js} +2 -2
  13. package/dist/{chunk-TS6BUGUY.js → chunk-QATA32VR.js} +3 -3
  14. package/dist/{chunk-Z3OXWCIA.js → chunk-S5NTSDBS.js} +2 -2
  15. package/dist/chunk-UIHQJK5E.js +556 -0
  16. package/dist/{chunk-VKD5WQKN.js → chunk-VLWOLBGZ.js} +142 -24
  17. package/dist/{chunk-YTG6Q75E.js → chunk-WZRX4KOH.js} +25 -3
  18. package/dist/{chunk-YV52FB5G.js → chunk-ZQKDZXDO.js} +1 -1
  19. package/dist/{cli-token-GL5MS5FK.js → cli-token-4UPER74P.js} +3 -3
  20. package/dist/{chunk-6A2FUCIS.js → client-L2YDMHQ6.js} +5 -6
  21. package/dist/{config-4VZNLBKF.js → config-OL2LWGBV.js} +4 -33
  22. package/dist/index.js +25 -38
  23. package/dist/{memory-RWJW4XFO.js → memory-MUP7PPL7.js} +4 -4
  24. package/dist/{memory-VO2ZJCRT.js → memory-U4O5PMXH.js} +4 -4
  25. package/dist/{metadata-YGTHR2XJ.js → metadata-UORZTW3T.js} +21 -11
  26. package/dist/{metadata-ZRN2GHPN.js → metadata-VVQ3AQT5.js} +21 -11
  27. package/dist/{model-CLUIK3K5.js → model-JTUEO5M4.js} +2 -2
  28. package/dist/{sync-3REDHGY6.js → sync-MOSFNBVR.js} +5 -5
  29. package/dist/{te-agent-XNPELAKX.js → te-agent-IFKZDHZI.js} +25 -18
  30. package/dist/{te-analysis-GJI5FZUL.js → te-analysis-KOKHJJPE.js} +1225 -450
  31. package/dist/{te-analysis-N2BRDJZ5.js → te-analysis-LLOCCBJ4.js} +1225 -450
  32. package/dist/{te-community-SQXKE5OO.js → te-community-HNKVTERD.js} +207 -12
  33. package/dist/{te-community-TYSNU3NQ.js → te-community-IWE5B7W6.js} +208 -12
  34. package/dist/{te-dataops-OWIADNSM.js → te-dataops-KQPYNAE3.js} +262 -145
  35. package/dist/{te-dataops-5TM7WZDI.js → te-dataops-KXCEB4CS.js} +262 -145
  36. package/dist/{te-engage-F7V55KVW.js → te-engage-BRLSRVQT.js} +960 -41
  37. package/dist/{te-engage-FMYAYCNV.js → te-engage-HE4OPZIT.js} +960 -41
  38. package/dist/{te-experiment-JWXOYJ3W.js → te-experiment-K5US7RMG.js} +115 -9
  39. package/dist/{te-experiment-UPDMHCAJ.js → te-experiment-WA7TFMEL.js} +115 -9
  40. package/dist/{te-kb-VRMEY3D4.js → te-kb-OIH3T6CS.js} +4 -4
  41. package/dist/{te-system-XGS5EQIQ.js → te-system-AZ3URMUO.js} +515 -11
  42. package/dist/{te-team-BZRDV2CM.js → te-team-GZPU6UWA.js} +5 -5
  43. package/dist/{update-HEDXGOJH.js → update-TOBFXF2V.js} +4 -4
  44. package/package.json +6 -6
  45. package/skills/ae-agent/SKILL.md +3 -3
  46. package/skills/ae-agent/references/list-skill-references.md +4 -4
  47. package/skills/ae-agent/references/read-skill-reference.md +10 -7
  48. package/skills/ae-agent/references/upload-skill-reference.md +11 -9
  49. package/skills/ae-analysis/SKILL.md +15 -12
  50. package/skills/ae-analysis/metadata_resolution.md +150 -0
  51. package/skills/ae-analysis/references/adhoc_export.md +17 -2
  52. package/skills/ae-analysis/references/adhoc_run.md +12 -8
  53. package/skills/ae-analysis/references/ai_models.md +31 -5
  54. package/skills/ae-analysis/references/analysis_data_retrieval.md +104 -16
  55. package/skills/ae-analysis/references/analysis_drilldown_contract.md +4 -4
  56. package/skills/ae-analysis/references/analysis_gateway_assets.md +12 -10
  57. package/skills/ae-analysis/references/artifact_download.md +4 -3
  58. package/skills/ae-analysis/references/asset_abnormal_list.md +5 -3
  59. package/skills/ae-analysis/references/asset_authentication_list.md +5 -3
  60. package/skills/ae-analysis/references/asset_search.md +5 -3
  61. package/skills/ae-analysis/references/bi_panel_page_data_export.md +1 -1
  62. package/skills/ae-analysis/references/bi_panel_page_data_run.md +4 -4
  63. package/skills/ae-analysis/references/catalog_export.md +28 -0
  64. package/skills/ae-analysis/references/catalog_list.md +44 -0
  65. package/skills/ae-analysis/references/command_index.md +72 -63
  66. package/skills/ae-analysis/references/dashboard_report_data_run.md +11 -4
  67. package/skills/ae-analysis/references/datatable_version_list.md +5 -3
  68. package/skills/ae-analysis/references/drilldown_entities_run.md +4 -4
  69. package/skills/ae-analysis/references/drilldown_events_run.md +2 -2
  70. package/skills/ae-analysis/references/drilldown_user_events_export.md +1 -1
  71. package/skills/ae-analysis/references/drilldown_user_events_run.md +2 -2
  72. package/skills/ae-analysis/references/entity_detail_run.md +4 -4
  73. package/skills/ae-analysis/references/entity_id_import_options.md +1 -1
  74. package/skills/ae-analysis/references/event_detail_run.md +4 -4
  75. package/skills/ae-analysis/references/event_export.md +21 -0
  76. package/skills/ae-analysis/references/event_list.md +7 -6
  77. package/skills/ae-analysis/references/exchange_rule_list.md +5 -3
  78. package/skills/ae-analysis/references/history_tag_data_drilldown_export.md +4 -2
  79. package/skills/ae-analysis/references/history_tag_data_drilldown_run.md +2 -2
  80. package/skills/ae-analysis/references/history_tag_data_run.md +2 -2
  81. package/skills/ae-analysis/references/metric_export.md +21 -0
  82. package/skills/ae-analysis/references/metric_list.md +8 -7
  83. package/skills/ae-analysis/references/property_export.md +21 -0
  84. package/skills/ae-analysis/references/property_list.md +9 -8
  85. package/skills/ae-analysis/references/query_context_get.md +20 -0
  86. package/skills/ae-analysis/references/query_create_result_cluster.md +1 -1
  87. package/skills/ae-analysis/references/report_change_log_list.md +1 -1
  88. package/skills/ae-analysis/references/report_create.md +3 -3
  89. package/skills/ae-analysis/references/report_data_run.md +8 -8
  90. package/skills/ae-analysis/references/report_update.md +3 -3
  91. package/skills/ae-analysis/references/report_version_rollback.md +1 -1
  92. package/skills/ae-analysis/references/rule_list.md +6 -4
  93. package/skills/ae-analysis/references/run_inspect.md +8 -5
  94. package/skills/ae-analysis/references/run_wait.md +37 -0
  95. package/skills/ae-analysis/references/user_cluster_export.md +13 -0
  96. package/skills/ae-analysis/references/user_cluster_list.md +6 -2
  97. package/skills/ae-analysis/references/user_cluster_member_export.md +5 -3
  98. package/skills/ae-analysis/references/user_cluster_member_list.md +4 -4
  99. package/skills/ae-analysis/references/user_tag_export.md +13 -0
  100. package/skills/ae-analysis/references/user_tag_list.md +6 -2
  101. package/skills/ae-analysis/references/user_tag_member_export.md +5 -3
  102. package/skills/ae-analysis/references/user_tag_member_list.md +4 -4
  103. package/skills/ae-analysis/references/virtual_property_create.md +2 -2
  104. package/skills/ae-community/SKILL.md +2 -2
  105. package/skills/ae-dataops/SKILL.md +4 -3
  106. package/skills/ae-dataops/references/dataops-flow-create.md +47 -3
  107. package/skills/ae-engage/SKILL.md +57 -7
  108. package/skills/ae-engage/references/activity-data-detail.md +61 -0
  109. package/skills/ae-engage/references/build-task-save-guide.md +37 -1
  110. package/skills/ae-engage/references/cancel-query-run.md +31 -0
  111. package/skills/ae-engage/references/common-metric.md +45 -0
  112. package/skills/ae-engage/references/config-item-analysis-report.md +14 -1
  113. package/skills/ae-engage/references/config-item-strategy-comparison.md +11 -1
  114. package/skills/ae-engage/references/config-item-trigger-report.md +15 -1
  115. package/skills/ae-engage/references/flow-metric-detail-report.md +134 -0
  116. package/skills/ae-engage/references/flow-metric-update.md +77 -0
  117. package/skills/ae-engage/references/flow-metric-user.md +118 -0
  118. package/skills/ae-engage/references/flow-node-metric-user.md +122 -0
  119. package/skills/ae-engage/references/flow-node-user.md +122 -0
  120. package/skills/ae-engage/references/preset-event.md +2 -0
  121. package/skills/ae-engage/references/push-record-query.md +32 -1
  122. package/skills/ae-engage/references/save-flow.md +14 -0
  123. package/skills/ae-engage/references/save-task.md +44 -0
  124. package/skills/ae-engage/references/scene-strategy-audience.md +12 -7
  125. package/skills/ae-engage/references/task-data-detail.md +9 -2
  126. package/skills/ae-engage/references/task-metric-detail.md +9 -2
  127. package/skills/ae-engage/references/task-submit-approval.md +3 -0
  128. package/skills/ae-experiment/SKILL.md +17 -4
  129. package/skills/ae-experiment/references/delete_metric.md +2 -0
  130. package/skills/ae-experiment/references/query_experiment_metric_trend.md +5 -5
  131. package/skills/ae-experiment/references/query_experiment_report_summary.md +4 -3
  132. package/skills/ae-experiment/references/query_experiment_sample_size_report.md +6 -5
  133. package/skills/ae-experiment/references/save_build_guide.md +39 -0
  134. package/skills/ae-experiment/references/save_experiment.md +11 -0
  135. package/skills/ae-experiment/references/save_metric.md +5 -1
  136. package/skills/ae-experiment/references/save_validate.md +33 -0
  137. package/skills/ae-experiment-design/SKILL.md +1 -1
  138. package/skills/ae-experiment-design/references/platform-operations.md +10 -4
  139. package/skills/ae-experiment-insight/references/platform-operations.md +10 -4
  140. package/skills/ae-metadata/SKILL.md +2 -1
  141. package/skills/ae-metadata/references/metadata_data_table_download.md +10 -2
  142. package/skills/ae-metadata/references/metadata_data_table_list.md +5 -2
  143. package/skills/ae-system/SKILL.md +66 -3
  144. package/dist/chunk-DT6Y3TD7.js +0 -232
  145. package/dist/chunk-MVDZ7DBQ.js +0 -231
  146. package/dist/chunk-NBPKWKRA.js +0 -51
  147. package/dist/client-DAIPF7XN.js +0 -23
  148. package/dist/raw-52B4UKO4.js +0 -71
  149. package/dist/te-meta-53BVXPFI.js +0 -95
  150. package/dist/te-meta-TOCBPBXI.js +0 -95
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  createCapabilityCommand
3
- } from "./chunk-TS6BUGUY.js";
3
+ } from "./chunk-753BUTNZ.js";
4
4
  import {
5
5
  registerCapabilityGatewayRoute
6
6
  } from "./chunk-PTE56QPL.js";
7
- import "./chunk-YTG6Q75E.js";
8
- import "./chunk-GS2P7LFD.js";
9
- import "./chunk-Z3OXWCIA.js";
10
- import "./chunk-YV52FB5G.js";
11
- import "./chunk-GJJA4CQZ.js";
7
+ import "./chunk-WZRX4KOH.js";
8
+ import "./chunk-5XUSIK27.js";
9
+ import "./chunk-S5NTSDBS.js";
10
+ import "./chunk-ZQKDZXDO.js";
11
+ import "./chunk-3FY3RJ26.js";
12
12
  import "./chunk-AXDXJTPC.js";
13
13
  import "./chunk-JHENBQ5B.js";
14
14
 
@@ -37,6 +37,9 @@ function readRequiredStringArray(ctx, name) {
37
37
  function addOptionalString(input, name, value) {
38
38
  if (value !== "") input[name] = value;
39
39
  }
40
+ function addOptionalBoolean(input, ctx, flagName, fieldName) {
41
+ if (ctx.str(flagName) !== "") input[fieldName] = ctx.bool(flagName);
42
+ }
40
43
 
41
44
  // src/commands/te-experiment/bucket/list.ts
42
45
  var bucketList = createExperimentCapabilityCommand({
@@ -481,7 +484,7 @@ var saveBuildGuide = createExperimentCapabilityCommand({
481
484
  resource: "save",
482
485
  command: "build-guide",
483
486
  capabilityId: "experiment.save.build-guide",
484
- description: "Build a read-only save guide for feature, traffic layer, experiment, or metric saves.",
487
+ description: "Build a read-only save guide for feature, traffic layer, experiment, or metric saves. WARNING: data.guide.example_args.req keys are recursively snake_cased for display; do not copy them into --req. Final save DTOs require camelCase (e.g. expName). Prefer capability inspect <final-save-id> input_schema.properties.req.",
485
488
  flags: [
486
489
  { name: "project-id", type: "number", required: true, alias: "p", desc: "Numeric project ID." },
487
490
  {
@@ -509,7 +512,7 @@ var saveValidate = createExperimentCapabilityCommand({
509
512
  resource: "save",
510
513
  command: "validate",
511
514
  capabilityId: "experiment.save.validate",
512
- description: "Dry-run validation for feature, traffic layer, experiment, or metric save requests.",
515
+ description: "Dry-run validation for feature, traffic layer, experiment, or metric save requests. WARNING: valid=true is not a final-save schema pass; snake_case req keys (e.g. exp_name) can still fail on experiment \u2026 save. Always pass camelCase --req. Do not copy example_args.req key casing from this response.",
513
516
  flags: [
514
517
  { name: "project-id", type: "number", required: true, alias: "p", desc: "Numeric project ID." },
515
518
  {
@@ -518,7 +521,12 @@ var saveValidate = createExperimentCapabilityCommand({
518
521
  required: true,
519
522
  desc: "Save operation mode: save_feature, save_traffic_layer, save_experiment, or save_metric."
520
523
  },
521
- { name: "req", type: "json", required: true, desc: "Candidate camelCase save request object." }
524
+ {
525
+ name: "req",
526
+ type: "json",
527
+ required: true,
528
+ desc: "Candidate camelCase save request object (expName/metricId/\u2026). Never use snake_case DTO keys."
529
+ }
522
530
  ],
523
531
  risk: "read",
524
532
  validate: (ctx) => {
@@ -535,6 +543,98 @@ var saveValidate = createExperimentCapabilityCommand({
535
543
  })
536
544
  });
537
545
 
546
+ // src/commands/te-experiment/report/metric-trend.ts
547
+ var reportMetricTrend = createExperimentCapabilityCommand({
548
+ resource: "report",
549
+ command: "metric-trend",
550
+ capabilityId: "experiment.report.metric-trend",
551
+ description: "Query an experiment metric trend report for a date range.",
552
+ flags: [
553
+ { name: "project-id", type: "number", required: true, alias: "p", desc: "Numeric project ID." },
554
+ { name: "exp-id", type: "string", required: true, desc: "Experiment ID." },
555
+ { name: "metric-id", type: "string", required: true, desc: "Metric ID." },
556
+ { name: "start-time", type: "string", required: true, desc: "Start date in yyyy-MM-dd format." },
557
+ { name: "end-time", type: "string", required: true, desc: "End date in yyyy-MM-dd format." },
558
+ {
559
+ name: "request-id",
560
+ type: "string",
561
+ required: false,
562
+ desc: "Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted."
563
+ },
564
+ { name: "force-refresh", type: "boolean", required: false, desc: "Force refresh report data." }
565
+ ],
566
+ risk: "read",
567
+ buildInput: (ctx) => {
568
+ const input = {
569
+ project_id: ctx.num("project-id"),
570
+ exp_id: ctx.str("exp-id"),
571
+ metric_id: ctx.str("metric-id"),
572
+ start_time: ctx.str("start-time"),
573
+ end_time: ctx.str("end-time")
574
+ };
575
+ addOptionalString(input, "request_id", ctx.str("request-id"));
576
+ addOptionalBoolean(input, ctx, "force-refresh", "force_refresh");
577
+ return input;
578
+ }
579
+ });
580
+
581
+ // src/commands/te-experiment/report/sample-size.ts
582
+ var reportSampleSize = createExperimentCapabilityCommand({
583
+ resource: "report",
584
+ command: "sample-size",
585
+ capabilityId: "experiment.report.sample-size",
586
+ description: "Query an experiment sample-size report for a date range.",
587
+ flags: [
588
+ { name: "project-id", type: "number", required: true, alias: "p", desc: "Numeric project ID." },
589
+ { name: "exp-id", type: "string", required: true, desc: "Experiment ID." },
590
+ { name: "start-time", type: "string", required: true, desc: "Start date in yyyy-MM-dd format." },
591
+ { name: "end-time", type: "string", required: true, desc: "End date in yyyy-MM-dd format." },
592
+ {
593
+ name: "request-id",
594
+ type: "string",
595
+ required: false,
596
+ desc: "Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted."
597
+ },
598
+ { name: "force-refresh", type: "boolean", required: false, desc: "Force refresh report data." },
599
+ { name: "by-hour", type: "boolean", required: false, desc: "Break results down by hour." }
600
+ ],
601
+ risk: "read",
602
+ buildInput: (ctx) => {
603
+ const input = {
604
+ project_id: ctx.num("project-id"),
605
+ exp_id: ctx.str("exp-id"),
606
+ start_time: ctx.str("start-time"),
607
+ end_time: ctx.str("end-time")
608
+ };
609
+ addOptionalString(input, "request_id", ctx.str("request-id"));
610
+ addOptionalBoolean(input, ctx, "force-refresh", "force_refresh");
611
+ addOptionalBoolean(input, ctx, "by-hour", "by_hour");
612
+ return input;
613
+ }
614
+ });
615
+
616
+ // src/commands/te-experiment/report/summary.ts
617
+ var reportSummary = createExperimentCapabilityCommand({
618
+ resource: "report",
619
+ command: "summary",
620
+ capabilityId: "experiment.report.summary",
621
+ description: "Query an experiment report summary.",
622
+ flags: [
623
+ { name: "project-id", type: "number", required: true, alias: "p", desc: "Numeric project ID." },
624
+ { name: "exp-id", type: "string", required: true, desc: "Experiment ID." },
625
+ { name: "force-refresh", type: "boolean", required: false, desc: "Force refresh report data." }
626
+ ],
627
+ risk: "read",
628
+ buildInput: (ctx) => {
629
+ const input = {
630
+ project_id: ctx.num("project-id"),
631
+ exp_id: ctx.str("exp-id")
632
+ };
633
+ addOptionalBoolean(input, ctx, "force-refresh", "force_refresh");
634
+ return input;
635
+ }
636
+ });
637
+
538
638
  // src/commands/te-experiment/traffic-layer/batch-delete.ts
539
639
  var trafficLayerBatchDelete = createExperimentCapabilityCommand({
540
640
  resource: "traffic-layer",
@@ -616,6 +716,9 @@ var commands = [
616
716
  trafficLayerGet,
617
717
  trafficLayerList,
618
718
  trafficLayerBatchDelete,
719
+ reportSummary,
720
+ reportSampleSize,
721
+ reportMetricTrend,
619
722
  metricSave,
620
723
  metricGet,
621
724
  metricList,
@@ -654,6 +757,9 @@ export {
654
757
  metricList,
655
758
  metricSave,
656
759
  operationLogQuery,
760
+ reportMetricTrend,
761
+ reportSampleSize,
762
+ reportSummary,
657
763
  saveBuildGuide,
658
764
  saveValidate,
659
765
  trafficLayerBatchDelete,
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  createCapabilityCommand
3
- } from "./chunk-7KQWSBSL.js";
3
+ } from "./chunk-QATA32VR.js";
4
4
  import {
5
5
  registerCapabilityGatewayRoute
6
6
  } from "./chunk-PTE56QPL.js";
7
- import "./chunk-YTG6Q75E.js";
8
- import "./chunk-RBNKI5ZW.js";
9
- import "./chunk-Z3OXWCIA.js";
10
- import "./chunk-YV52FB5G.js";
11
- import "./chunk-GJJA4CQZ.js";
7
+ import "./chunk-WZRX4KOH.js";
8
+ import "./chunk-JUW4AJXN.js";
9
+ import "./chunk-S5NTSDBS.js";
10
+ import "./chunk-ZQKDZXDO.js";
11
+ import "./chunk-3FY3RJ26.js";
12
12
  import "./chunk-AXDXJTPC.js";
13
13
  import "./chunk-JHENBQ5B.js";
14
14
 
@@ -37,6 +37,9 @@ function readRequiredStringArray(ctx, name) {
37
37
  function addOptionalString(input, name, value) {
38
38
  if (value !== "") input[name] = value;
39
39
  }
40
+ function addOptionalBoolean(input, ctx, flagName, fieldName) {
41
+ if (ctx.str(flagName) !== "") input[fieldName] = ctx.bool(flagName);
42
+ }
40
43
 
41
44
  // src/commands/te-experiment/bucket/list.ts
42
45
  var bucketList = createExperimentCapabilityCommand({
@@ -481,7 +484,7 @@ var saveBuildGuide = createExperimentCapabilityCommand({
481
484
  resource: "save",
482
485
  command: "build-guide",
483
486
  capabilityId: "experiment.save.build-guide",
484
- description: "Build a read-only save guide for feature, traffic layer, experiment, or metric saves.",
487
+ description: "Build a read-only save guide for feature, traffic layer, experiment, or metric saves. WARNING: data.guide.example_args.req keys are recursively snake_cased for display; do not copy them into --req. Final save DTOs require camelCase (e.g. expName). Prefer capability inspect <final-save-id> input_schema.properties.req.",
485
488
  flags: [
486
489
  { name: "project-id", type: "number", required: true, alias: "p", desc: "Numeric project ID." },
487
490
  {
@@ -509,7 +512,7 @@ var saveValidate = createExperimentCapabilityCommand({
509
512
  resource: "save",
510
513
  command: "validate",
511
514
  capabilityId: "experiment.save.validate",
512
- description: "Dry-run validation for feature, traffic layer, experiment, or metric save requests.",
515
+ description: "Dry-run validation for feature, traffic layer, experiment, or metric save requests. WARNING: valid=true is not a final-save schema pass; snake_case req keys (e.g. exp_name) can still fail on experiment \u2026 save. Always pass camelCase --req. Do not copy example_args.req key casing from this response.",
513
516
  flags: [
514
517
  { name: "project-id", type: "number", required: true, alias: "p", desc: "Numeric project ID." },
515
518
  {
@@ -518,7 +521,12 @@ var saveValidate = createExperimentCapabilityCommand({
518
521
  required: true,
519
522
  desc: "Save operation mode: save_feature, save_traffic_layer, save_experiment, or save_metric."
520
523
  },
521
- { name: "req", type: "json", required: true, desc: "Candidate camelCase save request object." }
524
+ {
525
+ name: "req",
526
+ type: "json",
527
+ required: true,
528
+ desc: "Candidate camelCase save request object (expName/metricId/\u2026). Never use snake_case DTO keys."
529
+ }
522
530
  ],
523
531
  risk: "read",
524
532
  validate: (ctx) => {
@@ -535,6 +543,98 @@ var saveValidate = createExperimentCapabilityCommand({
535
543
  })
536
544
  });
537
545
 
546
+ // src/commands/te-experiment/report/metric-trend.ts
547
+ var reportMetricTrend = createExperimentCapabilityCommand({
548
+ resource: "report",
549
+ command: "metric-trend",
550
+ capabilityId: "experiment.report.metric-trend",
551
+ description: "Query an experiment metric trend report for a date range.",
552
+ flags: [
553
+ { name: "project-id", type: "number", required: true, alias: "p", desc: "Numeric project ID." },
554
+ { name: "exp-id", type: "string", required: true, desc: "Experiment ID." },
555
+ { name: "metric-id", type: "string", required: true, desc: "Metric ID." },
556
+ { name: "start-time", type: "string", required: true, desc: "Start date in yyyy-MM-dd format." },
557
+ { name: "end-time", type: "string", required: true, desc: "End date in yyyy-MM-dd format." },
558
+ {
559
+ name: "request-id",
560
+ type: "string",
561
+ required: false,
562
+ desc: "Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted."
563
+ },
564
+ { name: "force-refresh", type: "boolean", required: false, desc: "Force refresh report data." }
565
+ ],
566
+ risk: "read",
567
+ buildInput: (ctx) => {
568
+ const input = {
569
+ project_id: ctx.num("project-id"),
570
+ exp_id: ctx.str("exp-id"),
571
+ metric_id: ctx.str("metric-id"),
572
+ start_time: ctx.str("start-time"),
573
+ end_time: ctx.str("end-time")
574
+ };
575
+ addOptionalString(input, "request_id", ctx.str("request-id"));
576
+ addOptionalBoolean(input, ctx, "force-refresh", "force_refresh");
577
+ return input;
578
+ }
579
+ });
580
+
581
+ // src/commands/te-experiment/report/sample-size.ts
582
+ var reportSampleSize = createExperimentCapabilityCommand({
583
+ resource: "report",
584
+ command: "sample-size",
585
+ capabilityId: "experiment.report.sample-size",
586
+ description: "Query an experiment sample-size report for a date range.",
587
+ flags: [
588
+ { name: "project-id", type: "number", required: true, alias: "p", desc: "Numeric project ID." },
589
+ { name: "exp-id", type: "string", required: true, desc: "Experiment ID." },
590
+ { name: "start-time", type: "string", required: true, desc: "Start date in yyyy-MM-dd format." },
591
+ { name: "end-time", type: "string", required: true, desc: "End date in yyyy-MM-dd format." },
592
+ {
593
+ name: "request-id",
594
+ type: "string",
595
+ required: false,
596
+ desc: "Optional caller-supplied cli_<32 lowercase hex> lifecycle ID. ae-cli generates and prints one before dispatch when omitted."
597
+ },
598
+ { name: "force-refresh", type: "boolean", required: false, desc: "Force refresh report data." },
599
+ { name: "by-hour", type: "boolean", required: false, desc: "Break results down by hour." }
600
+ ],
601
+ risk: "read",
602
+ buildInput: (ctx) => {
603
+ const input = {
604
+ project_id: ctx.num("project-id"),
605
+ exp_id: ctx.str("exp-id"),
606
+ start_time: ctx.str("start-time"),
607
+ end_time: ctx.str("end-time")
608
+ };
609
+ addOptionalString(input, "request_id", ctx.str("request-id"));
610
+ addOptionalBoolean(input, ctx, "force-refresh", "force_refresh");
611
+ addOptionalBoolean(input, ctx, "by-hour", "by_hour");
612
+ return input;
613
+ }
614
+ });
615
+
616
+ // src/commands/te-experiment/report/summary.ts
617
+ var reportSummary = createExperimentCapabilityCommand({
618
+ resource: "report",
619
+ command: "summary",
620
+ capabilityId: "experiment.report.summary",
621
+ description: "Query an experiment report summary.",
622
+ flags: [
623
+ { name: "project-id", type: "number", required: true, alias: "p", desc: "Numeric project ID." },
624
+ { name: "exp-id", type: "string", required: true, desc: "Experiment ID." },
625
+ { name: "force-refresh", type: "boolean", required: false, desc: "Force refresh report data." }
626
+ ],
627
+ risk: "read",
628
+ buildInput: (ctx) => {
629
+ const input = {
630
+ project_id: ctx.num("project-id"),
631
+ exp_id: ctx.str("exp-id")
632
+ };
633
+ addOptionalBoolean(input, ctx, "force-refresh", "force_refresh");
634
+ return input;
635
+ }
636
+ });
637
+
538
638
  // src/commands/te-experiment/traffic-layer/batch-delete.ts
539
639
  var trafficLayerBatchDelete = createExperimentCapabilityCommand({
540
640
  resource: "traffic-layer",
@@ -616,6 +716,9 @@ var commands = [
616
716
  trafficLayerGet,
617
717
  trafficLayerList,
618
718
  trafficLayerBatchDelete,
719
+ reportSummary,
720
+ reportSampleSize,
721
+ reportMetricTrend,
619
722
  metricSave,
620
723
  metricGet,
621
724
  metricList,
@@ -654,6 +757,9 @@ export {
654
757
  metricList,
655
758
  metricSave,
656
759
  operationLogQuery,
760
+ reportMetricTrend,
761
+ reportSampleSize,
762
+ reportSummary,
657
763
  saveBuildGuide,
658
764
  saveValidate,
659
765
  trafficLayerBatchDelete,
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  kbApi,
3
3
  kbUpload
4
- } from "./chunk-VTXHDCBW.js";
5
- import "./chunk-Z3OXWCIA.js";
6
- import "./chunk-YV52FB5G.js";
7
- import "./chunk-GJJA4CQZ.js";
4
+ } from "./chunk-AFXA7BRK.js";
5
+ import "./chunk-S5NTSDBS.js";
6
+ import "./chunk-ZQKDZXDO.js";
7
+ import "./chunk-3FY3RJ26.js";
8
8
  import "./chunk-AXDXJTPC.js";
9
9
  import "./chunk-JHENBQ5B.js";
10
10