@thinkingai/ae-cli 6.0.31 → 6.0.32

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 (164) hide show
  1. package/README.md +3 -2
  2. package/README.zh.md +3 -2
  3. package/dist/{capability-SQ2IWKP3.js → capability-QW4AVJHI.js} +1 -1
  4. package/dist/{capability-SEH3JWLN.js → capability-SCRFGODD.js} +1 -1
  5. package/dist/{chunk-N2QORU5D.js → chunk-7OLGDQQ2.js} +5 -2
  6. package/dist/{chunk-TKQJQXWT.js → chunk-TBHBYKXZ.js} +5 -2
  7. package/dist/index.js +46 -24
  8. package/dist/{metadata-X62TKIVK.js → metadata-BFDL6RUK.js} +2 -2
  9. package/dist/{metadata-W6JFFMBA.js → metadata-FCLDBXX2.js} +2 -2
  10. package/dist/{te-analysis-NJGNWZFC.js → te-analysis-PUVF5IF4.js} +1297 -91
  11. package/dist/{te-analysis-YGV5V5EX.js → te-analysis-UJDOKPAN.js} +1297 -91
  12. package/dist/te-common-VUX3VOXZ.js +60 -0
  13. package/dist/te-common-XLAGWNIV.js +60 -0
  14. package/dist/te-engage-K4AEUPK5.js +3894 -0
  15. package/dist/te-engage-QBCCME22.js +3894 -0
  16. package/dist/{te-kb-NT33UHAE.js → te-kb-AYCODNU6.js} +56 -17
  17. package/dist/{te-meta-VKWNAWO4.js → te-meta-ARDIW3YI.js} +1 -234
  18. package/dist/{te-meta-MAAUHFQO.js → te-meta-UUROEODR.js} +1 -234
  19. package/package.json +1 -1
  20. package/skills/ae-analysis/SKILL.md +10 -7
  21. package/skills/ae-analysis/references/adhoc_export.md +3 -6
  22. package/skills/ae-analysis/references/adhoc_run.md +5 -9
  23. package/skills/ae-analysis/references/ai_models.md +17 -1
  24. package/skills/ae-analysis/references/analysis_data_retrieval.md +11 -11
  25. package/skills/ae-analysis/references/analysis_drilldown_contract.md +93 -0
  26. package/skills/ae-analysis/references/analysis_gateway_assets.md +9 -8
  27. package/skills/ae-analysis/references/asset_url_get.md +4 -3
  28. package/skills/ae-analysis/references/bi_panel_page_data_export.md +2 -2
  29. package/skills/ae-analysis/references/bi_panel_page_data_run.md +1 -1
  30. package/skills/ae-analysis/references/command_index.md +62 -28
  31. package/skills/ae-analysis/references/create_entity.md +2 -2
  32. package/skills/ae-analysis/references/dashboard_report_data_export.md +2 -2
  33. package/skills/ae-analysis/references/dashboard_report_data_run.md +2 -2
  34. package/skills/ae-analysis/references/drilldown_entities_export.md +26 -0
  35. package/skills/ae-analysis/references/drilldown_entities_run.md +33 -0
  36. package/skills/ae-analysis/references/drilldown_events_export.md +21 -0
  37. package/skills/ae-analysis/references/drilldown_events_run.md +23 -0
  38. package/skills/ae-analysis/references/drilldown_user_events_export.md +6 -3
  39. package/skills/ae-analysis/references/drilldown_user_events_run.md +6 -6
  40. package/skills/ae-analysis/references/entity_detail_export.md +2 -0
  41. package/skills/ae-analysis/references/entity_detail_run.md +8 -1
  42. package/skills/ae-analysis/references/event_detail_export.md +2 -0
  43. package/skills/ae-analysis/references/event_detail_run.md +2 -0
  44. package/skills/ae-analysis/references/event_list.md +10 -2
  45. package/skills/ae-analysis/references/list_entities.md +1 -1
  46. package/skills/ae-analysis/references/metric_create.md +13 -4
  47. package/skills/ae-analysis/references/metric_delete.md +7 -0
  48. package/skills/ae-analysis/references/metric_get.md +6 -0
  49. package/skills/ae-analysis/references/metric_list.md +16 -3
  50. package/skills/ae-analysis/references/metric_update.md +12 -1
  51. package/skills/ae-analysis/references/project_access_detail_get.md +23 -0
  52. package/skills/ae-analysis/references/project_data_power_delete.md +26 -0
  53. package/skills/ae-analysis/references/project_data_power_get.md +24 -0
  54. package/skills/ae-analysis/references/project_data_power_list.md +23 -0
  55. package/skills/ae-analysis/references/project_data_power_upsert.md +24 -0
  56. package/skills/ae-analysis/references/project_entity_create.md +27 -0
  57. package/skills/ae-analysis/references/project_entity_delete.md +25 -0
  58. package/skills/ae-analysis/references/project_entity_event_list.md +24 -0
  59. package/skills/ae-analysis/references/project_entity_get.md +24 -0
  60. package/skills/ae-analysis/references/project_entity_list.md +28 -0
  61. package/skills/ae-analysis/references/project_entity_update.md +28 -0
  62. package/skills/ae-analysis/references/project_function_list.md +24 -0
  63. package/skills/ae-analysis/references/project_info_get.md +23 -0
  64. package/skills/ae-analysis/references/project_info_list.md +26 -0
  65. package/skills/ae-analysis/references/project_info_update.md +25 -0
  66. package/skills/ae-analysis/references/project_mark_time_create.md +27 -0
  67. package/skills/ae-analysis/references/project_mark_time_delete.md +25 -0
  68. package/skills/ae-analysis/references/project_mark_time_list.md +28 -0
  69. package/skills/ae-analysis/references/project_mark_time_update.md +28 -0
  70. package/skills/ae-analysis/references/project_member_add.md +25 -0
  71. package/skills/ae-analysis/references/project_member_batch_update.md +24 -0
  72. package/skills/ae-analysis/references/project_member_candidate_list.md +25 -0
  73. package/skills/ae-analysis/references/project_member_handover_export.md +27 -0
  74. package/skills/ae-analysis/references/project_member_handover_run.md +24 -0
  75. package/skills/ae-analysis/references/project_member_import.md +25 -0
  76. package/skills/ae-analysis/references/project_member_list.md +23 -0
  77. package/skills/ae-analysis/references/project_member_receiver_list.md +23 -0
  78. package/skills/ae-analysis/references/project_member_remove.md +26 -0
  79. package/skills/ae-analysis/references/project_member_update.md +25 -0
  80. package/skills/ae-analysis/references/project_owner_update.md +27 -0
  81. package/skills/ae-analysis/references/project_permission_binding_list.md +24 -0
  82. package/skills/ae-analysis/references/project_receive_status_update.md +25 -0
  83. package/skills/ae-analysis/references/project_role_delete.md +25 -0
  84. package/skills/ae-analysis/references/project_role_function_list.md +27 -0
  85. package/skills/ae-analysis/references/project_role_get.md +23 -0
  86. package/skills/ae-analysis/references/project_role_list.md +25 -0
  87. package/skills/ae-analysis/references/project_role_upsert.md +24 -0
  88. package/skills/ae-analysis/references/project_role_user_list.md +23 -0
  89. package/skills/ae-analysis/references/project_timezone_get.md +23 -0
  90. package/skills/ae-analysis/references/project_timezone_overview.md +23 -0
  91. package/skills/ae-analysis/references/project_timezone_update.md +25 -0
  92. package/skills/ae-analysis/references/project_user_id_items_update.md +24 -0
  93. package/skills/ae-analysis/references/property_list.md +21 -6
  94. package/skills/ae-analysis/references/public_link_create.md +1 -1
  95. package/skills/ae-analysis/references/query_create_result_cluster.md +14 -32
  96. package/skills/ae-analysis/references/report_create.md +1 -1
  97. package/skills/ae-analysis/references/report_data_export.md +2 -2
  98. package/skills/ae-analysis/references/report_data_run.md +2 -2
  99. package/skills/ae-analysis/references/report_get.md +2 -0
  100. package/skills/ae-analysis/references/report_update.md +1 -1
  101. package/skills/ae-analysis/references/user_cluster_create.md +3 -1
  102. package/skills/ae-analysis/references/user_cluster_get.md +4 -0
  103. package/skills/ae-analysis/references/user_cluster_refresh.md +4 -2
  104. package/skills/ae-analysis/references/user_cluster_update.md +3 -1
  105. package/skills/ae-analysis/references/user_tag_create.md +3 -1
  106. package/skills/ae-analysis/references/user_tag_get.md +4 -0
  107. package/skills/ae-analysis/references/user_tag_refresh.md +4 -2
  108. package/skills/ae-analysis/references/user_tag_update.md +3 -1
  109. package/skills/ae-analysis/references/virtual_event_create.md +22 -3
  110. package/skills/ae-analysis/references/virtual_property_create.md +23 -2
  111. package/skills/ae-engage/SKILL.md +202 -7
  112. package/skills/ae-engage/references/activity-activity-type.md +42 -0
  113. package/skills/ae-engage/references/activity-activity.md +70 -0
  114. package/skills/ae-engage/references/activity-approval.md +53 -0
  115. package/skills/ae-engage/references/activity-task.md +87 -0
  116. package/skills/ae-engage/references/activity-topic.md +98 -0
  117. package/skills/ae-engage/references/approval-approver-delete.md +26 -0
  118. package/skills/ae-engage/references/channel-test-send.md +37 -0
  119. package/skills/ae-engage/references/channel-touch-limits-batch-update.md +28 -0
  120. package/skills/ae-engage/references/channel-touch-limits-save.md +37 -0
  121. package/skills/ae-engage/references/channel-touch-limits-toggle.md +28 -0
  122. package/skills/ae-engage/references/channel-update-config.md +36 -0
  123. package/skills/ae-engage/references/client-param.md +58 -0
  124. package/skills/ae-engage/references/common-metric.md +75 -0
  125. package/skills/ae-engage/references/config-table.md +92 -0
  126. package/skills/ae-engage/references/engage-scene-config-item.md +69 -0
  127. package/skills/ae-engage/references/operation-log-query.md +1 -1
  128. package/skills/ae-engage/references/preset-event.md +42 -0
  129. package/skills/ae-engage/references/push-language.md +39 -0
  130. package/skills/ae-engage/references/scene-config-channel.md +58 -0
  131. package/skills/ae-engage/references/scene-config-group.md +62 -0
  132. package/skills/ae-engage/references/scene-config-item.md +68 -0
  133. package/skills/ae-engage/references/scene-config-metric.md +79 -0
  134. package/skills/ae-engage/references/scene-config-param.md +72 -0
  135. package/skills/ae-engage/references/scene-preset-metric.md +45 -0
  136. package/skills/ae-engage/references/scene-strategy.md +47 -0
  137. package/skills/ae-engage/references/scene-template.md +71 -0
  138. package/skills/ae-engage/references/{ops-delete.md → task-delete.md} +3 -3
  139. package/skills/ae-engage/references/whitelist.md +72 -0
  140. package/skills/ae-engage/references/workbench-workbench.md +48 -0
  141. package/skills/ae-generate-tracking-plan/SKILL.md +8 -5
  142. package/skills/ae-generate-tracking-plan/references/te-api.md +1 -1
  143. package/skills/ae-kb/SKILL.md +34 -8
  144. package/skills/ae-metadata/SKILL.md +1 -1
  145. package/skills/ae-metadata/references/metadata_event_get.md +4 -4
  146. package/skills/ae-metadata/references/metadata_property_dimension_table_bind_existing.md +1 -1
  147. package/skills/ae-metadata/references/metadata_property_get.md +4 -4
  148. package/dist/te-common-5NJLF3XG.js +0 -130
  149. package/dist/te-common-7VTJZPII.js +0 -130
  150. package/dist/te-engage-BUWVSSSK.js +0 -1912
  151. package/dist/te-engage-EPE3QKDE.js +0 -1912
  152. package/skills/ae-analysis/references/create_metric.md +0 -58
  153. package/skills/ae-analysis/references/create_virtual_event.md +0 -60
  154. package/skills/ae-analysis/references/create_virtual_property.md +0 -69
  155. package/skills/ae-analysis/references/delete_metric.md +0 -32
  156. package/skills/ae-analysis/references/drilldown_users_export.md +0 -17
  157. package/skills/ae-analysis/references/drilldown_users_run.md +0 -61
  158. package/skills/ae-analysis/references/get_metric.md +0 -38
  159. package/skills/ae-analysis/references/get_resource_url.md +0 -33
  160. package/skills/ae-analysis/references/list_events.md +0 -46
  161. package/skills/ae-analysis/references/list_metrics.md +0 -52
  162. package/skills/ae-analysis/references/list_properties.md +0 -47
  163. package/skills/ae-analysis/references/update_metric.md +0 -58
  164. package/dist/{chunk-HL2AJQ4Q.js → chunk-PTE56QPL.js} +3 -3
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createCapabilityCommand
3
- } from "./chunk-TKQJQXWT.js";
3
+ } from "./chunk-TBHBYKXZ.js";
4
4
  import {
5
5
  registerCapabilityGatewayRoute,
6
6
  resolveGatewayDomain
7
- } from "./chunk-HL2AJQ4Q.js";
7
+ } from "./chunk-PTE56QPL.js";
8
8
  import {
9
9
  CapabilityGatewayError,
10
10
  buildCapabilityGatewayUrl,
@@ -501,12 +501,24 @@ var metadataEventList = createAnalysisMetaCapabilityCommand({
501
501
  resource: "event",
502
502
  command: "list",
503
503
  capabilityId: "metadata.event.list",
504
- description: "List project super events.",
504
+ description: "List project events with optional search, field projection, pagination, and authentication filtering.",
505
505
  flags: [
506
- projectIdFlag
506
+ projectIdFlag,
507
+ queryFlag,
508
+ fieldsFlag,
509
+ limitFlag,
510
+ offsetFlag,
511
+ { name: "authenticated-only", type: "boolean", required: false, desc: "When true, return only authenticated events." }
507
512
  ],
508
513
  risk: "read",
509
- buildInput: projectInput
514
+ buildInput: (ctx) => compactInput({
515
+ ...projectInput(ctx),
516
+ query: optionalString2(ctx, "query"),
517
+ fields: optionalJson(ctx, "fields"),
518
+ limit: optionalNumber2(ctx, "limit"),
519
+ offset: optionalNumber2(ctx, "offset"),
520
+ authenticated_only: optionalBoolean2(ctx, "authenticated-only")
521
+ })
510
522
  });
511
523
 
512
524
  // src/commands/te-analysis/meta/event/get.ts
@@ -643,13 +655,30 @@ var metadataPropertyList = createAnalysisMetaCapabilityCommand({
643
655
  resource: "property",
644
656
  command: "list",
645
657
  capabilityId: "metadata.property.list",
646
- description: "List event or user properties.",
658
+ description: "List event or user properties with optional search, field projection, pagination, and authentication filtering.",
647
659
  flags: [
648
660
  projectIdFlag,
649
- { name: "table-type", type: "string", required: true, desc: "Property table type." }
661
+ { name: "table-type", type: "string", required: false, desc: "Optional property table type: event or user." },
662
+ { name: "scope", type: "string", required: false, desc: "Optional property scope: event or user." },
663
+ { name: "event-name", type: "string", required: false, desc: "Optional event name filter for event properties." },
664
+ queryFlag,
665
+ fieldsFlag,
666
+ limitFlag,
667
+ offsetFlag,
668
+ { name: "authenticated-only", type: "boolean", required: false, desc: "When true, return only authenticated properties." }
650
669
  ],
651
670
  risk: "read",
652
- buildInput: (ctx) => ({ ...projectInput(ctx), table_type: ctx.str("table-type") })
671
+ buildInput: (ctx) => compactInput({
672
+ ...projectInput(ctx),
673
+ table_type: optionalString2(ctx, "table-type"),
674
+ scope: optionalString2(ctx, "scope"),
675
+ event_name: optionalString2(ctx, "event-name"),
676
+ query: optionalString2(ctx, "query"),
677
+ fields: optionalJson(ctx, "fields"),
678
+ limit: optionalNumber2(ctx, "limit"),
679
+ offset: optionalNumber2(ctx, "offset"),
680
+ authenticated_only: optionalBoolean2(ctx, "authenticated-only")
681
+ })
653
682
  });
654
683
 
655
684
  // src/commands/te-analysis/meta/property/get.ts
@@ -812,12 +841,42 @@ var metadataVirtualEventCreate = createAnalysisMetaCapabilityCommand({
812
841
  description: "Create a virtual event from events and filters.",
813
842
  flags: [
814
843
  projectIdFlag,
815
- requiredPayloadFlag,
844
+ payloadFlag,
845
+ { name: "event-name", type: "string", required: false, desc: "Virtual event name. Must start with 'ta@'." },
846
+ { name: "event-desc", type: "string", required: false, desc: "Virtual event display name." },
847
+ { name: "remark", type: "string", required: false, desc: "Optional virtual event remark." },
848
+ { name: "events", type: "json", required: false, desc: "JSON array of events to combine." },
849
+ { name: "filter", type: "json", required: false, desc: "Optional global filter JSON." },
816
850
  { name: "override", type: "boolean", required: false, desc: "Whether to override an existing virtual event rule." }
817
851
  ],
818
852
  risk: "write",
819
- buildInput: (ctx) => compactInput({ ...projectInput(ctx), payload: ctx.json("payload"), override: optionalBoolean2(ctx, "override") })
853
+ buildInput: (ctx) => compactInput({
854
+ ...projectInput(ctx),
855
+ payload: virtualEventPayload(ctx),
856
+ override: optionalBoolean2(ctx, "override")
857
+ })
820
858
  });
859
+ function virtualEventPayload(ctx) {
860
+ const payload = optionalJson(ctx, "payload");
861
+ if (payload !== void 0) {
862
+ return payload;
863
+ }
864
+ const eventName = optionalString2(ctx, "event-name");
865
+ const eventDesc = optionalString2(ctx, "event-desc");
866
+ const events = optionalJson(ctx, "events");
867
+ if (eventName === void 0 || eventDesc === void 0 || events === void 0) {
868
+ throw new Error("Pass --payload, or pass --event-name, --event-desc, and --events");
869
+ }
870
+ return compactInput({
871
+ event_name: eventName,
872
+ event_desc: eventDesc,
873
+ remark: optionalString2(ctx, "remark"),
874
+ rule: compactInput({
875
+ events,
876
+ filter: optionalJson(ctx, "filter")
877
+ })
878
+ });
879
+ }
821
880
 
822
881
  // src/commands/te-analysis/meta/virtual-event/get.ts
823
882
  var metadataVirtualEventGet = createAnalysisMetaCapabilityCommand({
@@ -864,7 +923,12 @@ var metadataVirtualPropertyCreate = createAnalysisMetaCapabilityCommand({
864
923
  flags: [
865
924
  projectIdFlag,
866
925
  { name: "sql-expression", type: "string", required: true, desc: "SQL expression used to calculate the virtual property." },
867
- { name: "v-prop", type: "json", required: true, desc: "Virtual property JSON object with property.column_name/table_type/select_type fields." },
926
+ { name: "v-prop", type: "json", required: false, desc: "Virtual property JSON object with property.column_name/table_type/select_type fields." },
927
+ { name: "property-name", type: "string", required: false, desc: "Virtual property name. Must start with '#vp@'." },
928
+ { name: "property-desc", type: "string", required: false, desc: "Virtual property display name." },
929
+ { name: "table-type", type: "string", required: false, desc: "Property table type: event or user." },
930
+ { name: "select-type", type: "string", required: false, desc: "Property value type: string, number, bool, or datetime." },
931
+ { name: "property-remark", type: "string", required: false, desc: "Optional virtual property remark." },
868
932
  { name: "properties", type: "json", required: false, desc: "Dependent property JSON array." },
869
933
  { name: "sql-event-relation-type", type: "string", required: false, desc: "relation_default, relation_always, or relation_by_setting." },
870
934
  { name: "related-events", type: "json", required: false, desc: "Related events JSON array when using relation_by_setting." },
@@ -876,7 +940,7 @@ var metadataVirtualPropertyCreate = createAnalysisMetaCapabilityCommand({
876
940
  buildInput: (ctx) => compactInput({
877
941
  ...projectInput(ctx),
878
942
  sql_expression: ctx.str("sql-expression"),
879
- v_prop: ctx.json("v-prop"),
943
+ v_prop: virtualProperty(ctx),
880
944
  properties: optionalJson(ctx, "properties"),
881
945
  sql_event_relation_type: optionalString2(ctx, "sql-event-relation-type"),
882
946
  related_events: optionalJson(ctx, "related-events"),
@@ -885,6 +949,27 @@ var metadataVirtualPropertyCreate = createAnalysisMetaCapabilityCommand({
885
949
  replace_suggestion: optionalString2(ctx, "replace-suggestion")
886
950
  })
887
951
  });
952
+ function virtualProperty(ctx) {
953
+ const vProp = optionalJson(ctx, "v-prop");
954
+ if (vProp !== void 0) {
955
+ return vProp;
956
+ }
957
+ const propertyName = optionalString2(ctx, "property-name");
958
+ const tableType = optionalString2(ctx, "table-type");
959
+ const selectType = optionalString2(ctx, "select-type");
960
+ if (propertyName === void 0 || tableType === void 0 || selectType === void 0) {
961
+ throw new Error("Pass --v-prop, or pass --property-name, --table-type, and --select-type");
962
+ }
963
+ return {
964
+ property: compactInput({
965
+ column_name: propertyName,
966
+ column_desc: optionalString2(ctx, "property-desc"),
967
+ column_remark: optionalString2(ctx, "property-remark"),
968
+ table_type: tableType,
969
+ select_type: selectType
970
+ })
971
+ };
972
+ }
888
973
 
889
974
  // src/commands/te-analysis/meta/virtual-property/sql-rule-update.ts
890
975
  var metadataVirtualPropertySqlRuleUpdate = createAnalysisMetaCapabilityCommand({
@@ -945,13 +1030,26 @@ var metadataMetricList = createAnalysisMetaCapabilityCommand({
945
1030
  resource: "metric",
946
1031
  command: "list",
947
1032
  capabilityId: "metadata.metric.list",
948
- description: "List project metrics.",
1033
+ description: "List project metrics with optional search, projection, pagination, and authentication filtering.",
949
1034
  flags: [
950
1035
  projectIdFlag,
951
- { name: "ignore-authentication", type: "boolean", required: false, desc: "Whether to skip asset authentication status decoration." }
1036
+ { name: "ignore-authentication", type: "boolean", required: false, desc: "Whether to skip asset authentication status decoration." },
1037
+ queryFlag,
1038
+ fieldsFlag,
1039
+ limitFlag,
1040
+ offsetFlag,
1041
+ { name: "authenticated-only", type: "boolean", required: false, desc: "When true, return only authenticated metrics." }
952
1042
  ],
953
1043
  risk: "read",
954
- buildInput: (ctx) => compactInput({ ...projectInput(ctx), ignore_authentication: optionalBoolean2(ctx, "ignore-authentication") })
1044
+ buildInput: (ctx) => compactInput({
1045
+ ...projectInput(ctx),
1046
+ ignore_authentication: optionalBoolean2(ctx, "ignore-authentication"),
1047
+ query: optionalString2(ctx, "query"),
1048
+ fields: optionalJson(ctx, "fields"),
1049
+ limit: optionalNumber2(ctx, "limit"),
1050
+ offset: optionalNumber2(ctx, "offset"),
1051
+ authenticated_only: optionalBoolean2(ctx, "authenticated-only")
1052
+ })
955
1053
  });
956
1054
 
957
1055
  // src/commands/te-analysis/meta/metric/get.ts
@@ -968,6 +1066,39 @@ var metadataMetricGet = createAnalysisMetaCapabilityCommand({
968
1066
  buildInput: (ctx) => ({ ...projectInput(ctx), metric_id: ctx.num("metric-id") })
969
1067
  });
970
1068
 
1069
+ // src/commands/te-analysis/meta/metric/shared.ts
1070
+ function metricMode(ctx) {
1071
+ const mode = optionalNumber2(ctx, "metric-mode");
1072
+ const modelType = optionalString2(ctx, "model-type");
1073
+ const mapped = modelType === void 0 ? void 0 : modelTypeToMetricMode(modelType);
1074
+ if (mode === void 0 && mapped === void 0) {
1075
+ throw new Error("Pass one of --model-type or --metric-mode");
1076
+ }
1077
+ if (mode !== void 0 && mapped !== void 0 && mode !== mapped) {
1078
+ throw new Error("--metric-mode must match --model-type when both are provided");
1079
+ }
1080
+ return mode ?? mapped;
1081
+ }
1082
+ function optionalMetricMode(ctx) {
1083
+ const mode = optionalNumber2(ctx, "metric-mode");
1084
+ const modelType = optionalString2(ctx, "model-type");
1085
+ const mapped = modelType === void 0 ? void 0 : modelTypeToMetricMode(modelType);
1086
+ if (mode !== void 0 && mapped !== void 0 && mode !== mapped) {
1087
+ throw new Error("--metric-mode must match --model-type when both are provided");
1088
+ }
1089
+ return mode ?? mapped;
1090
+ }
1091
+ function modelTypeToMetricMode(modelType) {
1092
+ const normalized = modelType.trim().toLowerCase();
1093
+ if (normalized === "event") {
1094
+ return 0;
1095
+ }
1096
+ if (normalized === "retention") {
1097
+ return 1;
1098
+ }
1099
+ throw new Error("--model-type must be event or retention");
1100
+ }
1101
+
971
1102
  // src/commands/te-analysis/meta/metric/create.ts
972
1103
  var metadataMetricCreate = createAnalysisMetaCapabilityCommand({
973
1104
  resource: "metric",
@@ -979,7 +1110,8 @@ var metadataMetricCreate = createAnalysisMetaCapabilityCommand({
979
1110
  { name: "metric-name", type: "string", required: true, desc: "Metric technical name, for example pay_count." },
980
1111
  { name: "metric-desc", type: "string", required: true, desc: "Metric display name." },
981
1112
  { name: "metric-remark", type: "string", required: false, desc: "Metric remark." },
982
- { name: "metric-mode", type: "number", required: true, desc: "Metric model mode, for example 0 for event analysis." },
1113
+ { name: "metric-mode", type: "number", required: false, desc: "Metric model mode, for example 0 for event analysis." },
1114
+ { name: "model-type", type: "string", required: false, desc: "Semantic metric model type: event or retention. Prefer this over metric-mode." },
983
1115
  { name: "metric-events", type: "json", required: true, desc: "Metric event-analysis QP JSON array." },
984
1116
  { name: "metric-params", type: "json", required: false, desc: "Metric params JSON object. Defaults to {} in common when omitted." }
985
1117
  ],
@@ -989,7 +1121,7 @@ var metadataMetricCreate = createAnalysisMetaCapabilityCommand({
989
1121
  metric_name: ctx.str("metric-name"),
990
1122
  metric_desc: ctx.str("metric-desc"),
991
1123
  metric_remark: optionalString2(ctx, "metric-remark"),
992
- metric_mode: ctx.num("metric-mode"),
1124
+ metric_mode: metricMode(ctx),
993
1125
  metric_events: ctx.json("metric-events"),
994
1126
  metric_params: optionalJson(ctx, "metric-params")
995
1127
  })
@@ -1008,6 +1140,7 @@ var metadataMetricUpdate = createAnalysisMetaCapabilityCommand({
1008
1140
  { name: "metric-desc", type: "string", required: false, desc: "Metric display name." },
1009
1141
  { name: "metric-remark", type: "string", required: false, desc: "Metric remark." },
1010
1142
  { name: "metric-mode", type: "number", required: false, desc: "Metric model mode for full-definition update." },
1143
+ { name: "model-type", type: "string", required: false, desc: "Semantic metric model type: event or retention. Prefer this over metric-mode." },
1011
1144
  { name: "metric-events", type: "json", required: false, desc: "Metric event-analysis QP JSON array for full-definition update." },
1012
1145
  { name: "metric-params", type: "json", required: false, desc: "Metric params JSON object." }
1013
1146
  ],
@@ -1018,7 +1151,7 @@ var metadataMetricUpdate = createAnalysisMetaCapabilityCommand({
1018
1151
  metric_name: optionalString2(ctx, "metric-name"),
1019
1152
  metric_desc: optionalString2(ctx, "metric-desc"),
1020
1153
  metric_remark: optionalString2(ctx, "metric-remark"),
1021
- metric_mode: optionalNumber2(ctx, "metric-mode"),
1154
+ metric_mode: optionalMetricMode(ctx),
1022
1155
  metric_events: optionalJson(ctx, "metric-events"),
1023
1156
  metric_params: optionalJson(ctx, "metric-params")
1024
1157
  })
@@ -1199,6 +1332,27 @@ function assetGovernanceInput(ctx, fields) {
1199
1332
  return compactInput(input);
1200
1333
  }
1201
1334
 
1335
+ // src/core/resource-url.ts
1336
+ function normalizeResourceUrlFields(node, host) {
1337
+ if (!node || typeof node !== "object") return;
1338
+ const obj = node;
1339
+ for (const [key, value] of Object.entries(obj)) {
1340
+ if (typeof value === "string") {
1341
+ if (/url|link/i.test(key) || value.includes("/#/")) {
1342
+ obj[key] = absolutizeRelativeUrls(value, host);
1343
+ }
1344
+ } else if (value && typeof value === "object") {
1345
+ normalizeResourceUrlFields(value, host);
1346
+ }
1347
+ }
1348
+ }
1349
+ function absolutizeRelativeUrls(s, host) {
1350
+ const base = host.replace(/\/+$/, "");
1351
+ s = s.replace(/\]\((\/(?!\/)[^)]*)\)/g, `](${base}$1)`);
1352
+ if (/^\/(?!\/)/.test(s)) s = base + s;
1353
+ return s;
1354
+ }
1355
+
1202
1356
  // src/commands/te-analysis/meta/asset/url-get.ts
1203
1357
  var analysisMetaAssetUrlGet = createAnalysisMetaCapabilityCommand({
1204
1358
  resource: "asset",
@@ -1207,7 +1361,11 @@ var analysisMetaAssetUrlGet = createAnalysisMetaCapabilityCommand({
1207
1361
  description: "Get or normalize an asset governance resource link payload.",
1208
1362
  flags: [projectIdFlag, nodeIdFlag, resourceIdFlag, resourceTypeFlag, linkInfoFlag, payloadFlag],
1209
1363
  risk: "read",
1210
- buildInput: (ctx) => assetGovernanceInput(ctx, ["node_id", "resource_id", "resource_type", "link_info"])
1364
+ buildInput: (ctx) => assetGovernanceInput(ctx, ["node_id", "resource_id", "resource_type", "link_info"]),
1365
+ postProcess: (result, _input, ctx) => {
1366
+ normalizeResourceUrlFields(result, ctx.host());
1367
+ return result;
1368
+ }
1211
1369
  });
1212
1370
 
1213
1371
  // src/commands/te-analysis/meta/asset/index.ts
@@ -1748,7 +1906,7 @@ var REPORT_WRITE_MODEL_TYPE_VALUES = [
1748
1906
  "tag"
1749
1907
  ];
1750
1908
  var REPORT_WRITE_MODEL_DESCRIPTION = `${AI_MODEL_DESCRIPTION} Report create/update also supports tag for saved tag report data; use tag as the AI-facing spelling.`;
1751
- var AI_DEFINITION_DESCRIPTION = 'AI-facing model definition JSON. Do not pass raw QP, events, event_view, visual_view, or analysis_query. For SQL, a simple query is {"sql":"select ..."}; raw variables use ${name}, while typed params use ${Text:name}, ${Selector:name}, or ${PartDate:name}. PartDate expands to a complete predicate, so write WHERE ${PartDate:d}, not a column followed by the placeholder. Selector value must match one options[].value. Trino identifiers containing #, $, @, spaces, or punctuation must be delimited with double quotes, for example SELECT "#user_id", "$part_event" FROM ...; single quotes are string literals. Queries against an event table must include a date-partition predicate on the quoted "$part_date" column, for example WHERE "$part_date" BETWEEN \'2026-07-01\' AND \'2026-07-07\'; the backend rejects event-table SQL without it. The CLI preserves SQL text and never auto-quotes identifiers.';
1909
+ var AI_DEFINITION_DESCRIPTION = 'AI-facing model definition JSON. Do not pass raw QP, events, event_view, visual_view, or analysis_query. For path definitions, global filters support user_property, cluster, and tag only; event_property is not supported. session_unit accepts second (1..999), minute (1..999), or hour (1..24). Do not use day; express one day as session_interval=24 and session_unit=hour. For SQL, a simple query is {"sql":"select ..."}; raw variables use ${name}, while typed params use ${Text:name}, ${Selector:name}, or ${PartDate:name}. PartDate expands to a complete predicate, so write WHERE ${PartDate:d}, not a column followed by the placeholder. Selector value must match one options[].value. Trino identifiers containing #, $, @, spaces, or punctuation must be delimited with double quotes, for example SELECT "#user_id", "$part_event" FROM ...; single quotes are string literals. Queries against an event table must include a date-partition predicate on the quoted "$part_date" column, for example WHERE "$part_date" BETWEEN \'2026-07-01\' AND \'2026-07-07\'; the backend rejects event-table SQL without it. The CLI preserves SQL text and never auto-quotes identifiers.';
1752
1910
  var REPORT_WRITE_DEFINITION_DESCRIPTION = `${AI_DEFINITION_DESCRIPTION} For model_type=tag, pass a tag report intent such as {"tag":{"tag_name":"vip_users","time_range":{"mode":"recent","unit":"day","value":7}}}. Tags are supported for report create/update and report data, not ad-hoc analysis.`;
1753
1911
  function aiModelTypeFlag(required) {
1754
1912
  return {
@@ -1936,7 +2094,7 @@ var reportDataExport = createAnalysisCapabilityCommand({
1936
2094
  resource: "report-data",
1937
2095
  command: "export",
1938
2096
  capabilityId: "analysis.report_data.export",
1939
- description: `Submit report data as an asynchronous gzip artifact. Override contract: SQL uses only --sql-params; non-SQL analysis models use filters/group/time; tag uses its saved tag definition. Mixed-model batches are best-effort. The submit response and artifact metadata line contain query_context_id when Redis context creation succeeds. ${analysisDataExportRoutingHelp}`,
2097
+ description: `Submit report data as an asynchronous gzip artifact. Override contract: SQL uses only --sql-params; non-SQL analysis models use filters/group/time; tag uses its saved tag definition. Mixed-model batches are best-effort. Exports do not create interactive drilldown contexts. ${analysisDataExportRoutingHelp}`,
1940
2098
  flags: [
1941
2099
  projectIdFlag,
1942
2100
  { name: "report-ids", type: "json", required: true, desc: "Report ID array. With overrides, prefer one model per batch so every field has the same meaning." },
@@ -2364,7 +2522,7 @@ var dashboardReportDataExport = createAnalysisCapabilityCommand({
2364
2522
  resource: "dashboard-report-data",
2365
2523
  command: "export",
2366
2524
  capabilityId: "analysis.dashboard_report_data.export",
2367
- description: `Submit dashboard report data as an asynchronous gzip JSONL artifact. Filters and time overrides do not apply to SQL reports; the artifact still contains data plus structured warnings. The submit response and artifact metadata line contain query_context_id when Redis context creation succeeds. ${analysisDataExportRoutingHelp}`,
2525
+ description: `Submit dashboard report data as an asynchronous gzip JSONL artifact. Filters and time overrides do not apply to SQL reports; the artifact still contains data plus structured warnings. Exports do not create interactive drilldown contexts. ${analysisDataExportRoutingHelp}`,
2368
2526
  flags: [
2369
2527
  projectIdFlag,
2370
2528
  { name: "dashboard-id", type: "number", required: true, desc: "Dashboard ID." },
@@ -2406,17 +2564,23 @@ var queryCancel = createAnalysisCapabilityCommand({
2406
2564
  });
2407
2565
 
2408
2566
  // src/commands/te-analysis/query/shared.ts
2409
- var targetFlag = {
2410
- name: "target",
2567
+ var sourceFlag = {
2568
+ name: "source",
2569
+ type: "json",
2570
+ required: false,
2571
+ desc: "Source selector copied from sources[] when the synchronous preview contains multiple reports or charts. Pass only returned selector fields such as report_id or chart_id."
2572
+ };
2573
+ var coordinateFlag = {
2574
+ name: "coordinate",
2411
2575
  type: "json",
2412
2576
  required: true,
2413
- desc: "Use only when the upstream availability flag is true. Pass sources[].target_contract.default_target directly, or copy it and replace only named machine fields for a specific result; never infer from display text or raw QP."
2577
+ desc: "One semantic cell coordinate assembled only from the selected source.drilldown row_options, column_options, and metric_options. Never pass target_id, raw QP, or values absent from the synchronous preview."
2414
2578
  };
2415
2579
  var propertiesFlag = {
2416
2580
  name: "properties",
2417
2581
  type: "json",
2418
2582
  required: false,
2419
- desc: "Optional backend property request object array. Omit for defaults; do not pass string-name arrays."
2583
+ desc: "Optional property projection object array using exact columnName and named tableType values (event or user). Subject-specific support and mandatory identity columns are documented by each command; do not pass string-name arrays."
2420
2584
  };
2421
2585
  var useCacheFlag = {
2422
2586
  name: "use-cache",
@@ -2427,7 +2591,8 @@ var useCacheFlag = {
2427
2591
  function createResultClusterInput(ctx) {
2428
2592
  return compactInput({
2429
2593
  query_context_id: ctx.str("query-context-id"),
2430
- target: ctx.json("target"),
2594
+ source: optionalJson(ctx, "source"),
2595
+ coordinate: ctx.json("coordinate"),
2431
2596
  cluster_name: ctx.str("cluster-name"),
2432
2597
  display_name: optionalString2(ctx, "display-name"),
2433
2598
  zone_offset: optionalNumber2(ctx, "zone-offset"),
@@ -2441,10 +2606,11 @@ var queryCreateResultCluster = createAnalysisCapabilityCommand({
2441
2606
  resource: "query",
2442
2607
  command: "create-result-cluster",
2443
2608
  capabilityId: "analysis.query.create_result_cluster",
2444
- description: "Create a reusable result cluster from users matched by a target in a previous analysis data query context. Works after adhoc, report-data, and dashboard-report-data run/export. Do not pass raw QP.",
2609
+ description: "Create a reusable user or custom-entity result cluster from one cell returned by a synchronous analysis preview. The selected metric must advertise create_result_cluster. Exports never create query contexts.",
2445
2610
  flags: [
2446
- { name: "query-context-id", type: "string", required: true, desc: "query_context_id returned by an analysis data run/export." },
2447
- targetFlag,
2611
+ { name: "query-context-id", type: "string", required: true, desc: "query_context_id returned by a synchronous analysis preview. Never use an export response." },
2612
+ sourceFlag,
2613
+ coordinateFlag,
2448
2614
  { name: "cluster-name", type: "string", required: true, desc: "Unique result cluster name. Use letters, digits, and underscores." },
2449
2615
  { name: "display-name", type: "string", required: false, desc: "Optional result cluster display name." },
2450
2616
  { name: "zone-offset", type: "number", required: false, desc: "Optional timezone offset. UTC+8 is 8; UTC-5 is -5." },
@@ -2662,7 +2828,7 @@ var adhocExport = createAnalysisCapabilityCommand({
2662
2828
  resource: "adhoc",
2663
2829
  command: "export",
2664
2830
  capabilityId: "analysis.adhoc.export",
2665
- description: `Submit one unified ad-hoc analysis export from an AI-facing model definition. Returns run_id/artifact_id plus the actual format, compression, file_name, content_type, and content_encoding; the artifact-format flag selects logical rows, not compression. The submit response and artifact metadata line contain query_context_id when Redis context creation succeeds. ${analysisDataExportRoutingHelp}`,
2831
+ description: `Submit one unified ad-hoc analysis export from an AI-facing model definition. Returns run_id/artifact_id plus the actual format, compression, file_name, content_type, and content_encoding. Exports do not create interactive drilldown contexts. ${analysisDataExportRoutingHelp}`,
2666
2832
  flags: [
2667
2833
  ...adhocExportFlags
2668
2834
  ],
@@ -3045,7 +3211,7 @@ var biPanelPageDataRun = createAnalysisCapabilityCommand({
3045
3211
  resource: "bi-panel-page-data",
3046
3212
  command: "run",
3047
3213
  capabilityId: "analysis.bi_panel_page_data.run",
3048
- description: `Run a bounded BI panel page data query and return inline JSON. Chart results may include query_context_id; BI SQL chart contexts are not model-drilldown contexts unless drilldown_available=true. ${analysisDataRunRoutingHelp}`,
3214
+ description: `Run a bounded BI panel page data query and return inline JSON. BI SQL chart data does not support analysis model drilldown or result-cluster creation. ${analysisDataRunRoutingHelp}`,
3049
3215
  flags: [
3050
3216
  projectIdFlag,
3051
3217
  { name: "panel-id", type: "number", required: true, desc: "BI panel ID." },
@@ -3075,7 +3241,7 @@ var biPanelPageDataExport = createAnalysisCapabilityCommand({
3075
3241
  resource: "bi-panel-page-data",
3076
3242
  command: "export",
3077
3243
  capabilityId: "analysis.bi_panel_page_data.export",
3078
- description: `Submit a BI panel page data query as an asynchronous gzip JSONL artifact. Chart exports may include query_context_id metadata; BI SQL chart contexts are not model-drilldown contexts unless drilldown_available=true. ${analysisDataExportRoutingHelp}`,
3244
+ description: `Submit a BI panel page data query as an asynchronous gzip JSONL artifact. BI SQL chart exports do not create analysis drilldown contexts. ${analysisDataExportRoutingHelp}`,
3079
3245
  flags: [
3080
3246
  projectIdFlag,
3081
3247
  { name: "panel-id", type: "number", required: true, desc: "BI panel ID." },
@@ -3454,7 +3620,7 @@ var entityDetailDefinitionFlag = {
3454
3620
  name: "definition",
3455
3621
  type: "json",
3456
3622
  required: true,
3457
- desc: 'Bounded entity detail definition: {"entity":"user","cohort":{"relation":"and","items":[{"field":{"name":"level","type":"user_property"},"operator":"gte","values":[1]}]},"properties":["#user_id",{"name":"country","type":"user_property"}],"sort":[{"field":"#user_id","order":"asc"}]}. cohort is AI-facing for user_property/tag/cluster filters; do not pass raw QP at the capability top level.'
3623
+ desc: 'Bounded entity detail definition. properties is supported only for entity="user" (#user_id); user rows always include #user_id, #account_id, and #distinct_id plus requested user properties. Custom entities reject properties and return only their entity value column. cohort is AI-facing for user_property/tag/cluster filters; do not pass raw QP.'
3458
3624
  };
3459
3625
  function entityDetailRunInput(ctx) {
3460
3626
  return compactInput({
@@ -3527,44 +3693,130 @@ var commands34 = [
3527
3693
  ];
3528
3694
  var entity_detail_default = commands34;
3529
3695
 
3530
- // src/commands/te-analysis/drilldown-users/shared.ts
3696
+ // src/commands/te-analysis/drilldown-events/shared.ts
3531
3697
  var queryContextIdFlag = {
3532
3698
  name: "query-context-id",
3533
3699
  type: "string",
3534
3700
  required: true,
3535
- desc: "query_context_id returned by an analysis data run/export."
3701
+ desc: "query_context_id returned by a synchronous event-analysis preview. Analysis exports never create one."
3536
3702
  };
3537
- var jsonlArtifactFormatFlag = {
3703
+ var drilldownEventsRunFlags = [
3704
+ queryContextIdFlag,
3705
+ sourceFlag,
3706
+ coordinateFlag,
3707
+ propertiesFlag,
3708
+ requestIdFlag,
3709
+ useCacheFlag,
3710
+ detailPreviewLimitFlag,
3711
+ syncTimeoutSecondsFlag
3712
+ ];
3713
+ var csvArtifactFormatFlag = {
3538
3714
  name: "artifact-format",
3539
3715
  type: "string",
3540
3716
  required: false,
3541
- desc: "Artifact format. Only jsonl is supported."
3717
+ desc: "Artifact format. Only csv is supported; the downloaded artifact is csv.gz."
3542
3718
  };
3543
- var drilldownUsersBaseFlags = [
3719
+ var drilldownEventsExportFlags = [
3544
3720
  queryContextIdFlag,
3545
- targetFlag,
3721
+ sourceFlag,
3722
+ coordinateFlag,
3723
+ propertiesFlag,
3724
+ requestIdFlag,
3725
+ useCacheFlag,
3726
+ csvArtifactFormatFlag,
3727
+ asyncTimeoutSecondsFlag
3728
+ ];
3729
+ function drilldownEventsRunInput(ctx) {
3730
+ return compactInput({
3731
+ query_context_id: ctx.str("query-context-id"),
3732
+ source: optionalJson(ctx, "source"),
3733
+ coordinate: ctx.json("coordinate"),
3734
+ properties: optionalJson(ctx, "properties"),
3735
+ request_id: optionalString2(ctx, "request-id"),
3736
+ use_cache: optionalBoolean2(ctx, "use-cache"),
3737
+ limit: optionalNumber2(ctx, "limit"),
3738
+ timeout_seconds: optionalNumber2(ctx, "timeout-seconds")
3739
+ });
3740
+ }
3741
+ function drilldownEventsExportInput(ctx) {
3742
+ return compactInput({
3743
+ query_context_id: ctx.str("query-context-id"),
3744
+ source: optionalJson(ctx, "source"),
3745
+ coordinate: ctx.json("coordinate"),
3746
+ properties: optionalJson(ctx, "properties"),
3747
+ request_id: optionalString2(ctx, "request-id"),
3748
+ use_cache: optionalBoolean2(ctx, "use-cache"),
3749
+ format: optionalString2(ctx, "artifact-format"),
3750
+ timeout_seconds: optionalNumber2(ctx, "timeout-seconds")
3751
+ });
3752
+ }
3753
+
3754
+ // src/commands/te-analysis/drilldown-events/export.ts
3755
+ var drilldownEventsExport = createAnalysisCapabilityCommand({
3756
+ resource: "drilldown-events",
3757
+ command: "export",
3758
+ capabilityId: "analysis.query.drilldown_events_export",
3759
+ description: `Stream all raw events behind one synchronous event-analysis cell into one csv.gz artifact. ${analysisDataExportRoutingHelp}`,
3760
+ flags: [...drilldownEventsExportFlags],
3761
+ risk: "read",
3762
+ buildInput: drilldownEventsExportInput
3763
+ });
3764
+
3765
+ // src/commands/te-analysis/drilldown-events/run.ts
3766
+ var drilldownEventsRun = createAnalysisCapabilityCommand({
3767
+ resource: "drilldown-events",
3768
+ command: "run",
3769
+ capabilityId: "analysis.query.drilldown_events",
3770
+ description: `Preview raw events behind one synchronous event-analysis cell whose selected metric advertises drilldown_events. ${analysisDataRunRoutingHelp}`,
3771
+ flags: [...drilldownEventsRunFlags],
3772
+ risk: "read",
3773
+ buildInput: drilldownEventsRunInput,
3774
+ postProcess: applyAnalysisInlineLimit
3775
+ });
3776
+
3777
+ // src/commands/te-analysis/drilldown-events/index.ts
3778
+ var commands35 = [drilldownEventsRun, drilldownEventsExport];
3779
+ var drilldown_events_default = commands35;
3780
+
3781
+ // src/commands/te-analysis/drilldown-entities/shared.ts
3782
+ var queryContextIdFlag2 = {
3783
+ name: "query-context-id",
3784
+ type: "string",
3785
+ required: true,
3786
+ desc: "query_context_id returned by a synchronous analysis preview. Analysis exports never create one."
3787
+ };
3788
+ var csvArtifactFormatFlag2 = {
3789
+ name: "artifact-format",
3790
+ type: "string",
3791
+ required: false,
3792
+ desc: "Artifact format. Only csv is supported; the downloaded artifact is csv.gz."
3793
+ };
3794
+ var drilldownEntitiesBaseFlags = [
3795
+ queryContextIdFlag2,
3796
+ sourceFlag,
3797
+ coordinateFlag,
3546
3798
  propertiesFlag,
3547
3799
  requestIdFlag,
3548
3800
  useCacheFlag
3549
3801
  ];
3550
- var drilldownUsersRunFlags = [
3551
- ...drilldownUsersBaseFlags,
3802
+ var drilldownEntitiesRunFlags = [
3803
+ ...drilldownEntitiesBaseFlags,
3552
3804
  detailPreviewLimitFlag,
3553
3805
  syncTimeoutSecondsFlag
3554
3806
  ];
3555
- var drilldownUsersExportFlags = [
3556
- ...drilldownUsersBaseFlags,
3557
- jsonlArtifactFormatFlag,
3807
+ var drilldownEntitiesExportFlags = [
3808
+ ...drilldownEntitiesBaseFlags,
3809
+ csvArtifactFormatFlag2,
3558
3810
  asyncTimeoutSecondsFlag
3559
3811
  ];
3560
- function drilldownUsersRunInput(ctx) {
3812
+ function drilldownEntitiesRunInput(ctx) {
3561
3813
  return compactInput({
3562
3814
  ...baseInput(ctx),
3563
3815
  limit: optionalNumber2(ctx, "limit"),
3564
3816
  timeout_seconds: optionalNumber2(ctx, "timeout-seconds")
3565
3817
  });
3566
3818
  }
3567
- function drilldownUsersExportInput(ctx) {
3819
+ function drilldownEntitiesExportInput(ctx) {
3568
3820
  return compactInput({
3569
3821
  ...baseInput(ctx),
3570
3822
  format: optionalString2(ctx, "artifact-format"),
@@ -3574,52 +3826,53 @@ function drilldownUsersExportInput(ctx) {
3574
3826
  function baseInput(ctx) {
3575
3827
  return {
3576
3828
  query_context_id: ctx.str("query-context-id"),
3577
- target: ctx.json("target"),
3829
+ source: optionalJson(ctx, "source"),
3830
+ coordinate: ctx.json("coordinate"),
3578
3831
  properties: optionalJson(ctx, "properties"),
3579
3832
  request_id: optionalString2(ctx, "request-id"),
3580
3833
  use_cache: optionalBoolean2(ctx, "use-cache")
3581
3834
  };
3582
3835
  }
3583
3836
 
3584
- // src/commands/te-analysis/drilldown-users/export.ts
3585
- var drilldownUsersExport = createAnalysisCapabilityCommand({
3586
- resource: "drilldown-users",
3837
+ // src/commands/te-analysis/drilldown-entities/export.ts
3838
+ var drilldownEntitiesExport = createAnalysisCapabilityCommand({
3839
+ resource: "drilldown-entities",
3587
3840
  command: "export",
3588
- capabilityId: "analysis.query.drilldown_users.export",
3589
- description: `Export users from a previous analysis query context as a jsonl artifact. ${analysisDataExportRoutingHelp}`,
3590
- flags: [...drilldownUsersExportFlags],
3841
+ capabilityId: "analysis.query.drilldown_entities_export",
3842
+ description: `Stream all users or custom entities behind one synchronous-preview cell into one csv.gz artifact. ${analysisDataExportRoutingHelp}`,
3843
+ flags: [...drilldownEntitiesExportFlags],
3591
3844
  risk: "read",
3592
- buildInput: drilldownUsersExportInput
3845
+ buildInput: drilldownEntitiesExportInput
3593
3846
  });
3594
3847
 
3595
- // src/commands/te-analysis/drilldown-users/run.ts
3596
- var drilldownUsersRun = createAnalysisCapabilityCommand({
3597
- resource: "drilldown-users",
3848
+ // src/commands/te-analysis/drilldown-entities/run.ts
3849
+ var drilldownEntitiesRun = createAnalysisCapabilityCommand({
3850
+ resource: "drilldown-entities",
3598
3851
  command: "run",
3599
- capabilityId: "analysis.query.drilldown_users",
3600
- description: `Preview users from a previous analysis query context. Do not pass raw QP. ${analysisDataRunRoutingHelp}`,
3601
- flags: [...drilldownUsersRunFlags],
3852
+ capabilityId: "analysis.query.drilldown_entities",
3853
+ description: `Preview users or custom entities behind one synchronous-preview cell whose metric advertises drilldown_entities. ${analysisDataRunRoutingHelp}`,
3854
+ flags: [...drilldownEntitiesRunFlags],
3602
3855
  risk: "read",
3603
- buildInput: drilldownUsersRunInput,
3856
+ buildInput: drilldownEntitiesRunInput,
3604
3857
  postProcess: applyAnalysisInlineLimit
3605
3858
  });
3606
3859
 
3607
- // src/commands/te-analysis/drilldown-users/index.ts
3608
- var commands35 = [drilldownUsersRun, drilldownUsersExport];
3609
- var drilldown_users_default = commands35;
3860
+ // src/commands/te-analysis/drilldown-entities/index.ts
3861
+ var commands36 = [drilldownEntitiesRun, drilldownEntitiesExport];
3862
+ var drilldown_entities_default = commands36;
3610
3863
 
3611
3864
  // src/commands/te-analysis/drilldown-user-events/shared.ts
3612
3865
  var drilldownContextIdFlag = {
3613
3866
  name: "drilldown-context-id",
3614
3867
  type: "string",
3615
3868
  required: true,
3616
- desc: "drilldown_context_id returned by analysis drilldown-users run."
3869
+ desc: "drilldown_context_id returned by analysis drilldown-entities run for the user subject. Custom entities have no user event sequence."
3617
3870
  };
3618
3871
  var userIdFlag = {
3619
3872
  name: "user-id",
3620
3873
  type: "string",
3621
3874
  required: true,
3622
- desc: "User ID returned by analysis drilldown-users run/export."
3875
+ desc: "Canonical user_id returned by analysis drilldown-entities run. Never guess or substitute another identity field."
3623
3876
  };
3624
3877
  var sequenceFlags = [
3625
3878
  propertiesFlag,
@@ -3629,11 +3882,11 @@ var sequenceFlags = [
3629
3882
  { name: "time-filter-before-nums", type: "number", required: false, desc: "Optional events before the time filter point." },
3630
3883
  { name: "time-filter-after-nums", type: "number", required: false, desc: "Optional events after the time filter point." }
3631
3884
  ];
3632
- var jsonlArtifactFormatFlag2 = {
3885
+ var csvArtifactFormatFlag3 = {
3633
3886
  name: "artifact-format",
3634
3887
  type: "string",
3635
3888
  required: false,
3636
- desc: "Artifact format. Only jsonl is supported."
3889
+ desc: "Artifact format. Only csv is supported; the downloaded artifact is csv.gz."
3637
3890
  };
3638
3891
  var drilldownUserEventsBaseFlags = [
3639
3892
  drilldownContextIdFlag,
@@ -3649,7 +3902,7 @@ var drilldownUserEventsRunFlags = [
3649
3902
  ];
3650
3903
  var drilldownUserEventsExportFlags = [
3651
3904
  ...drilldownUserEventsBaseFlags,
3652
- jsonlArtifactFormatFlag2,
3905
+ csvArtifactFormatFlag3,
3653
3906
  asyncTimeoutSecondsFlag
3654
3907
  ];
3655
3908
  function drilldownUserEventsRunInput(ctx) {
@@ -3685,8 +3938,8 @@ function baseInput2(ctx) {
3685
3938
  var drilldownUserEventsExport = createAnalysisCapabilityCommand({
3686
3939
  resource: "drilldown-user-events",
3687
3940
  command: "export",
3688
- capabilityId: "analysis.query.drilldown_user_events.export",
3689
- description: `Export one user's event sequence from a drilldown context as a jsonl artifact. ${analysisDataExportRoutingHelp}`,
3941
+ capabilityId: "analysis.query.drilldown_user_events_export",
3942
+ description: `Stream one user's complete event sequence from a drilldown context into one csv.gz artifact. ${analysisDataExportRoutingHelp}`,
3690
3943
  flags: [...drilldownUserEventsExportFlags],
3691
3944
  risk: "read",
3692
3945
  buildInput: drilldownUserEventsExportInput
@@ -3705,8 +3958,8 @@ var drilldownUserEventsRun = createAnalysisCapabilityCommand({
3705
3958
  });
3706
3959
 
3707
3960
  // src/commands/te-analysis/drilldown-user-events/index.ts
3708
- var commands36 = [drilldownUserEventsRun, drilldownUserEventsExport];
3709
- var drilldown_user_events_default = commands36;
3961
+ var commands37 = [drilldownUserEventsRun, drilldownUserEventsExport];
3962
+ var drilldown_user_events_default = commands37;
3710
3963
 
3711
3964
  // src/commands/te-analysis/user/index.ts
3712
3965
  import { existsSync, statSync } from "fs";
@@ -3842,7 +4095,7 @@ var snapshotDateFlag = {
3842
4095
  required: false,
3843
4096
  desc: "Optional tag snapshot date, yyyy-MM-dd."
3844
4097
  };
3845
- var jsonlArtifactFormatFlag3 = {
4098
+ var jsonlArtifactFormatFlag = {
3846
4099
  name: "artifact-format",
3847
4100
  type: "string",
3848
4101
  required: false,
@@ -4101,10 +4354,10 @@ var memberExportFlags = (memberFieldsFlag) => [
4101
4354
  queryFlag,
4102
4355
  { name: "use-cache", type: "boolean", required: false, desc: "Whether to use query cache. Default: true." },
4103
4356
  requestIdFlag,
4104
- jsonlArtifactFormatFlag3,
4357
+ jsonlArtifactFormatFlag,
4105
4358
  asyncTimeoutSecondsFlag
4106
4359
  ];
4107
- var commands37 = [
4360
+ var commands38 = [
4108
4361
  capability("user-cluster", "list", "analysis.user_cluster.list", "List user clusters for discovery. Use offset only for stable asset browsing.", listFlags, "read", assetListInput),
4109
4362
  capability("user-cluster", "get", "analysis.user_cluster.get", "Get user cluster details by exact cluster_name values.", [
4110
4363
  projectIdFlag,
@@ -4290,7 +4543,7 @@ var commands37 = [
4290
4543
  tagNameFlag,
4291
4544
  historyViewFlag,
4292
4545
  requestIdFlag,
4293
- jsonlArtifactFormatFlag3,
4546
+ jsonlArtifactFormatFlag,
4294
4547
  asyncTimeoutSecondsFlag
4295
4548
  ], "read", (ctx) => historyTagDataInput(ctx, false)),
4296
4549
  capability("history-tag-data-drilldown", "run", "analysis.history_tag_data_drilldown.run", `Run a bounded drilldown user query for one history tag statistic value. ${analysisDataRunRoutingHelp}`, [
@@ -4308,7 +4561,7 @@ var commands37 = [
4308
4561
  ...memberExportFlags(tagMemberFieldsFlag)
4309
4562
  ], "read", (ctx) => historyTagDataDrilldownInput(ctx, false))
4310
4563
  ];
4311
- var user_default = commands37;
4564
+ var user_default = commands38;
4312
4565
 
4313
4566
  // src/commands/te-analysis/global/list-query-clusters.ts
4314
4567
  var listQueryClusters = createMcpCommand({
@@ -4324,10 +4577,10 @@ var listQueryClusters = createMcpCommand({
4324
4577
  });
4325
4578
 
4326
4579
  // src/commands/te-analysis/global/index.ts
4327
- var commands38 = [
4580
+ var commands39 = [
4328
4581
  listQueryClusters
4329
4582
  ];
4330
- var global_default = commands38;
4583
+ var global_default = commands39;
4331
4584
 
4332
4585
  // src/commands/te-analysis/sql-table/columns.ts
4333
4586
  var sqlTableColumns = createAnalysisCapabilityCommand({
@@ -4371,8 +4624,8 @@ var sqlTableList = createAnalysisCapabilityCommand({
4371
4624
  });
4372
4625
 
4373
4626
  // src/commands/te-analysis/sql-table/index.ts
4374
- var commands39 = [sqlTableList, sqlTableColumns];
4375
- var sql_table_default = commands39;
4627
+ var commands40 = [sqlTableList, sqlTableColumns];
4628
+ var sql_table_default = commands40;
4376
4629
 
4377
4630
  // src/commands/te-analysis/entity/id-import-options.ts
4378
4631
  var entityIdImportOptions = createAnalysisCapabilityCommand({
@@ -4397,8 +4650,8 @@ var entityIdImportOptions = createAnalysisCapabilityCommand({
4397
4650
  });
4398
4651
 
4399
4652
  // src/commands/te-analysis/entity/index.ts
4400
- var commands40 = [entityIdImportOptions];
4401
- var entity_default = commands40;
4653
+ var commands41 = [entityIdImportOptions];
4654
+ var entity_default = commands41;
4402
4655
 
4403
4656
  // src/commands/te-analysis/input-file/inspect.ts
4404
4657
  var inputFileInspect = {
@@ -4481,8 +4734,959 @@ var inputFileUpload = {
4481
4734
  };
4482
4735
 
4483
4736
  // src/commands/te-analysis/input-file/index.ts
4484
- var commands41 = [inputFileUpload, inputFileInspect, inputFilePurposeList];
4485
- var input_file_default = commands41;
4737
+ var commands42 = [inputFileUpload, inputFileInspect, inputFilePurposeList];
4738
+ var input_file_default = commands42;
4739
+
4740
+ // src/commands/te-analysis/project/access-detail/get.ts
4741
+ var projectAccessDetailGet = createAnalysisCapabilityCommand({
4742
+ resource: "project access-detail",
4743
+ command: "get",
4744
+ capabilityId: "project.access_detail.get",
4745
+ description: "Get company project access details.",
4746
+ flags: [
4747
+ { name: "company-id", type: "number", required: true, desc: "Company ID." }
4748
+ ],
4749
+ risk: "read",
4750
+ buildInput: (ctx) => compactInput({
4751
+ company_id: ctx.num("company-id")
4752
+ })
4753
+ });
4754
+
4755
+ // src/commands/te-analysis/project/access-detail/index.ts
4756
+ var commands43 = [
4757
+ projectAccessDetailGet
4758
+ ];
4759
+ var access_detail_default = commands43;
4760
+
4761
+ // src/commands/te-analysis/project/data-power/delete.ts
4762
+ var projectDataPowerDelete = createAnalysisCapabilityCommand({
4763
+ resource: "project data-power",
4764
+ command: "delete",
4765
+ capabilityId: "project.data_power.delete",
4766
+ description: "Delete a data power and optionally migrate users to another data power.",
4767
+ flags: [
4768
+ projectIdFlag,
4769
+ { name: "data-power-id", type: "number", required: true, desc: "Data power ID to delete." },
4770
+ { name: "new-data-power-id", type: "number", required: false, desc: "Optional replacement data power ID for affected users." }
4771
+ ],
4772
+ risk: "high-risk-write",
4773
+ buildInput: (ctx) => compactInput({
4774
+ project_id: ctx.num("project-id"),
4775
+ data_power_id: ctx.num("data-power-id"),
4776
+ new_data_power_id: optionalNumber2(ctx, "new-data-power-id"),
4777
+ yes: true
4778
+ })
4779
+ });
4780
+
4781
+ // src/commands/te-analysis/project/data-power/get.ts
4782
+ var projectDataPowerGet = createAnalysisCapabilityCommand({
4783
+ resource: "project data-power",
4784
+ command: "get",
4785
+ capabilityId: "project.data_power.get",
4786
+ description: "Get one data power detail.",
4787
+ flags: [
4788
+ projectIdFlag,
4789
+ { name: "data-power-id", type: "number", required: true, desc: "Data power ID." }
4790
+ ],
4791
+ risk: "read",
4792
+ buildInput: (ctx) => compactInput({
4793
+ project_id: ctx.num("project-id"),
4794
+ data_power_id: ctx.num("data-power-id")
4795
+ })
4796
+ });
4797
+
4798
+ // src/commands/te-analysis/project/data-power/list.ts
4799
+ var projectDataPowerList = createAnalysisCapabilityCommand({
4800
+ resource: "project data-power",
4801
+ command: "list",
4802
+ capabilityId: "project.data_power.list",
4803
+ description: "List project data powers.",
4804
+ flags: [
4805
+ projectIdFlag
4806
+ ],
4807
+ risk: "read",
4808
+ buildInput: (ctx) => compactInput({
4809
+ project_id: ctx.num("project-id")
4810
+ })
4811
+ });
4812
+
4813
+ // src/commands/te-analysis/project/data-power/upsert.ts
4814
+ var projectDataPowerUpsert = createAnalysisCapabilityCommand({
4815
+ resource: "project data-power",
4816
+ command: "upsert",
4817
+ capabilityId: "project.data_power.upsert",
4818
+ description: "Create or update a data power.",
4819
+ flags: [
4820
+ projectIdFlag,
4821
+ requiredPayloadFlag
4822
+ ],
4823
+ risk: "write",
4824
+ buildInput: (ctx) => compactInput({
4825
+ project_id: ctx.num("project-id"),
4826
+ payload: ctx.json("payload")
4827
+ })
4828
+ });
4829
+
4830
+ // src/commands/te-analysis/project/data-power/index.ts
4831
+ var commands44 = [
4832
+ projectDataPowerDelete,
4833
+ projectDataPowerGet,
4834
+ projectDataPowerList,
4835
+ projectDataPowerUpsert
4836
+ ];
4837
+ var data_power_default = commands44;
4838
+
4839
+ // src/commands/te-analysis/project/entity/create.ts
4840
+ var projectEntityCreate = createAnalysisCapabilityCommand({
4841
+ resource: "project entity",
4842
+ command: "create",
4843
+ capabilityId: "project.entity.create",
4844
+ description: "Create an analysis entity.",
4845
+ flags: [
4846
+ projectIdFlag,
4847
+ { name: "entity-name", type: "string", required: true, desc: "Entity display name." },
4848
+ { name: "column-name", type: "string", required: true, desc: "Property column name to bind." },
4849
+ { name: "table-type", type: "number", required: true, desc: "Main table type: 0 for event property, 1 for user property." },
4850
+ { name: "order", type: "number", required: false, desc: "Optional entity display order." }
4851
+ ],
4852
+ risk: "write",
4853
+ buildInput: (ctx) => compactInput({
4854
+ project_id: ctx.num("project-id"),
4855
+ entity_name: ctx.str("entity-name"),
4856
+ column_name: ctx.str("column-name"),
4857
+ table_type: ctx.num("table-type"),
4858
+ order: optionalNumber2(ctx, "order")
4859
+ })
4860
+ });
4861
+
4862
+ // src/commands/te-analysis/project/entity/delete.ts
4863
+ var projectEntityDelete = createAnalysisCapabilityCommand({
4864
+ resource: "project entity",
4865
+ command: "delete",
4866
+ capabilityId: "project.entity.delete",
4867
+ description: "Delete an analysis entity.",
4868
+ flags: [
4869
+ projectIdFlag,
4870
+ { name: "entity-id", type: "number", required: true, desc: "Analysis entity ID." }
4871
+ ],
4872
+ risk: "high-risk-write",
4873
+ buildInput: (ctx) => compactInput({
4874
+ project_id: ctx.num("project-id"),
4875
+ entity_id: ctx.num("entity-id"),
4876
+ yes: true
4877
+ })
4878
+ });
4879
+
4880
+ // src/commands/te-analysis/project/entity/get.ts
4881
+ var projectEntityGet = createAnalysisCapabilityCommand({
4882
+ resource: "project entity",
4883
+ command: "get",
4884
+ capabilityId: "project.entity.get",
4885
+ description: "Get one analysis entity.",
4886
+ flags: [
4887
+ projectIdFlag,
4888
+ { name: "entity-id", type: "number", required: true, desc: "Analysis entity ID." }
4889
+ ],
4890
+ risk: "read",
4891
+ buildInput: (ctx) => compactInput({
4892
+ project_id: ctx.num("project-id"),
4893
+ entity_id: ctx.num("entity-id")
4894
+ })
4895
+ });
4896
+
4897
+ // src/commands/te-analysis/project/entity/list.ts
4898
+ var projectEntityList = createAnalysisCapabilityCommand({
4899
+ resource: "project entity",
4900
+ command: "list",
4901
+ capabilityId: "project.entity.list",
4902
+ description: "List analysis entities in a project.",
4903
+ flags: [
4904
+ projectIdFlag,
4905
+ queryFlag,
4906
+ fieldsFlag,
4907
+ limitFlag,
4908
+ offsetFlag,
4909
+ { name: "event-name", type: "string", required: false, desc: "Optional event name. When present, return entities related to the event." }
4910
+ ],
4911
+ risk: "read",
4912
+ buildInput: (ctx) => compactInput({
4913
+ project_id: ctx.num("project-id"),
4914
+ query: optionalString2(ctx, "query"),
4915
+ fields: optionalJson(ctx, "fields"),
4916
+ limit: optionalNumber2(ctx, "limit"),
4917
+ offset: optionalNumber2(ctx, "offset"),
4918
+ event_name: optionalString2(ctx, "event-name")
4919
+ })
4920
+ });
4921
+
4922
+ // src/commands/te-analysis/project/entity/update.ts
4923
+ var projectEntityUpdate = createAnalysisCapabilityCommand({
4924
+ resource: "project entity",
4925
+ command: "update",
4926
+ capabilityId: "project.entity.update",
4927
+ description: "Update an analysis entity.",
4928
+ flags: [
4929
+ projectIdFlag,
4930
+ { name: "entity-id", type: "number", required: true, desc: "Analysis entity ID." },
4931
+ { name: "entity-name", type: "string", required: true, desc: "Entity display name." },
4932
+ { name: "column-name", type: "string", required: true, desc: "Property column name to bind." },
4933
+ { name: "table-type", type: "number", required: true, desc: "Main table type: 0 for event property, 1 for user property." },
4934
+ { name: "order", type: "number", required: false, desc: "Optional entity display order." }
4935
+ ],
4936
+ risk: "write",
4937
+ buildInput: (ctx) => compactInput({
4938
+ project_id: ctx.num("project-id"),
4939
+ entity_id: ctx.num("entity-id"),
4940
+ entity_name: ctx.str("entity-name"),
4941
+ column_name: ctx.str("column-name"),
4942
+ table_type: ctx.num("table-type"),
4943
+ order: optionalNumber2(ctx, "order")
4944
+ })
4945
+ });
4946
+
4947
+ // src/commands/te-analysis/project/entity/index.ts
4948
+ var commands45 = [
4949
+ projectEntityCreate,
4950
+ projectEntityDelete,
4951
+ projectEntityGet,
4952
+ projectEntityList,
4953
+ projectEntityUpdate
4954
+ ];
4955
+ var entity_default2 = commands45;
4956
+
4957
+ // src/commands/te-analysis/project/entity-event/list.ts
4958
+ var projectEntityEventList = createAnalysisCapabilityCommand({
4959
+ resource: "project entity-event",
4960
+ command: "list",
4961
+ capabilityId: "project.entity_event.list",
4962
+ description: "List entity mappings for events.",
4963
+ flags: [
4964
+ projectIdFlag,
4965
+ { name: "event-names", type: "json", required: false, desc: "Optional event names JSON array to resolve entity mappings for." }
4966
+ ],
4967
+ risk: "read",
4968
+ buildInput: (ctx) => compactInput({
4969
+ project_id: ctx.num("project-id"),
4970
+ event_names: optionalJson(ctx, "event-names")
4971
+ })
4972
+ });
4973
+
4974
+ // src/commands/te-analysis/project/entity-event/index.ts
4975
+ var commands46 = [
4976
+ projectEntityEventList
4977
+ ];
4978
+ var entity_event_default = commands46;
4979
+
4980
+ // src/commands/te-analysis/project/function/list.ts
4981
+ var projectFunctionList = createAnalysisCapabilityCommand({
4982
+ resource: "project function",
4983
+ command: "list",
4984
+ capabilityId: "project.function.list",
4985
+ description: "List all project-level functions.",
4986
+ flags: [
4987
+ { name: "company-id", type: "number", required: false, desc: "Company ID." },
4988
+ projectIdFlag
4989
+ ],
4990
+ risk: "read",
4991
+ buildInput: (ctx) => compactInput({
4992
+ company_id: optionalNumber2(ctx, "company-id"),
4993
+ project_id: ctx.num("project-id")
4994
+ })
4995
+ });
4996
+
4997
+ // src/commands/te-analysis/project/function/index.ts
4998
+ var commands47 = [
4999
+ projectFunctionList
5000
+ ];
5001
+ var function_default = commands47;
5002
+
5003
+ // src/commands/te-analysis/project/info/get.ts
5004
+ var projectInfoGet = createAnalysisCapabilityCommand({
5005
+ resource: "project info",
5006
+ command: "get",
5007
+ capabilityId: "project.info.get",
5008
+ description: "Get project configuration details.",
5009
+ flags: [
5010
+ projectIdFlag
5011
+ ],
5012
+ risk: "read",
5013
+ buildInput: (ctx) => compactInput({
5014
+ project_id: ctx.num("project-id")
5015
+ })
5016
+ });
5017
+
5018
+ // src/commands/te-analysis/project/info/list.ts
5019
+ var projectInfoList = createAnalysisCapabilityCommand({
5020
+ resource: "project info",
5021
+ command: "list",
5022
+ capabilityId: "project.info.list",
5023
+ description: "List projects accessible to the current user.",
5024
+ flags: [
5025
+ queryFlag,
5026
+ fieldsFlag,
5027
+ limitFlag,
5028
+ offsetFlag
5029
+ ],
5030
+ risk: "read",
5031
+ buildInput: (ctx) => compactInput({
5032
+ query: optionalString2(ctx, "query"),
5033
+ fields: optionalJson(ctx, "fields"),
5034
+ limit: optionalNumber2(ctx, "limit"),
5035
+ offset: optionalNumber2(ctx, "offset")
5036
+ })
5037
+ });
5038
+
5039
+ // src/commands/te-analysis/project/info/update.ts
5040
+ var projectInfoUpdate = createAnalysisCapabilityCommand({
5041
+ resource: "project info",
5042
+ command: "update",
5043
+ capabilityId: "project.info.update",
5044
+ description: "Update project name and remark.",
5045
+ flags: [
5046
+ projectIdFlag,
5047
+ { name: "project-name", type: "string", required: true, desc: "New project name." },
5048
+ { name: "project-remark", type: "string", required: false, desc: "Optional project remark." }
5049
+ ],
5050
+ risk: "write",
5051
+ buildInput: (ctx) => compactInput({
5052
+ project_id: ctx.num("project-id"),
5053
+ project_name: ctx.str("project-name"),
5054
+ project_remark: optionalString2(ctx, "project-remark")
5055
+ })
5056
+ });
5057
+
5058
+ // src/commands/te-analysis/project/info/index.ts
5059
+ var commands48 = [
5060
+ projectInfoGet,
5061
+ projectInfoList,
5062
+ projectInfoUpdate
5063
+ ];
5064
+ var info_default = commands48;
5065
+
5066
+ // src/commands/te-analysis/project/mark-time/create.ts
5067
+ var projectMarkTimeCreate = createAnalysisCapabilityCommand({
5068
+ resource: "project mark-time",
5069
+ command: "create",
5070
+ capabilityId: "project.mark_time.create",
5071
+ description: "Create a project date marker.",
5072
+ flags: [
5073
+ projectIdFlag,
5074
+ { name: "marked-at", type: "string", required: true, desc: "Marker timestamp, for example yyyy-MM-dd HH:mm." },
5075
+ { name: "zone-offset", type: "number", required: false, desc: "Marker time zone offset." },
5076
+ { name: "content", type: "string", required: true, desc: "Marker content." },
5077
+ { name: "is-visible", type: "number", required: false, desc: "Whether the marker is visible. 1 visible, 0 hidden." }
5078
+ ],
5079
+ risk: "write",
5080
+ buildInput: (ctx) => compactInput({
5081
+ project_id: ctx.num("project-id"),
5082
+ marked_at: ctx.str("marked-at"),
5083
+ zone_offset: optionalNumber2(ctx, "zone-offset"),
5084
+ content: ctx.str("content"),
5085
+ is_visible: optionalNumber2(ctx, "is-visible")
5086
+ })
5087
+ });
5088
+
5089
+ // src/commands/te-analysis/project/mark-time/delete.ts
5090
+ var projectMarkTimeDelete = createAnalysisCapabilityCommand({
5091
+ resource: "project mark-time",
5092
+ command: "delete",
5093
+ capabilityId: "project.mark_time.delete",
5094
+ description: "Delete project date markers.",
5095
+ flags: [
5096
+ projectIdFlag,
5097
+ { name: "mark-time-ids", type: "json", required: true, desc: "Date marker IDs JSON array to delete." }
5098
+ ],
5099
+ risk: "high-risk-write",
5100
+ buildInput: (ctx) => compactInput({
5101
+ project_id: ctx.num("project-id"),
5102
+ mark_time_ids: ctx.json("mark-time-ids"),
5103
+ yes: true
5104
+ })
5105
+ });
5106
+
5107
+ // src/commands/te-analysis/project/mark-time/list.ts
5108
+ var projectMarkTimeList = createAnalysisCapabilityCommand({
5109
+ resource: "project mark-time",
5110
+ command: "list",
5111
+ capabilityId: "project.mark_time.list",
5112
+ description: "List project date markers.",
5113
+ flags: [
5114
+ projectIdFlag,
5115
+ queryFlag,
5116
+ fieldsFlag,
5117
+ limitFlag,
5118
+ offsetFlag,
5119
+ { name: "zone-offset", type: "number", required: false, desc: "Dashboard locked time zone offset." }
5120
+ ],
5121
+ risk: "read",
5122
+ buildInput: (ctx) => compactInput({
5123
+ project_id: ctx.num("project-id"),
5124
+ query: optionalString2(ctx, "query"),
5125
+ fields: optionalJson(ctx, "fields"),
5126
+ limit: optionalNumber2(ctx, "limit"),
5127
+ offset: optionalNumber2(ctx, "offset"),
5128
+ zone_offset: optionalNumber2(ctx, "zone-offset")
5129
+ })
5130
+ });
5131
+
5132
+ // src/commands/te-analysis/project/mark-time/update.ts
5133
+ var projectMarkTimeUpdate = createAnalysisCapabilityCommand({
5134
+ resource: "project mark-time",
5135
+ command: "update",
5136
+ capabilityId: "project.mark_time.update",
5137
+ description: "Update a project date marker.",
5138
+ flags: [
5139
+ projectIdFlag,
5140
+ { name: "mark-time-id", type: "number", required: true, desc: "Date marker ID." },
5141
+ { name: "marked-at", type: "string", required: true, desc: "Marker timestamp, for example yyyy-MM-dd HH:mm." },
5142
+ { name: "zone-offset", type: "number", required: false, desc: "Marker time zone offset." },
5143
+ { name: "content", type: "string", required: true, desc: "Marker content." },
5144
+ { name: "is-visible", type: "number", required: false, desc: "Whether the marker is visible. 1 visible, 0 hidden." }
5145
+ ],
5146
+ risk: "write",
5147
+ buildInput: (ctx) => compactInput({
5148
+ project_id: ctx.num("project-id"),
5149
+ mark_time_id: ctx.num("mark-time-id"),
5150
+ marked_at: ctx.str("marked-at"),
5151
+ zone_offset: optionalNumber2(ctx, "zone-offset"),
5152
+ content: ctx.str("content"),
5153
+ is_visible: optionalNumber2(ctx, "is-visible")
5154
+ })
5155
+ });
5156
+
5157
+ // src/commands/te-analysis/project/mark-time/index.ts
5158
+ var commands49 = [
5159
+ projectMarkTimeCreate,
5160
+ projectMarkTimeDelete,
5161
+ projectMarkTimeList,
5162
+ projectMarkTimeUpdate
5163
+ ];
5164
+ var mark_time_default = commands49;
5165
+
5166
+ // src/commands/te-analysis/project/member/add.ts
5167
+ var projectMemberAdd = createAnalysisCapabilityCommand({
5168
+ resource: "project member",
5169
+ command: "add",
5170
+ capabilityId: "project.member.add",
5171
+ description: "Add project members.",
5172
+ flags: [
5173
+ projectIdFlag,
5174
+ requiredPayloadFlag,
5175
+ { name: "type", type: "string", required: true, desc: "Add type accepted by ProjMemberAddTypeEnum." }
5176
+ ],
5177
+ risk: "write",
5178
+ buildInput: (ctx) => compactInput({
5179
+ project_id: ctx.num("project-id"),
5180
+ payload: ctx.json("payload"),
5181
+ type: ctx.str("type")
5182
+ })
5183
+ });
5184
+
5185
+ // src/commands/te-analysis/project/member/batch-update.ts
5186
+ var projectMemberBatchUpdate = createAnalysisCapabilityCommand({
5187
+ resource: "project member",
5188
+ command: "batch-update",
5189
+ capabilityId: "project.member.batch_update",
5190
+ description: "Batch update project members.",
5191
+ flags: [
5192
+ projectIdFlag,
5193
+ requiredPayloadFlag
5194
+ ],
5195
+ risk: "write",
5196
+ buildInput: (ctx) => compactInput({
5197
+ project_id: ctx.num("project-id"),
5198
+ payload: ctx.json("payload")
5199
+ })
5200
+ });
5201
+
5202
+ // src/commands/te-analysis/project/member/import.ts
5203
+ var projectMemberImport = createAnalysisCapabilityCommand({
5204
+ resource: "project member",
5205
+ command: "import",
5206
+ capabilityId: "project.member.import",
5207
+ description: "Import members and roles from another project.",
5208
+ flags: [
5209
+ projectIdFlag,
5210
+ { name: "source-project-id", type: "number", required: true, desc: "Project ID to import members from." }
5211
+ ],
5212
+ risk: "high-risk-write",
5213
+ buildInput: (ctx) => compactInput({
5214
+ project_id: ctx.num("project-id"),
5215
+ source_project_id: ctx.num("source-project-id"),
5216
+ yes: true
5217
+ })
5218
+ });
5219
+
5220
+ // src/commands/te-analysis/project/member/list.ts
5221
+ var projectMemberList = createAnalysisCapabilityCommand({
5222
+ resource: "project member",
5223
+ command: "list",
5224
+ capabilityId: "project.member.list",
5225
+ description: "List project members.",
5226
+ flags: [
5227
+ projectIdFlag
5228
+ ],
5229
+ risk: "read",
5230
+ buildInput: (ctx) => compactInput({
5231
+ project_id: ctx.num("project-id")
5232
+ })
5233
+ });
5234
+
5235
+ // src/commands/te-analysis/project/member/remove.ts
5236
+ var projectMemberRemove = createAnalysisCapabilityCommand({
5237
+ resource: "project member",
5238
+ command: "remove",
5239
+ capabilityId: "project.member.remove",
5240
+ description: "Remove a project member and optionally hand over assets.",
5241
+ flags: [
5242
+ projectIdFlag,
5243
+ requiredPayloadFlag,
5244
+ { name: "from-open-id", type: "string", required: true, desc: "Open ID of the member to remove." }
5245
+ ],
5246
+ risk: "high-risk-write",
5247
+ buildInput: (ctx) => compactInput({
5248
+ project_id: ctx.num("project-id"),
5249
+ payload: ctx.json("payload"),
5250
+ from_open_id: ctx.str("from-open-id"),
5251
+ yes: true
5252
+ })
5253
+ });
5254
+
5255
+ // src/commands/te-analysis/project/member/update.ts
5256
+ var projectMemberUpdate = createAnalysisCapabilityCommand({
5257
+ resource: "project member",
5258
+ command: "update",
5259
+ capabilityId: "project.member.update",
5260
+ description: "Update one project member.",
5261
+ flags: [
5262
+ projectIdFlag,
5263
+ requiredPayloadFlag,
5264
+ { name: "target-user-id", type: "number", required: true, desc: "Target user ID." }
5265
+ ],
5266
+ risk: "write",
5267
+ buildInput: (ctx) => compactInput({
5268
+ project_id: ctx.num("project-id"),
5269
+ payload: ctx.json("payload"),
5270
+ target_user_id: ctx.num("target-user-id")
5271
+ })
5272
+ });
5273
+
5274
+ // src/commands/te-analysis/project/member/index.ts
5275
+ var commands50 = [
5276
+ projectMemberAdd,
5277
+ projectMemberBatchUpdate,
5278
+ projectMemberImport,
5279
+ projectMemberList,
5280
+ projectMemberRemove,
5281
+ projectMemberUpdate
5282
+ ];
5283
+ var member_default = commands50;
5284
+
5285
+ // src/commands/te-analysis/project/member-candidate/list.ts
5286
+ var projectMemberCandidateList = createAnalysisCapabilityCommand({
5287
+ resource: "project member-candidate",
5288
+ command: "list",
5289
+ capabilityId: "project.member_candidate.list",
5290
+ description: "List candidate users and role/data-power options for adding project members.",
5291
+ flags: [
5292
+ projectIdFlag,
5293
+ { name: "type", type: "string", required: true, desc: "Add type accepted by ProjMemberAddTypeEnum." },
5294
+ { name: "login-names", type: "string", required: false, desc: "Comma-separated login names when checking new users." }
5295
+ ],
5296
+ risk: "read",
5297
+ buildInput: (ctx) => compactInput({
5298
+ project_id: ctx.num("project-id"),
5299
+ type: ctx.str("type"),
5300
+ login_names: optionalString2(ctx, "login-names")
5301
+ })
5302
+ });
5303
+
5304
+ // src/commands/te-analysis/project/member-candidate/index.ts
5305
+ var commands51 = [
5306
+ projectMemberCandidateList
5307
+ ];
5308
+ var member_candidate_default = commands51;
5309
+
5310
+ // src/commands/te-analysis/project/member-handover/export.ts
5311
+ var projectMemberHandoverExport = createAnalysisCapabilityCommand({
5312
+ resource: "project member-handover",
5313
+ command: "export",
5314
+ capabilityId: "project.member_handover.export",
5315
+ description: "Run batch project member asset handover and export the generated detail file as a CLI artifact.",
5316
+ flags: [
5317
+ projectIdFlag,
5318
+ requiredPayloadFlag,
5319
+ requestIdFlag
5320
+ ],
5321
+ risk: "high-risk-write",
5322
+ buildInput: (ctx) => compactInput({
5323
+ project_id: ctx.num("project-id"),
5324
+ payload: ctx.json("payload"),
5325
+ request_id: optionalString2(ctx, "request-id"),
5326
+ yes: true
5327
+ })
5328
+ });
5329
+
5330
+ // src/commands/te-analysis/project/member-handover/run.ts
5331
+ var projectMemberHandoverRun = createAnalysisCapabilityCommand({
5332
+ resource: "project member-handover",
5333
+ command: "run",
5334
+ capabilityId: "project.member_handover.run",
5335
+ description: "Run project member asset handover.",
5336
+ flags: [
5337
+ projectIdFlag,
5338
+ requiredPayloadFlag
5339
+ ],
5340
+ risk: "write",
5341
+ buildInput: (ctx) => compactInput({
5342
+ project_id: ctx.num("project-id"),
5343
+ payload: ctx.json("payload")
5344
+ })
5345
+ });
5346
+
5347
+ // src/commands/te-analysis/project/member-handover/index.ts
5348
+ var commands52 = [
5349
+ projectMemberHandoverExport,
5350
+ projectMemberHandoverRun
5351
+ ];
5352
+ var member_handover_default = commands52;
5353
+
5354
+ // src/commands/te-analysis/project/member-receiver/list.ts
5355
+ var projectMemberReceiverList = createAnalysisCapabilityCommand({
5356
+ resource: "project member-receiver",
5357
+ command: "list",
5358
+ capabilityId: "project.member_receiver.list",
5359
+ description: "List project member handover receivers.",
5360
+ flags: [
5361
+ projectIdFlag
5362
+ ],
5363
+ risk: "read",
5364
+ buildInput: (ctx) => compactInput({
5365
+ project_id: ctx.num("project-id")
5366
+ })
5367
+ });
5368
+
5369
+ // src/commands/te-analysis/project/member-receiver/index.ts
5370
+ var commands53 = [
5371
+ projectMemberReceiverList
5372
+ ];
5373
+ var member_receiver_default = commands53;
5374
+
5375
+ // src/commands/te-analysis/project/owner/update.ts
5376
+ var projectOwnerUpdate = createAnalysisCapabilityCommand({
5377
+ resource: "project owner",
5378
+ command: "update",
5379
+ capabilityId: "project.owner.update",
5380
+ description: "Update project owner.",
5381
+ flags: [
5382
+ projectIdFlag,
5383
+ { name: "company-id", type: "number", required: true, desc: "Company ID." },
5384
+ { name: "owner-user-id", type: "number", required: false, desc: "New owner user ID. Omit to only downgrade existing owner." },
5385
+ { name: "project-name", type: "string", required: false, desc: "Optional project name update." },
5386
+ { name: "project-remark", type: "string", required: false, desc: "Optional project remark update." }
5387
+ ],
5388
+ risk: "write",
5389
+ buildInput: (ctx) => compactInput({
5390
+ project_id: ctx.num("project-id"),
5391
+ company_id: ctx.num("company-id"),
5392
+ owner_user_id: optionalNumber2(ctx, "owner-user-id"),
5393
+ project_name: optionalString2(ctx, "project-name"),
5394
+ project_remark: optionalString2(ctx, "project-remark")
5395
+ })
5396
+ });
5397
+
5398
+ // src/commands/te-analysis/project/owner/index.ts
5399
+ var commands54 = [
5400
+ projectOwnerUpdate
5401
+ ];
5402
+ var owner_default = commands54;
5403
+
5404
+ // src/commands/te-analysis/project/permission-binding/list.ts
5405
+ var projectPermissionBindingList = createAnalysisCapabilityCommand({
5406
+ resource: "project permission-binding",
5407
+ command: "list",
5408
+ capabilityId: "project.permission_binding.list",
5409
+ description: "List project role and data-power bindings for company-level permission management.",
5410
+ flags: [
5411
+ projectIdFlag,
5412
+ { name: "company-id", type: "number", required: true, desc: "Company ID." },
5413
+ { name: "project-ids", type: "json", required: true, desc: "Project IDs JSON array." }
5414
+ ],
5415
+ risk: "read",
5416
+ buildInput: (ctx) => compactInput({
5417
+ project_id: ctx.num("project-id"),
5418
+ company_id: ctx.num("company-id"),
5419
+ project_ids: ctx.json("project-ids")
5420
+ })
5421
+ });
5422
+
5423
+ // src/commands/te-analysis/project/permission-binding/index.ts
5424
+ var commands55 = [
5425
+ projectPermissionBindingList
5426
+ ];
5427
+ var permission_binding_default = commands55;
5428
+
5429
+ // src/commands/te-analysis/project/receive-status/update.ts
5430
+ var projectReceiveStatusUpdate = createAnalysisCapabilityCommand({
5431
+ resource: "project receive-status",
5432
+ command: "update",
5433
+ capabilityId: "project.receive_status.update",
5434
+ description: "Update project data receive status.",
5435
+ flags: [
5436
+ projectIdFlag,
5437
+ { name: "receive-status", type: "string", required: true, desc: "Receive status: NORMAL or STOP_RECEIVE." }
5438
+ ],
5439
+ risk: "high-risk-write",
5440
+ buildInput: (ctx) => compactInput({
5441
+ project_id: ctx.num("project-id"),
5442
+ receive_status: ctx.str("receive-status"),
5443
+ yes: true
5444
+ })
5445
+ });
5446
+
5447
+ // src/commands/te-analysis/project/receive-status/index.ts
5448
+ var commands56 = [
5449
+ projectReceiveStatusUpdate
5450
+ ];
5451
+ var receive_status_default = commands56;
5452
+
5453
+ // src/commands/te-analysis/project/role/delete.ts
5454
+ var projectRoleDelete = createAnalysisCapabilityCommand({
5455
+ resource: "project role",
5456
+ command: "delete",
5457
+ capabilityId: "project.role.delete",
5458
+ description: "Delete a role and optionally migrate users to another role.",
5459
+ flags: [
5460
+ projectIdFlag,
5461
+ { name: "role-name", type: "string", required: true, desc: "Role name to delete." },
5462
+ { name: "new-role-name", type: "string", required: false, desc: "Role name to migrate users to before deletion." }
5463
+ ],
5464
+ risk: "high-risk-write",
5465
+ buildInput: (ctx) => compactInput({
5466
+ project_id: ctx.num("project-id"),
5467
+ role_name: ctx.str("role-name"),
5468
+ new_role_name: optionalString2(ctx, "new-role-name"),
5469
+ yes: true
5470
+ })
5471
+ });
5472
+
5473
+ // src/commands/te-analysis/project/role/get.ts
5474
+ var projectRoleGet = createAnalysisCapabilityCommand({
5475
+ resource: "project role",
5476
+ command: "get",
5477
+ capabilityId: "project.role.get",
5478
+ description: "Get one role by role name.",
5479
+ flags: [
5480
+ projectIdFlag,
5481
+ { name: "role-name", type: "string", required: true, desc: "Role name." }
5482
+ ],
5483
+ risk: "read",
5484
+ buildInput: (ctx) => compactInput({
5485
+ project_id: ctx.num("project-id"),
5486
+ role_name: ctx.str("role-name")
5487
+ })
5488
+ });
5489
+
5490
+ // src/commands/te-analysis/project/role/list.ts
5491
+ var projectRoleList = createAnalysisCapabilityCommand({
5492
+ resource: "project role",
5493
+ command: "list",
5494
+ capabilityId: "project.role.list",
5495
+ description: "List project-visible roles.",
5496
+ flags: [
5497
+ { name: "company-id", type: "number", required: false, desc: "Company ID. Required when project_id is absent." },
5498
+ projectIdFlag,
5499
+ { name: "visible-only", type: "boolean", required: false, desc: "When true, list roles visible to the current user." }
5500
+ ],
5501
+ risk: "read",
5502
+ buildInput: (ctx) => compactInput({
5503
+ company_id: optionalNumber2(ctx, "company-id"),
5504
+ project_id: ctx.num("project-id"),
5505
+ visible_only: optionalBoolean2(ctx, "visible-only")
5506
+ })
5507
+ });
5508
+
5509
+ // src/commands/te-analysis/project/role/upsert.ts
5510
+ var projectRoleUpsert = createAnalysisCapabilityCommand({
5511
+ resource: "project role",
5512
+ command: "upsert",
5513
+ capabilityId: "project.role.upsert",
5514
+ description: "Create or update a project role.",
5515
+ flags: [
5516
+ projectIdFlag,
5517
+ requiredPayloadFlag
5518
+ ],
5519
+ risk: "write",
5520
+ buildInput: (ctx) => compactInput({
5521
+ project_id: ctx.num("project-id"),
5522
+ payload: ctx.json("payload")
5523
+ })
5524
+ });
5525
+
5526
+ // src/commands/te-analysis/project/role/index.ts
5527
+ var commands57 = [
5528
+ projectRoleDelete,
5529
+ projectRoleGet,
5530
+ projectRoleList,
5531
+ projectRoleUpsert
5532
+ ];
5533
+ var role_default = commands57;
5534
+
5535
+ // src/commands/te-analysis/project/role-function/list.ts
5536
+ var projectRoleFunctionList = createAnalysisCapabilityCommand({
5537
+ resource: "project role-function",
5538
+ command: "list",
5539
+ capabilityId: "project.role_function.list",
5540
+ description: "List functions granted to one or more roles.",
5541
+ flags: [
5542
+ { name: "company-id", type: "number", required: false, desc: "Company ID." },
5543
+ projectIdFlag,
5544
+ { name: "role-name", type: "string", required: false, desc: "Single role name." },
5545
+ { name: "role-names", type: "json", required: false, desc: "Role names JSON array. When omitted, all role functions are returned." },
5546
+ { name: "show-system-func", type: "boolean", required: false, desc: "Whether to include system functions. Default false." }
5547
+ ],
5548
+ risk: "read",
5549
+ buildInput: (ctx) => compactInput({
5550
+ company_id: optionalNumber2(ctx, "company-id"),
5551
+ project_id: ctx.num("project-id"),
5552
+ role_name: optionalString2(ctx, "role-name"),
5553
+ role_names: optionalJson(ctx, "role-names"),
5554
+ show_system_func: optionalBoolean2(ctx, "show-system-func")
5555
+ })
5556
+ });
5557
+
5558
+ // src/commands/te-analysis/project/role-function/index.ts
5559
+ var commands58 = [
5560
+ projectRoleFunctionList
5561
+ ];
5562
+ var role_function_default = commands58;
5563
+
5564
+ // src/commands/te-analysis/project/role-user/list.ts
5565
+ var projectRoleUserList = createAnalysisCapabilityCommand({
5566
+ resource: "project role-user",
5567
+ command: "list",
5568
+ capabilityId: "project.role_user.list",
5569
+ description: "List users bound to a role.",
5570
+ flags: [
5571
+ projectIdFlag,
5572
+ { name: "role-name", type: "string", required: true, desc: "Role name." }
5573
+ ],
5574
+ risk: "read",
5575
+ buildInput: (ctx) => compactInput({
5576
+ project_id: ctx.num("project-id"),
5577
+ role_name: ctx.str("role-name")
5578
+ })
5579
+ });
5580
+
5581
+ // src/commands/te-analysis/project/role-user/index.ts
5582
+ var commands59 = [
5583
+ projectRoleUserList
5584
+ ];
5585
+ var role_user_default = commands59;
5586
+
5587
+ // src/commands/te-analysis/project/timezone/get.ts
5588
+ var projectTimezoneGet = createAnalysisCapabilityCommand({
5589
+ resource: "project timezone",
5590
+ command: "get",
5591
+ capabilityId: "project.timezone.get",
5592
+ description: "Get project time zone configuration.",
5593
+ flags: [
5594
+ projectIdFlag
5595
+ ],
5596
+ risk: "read",
5597
+ buildInput: (ctx) => compactInput({
5598
+ project_id: ctx.num("project-id")
5599
+ })
5600
+ });
5601
+
5602
+ // src/commands/te-analysis/project/timezone/overview.ts
5603
+ var projectTimezoneOverview = createAnalysisCapabilityCommand({
5604
+ resource: "project timezone",
5605
+ command: "overview",
5606
+ capabilityId: "project.timezone.overview",
5607
+ description: "Get project time zone overview.",
5608
+ flags: [
5609
+ projectIdFlag
5610
+ ],
5611
+ risk: "read",
5612
+ buildInput: (ctx) => compactInput({
5613
+ project_id: ctx.num("project-id")
5614
+ })
5615
+ });
5616
+
5617
+ // src/commands/te-analysis/project/timezone/update.ts
5618
+ var projectTimezoneUpdate = createAnalysisCapabilityCommand({
5619
+ resource: "project timezone",
5620
+ command: "update",
5621
+ capabilityId: "project.timezone.update",
5622
+ description: "Update one project time zone configuration item.",
5623
+ flags: [
5624
+ projectIdFlag,
5625
+ requiredPayloadFlag,
5626
+ { name: "item", type: "string", required: true, desc: "Timezone item: timezone_toggle, zone_offset, user_timezone, project_timezone_display." }
5627
+ ],
5628
+ risk: "write",
5629
+ buildInput: (ctx) => compactInput({
5630
+ project_id: ctx.num("project-id"),
5631
+ payload: ctx.json("payload"),
5632
+ item: ctx.str("item")
5633
+ })
5634
+ });
5635
+
5636
+ // src/commands/te-analysis/project/timezone/index.ts
5637
+ var commands60 = [
5638
+ projectTimezoneGet,
5639
+ projectTimezoneOverview,
5640
+ projectTimezoneUpdate
5641
+ ];
5642
+ var timezone_default = commands60;
5643
+
5644
+ // src/commands/te-analysis/project/user-id-items/update.ts
5645
+ var projectUserIdItemsUpdate = createAnalysisCapabilityCommand({
5646
+ resource: "project user-id-items",
5647
+ command: "update",
5648
+ capabilityId: "project.user_id_items.update",
5649
+ description: "Update project virtual user ID item configuration.",
5650
+ flags: [
5651
+ projectIdFlag,
5652
+ requiredPayloadFlag
5653
+ ],
5654
+ risk: "write",
5655
+ buildInput: (ctx) => compactInput({
5656
+ project_id: ctx.num("project-id"),
5657
+ payload: ctx.json("payload")
5658
+ })
5659
+ });
5660
+
5661
+ // src/commands/te-analysis/project/user-id-items/index.ts
5662
+ var commands61 = [
5663
+ projectUserIdItemsUpdate
5664
+ ];
5665
+ var user_id_items_default = commands61;
5666
+
5667
+ // src/commands/te-analysis/project/index.ts
5668
+ var commands62 = [
5669
+ ...access_detail_default,
5670
+ ...data_power_default,
5671
+ ...entity_default2,
5672
+ ...entity_event_default,
5673
+ ...function_default,
5674
+ ...info_default,
5675
+ ...mark_time_default,
5676
+ ...member_default,
5677
+ ...member_candidate_default,
5678
+ ...member_handover_default,
5679
+ ...member_receiver_default,
5680
+ ...owner_default,
5681
+ ...permission_binding_default,
5682
+ ...receive_status_default,
5683
+ ...role_default,
5684
+ ...role_function_default,
5685
+ ...role_user_default,
5686
+ ...timezone_default,
5687
+ ...user_id_items_default
5688
+ ];
5689
+ var project_default = commands62;
4486
5690
 
4487
5691
  // src/commands/te-analysis/index.ts
4488
5692
  registerCapabilityGatewayRoute("analysis", { gatewayDomain: "analysis" });
@@ -4512,18 +5716,20 @@ var baseCommands = [
4512
5716
  ...model_default,
4513
5717
  ...event_detail_default,
4514
5718
  ...entity_detail_default,
4515
- ...drilldown_users_default,
5719
+ ...drilldown_events_default,
5720
+ ...drilldown_entities_default,
4516
5721
  ...drilldown_user_events_default,
4517
5722
  ...user_default,
4518
5723
  ...sql_table_default,
4519
5724
  ...entity_default,
4520
- ...input_file_default
5725
+ ...input_file_default,
5726
+ ...project_default
4521
5727
  ];
4522
- var commands42 = [
5728
+ var commands63 = [
4523
5729
  ...baseCommands,
4524
5730
  ...isGlobalQueryModeEnabled() ? global_default : []
4525
5731
  ];
4526
- var te_analysis_default = commands42;
5732
+ var te_analysis_default = commands63;
4527
5733
  export {
4528
5734
  baseCommands,
4529
5735
  te_analysis_default as default