@thinkingai/ae-cli 6.0.48 → 6.0.49

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 (330) hide show
  1. package/README.md +2 -0
  2. package/README.zh.md +2 -0
  3. package/dist/{auth-FUM37MHF.js → auth-XZNXFRJS.js} +5 -5
  4. package/dist/{capability-J4FU4JZW.js → capability-RJZ4KRGP.js} +42 -12
  5. package/dist/{chunk-LNZBEQXW.js → chunk-4NRCTUZJ.js} +27041 -474
  6. package/dist/{chunk-VXNMYUXU.js → chunk-57RRFUEZ.js} +23 -7
  7. package/dist/{chunk-WZ6YVQSF.js → chunk-7FTTULED.js} +1 -1
  8. package/dist/{chunk-ATSM5XAW.js → chunk-7XGFSUOM.js} +2 -2
  9. package/dist/{chunk-I4WQAEYB.js → chunk-DVMLWQD4.js} +8 -186
  10. package/dist/{chunk-CZU3V3DQ.js → chunk-DX5CDO34.js} +27 -6
  11. package/dist/chunk-EQ255HKO.js +38248 -0
  12. package/dist/{chunk-BBEFP4SB.js → chunk-HBGADCKA.js} +3 -3
  13. package/dist/{chunk-QJQZH5GQ.js → chunk-HFGZGYCG.js} +10 -6
  14. package/dist/{chunk-ECBLHAZO.js → chunk-JOCDD4ON.js} +1 -1
  15. package/dist/{chunk-TKHSULJT.js → chunk-KPQY44JQ.js} +6 -0
  16. package/dist/chunk-L2QUIZTS.js +155 -0
  17. package/dist/{chunk-4P355ZWB.js → chunk-MAPZ7VB6.js} +21 -1
  18. package/dist/chunk-V2NUHPXF.js +196 -0
  19. package/dist/{chunk-HPLNYQPM.js → chunk-WEPZ5M3Z.js} +5 -5
  20. package/dist/{community-report-client-XXWGSBSD.js → community-report-client-CU22W53K.js} +1 -1
  21. package/dist/{config-EXUGQN5T.js → config-XO3LI3SA.js} +4 -4
  22. package/dist/context-IFJI3LIT.js +46 -0
  23. package/dist/{data-integration-4NZ53OMT.js → data-integration-HNGUKFIC.js} +44 -35
  24. package/dist/index.js +102 -61
  25. package/dist/{local-data-upload-client-KYOKVYZV.js → local-data-upload-client-GTRIT64F.js} +3 -2
  26. package/dist/{memory-ATNKZNW5.js → memory-QGPSNCQS.js} +4 -4
  27. package/dist/{metadata-3J5ZAVMF.js → metadata-JAQW7KGZ.js} +8 -8
  28. package/dist/{model-E4JMQ4V2.js → model-RNPQXIBI.js} +4 -4
  29. package/dist/{personal-semantic-preference-32AAJ37M.js → personal-semantic-preference-QCZ2IZTK.js} +11 -8
  30. package/dist/project-semantic-64JURXKF.js +372 -0
  31. package/dist/{sync-2GTAKZYX.js → sync-O45NXEQY.js} +10 -9
  32. package/dist/{te-agent-JB5T3PO7.js → te-agent-K5MSPNHJ.js} +5 -5
  33. package/dist/{te-analysis-WHYXHRJD.js → te-analysis-KQKCAI5H.js} +1086 -354
  34. package/dist/{te-community-UDBI672N.js → te-community-4OYU3BDA.js} +4 -4
  35. package/dist/{te-dataops-ZLYOCXZ4.js → te-dataops-NFIPB6FX.js} +5 -5
  36. package/dist/{te-engage-DHKNJ5BO.js → te-engage-HSVSRW22.js} +7 -7
  37. package/dist/{te-kb-WYQWHFSC.js → te-kb-3TS73NO6.js} +454 -194
  38. package/dist/{te-system-7G6F2LJA.js → te-system-STMHLS5J.js} +12 -7
  39. package/dist/{te-team-E7FBBXMQ.js → te-team-3I5AOX3N.js} +6 -6
  40. package/dist/{update-D47BUG25.js → update-RZXLPCRH.js} +4 -4
  41. package/package.json +21 -14
  42. package/skills/ae-analysis/SKILL.md +91 -91
  43. package/skills/ae-analysis/references/adhoc_export.md +11 -18
  44. package/skills/ae-analysis/references/adhoc_run.md +15 -7
  45. package/skills/ae-analysis/references/agent_review_detail.md +11 -0
  46. package/skills/ae-analysis/references/agent_review_evidence.md +46 -0
  47. package/skills/ae-analysis/references/agent_review_list.md +9 -0
  48. package/skills/ae-analysis/references/agent_review_preflight.md +96 -0
  49. package/skills/ae-analysis/references/agent_review_priorities_comparisons.md +76 -0
  50. package/skills/ae-analysis/references/agent_review_records.md +9 -0
  51. package/skills/ae-analysis/references/agent_review_retry.md +12 -0
  52. package/skills/ae-analysis/references/agent_review_review.md +16 -0
  53. package/skills/ae-analysis/references/agent_review_submit_to_page.md +184 -0
  54. package/skills/ae-analysis/references/ai_models/attribution.md +29 -0
  55. package/skills/ae-analysis/references/ai_models/distribution.md +40 -0
  56. package/skills/ae-analysis/references/ai_models/event.md +108 -0
  57. package/skills/ae-analysis/references/ai_models/funnel.md +46 -0
  58. package/skills/ae-analysis/references/ai_models/heat_map.md +26 -0
  59. package/skills/ae-analysis/references/ai_models/interval.md +20 -0
  60. package/skills/ae-analysis/references/ai_models/path.md +38 -0
  61. package/skills/ae-analysis/references/ai_models/prop_analysis.md +39 -0
  62. package/skills/ae-analysis/references/ai_models/rank_list.md +25 -0
  63. package/skills/ae-analysis/references/ai_models/retention.md +70 -0
  64. package/skills/ae-analysis/references/ai_models/revenue.md +28 -0
  65. package/skills/ae-analysis/references/ai_models/sql.md +74 -0
  66. package/skills/ae-analysis/references/ai_models/tag.md +19 -0
  67. package/skills/ae-analysis/references/ai_models.md +32 -473
  68. package/skills/ae-analysis/references/alert_create.md +7 -7
  69. package/skills/ae-analysis/references/alert_delete.md +4 -6
  70. package/skills/ae-analysis/references/alert_detail_list.md +7 -9
  71. package/skills/ae-analysis/references/alert_get.md +5 -7
  72. package/skills/ae-analysis/references/alert_job_list.md +4 -6
  73. package/skills/ae-analysis/references/alert_list.md +6 -8
  74. package/skills/ae-analysis/references/alert_notice_config_list.md +4 -6
  75. package/skills/ae-analysis/references/alert_start.md +5 -7
  76. package/skills/ae-analysis/references/alert_stop.md +5 -7
  77. package/skills/ae-analysis/references/alert_update.md +8 -8
  78. package/skills/ae-analysis/references/analysis_data_export.md +72 -0
  79. package/skills/ae-analysis/references/analysis_data_retrieval.md +32 -196
  80. package/skills/ae-analysis/references/analysis_gateway_assets.md +23 -180
  81. package/skills/ae-analysis/references/analysis_interpretation.md +37 -17
  82. package/skills/ae-analysis/references/asset_abnormal_get.md +0 -1
  83. package/skills/ae-analysis/references/asset_abnormal_list.md +0 -1
  84. package/skills/ae-analysis/references/asset_authentication_export.md +4 -0
  85. package/skills/ae-analysis/references/asset_authentication_list.md +7 -1
  86. package/skills/ae-analysis/references/asset_authentication_update.md +5 -1
  87. package/skills/ae-analysis/references/asset_batch_dashboard_schedule_freeze.md +8 -6
  88. package/skills/ae-analysis/references/asset_batch_delete.md +6 -6
  89. package/skills/ae-analysis/references/asset_batch_disable_auto_backup.md +4 -5
  90. package/skills/ae-analysis/references/asset_batch_disable_auto_update.md +5 -6
  91. package/skills/ae-analysis/references/asset_batch_handover.md +4 -5
  92. package/skills/ae-analysis/references/asset_batch_info_export.md +4 -5
  93. package/skills/ae-analysis/references/asset_batch_sql_export.md +5 -6
  94. package/skills/ae-analysis/references/asset_dependency_list.md +4 -5
  95. package/skills/ae-analysis/references/asset_export.md +4 -5
  96. package/skills/ae-analysis/references/asset_impact_list.md +5 -9
  97. package/skills/ae-analysis/references/asset_lineage_get.md +5 -6
  98. package/skills/ae-analysis/references/asset_list.md +4 -5
  99. package/skills/ae-analysis/references/asset_query_history_list.md +4 -8
  100. package/skills/ae-analysis/references/asset_recent_list.md +0 -1
  101. package/skills/ae-analysis/references/asset_search.md +12 -9
  102. package/skills/ae-analysis/references/asset_url_get.md +3 -4
  103. package/skills/ae-analysis/references/bi_panel_copy.md +2 -2
  104. package/skills/ae-analysis/references/bi_panel_page_data_export.md +4 -12
  105. package/skills/ae-analysis/references/bi_panel_page_data_run.md +2 -0
  106. package/skills/ae-analysis/references/catalog_export.md +4 -17
  107. package/skills/ae-analysis/references/catalog_list.md +4 -4
  108. package/skills/ae-analysis/references/check_delete.md +5 -7
  109. package/skills/ae-analysis/references/check_export.md +11 -11
  110. package/skills/ae-analysis/references/check_get.md +8 -10
  111. package/skills/ae-analysis/references/check_list.md +4 -6
  112. package/skills/ae-analysis/references/check_retry.md +8 -10
  113. package/skills/ae-analysis/references/check_run.md +2 -4
  114. package/skills/ae-analysis/references/command_index.md +44 -26
  115. package/skills/ae-analysis/references/dashboard_report_data_export.md +5 -13
  116. package/skills/ae-analysis/references/dashboard_report_data_run.md +1 -1
  117. package/skills/ae-analysis/references/dashboard_update.md +14 -3
  118. package/skills/ae-analysis/references/datatable_columns_get.md +0 -1
  119. package/skills/ae-analysis/references/datatable_influence_list.md +0 -1
  120. package/skills/ae-analysis/references/datatable_version_get.md +0 -1
  121. package/skills/ae-analysis/references/datatable_version_list.md +0 -1
  122. package/skills/ae-analysis/references/debug_device_add.md +1 -2
  123. package/skills/ae-analysis/references/drilldown_entities_export.md +3 -3
  124. package/skills/ae-analysis/references/drilldown_events_export.md +3 -2
  125. package/skills/ae-analysis/references/drilldown_user_events_export.md +2 -2
  126. package/skills/ae-analysis/references/entity_detail_export.md +3 -2
  127. package/skills/ae-analysis/references/entity_detail_run.md +1 -0
  128. package/skills/ae-analysis/references/event_blacklist_add.md +5 -7
  129. package/skills/ae-analysis/references/event_blacklist_list.md +4 -6
  130. package/skills/ae-analysis/references/event_blacklist_update.md +6 -8
  131. package/skills/ae-analysis/references/event_changelog_list.md +0 -1
  132. package/skills/ae-analysis/references/event_create.md +0 -1
  133. package/skills/ae-analysis/references/event_detail_export.md +3 -2
  134. package/skills/ae-analysis/references/event_detail_run.md +1 -0
  135. package/skills/ae-analysis/references/event_export.md +0 -1
  136. package/skills/ae-analysis/references/event_get.md +0 -1
  137. package/skills/ae-analysis/references/event_hide_update.md +0 -1
  138. package/skills/ae-analysis/references/event_influence_list.md +0 -1
  139. package/skills/ae-analysis/references/event_list.md +0 -1
  140. package/skills/ae-analysis/references/event_property_bundle_export.md +5 -14
  141. package/skills/ae-analysis/references/event_property_bundle_import.md +2 -6
  142. package/skills/ae-analysis/references/event_relation_update.md +0 -1
  143. package/skills/ae-analysis/references/event_update.md +0 -1
  144. package/skills/ae-analysis/references/exchange_config_update.md +0 -1
  145. package/skills/ae-analysis/references/exchange_rate_refresh.md +0 -1
  146. package/skills/ae-analysis/references/exchange_rule_list.md +0 -1
  147. package/skills/ae-analysis/references/exchange_rule_update.md +0 -1
  148. package/skills/ae-analysis/references/exchange_rule_validate.md +0 -1
  149. package/skills/ae-analysis/references/governance_recommendation_decisions.md +23 -0
  150. package/skills/ae-analysis/references/governance_recommendation_export.md +108 -0
  151. package/skills/ae-analysis/references/governance_recommendation_submit.md +41 -0
  152. package/skills/ae-analysis/references/history_tag_data_drilldown_export.md +4 -4
  153. package/skills/ae-analysis/references/history_tag_data_export.md +3 -3
  154. package/skills/ae-analysis/references/ingest_error_list.md +7 -9
  155. package/skills/ae-analysis/references/ingest_summary.md +6 -8
  156. package/skills/ae-analysis/references/live_data_export.md +10 -10
  157. package/skills/ae-analysis/references/live_data_list.md +7 -9
  158. package/skills/ae-analysis/references/metadata_resolution.md +78 -0
  159. package/skills/ae-analysis/references/metric_export.md +0 -1
  160. package/skills/ae-analysis/references/metric_get.md +0 -1
  161. package/skills/ae-analysis/references/metric_list.md +4 -5
  162. package/skills/ae-analysis/references/metric_update.md +0 -1
  163. package/skills/ae-analysis/references/operation_record_export.md +4 -5
  164. package/skills/ae-analysis/references/operation_record_list.md +4 -5
  165. package/skills/ae-analysis/references/personal_semantic_preference_list.md +18 -1
  166. package/skills/ae-analysis/references/plan_change_log_export.md +10 -10
  167. package/skills/ae-analysis/references/plan_change_log_list.md +4 -6
  168. package/skills/ae-analysis/references/plan_delete_items.md +2 -4
  169. package/skills/ae-analysis/references/plan_export.md +9 -9
  170. package/skills/ae-analysis/references/plan_generate.md +2 -4
  171. package/skills/ae-analysis/references/plan_get.md +4 -6
  172. package/skills/ae-analysis/references/plan_import_excel.md +6 -8
  173. package/skills/ae-analysis/references/plan_save_items.md +2 -4
  174. package/skills/ae-analysis/references/plan_sync_from_meta.md +4 -6
  175. package/skills/ae-analysis/references/project_access_detail_get.md +0 -1
  176. package/skills/ae-analysis/references/project_data_power_get.md +0 -1
  177. package/skills/ae-analysis/references/project_data_power_list.md +0 -1
  178. package/skills/ae-analysis/references/project_data_power_upsert.md +0 -1
  179. package/skills/ae-analysis/references/project_entity_create.md +0 -1
  180. package/skills/ae-analysis/references/project_entity_event_list.md +0 -1
  181. package/skills/ae-analysis/references/project_entity_get.md +0 -1
  182. package/skills/ae-analysis/references/project_entity_list.md +0 -1
  183. package/skills/ae-analysis/references/project_entity_update.md +0 -1
  184. package/skills/ae-analysis/references/project_function_list.md +0 -1
  185. package/skills/ae-analysis/references/project_info_get.md +0 -1
  186. package/skills/ae-analysis/references/project_info_list.md +0 -1
  187. package/skills/ae-analysis/references/project_info_update.md +0 -1
  188. package/skills/ae-analysis/references/project_mark_time_create.md +0 -1
  189. package/skills/ae-analysis/references/project_mark_time_list.md +0 -1
  190. package/skills/ae-analysis/references/project_mark_time_update.md +0 -1
  191. package/skills/ae-analysis/references/project_member_add.md +6 -5
  192. package/skills/ae-analysis/references/project_member_batch_update.md +0 -1
  193. package/skills/ae-analysis/references/project_member_candidate_list.md +4 -3
  194. package/skills/ae-analysis/references/project_member_handover_run.md +2 -3
  195. package/skills/ae-analysis/references/project_member_list.md +0 -1
  196. package/skills/ae-analysis/references/project_member_receiver_list.md +0 -1
  197. package/skills/ae-analysis/references/project_member_update.md +0 -1
  198. package/skills/ae-analysis/references/project_owner_update.md +0 -1
  199. package/skills/ae-analysis/references/project_permission_binding_list.md +0 -1
  200. package/skills/ae-analysis/references/project_role_function_list.md +0 -1
  201. package/skills/ae-analysis/references/project_role_get.md +0 -1
  202. package/skills/ae-analysis/references/project_role_list.md +0 -1
  203. package/skills/ae-analysis/references/project_role_upsert.md +32 -2
  204. package/skills/ae-analysis/references/project_role_user_list.md +0 -1
  205. package/skills/ae-analysis/references/project_semantic_knowledge_wiki.md +214 -0
  206. package/skills/ae-analysis/references/project_semantic_knowledge_wiki_plan_schema.md +93 -0
  207. package/skills/ae-analysis/references/project_timezone_get.md +0 -1
  208. package/skills/ae-analysis/references/project_timezone_overview.md +0 -1
  209. package/skills/ae-analysis/references/project_timezone_update.md +0 -1
  210. package/skills/ae-analysis/references/project_user_id_items_update.md +0 -1
  211. package/skills/ae-analysis/references/property_changelog_list.md +0 -1
  212. package/skills/ae-analysis/references/property_create.md +0 -1
  213. package/skills/ae-analysis/references/property_export.md +0 -1
  214. package/skills/ae-analysis/references/property_get.md +0 -1
  215. package/skills/ae-analysis/references/property_hide_update.md +0 -1
  216. package/skills/ae-analysis/references/property_influence_list.md +0 -1
  217. package/skills/ae-analysis/references/property_list.md +3 -4
  218. package/skills/ae-analysis/references/property_related_events.md +0 -1
  219. package/skills/ae-analysis/references/property_relation_update.md +0 -1
  220. package/skills/ae-analysis/references/property_update.md +0 -1
  221. package/skills/ae-analysis/references/report_create.md +4 -2
  222. package/skills/ae-analysis/references/report_data_export.md +11 -9
  223. package/skills/ae-analysis/references/report_data_run.md +14 -7
  224. package/skills/ae-analysis/references/report_get.md +5 -3
  225. package/skills/ae-analysis/references/report_list.md +2 -0
  226. package/skills/ae-analysis/references/report_update.md +5 -3
  227. package/skills/ae-analysis/references/rule_create.md +5 -6
  228. package/skills/ae-analysis/references/rule_delete.md +5 -5
  229. package/skills/ae-analysis/references/rule_list.md +3 -4
  230. package/skills/ae-analysis/references/rule_schema.md +3 -4
  231. package/skills/ae-analysis/references/rule_update.md +5 -6
  232. package/skills/ae-analysis/references/sdk_sample_generate.md +2 -4
  233. package/skills/ae-analysis/references/sql_table_columns.md +1 -1
  234. package/skills/ae-analysis/references/super_metadata_batch_create.md +1 -1
  235. package/skills/ae-analysis/references/super_metadata_batch_edit.md +1 -1
  236. package/skills/ae-analysis/references/system_member_add.md +1 -2
  237. package/skills/ae-analysis/references/system_member_status_update.md +1 -1
  238. package/skills/ae-analysis/references/system_ops_alert_contact_list.md +1 -1
  239. package/skills/ae-analysis/references/system_ops_alert_contact_test.md +0 -1
  240. package/skills/ae-analysis/references/system_query_monitor_overview.md +3 -3
  241. package/skills/ae-analysis/references/system_query_task_export.md +4 -14
  242. package/skills/ae-analysis/references/system_query_task_get.md +1 -1
  243. package/skills/ae-analysis/references/system_query_task_list.md +5 -6
  244. package/skills/ae-analysis/references/system_receiver_address_upsert.md +3 -3
  245. package/skills/ae-analysis/references/system_receiver_detection_get.md +1 -1
  246. package/skills/ae-analysis/references/system_third_party_login_disable.md +1 -1
  247. package/skills/ae-analysis/references/system_usage_trend_export.md +3 -12
  248. package/skills/ae-analysis/references/user_cluster_list.md +1 -1
  249. package/skills/ae-analysis/references/user_cluster_member_export.md +4 -4
  250. package/skills/ae-analysis/references/user_tag_list.md +1 -1
  251. package/skills/ae-analysis/references/user_tag_member_export.md +4 -4
  252. package/skills/ae-analysis/references/virtual_event_create.md +10 -5
  253. package/skills/ae-analysis/references/virtual_event_get.md +0 -1
  254. package/skills/ae-analysis/references/virtual_property_create.md +0 -1
  255. package/skills/ae-analysis/references/virtual_property_sql_rule_update.md +0 -1
  256. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/build-project-semantic-wiki.mjs +1054 -0
  257. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/company-kb.mjs +112 -0
  258. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/default-compile-rules.md +30 -0
  259. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/generate-build-ir.mjs +2735 -0
  260. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/package-wiki-source-zip.mjs +376 -0
  261. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/plan-kb-source-sync.mjs +264 -0
  262. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/precompiled-source.mjs +49 -0
  263. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/upload-kb-sources-concurrently.mjs +200 -0
  264. package/skills/ae-analysis/scripts/read_results.py +197 -0
  265. package/skills/ae-analysis-global/SKILL.md +1 -1
  266. package/skills/ae-capability/SKILL.md +1 -1
  267. package/skills/ae-community/SKILL.md +1 -1
  268. package/skills/ae-current-context/SKILL.md +53 -0
  269. package/skills/ae-data-integration/SKILL.md +5 -4
  270. package/skills/ae-data-integration/references/lark-bitable-source.md +288 -0
  271. package/skills/ae-data-integration/references/lark-sheet-source.md +130 -0
  272. package/skills/ae-data-integration/references/manual-export-source.md +83 -0
  273. package/skills/ae-data-integration/references/reuse.md +2 -0
  274. package/skills/ae-data-integration/references/sink-upload.md +32 -0
  275. package/skills/ae-data-integration/references/tracking-plan.md +4 -1
  276. package/skills/ae-data-integration/references/ue-mapping.md +2 -2
  277. package/skills/ae-data-integration-helper/SKILL.md +5 -5
  278. package/skills/ae-data-integration-helper/references/android_sdk_faq.md +3 -3
  279. package/skills/ae-data-integration-helper/references/c_sdk_faq.md +3 -3
  280. package/skills/ae-data-integration-helper/references/cocoscreator_sdk_faq.md +1 -1
  281. package/skills/ae-data-integration-helper/references/cpp_server_sdk_faq.md +3 -3
  282. package/skills/ae-data-integration-helper/references/ios_sdk_faq.md +1 -1
  283. package/skills/ae-data-integration-helper/references/java_sdk_faq.md +3 -3
  284. package/skills/ae-data-integration-helper/references/javascript_sdk_faq.md +1 -1
  285. package/skills/ae-data-integration-helper/references/logbus2_guide.md +1 -1
  286. package/skills/ae-data-integration-helper/references/logbus2_parser_plugin.md +2 -2
  287. package/skills/ae-data-integration-helper/references/minigame_sdk_faq.md +2 -2
  288. package/skills/ae-data-integration-helper/references/miniprogram_sdk_faq.md +1 -1
  289. package/skills/ae-data-integration-helper/references/python_sdk_faq.md +2 -2
  290. package/skills/ae-data-integration-helper/references/restful_api_notes.md +2 -2
  291. package/skills/ae-data-integration-helper/references/sdk_log_guide.md +3 -3
  292. package/skills/ae-data-integration-helper/references/sdk_usage_notes.md +11 -11
  293. package/skills/ae-data-integration-helper/references/unity_sdk_faq.md +1 -1
  294. package/skills/ae-dataops/SKILL.md +1 -1
  295. package/skills/ae-engage/SKILL.md +4 -3
  296. package/skills/ae-engage/references/build-task-save-guide.md +3 -0
  297. package/skills/ae-engage/references/flow-metric-update.md +115 -1
  298. package/skills/ae-engage/references/save-flow.md +3 -0
  299. package/skills/ae-engage/references/save-task.md +21 -0
  300. package/skills/ae-engage/references/task-metric-update.md +151 -0
  301. package/skills/ae-generate-tracking-code/SKILL.md +2 -1
  302. package/skills/ae-generate-tracking-code/references/client-sdk-insert.md +1 -1
  303. package/skills/ae-generate-tracking-code/references/datax-config.md +1 -1
  304. package/skills/ae-generate-tracking-code/references/logbus-config.md +1 -1
  305. package/skills/ae-generate-tracking-code/references/modes.md +1 -1
  306. package/skills/ae-generate-tracking-code/references/server-sdk-insert.md +5 -5
  307. package/skills/ae-generate-tracking-code/references/snippet-delivery.md +3 -3
  308. package/skills/ae-generate-tracking-plan/SKILL.md +2 -2
  309. package/skills/ae-generate-tracking-plan/references/te-api.md +1 -0
  310. package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +3 -2
  311. package/skills/ae-kb/SKILL.md +41 -2
  312. package/skills/ae-kb/references/analysis-workflow.md +292 -0
  313. package/skills/ae-kb/references/source-mutations.md +95 -0
  314. package/skills/ae-kb-discovery/SKILL.md +5 -1
  315. package/skills/ae-metadata/SKILL.md +1 -1
  316. package/skills/ae-migrate-tracking-code/SKILL.md +195 -0
  317. package/skills/ae-migrate-tracking-code/references/ae-preset-properties.md +76 -0
  318. package/skills/ae-migrate-tracking-code/references/ir.md +167 -0
  319. package/skills/ae-migrate-tracking-code/references/mapping-framework.md +112 -0
  320. package/skills/ae-migrate-tracking-code/references/providers/README.md +58 -0
  321. package/skills/ae-migrate-tracking-code/references/providers/amplitude.md +208 -0
  322. package/skills/ae-migrate-tracking-code/references/providers/firebase.md +160 -0
  323. package/skills/ae-migrate-tracking-code/references/providers/ga4.md +92 -0
  324. package/skills/ae-migrate-tracking-code/references/providers/mixpanel.md +150 -0
  325. package/skills/ae-migrate-tracking-code/references/providers/sensors-data.md +146 -0
  326. package/skills/ae-system/SKILL.md +4 -4
  327. package/skills/ae-team/SKILL.md +2 -2
  328. package/skills/ae-use-agent/references/local-agent.md +1 -1
  329. package/dist/chunk-6KBBAPPP.js +0 -72
  330. package/skills/ae-analysis/metadata_resolution.md +0 -184
@@ -7,14 +7,16 @@ import {
7
7
  waitForAnalysisRun,
8
8
  withAsyncArtifactLifecycle,
9
9
  withInterruptSignal
10
- } from "./chunk-HPLNYQPM.js";
10
+ } from "./chunk-WEPZ5M3Z.js";
11
11
  import {
12
- createCapabilityCommand
13
- } from "./chunk-6KBBAPPP.js";
12
+ createCapabilityCommand,
13
+ definitionIntentSnapshotFlag,
14
+ modelDefinitionIntentSnapshotFlag
15
+ } from "./chunk-L2QUIZTS.js";
14
16
  import {
15
17
  registerCapabilityGatewayRoute,
16
18
  resolveGatewayDomain
17
- } from "./chunk-TKHSULJT.js";
19
+ } from "./chunk-KPQY44JQ.js";
18
20
  import {
19
21
  CapabilityGatewayError,
20
22
  buildCapabilityGatewayUrl,
@@ -25,18 +27,18 @@ import {
25
27
  requestCapabilityGatewayWithEnvelope,
26
28
  uploadInputFile,
27
29
  validateCapability
28
- } from "./chunk-QJQZH5GQ.js";
30
+ } from "./chunk-HFGZGYCG.js";
29
31
  import {
30
32
  withOutputMetadata
31
- } from "./chunk-CZU3V3DQ.js";
33
+ } from "./chunk-DX5CDO34.js";
32
34
  import "./chunk-Y74WTIKJ.js";
33
35
  import {
34
36
  getCliToken
35
- } from "./chunk-ATSM5XAW.js";
36
- import "./chunk-WZ6YVQSF.js";
37
+ } from "./chunk-7XGFSUOM.js";
38
+ import "./chunk-7FTTULED.js";
37
39
  import {
38
40
  CliValidationError
39
- } from "./chunk-4P355ZWB.js";
41
+ } from "./chunk-MAPZ7VB6.js";
40
42
 
41
43
  // src/commands/te-analysis/capability-shared.ts
42
44
  var ANALYSIS_GATEWAY_CLI_SERVICES = /* @__PURE__ */ new Set(["project", "system"]);
@@ -404,99 +406,43 @@ function validateCatalogExportFlags(ctx) {
404
406
  throw new CliValidationError("--output must use the .jsonl extension");
405
407
  }
406
408
  }
407
- function catalogArtifactMaterializer(resourceType) {
408
- return async ({
409
- ctx,
409
+ async function catalogArtifactMaterializer({
410
+ ctx,
411
+ runId,
412
+ artifactId,
413
+ output,
414
+ force,
415
+ signal,
416
+ finalDescriptor
417
+ }) {
418
+ await assertRegularFileOrMissing(resolve(output), force);
419
+ const download = await downloadAnalysisArtifact(
420
+ ctx.host(),
410
421
  runId,
411
422
  artifactId,
412
423
  output,
413
- force,
414
- signal,
415
- finalDescriptor
416
- }) => {
417
- const outputPath = resolve(output);
418
- const metaPath = join(
419
- dirname(outputPath),
420
- `${basename(outputPath, extname(outputPath))}.meta.json`
421
- );
422
- await mkdir(dirname(outputPath), { recursive: true });
423
- await assertRegularFileOrMissing(outputPath, force);
424
- await assertRegularFileOrMissing(metaPath, force);
425
- const suffix = `${process.pid}.${randomBytes(8).toString("hex")}`;
426
- const partPath = `${outputPath}.part.${suffix}`;
427
- const metaPartPath = `${metaPath}.part.${suffix}`;
428
- let handle;
429
- try {
430
- const download = await downloadAnalysisArtifact(
431
- ctx.host(),
432
- runId,
433
- artifactId,
434
- partPath,
435
- { force: true, signal, ensureReady: false }
436
- );
437
- const hash = createHash("sha256");
438
- let bytes = 0;
439
- let rows = 0;
440
- for await (const chunk of createReadStream(partPath)) {
441
- const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
442
- hash.update(buffer);
443
- bytes += buffer.length;
444
- for (const value of buffer) {
445
- if (value === 10) rows++;
446
- }
447
- }
448
- const contentSha256 = hash.digest("hex");
449
- const token = await getCliToken(ctx.host());
450
- const metadata = {
451
- schema_version: 1,
452
- resource_type: resourceType,
453
- host: ctx.host(),
454
- project_id: ctx.num("project-id"),
455
- principal_fingerprint: `sha256:${createHash("sha256").update(token).digest("hex")}`,
456
- generated_at: (/* @__PURE__ */ new Date()).toISOString(),
457
- row_count: rows,
458
- complete: true,
459
- content_sha256: contentSha256,
460
- run_id: runId,
461
- artifact_id: artifactId
462
- };
463
- handle = await open(metaPartPath, "w", 384);
464
- await handle.write(`${JSON.stringify(metadata)}
465
- `, void 0, "utf8");
466
- await handle.sync();
467
- await handle.close();
468
- handle = void 0;
469
- await publishCatalogPair(partPath, outputPath, metaPartPath, metaPath, suffix);
470
- return {
471
- ...finalDescriptor,
472
- ...download,
473
- output_path: outputPath,
474
- metadata_path: metaPath,
475
- format: "jsonl",
476
- row_count: rows,
477
- bytes,
478
- content_sha256: contentSha256,
479
- complete: true
480
- };
481
- } catch (error) {
482
- await handle?.close().catch(() => void 0);
483
- await rm(partPath, { force: true }).catch(() => void 0);
484
- await rm(metaPartPath, { force: true }).catch(() => void 0);
485
- throw error;
424
+ { force, signal, ensureReady: false, mode: 384 }
425
+ );
426
+ let rows = 0;
427
+ for await (const chunk of createReadStream(download.output_path)) {
428
+ const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
429
+ for (const value of buffer) {
430
+ if (value === 10) rows++;
486
431
  }
432
+ }
433
+ return {
434
+ ...finalDescriptor,
435
+ ...download,
436
+ format: "jsonl",
437
+ row_count: rows,
438
+ complete: true
487
439
  };
488
440
  }
489
441
  async function preflightCatalogArtifactOutput({
490
442
  output,
491
443
  force
492
444
  }) {
493
- const outputPath = resolve(output);
494
- const metaPath = join(
495
- dirname(outputPath),
496
- `${basename(outputPath, extname(outputPath))}.meta.json`
497
- );
498
- await assertRegularFileOrMissing(outputPath, force);
499
- await assertRegularFileOrMissing(metaPath, force);
445
+ await assertRegularFileOrMissing(resolve(output), force);
500
446
  }
501
447
  function validateQueriesFlag(ctx) {
502
448
  const queries = ctx.json("queries");
@@ -1182,8 +1128,8 @@ var metadataVirtualEventCreate = createAnalysisMetaCapabilityCommand({
1182
1128
  { name: "event-name", type: "string", required: false, desc: "Virtual event name. Must start with 'ta@'." },
1183
1129
  { name: "event-desc", type: "string", required: false, desc: "Virtual event display name." },
1184
1130
  { name: "remark", type: "string", required: false, desc: "Optional virtual event remark." },
1185
- { name: "events", type: "json", required: false, desc: "Event array using snake_case event_name and optional AI-facing filter {relation,items:[{field:{name,type?},operator,values?}]}." },
1186
- { name: "filter", type: "json", required: false, desc: "Optional AI-facing global filter {relation,items:[{field:{name,type?},operator,values?}]}; raw taFilters/junctionKind are rejected." },
1131
+ { name: "events", type: "json", required: false, desc: "Event array using snake_case event_name and optional AI-facing filter conditions. Tag/cluster conditions accept cluster_date_policy and specified_cluster_date." },
1132
+ { name: "filter", type: "json", required: false, desc: "Optional AI-facing global filter. Tag/cluster conditions accept LATEST, AUTO, or SPECIFIED; SPECIFIED requires specified_cluster_date. Raw taFilters/junctionKind are rejected." },
1187
1133
  { name: "override", type: "boolean", required: false, desc: "Whether to override an existing virtual event rule." }
1188
1134
  ],
1189
1135
  risk: "write",
@@ -1539,21 +1485,43 @@ var commands5 = [
1539
1485
  var metric_default = commands5;
1540
1486
 
1541
1487
  // src/commands/te-analysis/meta/asset/search.ts
1542
- var metadataAssetSearch = createAnalysisMetaCapabilityCommand({
1488
+ var assetTypesFlag = {
1489
+ name: "asset-types",
1490
+ type: "json",
1491
+ required: false,
1492
+ desc: "Optional saved analysis asset type narrowing. Omit by default for first-pass asset discovery so dashboards and reports are searched together; pass only when the user explicitly asks for one type or after refining a broad search."
1493
+ };
1494
+ var ownTypesFlag = {
1495
+ name: "own-types",
1496
+ type: "json",
1497
+ required: false,
1498
+ desc: "Optional owner filter. CREATED means owned by the current user; SHARED means visible assets created by others."
1499
+ };
1500
+ var requiredQueriesFlag = {
1501
+ ...queriesFlag,
1502
+ required: true,
1503
+ desc: "Required JSON array of 1 to 20 keyword filters. For first-pass asset discovery, use one broad search without --asset-types so results can include both dashboards and reports."
1504
+ };
1505
+ var analysisAssetSearch = createAnalysisCapabilityCommand({
1543
1506
  resource: "asset",
1544
1507
  command: "search",
1545
- capabilityId: "metadata.asset.search",
1546
- description: "Search project assets by keyword.",
1508
+ capabilityId: "analysis.asset.search",
1509
+ description: "Search visible saved analysis assets by keyword. Default first-pass search should omit --asset-types to cover both dashboards and reports.",
1547
1510
  flags: [
1548
1511
  projectIdFlag,
1549
- requiredPayloadFlag,
1512
+ requiredQueriesFlag,
1513
+ assetTypesFlag,
1514
+ ownTypesFlag,
1550
1515
  directoryLimitFlag,
1551
1516
  directoryOffsetFlag
1552
1517
  ],
1553
1518
  risk: "read",
1519
+ validate: validateQueriesFlag,
1554
1520
  buildInput: (ctx) => compactInput({
1555
1521
  ...projectInput(ctx),
1556
- payload: ctx.json("payload"),
1522
+ queries: optionalJson(ctx, "queries"),
1523
+ asset_types: optionalJson(ctx, "asset-types"),
1524
+ own_types: optionalJson(ctx, "own-types"),
1557
1525
  limit: optionalNumber(ctx, "limit"),
1558
1526
  offset: optionalNumber(ctx, "offset")
1559
1527
  })
@@ -1656,13 +1624,11 @@ var ruleIdFlag = { name: "rule-id", type: "number", required: false, desc: "Gove
1656
1624
  var ruleNameFlag = { name: "rule-name", type: "string", required: false, desc: "Governance rule name." };
1657
1625
  var commentFlag = { name: "comment", type: "string", required: false, desc: "Governance rule comment." };
1658
1626
  var nodeIdsFlag = { name: "node-ids", type: "json", required: false, desc: "Asset node ID JSON array." };
1659
- var reportsVersionFlag = { name: "reports-version", type: "number", required: false, desc: "Dashboard reports version." };
1660
- var zoneOffsetFlag = { name: "zone-offset", type: "number", required: false, desc: "Dashboard zone offset." };
1661
1627
  var scheduleUiConfigFlag = { name: "schedule-ui-config", type: "json", required: false, desc: "Dashboard schedule UI config JSON." };
1662
1628
  var dashboardStatusFlag = { name: "dashboard-status", type: "string", required: false, desc: "Dashboard status." };
1663
1629
  var refreshTypeFlag = { name: "refresh-type", type: "number", required: false, desc: "Dashboard refresh type: 1 enabled, 0 disabled." };
1664
1630
  var cacheConfigFlag = { name: "cache-config", type: "json", required: false, desc: "Dashboard cache config JSON." };
1665
- var toUserIdFlag = { name: "to-user-id", type: "number", required: true, desc: "Target user ID for handover." };
1631
+ var toUserIdFlag = { name: "to-user-id", type: "number", required: false, desc: "Target user ID for handover; required here or as payload.to_user_id." };
1666
1632
  var clearHistoryTagFlag = { name: "clear-history-tag", type: "number", required: false, desc: "Whether to clear tag history: 1 yes, 0 no." };
1667
1633
  var typeFlag = { name: "type", type: "string", required: false, desc: "Batch operation type." };
1668
1634
  var statusFlag = { name: "status", type: "json", required: false, desc: "Operation status JSON array." };
@@ -1681,7 +1647,7 @@ var readers = {
1681
1647
  rule_id: (ctx) => optionalNumber(ctx, "rule-id"),
1682
1648
  rule_name: (ctx) => optionalString(ctx, "rule-name"),
1683
1649
  comment: (ctx) => optionalString(ctx, "comment"),
1684
- node_ids: (ctx) => optionalJsonArray(ctx, "node-ids"),
1650
+ node_ids: (ctx) => optionalJson(ctx, "node-ids"),
1685
1651
  reports_version: (ctx) => optionalNumber(ctx, "reports-version"),
1686
1652
  zone_offset: (ctx) => optionalNumber(ctx, "zone-offset"),
1687
1653
  schedule_ui_config: (ctx) => optionalJson(ctx, "schedule-ui-config"),
@@ -1698,37 +1664,79 @@ var readers = {
1698
1664
  limit: (ctx) => optionalNumber(ctx, "limit"),
1699
1665
  offset: (ctx) => optionalNumber(ctx, "offset")
1700
1666
  };
1701
- function assetGovernanceInput(ctx, fields) {
1667
+ function assetGovernanceInput(ctx, fields2) {
1668
+ const payload = optionalJson(ctx, "payload");
1669
+ if (payload !== void 0 && (!payload || typeof payload !== "object" || Array.isArray(payload))) {
1670
+ throw new CliValidationError("--payload must be a JSON object.");
1671
+ }
1672
+ if (payload && Object.hasOwn(payload, "payload")) {
1673
+ throw new CliValidationError("--payload must not contain a nested payload field.");
1674
+ }
1702
1675
  const input = {
1703
- ...projectInput(ctx),
1704
- payload: optionalJson(ctx, "payload")
1676
+ ...payload,
1677
+ ...projectInput(ctx)
1705
1678
  };
1706
- for (const field of fields) {
1707
- input[field] = readers[field]?.(ctx);
1679
+ for (const field of fields2) {
1680
+ const value = readers[field]?.(ctx);
1681
+ if (value !== void 0) input[field] = value;
1708
1682
  }
1709
- return compactInput(input);
1683
+ for (const field of ["node_ids", "searchs", "status"]) {
1684
+ if (input[field] !== void 0 && !Array.isArray(input[field])) {
1685
+ throw new CliValidationError(`${field} must be a JSON array.`);
1686
+ }
1687
+ }
1688
+ if (input.rule !== void 0 && (!input.rule || typeof input.rule !== "object" || Array.isArray(input.rule))) {
1689
+ throw new CliValidationError("rule must be a JSON object.");
1690
+ }
1691
+ if (fields2.includes("to_user_id") && (!Number.isInteger(input.to_user_id) || Number(input.to_user_id) <= 0)) {
1692
+ throw new CliValidationError("to_user_id must be a positive integer; provide --to-user-id or payload.to_user_id.");
1693
+ }
1694
+ return input;
1710
1695
  }
1711
1696
 
1712
1697
  // src/core/resource-url.ts
1713
- function normalizeResourceUrlFields(node, host) {
1698
+ var LOCAL_BACKEND_PORTS = /* @__PURE__ */ new Set(["8992", "8996"]);
1699
+ function normalizeResourceUrlFields(node, host, sourceHost = host) {
1714
1700
  if (!node || typeof node !== "object") return;
1715
1701
  const obj = node;
1716
1702
  for (const [key, value] of Object.entries(obj)) {
1717
1703
  if (typeof value === "string") {
1718
1704
  if (/url|link/i.test(key) || value.includes("/#/")) {
1719
- obj[key] = absolutizeRelativeUrls(value, host);
1705
+ obj[key] = normalizeResourceUrls(value, host, sourceHost);
1720
1706
  }
1721
1707
  } else if (value && typeof value === "object") {
1722
- normalizeResourceUrlFields(value, host);
1708
+ normalizeResourceUrlFields(value, host, sourceHost);
1723
1709
  }
1724
1710
  }
1725
1711
  }
1726
- function absolutizeRelativeUrls(s, host) {
1712
+ function normalizeResourceUrls(s, host, sourceHost = host) {
1727
1713
  const base = host.replace(/\/+$/, "");
1714
+ const sourceBase = sourceHost.replace(/\/+$/, "");
1715
+ if (sourceBase && sourceBase !== base) {
1716
+ s = s.replace(new RegExp(`${escapeRegExp(sourceBase)}/#`, "g"), `${base}/#`);
1717
+ }
1728
1718
  s = s.replace(/\]\((\/(?!\/)[^)]*)\)/g, `](${base}$1)`);
1729
1719
  if (/^\/(?!\/)/.test(s)) s = base + s;
1730
1720
  return s;
1731
1721
  }
1722
+ function resolvePublicWebHost(host) {
1723
+ const override = process.env.AE_CLI_PUBLIC_WEB_URL || process.env.AE_CLI_WEB_HOST;
1724
+ if (override?.trim()) {
1725
+ return override.trim().replace(/\/+$/, "");
1726
+ }
1727
+ try {
1728
+ const url = new URL(host);
1729
+ if ((url.hostname === "127.0.0.1" || url.hostname === "localhost") && LOCAL_BACKEND_PORTS.has(url.port)) {
1730
+ url.port = "10010";
1731
+ return url.toString().replace(/\/+$/, "");
1732
+ }
1733
+ } catch {
1734
+ }
1735
+ return host.replace(/\/+$/, "");
1736
+ }
1737
+ function escapeRegExp(value) {
1738
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1739
+ }
1732
1740
 
1733
1741
  // src/commands/te-analysis/meta/asset/url-get.ts
1734
1742
  var analysisMetaAssetUrlGet = createAnalysisMetaCapabilityCommand({
@@ -1747,7 +1755,7 @@ var analysisMetaAssetUrlGet = createAnalysisMetaCapabilityCommand({
1747
1755
 
1748
1756
  // src/commands/te-analysis/meta/asset/index.ts
1749
1757
  var commands6 = [
1750
- metadataAssetSearch,
1758
+ analysisAssetSearch,
1751
1759
  metadataAssetRecentList,
1752
1760
  metadataAssetAuthenticationList,
1753
1761
  metadataAssetAuthenticationUpdate,
@@ -2010,9 +2018,9 @@ var metadataCatalogExport = createAnalysisMetaCapabilityCommand({
2010
2018
  capabilityId: "metadata.catalog.export",
2011
2019
  asyncArtifact: {
2012
2020
  preflightOutput: preflightCatalogArtifactOutput,
2013
- materialize: catalogArtifactMaterializer("analysis_metadata")
2021
+ materialize: catalogArtifactMaterializer
2014
2022
  },
2015
- description: "Export the complete accessible analysis metadata catalog to JSONL with an integrity sidecar.",
2023
+ description: "Export the complete accessible analysis metadata catalog to one local JSONL file.",
2016
2024
  flags: [projectIdFlag, requestIdFlag, asyncTimeoutSecondsFlag, certificationScopeFlag],
2017
2025
  risk: "read",
2018
2026
  validate: validateCatalogExportFlags,
@@ -2094,8 +2102,653 @@ var metadataCatalogList = createAnalysisMetaCapabilityCommand({
2094
2102
  var commands10 = [metadataCatalogList, metadataCatalogExport];
2095
2103
  var catalog_default = commands10;
2096
2104
 
2097
- // src/commands/te-analysis/meta/index.ts
2105
+ // src/commands/te-analysis/meta/governance-recommendation/export.ts
2106
+ var windowDaysFlag = {
2107
+ name: "window-days",
2108
+ type: "number",
2109
+ required: false,
2110
+ min: 1,
2111
+ max: 365,
2112
+ desc: "Usage window in days. Default: 90."
2113
+ };
2114
+ var limitFlag2 = {
2115
+ name: "limit",
2116
+ type: "number",
2117
+ required: false,
2118
+ min: 1,
2119
+ max: 100,
2120
+ desc: "Maximum hot dashboard evidence packages selected before report and metadata expansion. Default: 20; this is not the business-topic count."
2121
+ };
2122
+ var includeCompletedFlag = {
2123
+ name: "include-completed",
2124
+ type: "boolean",
2125
+ required: false,
2126
+ desc: "Whether to include completed/authenticated context in the same business topic. Default: true; set false only for pending-only review."
2127
+ };
2128
+ var GOVERNANCE_RECOMMENDATION_EXPORT_HELP = [
2129
+ "Customer/Agent material package contract:",
2130
+ "- Requires project_semantic_enable=on. A disabled project returns PROJECT_SEMANTIC_DISABLED before collecting export materials.",
2131
+ "- Use this command as the entry point before asset-certification recommendation display or review-page submission.",
2132
+ "- The command requires a numeric --project-id. If the user provides only a project name, resolve it on the same host with ae-cli project info list before calling export.",
2133
+ "- The response run_id, snapshot_hash, and review_material_package are the handoff package for the Agent.",
2134
+ "- review_material_package should carry candidate_assets, heat evidence, source_link/evidence_links, relations, report definitions, AI-model definitions, target_revision, and hashes needed for review drafting.",
2135
+ "- Dashboard candidates may include optional space_id/space_name. Preserve these fields into the review draft when present; not every dashboard belongs to a space, so never invent or require them.",
2136
+ "- The Agent turns that package into a submit-to-page draft with batch ai_summary, presentation_snapshot, per-item ai_summary/reasons, copied evidence_snapshot, copied source links, and relations.",
2137
+ "- work_units are deterministic evidence containers from Common. They are not final page groups; the Agent clusters selected assets into one or more business-domain topics.",
2138
+ "- For report and SQL items, use packaged evidence_snapshot.analysis first. Call analysis-meta agent-review evidence only for explicit definition/analysis gaps or draft validation.",
2139
+ "- For real page-review submission, start with --limit 20, filter out completed/rejected/deferred/in-flight items, and expand to --limit 50 then --limit 100 only when the remaining pending review assets or visible business domains are too few.",
2140
+ "- Expansion increases business-domain coverage; it must not submit every pending asset found. Keep a daily review capacity target such as 20-50 pending assets, hard cap around 80, and select about 3-6 visible domains.",
2141
+ "- When candidates exceed the cap, rank by impact, heat, user count, dependency breadth, and under-covered domains; keep only direct context needed for selected pending assets and report overflow for later batches.",
2142
+ "- Draft only business domains with pending review assets. Completed/authenticated assets are necessary context under those visible domains, not standalone work and not a reason to display a zero-pending domain.",
2143
+ "- Generate long Agent summaries only for visible business domains and pending review assets; hidden domains and pure authenticated context should keep copied evidence/links without new page-visible narrative.",
2144
+ "- Page submission uses analysis-meta agent-review submit-to-page. governance-recommendation submit is for explicit approval decisions and must not be used to create page drafts."
2145
+ ].join("\n");
2146
+ var metadataGovernanceRecommendationExport = createAnalysisMetaCapabilityCommand({
2147
+ resource: "governance-recommendation",
2148
+ command: "export",
2149
+ capabilityId: "metadata.governance_recommendation.export",
2150
+ description: "Export the material package for CLI Agent asset-authentication and metric-recommendation review.",
2151
+ helpText: GOVERNANCE_RECOMMENDATION_EXPORT_HELP,
2152
+ flags: [projectIdFlag, windowDaysFlag, limitFlag2, includeCompletedFlag],
2153
+ risk: "read",
2154
+ buildInput: (ctx) => compactInput({
2155
+ ...projectInput(ctx),
2156
+ window_days: optionalNumber(ctx, "window-days"),
2157
+ limit: optionalNumber(ctx, "limit"),
2158
+ include_completed: optionalBoolean(ctx, "include-completed")
2159
+ }),
2160
+ postProcess: (result, _input, ctx) => {
2161
+ normalizeResourceUrlFields(result, resolvePublicWebHost(ctx.host()), ctx.host());
2162
+ return result;
2163
+ }
2164
+ });
2165
+
2166
+ // src/commands/te-analysis/meta/governance-recommendation/submit.ts
2167
+ var runIdFlag = {
2168
+ name: "run-id",
2169
+ type: "string",
2170
+ required: true,
2171
+ desc: "run_id returned by governance-recommendation export."
2172
+ };
2173
+ var snapshotHashFlag = {
2174
+ name: "snapshot-hash",
2175
+ type: "string",
2176
+ required: false,
2177
+ desc: "Authentication snapshot hash returned by governance-recommendation export."
2178
+ };
2179
+ var topicIdFlag = {
2180
+ name: "topic-id",
2181
+ type: "string",
2182
+ required: false,
2183
+ desc: "Optional CLI Agent business-domain ID. Dashboard-seeded evidence may submit only topic-name."
2184
+ };
2185
+ var topicNameFlag = {
2186
+ name: "topic-name",
2187
+ type: "string",
2188
+ required: true,
2189
+ desc: "CLI Agent business-domain display name."
2190
+ };
2191
+ var decisionsFlag = {
2192
+ name: "decisions",
2193
+ type: "json",
2194
+ required: true,
2195
+ desc: "Approval decisions JSON array for one CLI Agent topic. Each item uses item_type asset or metric_candidate and decision APPROVE, REJECT, or SKIP."
2196
+ };
2197
+ var windowDaysFlag2 = {
2198
+ name: "window-days",
2199
+ type: "number",
2200
+ required: false,
2201
+ min: 1,
2202
+ max: 365,
2203
+ desc: "Usage window in days for server-side metric candidate re-scan. Default: 90."
2204
+ };
2205
+ var limitFlag3 = {
2206
+ name: "limit",
2207
+ type: "number",
2208
+ required: false,
2209
+ min: 1,
2210
+ max: 100,
2211
+ desc: "Dashboard limit for server-side metric candidate re-scan. Default: 20."
2212
+ };
2213
+ var metadataGovernanceRecommendationSubmit = createAnalysisMetaCapabilityCommand({
2214
+ resource: "governance-recommendation",
2215
+ command: "submit",
2216
+ capabilityId: "metadata.governance_recommendation.submit",
2217
+ description: "Submit CLI Agent approval decisions for asset authentication and metric recommendation items.",
2218
+ flags: [
2219
+ projectIdFlag,
2220
+ runIdFlag,
2221
+ snapshotHashFlag,
2222
+ topicIdFlag,
2223
+ topicNameFlag,
2224
+ windowDaysFlag2,
2225
+ limitFlag3,
2226
+ decisionsFlag
2227
+ ],
2228
+ risk: "write",
2229
+ buildInput: (ctx) => compactInput({
2230
+ ...projectInput(ctx),
2231
+ run_id: ctx.str("run-id"),
2232
+ snapshot_hash: optionalString(ctx, "snapshot-hash"),
2233
+ topic_id: optionalString(ctx, "topic-id"),
2234
+ topic_name: ctx.str("topic-name"),
2235
+ window_days: optionalNumber(ctx, "window-days"),
2236
+ limit: optionalNumber(ctx, "limit"),
2237
+ decisions: ctx.json("decisions")
2238
+ })
2239
+ });
2240
+
2241
+ // src/commands/te-analysis/meta/governance-recommendation/decisions.ts
2242
+ var runIdFlag2 = {
2243
+ name: "run-id",
2244
+ type: "string",
2245
+ required: false,
2246
+ desc: "Optional run_id filter."
2247
+ };
2248
+ var limitFlag4 = {
2249
+ name: "limit",
2250
+ type: "number",
2251
+ required: false,
2252
+ min: 1,
2253
+ max: 500,
2254
+ desc: "Maximum rows returned. Default: 100."
2255
+ };
2256
+ var metadataGovernanceRecommendationDecisions = createAnalysisMetaCapabilityCommand({
2257
+ resource: "governance-recommendation",
2258
+ command: "decisions",
2259
+ capabilityId: "metadata.governance_recommendation.decisions",
2260
+ description: "List recent CLI Agent recommendation approval decisions.",
2261
+ flags: [projectIdFlag, runIdFlag2, limitFlag4],
2262
+ risk: "read",
2263
+ buildInput: (ctx) => compactInput({
2264
+ ...projectInput(ctx),
2265
+ run_id: optionalString(ctx, "run-id"),
2266
+ limit: optionalNumber(ctx, "limit")
2267
+ })
2268
+ });
2269
+
2270
+ // src/commands/te-analysis/meta/governance-recommendation/index.ts
2098
2271
  var commands11 = [
2272
+ metadataGovernanceRecommendationExport,
2273
+ metadataGovernanceRecommendationSubmit,
2274
+ metadataGovernanceRecommendationDecisions
2275
+ ];
2276
+ var governance_recommendation_default = commands11;
2277
+
2278
+ // src/commands/te-analysis/meta/agent-review/shared.ts
2279
+ var projectFlag = {
2280
+ name: "project-id",
2281
+ type: "number",
2282
+ required: true,
2283
+ min: 1,
2284
+ desc: "Numeric project ID."
2285
+ };
2286
+ var batchFlag = {
2287
+ name: "batch-id",
2288
+ type: "string",
2289
+ required: true,
2290
+ desc: "Review batch ID as a decimal string; preserve all digits."
2291
+ };
2292
+ var clientRequestFlag = {
2293
+ name: "client-request-id",
2294
+ type: "string",
2295
+ required: true,
2296
+ desc: "Stable operation key. Reuse for network replay; use a new key for a new decision or manual retry."
2297
+ };
2298
+ function text(ctx, name) {
2299
+ const value = ctx.str(name);
2300
+ if (!value.trim()) throw new Error(`--${name} must not be empty.`);
2301
+ return value;
2302
+ }
2303
+ function decimalId(value, name) {
2304
+ if (typeof value !== "string" || !/^[1-9]\d*$/.test(value) || BigInt(value) > 9223372036854775807n) {
2305
+ throw new Error(`${name} must be a positive signed 64-bit decimal string.`);
2306
+ }
2307
+ return value;
2308
+ }
2309
+ function projectInput2(ctx) {
2310
+ const id = ctx.num("project-id");
2311
+ if (!Number.isInteger(id) || id < 1 || id > 2147483647) {
2312
+ throw new Error("--project-id must be a positive 32-bit integer.");
2313
+ }
2314
+ return { project_id: id };
2315
+ }
2316
+ function batchInput(ctx) {
2317
+ return { ...projectInput2(ctx), batch_id: decimalId(ctx.str("batch-id"), "--batch-id") };
2318
+ }
2319
+ function object(value, name) {
2320
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
2321
+ throw new Error(`${name} must be a JSON object.`);
2322
+ }
2323
+ return value;
2324
+ }
2325
+ function array(value, name) {
2326
+ if (!Array.isArray(value) || value.length < 1 || value.length > 5e3) {
2327
+ throw new Error(`${name} must contain 1 to 5000 items.`);
2328
+ }
2329
+ return value;
2330
+ }
2331
+ function fields(value, allowed, name) {
2332
+ const unknown = Object.keys(value).filter((key) => !allowed.includes(key));
2333
+ if (unknown.length) throw new Error(`${name} has unsupported fields: ${unknown.join(", ")}.`);
2334
+ }
2335
+ function unique(values, name) {
2336
+ if (new Set(values).size !== values.length) throw new Error(`${name} must be unique.`);
2337
+ }
2338
+
2339
+ // src/commands/te-analysis/meta/agent-review/submit-to-page.ts
2340
+ import { readFileSync } from "fs";
2341
+ var supportedTargetTypes = /* @__PURE__ */ new Set([
2342
+ "dashboard",
2343
+ "report",
2344
+ "event",
2345
+ "event_prop",
2346
+ "user_prop",
2347
+ "user_tag",
2348
+ "user_cluster",
2349
+ "metric"
2350
+ ]);
2351
+ var SUBMIT_TO_PAGE_HELP = [
2352
+ "Customer/Agent review-page draft contract:",
2353
+ "- Normal flow: governance-recommendation export -> Agent builds ai_summary/presentation_snapshot/item reasons -> submit-to-page --input-file -> review page batch and site notification.",
2354
+ "- This command creates an asset certification review draft for humans. It never approves, certifies, retries, or creates metrics.",
2355
+ "- Use --input-file for real drafts. The file is JSON; --project-id and --client-request-id come from CLI flags so replays keep one stable operation key.",
2356
+ "- Build the file from review_material_package, preserving candidate assets, heat evidence, source_link/evidence_links, relations, report/AI-model definitions, target_revision, and hashes.",
2357
+ "- For dashboard items, preserve optional space_id/space_name from the material package into evidence_snapshot.definition.config when present. Not every dashboard has a space; do not invent or require one.",
2358
+ "- For recurring recommendation jobs, build the draft from the latest sufficient export: start at top-20 hot dashboards, expand to top-50/top-100 only when filtering leaves too few pending review assets or visible business domains, and record the final scope in batch ai_summary.",
2359
+ "- Expansion is for coverage, not unlimited workload. Target about 20-50 pending assets per daily batch, cap around 80, and balance roughly 3-6 visible domains with per-domain quotas before adding context.",
2360
+ "- If more pending candidates exist, submit the ranked slice and record overflow counts/domains in batch ai_summary for later batches.",
2361
+ "- presentation_snapshot should display only business-domain topics that contain pending review assets. Authenticated/completed assets may appear as context under those topics, but must not create standalone zero-pending topics.",
2362
+ "- Do not author long page-visible AI summaries for hidden topics or pure authenticated context. Copy evidence, links, signals, and relations for context; spend Agent interpretation on visible domains and pending review assets.",
2363
+ "- Scripts may assemble transport JSON and copy evidence, but page-visible ai_summary and analysis_explanation text must be Agent-written interpretation from verified evidence, not generated boilerplate.",
2364
+ "- Follow agent_review_preflight.md: independent Agent review, at most 3 corrections, then submit with unresolved-quality warnings only when already authorized. LOCAL_ONLY never submits. Business meaning and visible-text quality are Agent review responsibilities; this command enforces only transport structure and evidence references.",
2365
+ "- Follow agent_review_priorities_comparisons.md: item ai_summary includes recommendation.priority/priority_reason/evidence_refs, classified comparisons with both-side evidence, and comparison_review coverage. LOW is review urgency, not a defer decision; only POSSIBLE_CONFLICT merits a conflict badge. These assessments share the same 3-correction budget.",
2366
+ "- presentation_snapshot.topics is one or more business-domain topics. Each topic must use groups[].items; do not use top-level topics[].items or raw Common work_units as the page grouping.",
2367
+ "- relations should let the page render dashboard -> report -> metadata with contains/uses edges. Use an empty relations array only when the package truly has no known parent-child evidence.",
2368
+ "- Each submitted item must keep source_link or evidence_links[].url so reviewers can jump to source evidence.",
2369
+ "- item.ai_summary.summary is the per-item recommendation reason. It must cite concrete item evidence, not generic review boilerplate. batch ai_summary.summary is only the batch overview.",
2370
+ "- For reports and SQL reports, item.ai_summary.analysis_explanation must explain reviewer-readable calculations or measures from packaged evidence_snapshot.analysis. A purpose-only summary is incomplete and is rejected locally before dispatch.",
2371
+ "- Reviewer-visible text should follow the project-KB source style: one business Chinese Agent summary that explains purpose, calculation caliber, filters, time scope, boundaries, and concrete reviewer questions. Keep raw SQL, parser labels, temporary aliases, parameter placeholders, hashes, and evidence paths in evidence_snapshot only; independent Agent preflight flags visible implementation terms as quality findings.",
2372
+ "- The command output includes review_page_url when review_url is present. Return review_page_url to the user; do not prepend the Common/API host to review_url yourself.",
2373
+ "",
2374
+ "Input-file JSON shape:",
2375
+ "{",
2376
+ ' "review_type": "ASSET_GOVERNANCE",',
2377
+ ' "schema_version": "1.0",',
2378
+ ' "title": "<review batch title>",',
2379
+ ' "source_run_id": "<export.run_id>",',
2380
+ ' "source_task_id": "<optional preauthorized task id>",',
2381
+ ' "ai_summary": { "summary": "<batch overview>" },',
2382
+ ' "presentation_snapshot": {',
2383
+ ' "project": { "id": 1, "name": "<project name>" },',
2384
+ ' "evidenceDate": "YYYY-MM-DD",',
2385
+ ' "topics": [{',
2386
+ ' "id": "<business-domain-id>",',
2387
+ ' "name": "<business-domain-name>",',
2388
+ ' "groups": [{',
2389
+ ' "id": "<second-level-group-id>",',
2390
+ ' "name": "<second-level group or source dashboard>",',
2391
+ ' "items": [{ "id": "<client_item_id>" }]',
2392
+ " }]",
2393
+ " }],",
2394
+ ' "relations": [{ "parent": "<dashboard item id>", "child": "<report item id>", "type": "contains" }, { "parent": "<report item id>", "child": "<metadata item id>", "type": "uses" }],',
2395
+ ' "analysisByItem": {}',
2396
+ " },",
2397
+ ' "items": [{',
2398
+ ' "client_item_id": "<stable item id used by presentation_snapshot>",',
2399
+ ' "target_ref": { "type": "dashboard|report|event|event_prop|user_prop|user_tag|user_cluster|metric", "key": "<lossless target key>" },',
2400
+ ' "action_type": "CERTIFY",',
2401
+ ' "proposal_payload": { "authentication_status": 1 },',
2402
+ ' "source_link": "<copied source URL>",',
2403
+ ' "evidence_links": [{ "label": "<source label>", "url": "<copied evidence URL>" }],',
2404
+ ' "evidence_snapshot": { "analysis": "<Common packaged evidence when available>", "target_revision": "<definition version/hash>" },',
2405
+ ' "ai_summary": {',
2406
+ ' "summary": "<item reason with evidence basis and risks>",',
2407
+ ' "analysis_explanation": {',
2408
+ ' "business_purpose": "<what the reviewer uses this asset for>",',
2409
+ ' "measures": [{ "statement": "<measure explanation>", "evidence_refs": ["evidence_snapshot.analysis..."], "inferred": false }],',
2410
+ ' "calculations": [{ "statement": "<formula or aggregation explanation>", "evidence_refs": ["evidence_snapshot.analysis..."], "inferred": false }],',
2411
+ ' "filters": [], "time_scope": [], "dimensions": [], "query_columns": [],',
2412
+ ' "limitations": [], "open_questions": []',
2413
+ " }",
2414
+ " }",
2415
+ " }]",
2416
+ "}"
2417
+ ].join("\n");
2418
+ var agentReviewSubmitToPage = createAnalysisMetaCapabilityCommand({
2419
+ resource: "agent-review",
2420
+ command: "submit-to-page",
2421
+ capabilityId: "metadata.agent_review.create",
2422
+ description: "Submit evidence-backed asset proposals to a review page without approving or certifying assets.",
2423
+ helpText: SUBMIT_TO_PAGE_HELP,
2424
+ risk: "write",
2425
+ flags: [
2426
+ projectFlag,
2427
+ clientRequestFlag,
2428
+ { name: "input-file", type: "string", required: false, sensitive: true, desc: "Local JSON draft generated from review_material_package; includes ai_summary, presentation_snapshot.topics[].groups, copied evidence/source links, and items." },
2429
+ { name: "title", type: "string", required: false, desc: "Review batch title." },
2430
+ { name: "source-run-id", type: "string", required: false, desc: "Evidence run that produced this proposal." },
2431
+ { name: "source-task-id", type: "string", desc: "Optional preauthorized task ID." },
2432
+ { name: "ai-summary", type: "json", required: false, desc: "Evidence-backed batch summary object." },
2433
+ { name: "presentation-snapshot", type: "json", required: false, desc: "Review page packet with business-domain topics, groups[].items, relations, stable client_item_id references, and real evidence links." },
2434
+ { name: "items", type: "json", required: false, desc: "1 to 5000 CERTIFY proposals with client_item_id, target_ref, source/evidence links, proposal_payload, item ai_summary/reasons, and evidence_snapshot." }
2435
+ ],
2436
+ buildInput: (ctx) => {
2437
+ const publicWebHost = resolvePublicWebHost(ctx.host());
2438
+ const file = ctx.str("input-file");
2439
+ if (file) {
2440
+ const input = object(JSON.parse(readFileSync(file, "utf8")), "--input-file");
2441
+ return normalizeSubmitInput(validateInput({
2442
+ ...input,
2443
+ ...projectInput2(ctx),
2444
+ client_request_id: text(ctx, "client-request-id")
2445
+ }), publicWebHost, ctx.host());
2446
+ }
2447
+ const title = text(ctx, "title");
2448
+ const sourceRunId = text(ctx, "source-run-id");
2449
+ if (!title || !sourceRunId || !ctx.str("ai-summary") || !ctx.str("presentation-snapshot") || !ctx.str("items")) {
2450
+ throw new Error("Pass --input-file, or pass --title, --source-run-id, --ai-summary, --presentation-snapshot, and --items together.");
2451
+ }
2452
+ return normalizeSubmitInput(validateInput({
2453
+ ...projectInput2(ctx),
2454
+ review_type: "ASSET_GOVERNANCE",
2455
+ schema_version: "1.0",
2456
+ client_request_id: text(ctx, "client-request-id"),
2457
+ title,
2458
+ source_run_id: sourceRunId,
2459
+ ...ctx.str("source-task-id") ? { source_task_id: text(ctx, "source-task-id") } : {},
2460
+ ai_summary: object(ctx.json("ai-summary"), "--ai-summary"),
2461
+ presentation_snapshot: object(ctx.json("presentation-snapshot"), "--presentation-snapshot"),
2462
+ items: ctx.json("items")
2463
+ }), publicWebHost, ctx.host());
2464
+ },
2465
+ postProcess: (result, _input, ctx) => normalizeSubmitResult(result, resolvePublicWebHost(ctx.host()), ctx.host())
2466
+ });
2467
+ function validateInput(input) {
2468
+ const items = array(input.items, "items").map((value) => {
2469
+ const item = object(value, "items[]");
2470
+ fields(item, [
2471
+ "client_item_id",
2472
+ "target_ref",
2473
+ "action_type",
2474
+ "proposal_payload",
2475
+ "ai_summary",
2476
+ "evidence_snapshot",
2477
+ "source_link",
2478
+ "evidence_links"
2479
+ ], "items[]");
2480
+ if (typeof item.client_item_id !== "string" || !item.client_item_id.trim()) {
2481
+ throw new Error("items[].client_item_id must be a nonempty string.");
2482
+ }
2483
+ const target = object(item.target_ref, "items[].target_ref");
2484
+ const targetType = typeof target.type === "string" ? target.type.trim() : "";
2485
+ const targetKey = typeof target.key === "string" ? target.key.trim() : "";
2486
+ if (!targetType || !targetKey) {
2487
+ throw new Error("items[].target_ref requires nonempty string type and key.");
2488
+ }
2489
+ if (!supportedTargetTypes.has(targetType)) {
2490
+ throw new Error("items[].target_ref.type must be one of dashboard, report, event, event_prop, user_prop, user_tag, user_cluster, metric.");
2491
+ }
2492
+ const proposal = object(item.proposal_payload, "items[].proposal_payload");
2493
+ fields(proposal, ["authentication_status"], "items[].proposal_payload");
2494
+ if (item.action_type !== "CERTIFY" || proposal.authentication_status !== 1) {
2495
+ throw new Error("Only CERTIFY with authentication_status=1 is supported by the review page.");
2496
+ }
2497
+ const aiSummary = object(item.ai_summary, "items[].ai_summary");
2498
+ const evidenceSnapshot = object(item.evidence_snapshot, "items[].evidence_snapshot");
2499
+ validateItemAiSummary(aiSummary, `items[${String(item.client_item_id)}].ai_summary`);
2500
+ if (targetType === "report") {
2501
+ validateReportAnalysis(aiSummary, evidenceSnapshot, `items[${String(item.client_item_id)}]`);
2502
+ }
2503
+ validateEvidenceLinks(item);
2504
+ return item;
2505
+ });
2506
+ unique(items.map((item) => item.client_item_id), "client_item_id");
2507
+ fields(input, [
2508
+ "project_id",
2509
+ "review_type",
2510
+ "schema_version",
2511
+ "client_request_id",
2512
+ "title",
2513
+ "source_run_id",
2514
+ "source_task_id",
2515
+ "ai_summary",
2516
+ "presentation_snapshot",
2517
+ "items"
2518
+ ], "submit-to-page input");
2519
+ object(input.ai_summary, "ai_summary");
2520
+ validatePresentation(object(input.presentation_snapshot, "presentation_snapshot"), new Set(items.map((item) => item.client_item_id)));
2521
+ if (input.review_type !== "ASSET_GOVERNANCE" || input.schema_version !== "1.0") {
2522
+ throw new Error("submit-to-page input requires review_type=ASSET_GOVERNANCE and schema_version=1.0.");
2523
+ }
2524
+ return { ...input, items };
2525
+ }
2526
+ function validateItemAiSummary(aiSummary, name) {
2527
+ if (!meaningfulText(aiSummary.summary)) {
2528
+ throw new Error(`${name}.summary must be a nonempty string.`);
2529
+ }
2530
+ }
2531
+ function validateReportAnalysis(aiSummary, evidenceSnapshot, name) {
2532
+ const analysis = object(evidenceSnapshot.analysis, `${name}.evidence_snapshot.analysis`);
2533
+ if (!meaningfulText(evidenceSnapshot.target_revision)) {
2534
+ throw new Error(`${name}.evidence_snapshot.target_revision is required for report drafts.`);
2535
+ }
2536
+ const explanation = object(aiSummary.analysis_explanation, `${name}.ai_summary.analysis_explanation`);
2537
+ const evidenceRefs = [
2538
+ ...explanationRows(explanation.measures, `${name}.ai_summary.analysis_explanation.measures`),
2539
+ ...explanationRows(explanation.calculations, `${name}.ai_summary.analysis_explanation.calculations`)
2540
+ ].filter((row) => meaningfulText(row.statement)).flatMap((row) => evidenceRefList(row.evidence_refs));
2541
+ if (!evidenceRefs.some((ref) => resolvesAnalysisPath(analysis, ref))) {
2542
+ throw new Error(`${name} report analysis_explanation requires calculations or measures with resolvable evidence_snapshot.analysis refs.`);
2543
+ }
2544
+ }
2545
+ function explanationRows(value, name) {
2546
+ if (value === void 0) return [];
2547
+ if (!Array.isArray(value)) throw new Error(`${name} must be an array.`);
2548
+ return value.map((entry) => object(entry, `${name}[]`));
2549
+ }
2550
+ function evidenceRefList(value) {
2551
+ if (!Array.isArray(value)) return [];
2552
+ return value.filter((entry) => typeof entry === "string" && entry.trim().length > 0);
2553
+ }
2554
+ function meaningfulText(value) {
2555
+ return typeof value === "string" ? value.trim() : "";
2556
+ }
2557
+ function resolvesAnalysisPath(analysis, path) {
2558
+ const prefix = "evidence_snapshot.analysis";
2559
+ if (path === prefix) return true;
2560
+ if (!path.startsWith(`${prefix}.`) && !path.startsWith(`${prefix}[`)) return false;
2561
+ const suffix = path.slice(prefix.length);
2562
+ const matcher = /(?:\.([A-Za-z0-9_$-]+)|\[(\d+)\])/g;
2563
+ let index = 0;
2564
+ let current = analysis;
2565
+ for (let match = matcher.exec(suffix); match; match = matcher.exec(suffix)) {
2566
+ if (match.index !== index) return false;
2567
+ index += match[0].length;
2568
+ const [, key, arrayIndex] = match;
2569
+ if (arrayIndex !== void 0) {
2570
+ if (!Array.isArray(current)) return false;
2571
+ current = current[Number(arrayIndex)];
2572
+ } else {
2573
+ if (current === null || typeof current !== "object" || Array.isArray(current)) return false;
2574
+ current = current[key];
2575
+ }
2576
+ if (current === void 0) return false;
2577
+ }
2578
+ return index === suffix.length;
2579
+ }
2580
+ function validateEvidenceLinks(item) {
2581
+ const sourceLink = typeof item.source_link === "string" && item.source_link.trim();
2582
+ let evidenceLink = false;
2583
+ if ("evidence_links" in item) {
2584
+ evidenceLink = array(item.evidence_links, "items[].evidence_links").some((value) => {
2585
+ const link = object(value, "items[].evidence_links[]");
2586
+ return typeof link.url === "string" && !!link.url.trim();
2587
+ });
2588
+ }
2589
+ if (!sourceLink && !evidenceLink) {
2590
+ throw new Error("items[] must include source_link or evidence_links[].url so reviewers can open source evidence.");
2591
+ }
2592
+ }
2593
+ function validatePresentation(presentation, itemIds) {
2594
+ const displayed = /* @__PURE__ */ new Set();
2595
+ for (const topicValue of array(presentation.topics, "presentation_snapshot.topics")) {
2596
+ const topic = object(topicValue, "presentation_snapshot.topics[]");
2597
+ if ("items" in topic) {
2598
+ throw new Error("presentation_snapshot.topics[] must use groups[].items, not top-level items.");
2599
+ }
2600
+ for (const groupValue of array(topic.groups, "presentation_snapshot.topics[].groups")) {
2601
+ const group = object(groupValue, "presentation_snapshot.topics[].groups[]");
2602
+ if (typeof group.id !== "string" || !group.id.trim() || typeof group.name !== "string" || !group.name.trim()) {
2603
+ throw new Error("presentation_snapshot.topics[].groups[] requires nonempty string id and name.");
2604
+ }
2605
+ for (const itemValue of array(group.items, "presentation_snapshot.topics[].groups[].items")) {
2606
+ const item = object(itemValue, "presentation_snapshot.topics[].groups[].items[]");
2607
+ if (typeof item.id !== "string" || !item.id.trim()) {
2608
+ throw new Error("presentation_snapshot display items require nonempty string id.");
2609
+ }
2610
+ if (!itemIds.has(item.id)) {
2611
+ throw new Error("presentation_snapshot references an unknown client_item_id.");
2612
+ }
2613
+ displayed.add(item.id);
2614
+ }
2615
+ }
2616
+ }
2617
+ for (const id of itemIds) {
2618
+ if (!displayed.has(String(id))) {
2619
+ throw new Error("presentation_snapshot must display every submitted item under topics[].groups[].items.");
2620
+ }
2621
+ }
2622
+ }
2623
+ function normalizeSubmitInput(input, publicWebHost, sourceHost) {
2624
+ normalizeResourceUrlFields(input, publicWebHost, sourceHost);
2625
+ return input;
2626
+ }
2627
+ function normalizeSubmitResult(result, publicWebHost, sourceHost) {
2628
+ normalizeResourceUrlFields(result, publicWebHost, sourceHost);
2629
+ if (result && typeof result === "object" && !Array.isArray(result)) {
2630
+ const data = result;
2631
+ if (typeof data.review_url === "string" && data.review_url.trim()) {
2632
+ data.review_page_url = normalizeResourceUrls(data.review_url, publicWebHost, sourceHost);
2633
+ }
2634
+ }
2635
+ return result;
2636
+ }
2637
+
2638
+ // src/commands/te-analysis/meta/agent-review/review.ts
2639
+ var agentReviewReview = createAnalysisMetaCapabilityCommand({
2640
+ resource: "agent-review",
2641
+ command: "review",
2642
+ capabilityId: "metadata.agent_review.review",
2643
+ description: "Record explicit human decisions and execute approved certification proposals.",
2644
+ risk: "write",
2645
+ flags: [
2646
+ projectFlag,
2647
+ batchFlag,
2648
+ clientRequestFlag,
2649
+ { name: "decisions", type: "json", required: true, desc: "Versioned decisions: item_id (string), version (integer), decision APPROVE/DEFER/REJECT, reason (required for DEFER/REJECT)." }
2650
+ ],
2651
+ buildInput: (ctx) => {
2652
+ const decisions = array(ctx.json("decisions"), "--decisions").map((value) => {
2653
+ const decision = object(value, "decisions[]");
2654
+ fields(decision, ["item_id", "version", "decision", "reason"], "decisions[]");
2655
+ decimalId(decision.item_id, "decisions[].item_id");
2656
+ if (!Number.isSafeInteger(decision.version) || Number(decision.version) < 0) {
2657
+ throw new Error("decisions[].version must be a nonnegative safe integer from detail.");
2658
+ }
2659
+ if (!["APPROVE", "DEFER", "REJECT"].includes(String(decision.decision))) {
2660
+ throw new Error("decisions[].decision must be APPROVE, DEFER, or REJECT.");
2661
+ }
2662
+ if (decision.reason !== void 0 && typeof decision.reason !== "string") {
2663
+ throw new Error("decisions[].reason must be a string.");
2664
+ }
2665
+ if (decision.decision !== "APPROVE" && !String(decision.reason ?? "").trim()) {
2666
+ throw new Error("DEFER and REJECT require a nonempty reason.");
2667
+ }
2668
+ return decision;
2669
+ });
2670
+ unique(decisions.map((decision) => decision.item_id), "decisions[].item_id");
2671
+ return { ...batchInput(ctx), client_request_id: text(ctx, "client-request-id"), decisions };
2672
+ }
2673
+ });
2674
+
2675
+ // src/commands/te-analysis/meta/agent-review/retry.ts
2676
+ var agentReviewRetry = createAnalysisMetaCapabilityCommand({
2677
+ resource: "agent-review",
2678
+ command: "retry",
2679
+ capabilityId: "metadata.agent_review.retry",
2680
+ description: "Retry selected failed executions under their existing approvals.",
2681
+ risk: "write",
2682
+ flags: [
2683
+ projectFlag,
2684
+ batchFlag,
2685
+ clientRequestFlag,
2686
+ { name: "item-ids", type: "json", required: true, desc: "1 to 5000 failed item IDs as decimal strings. Successful items must not be retried." }
2687
+ ],
2688
+ buildInput: (ctx) => {
2689
+ const ids = array(ctx.json("item-ids"), "--item-ids").map((id) => decimalId(id, "item_ids[]"));
2690
+ unique(ids, "item_ids");
2691
+ return { ...batchInput(ctx), client_request_id: text(ctx, "client-request-id"), item_ids: ids };
2692
+ }
2693
+ });
2694
+
2695
+ // src/commands/te-analysis/meta/agent-review/evidence.ts
2696
+ var agentReviewEvidence = createAnalysisMetaCapabilityCommand({
2697
+ resource: "agent-review",
2698
+ command: "evidence",
2699
+ capabilityId: "metadata.agent_review.evidence",
2700
+ description: "Read current server-generated asset review evidence before drafting a proposal. Does not submit or certify.",
2701
+ risk: "read",
2702
+ flags: [
2703
+ projectFlag,
2704
+ { name: "target-type", type: "string", required: true, desc: "Resolved asset type supported by Common, for example report or dashboard." },
2705
+ { name: "target-key", type: "string", required: true, desc: "Exact resolved asset key as a string; preserve all ID digits and technical names." }
2706
+ ],
2707
+ buildInput: (ctx) => ({
2708
+ ...projectInput2(ctx),
2709
+ review_type: "ASSET_GOVERNANCE",
2710
+ target_ref: { type: text(ctx, "target-type"), key: text(ctx, "target-key") },
2711
+ action_type: "CERTIFY",
2712
+ proposal_payload: { authentication_status: 1 }
2713
+ })
2714
+ });
2715
+
2716
+ // src/commands/te-analysis/meta/agent-review/index.ts
2717
+ var agentReviewList = createAnalysisMetaCapabilityCommand({
2718
+ resource: "agent-review",
2719
+ command: "list",
2720
+ capabilityId: "metadata.agent_review.list",
2721
+ description: "List recent visible review batches and their current status.",
2722
+ risk: "read",
2723
+ flags: [projectFlag, { name: "limit", type: "number", min: 1, max: 500, default: 20, desc: "Maximum recent batches, from 1 to 500. Default: 20." }],
2724
+ buildInput: (ctx) => {
2725
+ const limit = ctx.str("limit") === "" ? 20 : ctx.num("limit");
2726
+ if (!Number.isInteger(limit) || limit < 1 || limit > 500) throw new Error("--limit must be an integer from 1 to 500.");
2727
+ return { ...projectInput2(ctx), limit };
2728
+ }
2729
+ });
2730
+ var agentReviewDetail = createAnalysisMetaCapabilityCommand({
2731
+ resource: "agent-review",
2732
+ command: "detail",
2733
+ capabilityId: "metadata.agent_review.detail",
2734
+ description: "Read review snapshots, item versions, decisions, and execution status.",
2735
+ risk: "read",
2736
+ flags: [projectFlag, batchFlag],
2737
+ buildInput: batchInput
2738
+ });
2739
+ var agentReviewRecords = createAnalysisMetaCapabilityCommand({
2740
+ resource: "agent-review",
2741
+ command: "records",
2742
+ capabilityId: "metadata.agent_review.records",
2743
+ description: "Read immutable review and execution events for a batch.",
2744
+ risk: "read",
2745
+ flags: [projectFlag, batchFlag],
2746
+ buildInput: batchInput
2747
+ });
2748
+ var agent_review_default = [agentReviewSubmitToPage, agentReviewList, agentReviewDetail, agentReviewRecords, agentReviewReview, agentReviewRetry, agentReviewEvidence];
2749
+
2750
+ // src/commands/te-analysis/meta/index.ts
2751
+ var commands12 = [
2099
2752
  ...event_default,
2100
2753
  ...property_default,
2101
2754
  ...virtual_event_default,
@@ -2105,9 +2758,11 @@ var commands11 = [
2105
2758
  ...exchange_default,
2106
2759
  ...super_metadata_default,
2107
2760
  ...datatable_default,
2108
- ...catalog_default
2761
+ ...catalog_default,
2762
+ ...governance_recommendation_default,
2763
+ ...agent_review_default
2109
2764
  ];
2110
- var meta_default = commands11;
2765
+ var meta_default = commands12;
2111
2766
 
2112
2767
  // src/commands/te-analysis/meta/asset/usage-list.ts
2113
2768
  var analysisMetaAssetUsageList = createAnalysisGovernanceCapabilityCommand({
@@ -2159,9 +2814,9 @@ var analysisMetaAssetImpactList = createAnalysisGovernanceCapabilityCommand({
2159
2814
  command: "list",
2160
2815
  capabilityId: "governance.asset_impact.list",
2161
2816
  description: "List downstream impacts for one asset.",
2162
- flags: [projectIdFlag, nodeIdFlag, queryFlag, searchsFlag, ruleFlag, directoryLimitFlag, directoryOffsetFlag, payloadFlag],
2817
+ flags: [projectIdFlag, nodeIdFlag, directoryLimitFlag, directoryOffsetFlag, payloadFlag],
2163
2818
  risk: "read",
2164
- buildInput: (ctx) => assetGovernanceInput(ctx, ["node_id", "query", "searchs", "rule", "limit", "offset"])
2819
+ buildInput: (ctx) => assetGovernanceInput(ctx, ["node_id", "limit", "offset"])
2165
2820
  });
2166
2821
 
2167
2822
  // src/commands/te-analysis/meta/asset/query-history-list.ts
@@ -2170,9 +2825,9 @@ var analysisMetaAssetQueryHistoryList = createAnalysisGovernanceCapabilityComman
2170
2825
  command: "list",
2171
2826
  capabilityId: "governance.asset_query_history.list",
2172
2827
  description: "List query history for one asset.",
2173
- flags: [projectIdFlag, nodeIdFlag, queryFlag, searchsFlag, ruleFlag, directoryLimitFlag, directoryOffsetFlag, payloadFlag],
2828
+ flags: [projectIdFlag, nodeIdFlag, directoryLimitFlag, directoryOffsetFlag, payloadFlag],
2174
2829
  risk: "read",
2175
- buildInput: (ctx) => assetGovernanceInput(ctx, ["node_id", "query", "searchs", "rule", "limit", "offset"])
2830
+ buildInput: (ctx) => assetGovernanceInput(ctx, ["node_id", "limit", "offset"])
2176
2831
  });
2177
2832
 
2178
2833
  // src/commands/te-analysis/meta/asset/rule-schema.ts
@@ -2236,9 +2891,9 @@ var analysisMetaAssetBatchInfoExport = createAnalysisGovernanceCapabilityCommand
2236
2891
  command: "batch-info-export",
2237
2892
  capabilityId: "governance.asset.batch_export_info",
2238
2893
  description: "Batch export asset information.",
2239
- flags: [projectIdFlag, nodeIdsFlag, reportsVersionFlag, zoneOffsetFlag, scheduleUiConfigFlag, dashboardStatusFlag, refreshTypeFlag, cacheConfigFlag, clearHistoryTagFlag, payloadFlag],
2894
+ flags: [projectIdFlag, nodeIdsFlag, payloadFlag],
2240
2895
  risk: "read",
2241
- buildInput: (ctx) => assetGovernanceInput(ctx, ["node_ids", "reports_version", "zone_offset", "schedule_ui_config", "dashboard_status", "refresh_type", "cache_config", "clear_history_tag"])
2896
+ buildInput: (ctx) => assetGovernanceInput(ctx, ["node_ids"])
2242
2897
  });
2243
2898
 
2244
2899
  // src/commands/te-analysis/meta/asset/batch-sql-export.ts
@@ -2247,9 +2902,9 @@ var analysisMetaAssetBatchSqlExport = createAnalysisGovernanceCapabilityCommand(
2247
2902
  command: "batch-sql-export",
2248
2903
  capabilityId: "governance.asset.batch_export_sql",
2249
2904
  description: "Batch export asset SQL definitions.",
2250
- flags: [projectIdFlag, nodeIdsFlag, reportsVersionFlag, zoneOffsetFlag, scheduleUiConfigFlag, dashboardStatusFlag, refreshTypeFlag, cacheConfigFlag, clearHistoryTagFlag, payloadFlag],
2905
+ flags: [projectIdFlag, nodeIdsFlag, payloadFlag],
2251
2906
  risk: "read",
2252
- buildInput: (ctx) => assetGovernanceInput(ctx, ["node_ids", "reports_version", "zone_offset", "schedule_ui_config", "dashboard_status", "refresh_type", "cache_config", "clear_history_tag"])
2907
+ buildInput: (ctx) => assetGovernanceInput(ctx, ["node_ids"])
2253
2908
  });
2254
2909
 
2255
2910
  // src/commands/te-analysis/meta/asset/batch-delete.ts
@@ -2291,9 +2946,9 @@ var analysisMetaAssetBatchDashboardScheduleFreeze = createAnalysisGovernanceCapa
2291
2946
  command: "batch-dashboard-schedule-freeze",
2292
2947
  capabilityId: "governance.asset.batch_dashboard_schedule_freeze",
2293
2948
  description: "Batch freeze dashboard schedules for governed assets.",
2294
- flags: [projectIdFlag, nodeIdsFlag, reportsVersionFlag, zoneOffsetFlag, scheduleUiConfigFlag, dashboardStatusFlag, refreshTypeFlag, cacheConfigFlag, payloadFlag],
2949
+ flags: [projectIdFlag, nodeIdsFlag, scheduleUiConfigFlag, dashboardStatusFlag, refreshTypeFlag, cacheConfigFlag, payloadFlag],
2295
2950
  risk: "write",
2296
- buildInput: (ctx) => assetGovernanceInput(ctx, ["node_ids", "reports_version", "zone_offset", "schedule_ui_config", "dashboard_status", "refresh_type", "cache_config"])
2951
+ buildInput: (ctx) => assetGovernanceInput(ctx, ["node_ids", "schedule_ui_config", "dashboard_status", "refresh_type", "cache_config"])
2297
2952
  });
2298
2953
 
2299
2954
  // src/commands/te-analysis/meta/asset/batch-handover.ts
@@ -2331,7 +2986,7 @@ var analysisMetaAssetOperationRecordExport = createAnalysisGovernanceCapabilityC
2331
2986
 
2332
2987
  // src/commands/te-analysis/governance/asset-authentication-shared.ts
2333
2988
  import { createHash as createHash3, randomBytes as randomBytes3 } from "crypto";
2334
- import { readFileSync, statSync } from "fs";
2989
+ import { readFileSync as readFileSync2, statSync } from "fs";
2335
2990
  import { mkdir as mkdir3, open as open3, rm as rm3 } from "fs/promises";
2336
2991
  import { dirname as dirname3, extname as extname3, resolve as resolve3 } from "path";
2337
2992
  var ASSET_TYPES = /* @__PURE__ */ new Set([
@@ -2356,7 +3011,7 @@ var OUTPUT_FIELDS = /* @__PURE__ */ new Set([
2356
3011
  "user_count90d",
2357
3012
  "impact_degree"
2358
3013
  ]);
2359
- var assetTypesFlag = {
3014
+ var assetTypesFlag2 = {
2360
3015
  name: "asset-types",
2361
3016
  type: "json",
2362
3017
  required: false,
@@ -2417,7 +3072,7 @@ var authenticationExportOutputFlag = {
2417
3072
  desc: "Local .jsonl output path. Integrity metadata is written to <output>.meta.json."
2418
3073
  };
2419
3074
  var authenticationFilterFlags = [
2420
- assetTypesFlag,
3075
+ assetTypesFlag2,
2421
3076
  authenticationStatusFilterFlag,
2422
3077
  governanceQueriesFlag,
2423
3078
  heatCountGtFlag,
@@ -2539,7 +3194,7 @@ function assetRefsInput(ctx) {
2539
3194
  if (!statSync(path, { throwIfNoEntry: false })?.isFile()) {
2540
3195
  throw new CliValidationError(`--asset-file must be a regular file: ${path}`);
2541
3196
  }
2542
- values = readFileSync(path, "utf8").split(/\r?\n/).filter(Boolean).map((line, index) => {
3197
+ values = readFileSync2(path, "utf8").split(/\r?\n/).filter(Boolean).map((line, index) => {
2543
3198
  try {
2544
3199
  return JSON.parse(line);
2545
3200
  } catch {
@@ -2672,7 +3327,7 @@ var analysisGovernanceAssetAuthenticationUpdate = createAnalysisGovernanceCapabi
2672
3327
  });
2673
3328
 
2674
3329
  // src/commands/te-analysis/governance/index.ts
2675
- var commands12 = [
3330
+ var commands13 = [
2676
3331
  analysisGovernanceAssetAuthenticationList,
2677
3332
  analysisGovernanceAssetAuthenticationExport,
2678
3333
  analysisGovernanceAssetAuthenticationUpdate,
@@ -2697,7 +3352,7 @@ var commands12 = [
2697
3352
  analysisMetaAssetOperationRecordList,
2698
3353
  analysisMetaAssetOperationRecordExport
2699
3354
  ];
2700
- var governance_default = commands12;
3355
+ var governance_default = commands13;
2701
3356
 
2702
3357
  // src/commands/te-analysis/report/list.ts
2703
3358
  var reportList = createAnalysisCapabilityCommand({
@@ -2783,7 +3438,7 @@ var REPORT_WRITE_MODEL_TYPE_VALUES = [
2783
3438
  "tag"
2784
3439
  ];
2785
3440
  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.`;
2786
- var AI_DEFINITION_DESCRIPTION = 'Event metrics: omit optional display_name unless the target command schema explicitly supports it. Funnel step filters use event_property_name (not field) and string-array values, including "true"/"false" for boolean properties. AI-facing model definition JSON. Do not pass raw QP, events, event_view, visual_view, or analysis_query. Distribution filters must be attached to the corresponding distribution_metrics[].filters; do not use top-level filters or relation. 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. A part_date parameter may set boolean use_timezone; it defaults to false and controls whether that parameter uses the query effective timezone. Selector value must match one options[].value. Trino identifiers containing #, $, @, spaces, punctuation, or a reserved word must be delimited with double quotes, for example SELECT "#user_id", "$part_event", "end" FROM ...; single quotes are string literals. For multiline SQL JSON, the decoded sql value must contain a real line break; do not submit a literal \\n sequence outside quoted SQL text. 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.';
3441
+ var AI_DEFINITION_DESCRIPTION = 'Event metrics: omit optional display_name unless the target command schema explicitly supports it. Funnel step filters use event_property_name (not field) and string-array values, including "true"/"false" for boolean properties. For tag/cluster filters, cluster_date_policy accepts LATEST (default), AUTO (match the computed result for each analysis date), or SPECIFIED (requires specified_cluster_date in yyyy-MM-dd format). AI-facing model definition JSON. Do not pass raw QP, events, event_view, visual_view, or analysis_query. Distribution filters must be attached to the corresponding distribution_metrics[].filters; do not use top-level filters or relation. 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. A part_date parameter may set boolean use_timezone; it defaults to false and controls whether that parameter uses the query effective timezone. Selector value must match one options[].value. Trino identifiers containing #, $, @, spaces, punctuation, or a reserved word must be delimited with double quotes, for example SELECT "#user_id", "$part_event", "end" FROM ...; single quotes are string literals. For multiline SQL JSON, the decoded sql value must contain a real line break; do not submit a literal \\n sequence outside quoted SQL text. 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.';
2787
3442
  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.`;
2788
3443
  function aiModelTypeFlag(required) {
2789
3444
  return {
@@ -2849,7 +3504,7 @@ var metadataResolutionsFlag = {
2849
3504
  name: "resolutions",
2850
3505
  type: "json",
2851
3506
  required: false,
2852
- desc: "Optional user-confirmed metadata bindings keyed by compiler error path. Each value requires raw_value, resource_type, and resource_key. Reuse the unchanged definition and only pass values explicitly confirmed by the user."
3507
+ desc: "Optional user-confirmed metadata bindings keyed by compiler error path. Each value requires raw_value, resource_type, and resource_key. Keep each bound field's path and raw_value; fill the confirmed aggregation and other model parameters in the definition."
2853
3508
  };
2854
3509
  var reportMetadataResolutionsFlag = {
2855
3510
  ...metadataResolutionsFlag,
@@ -2872,6 +3527,7 @@ var reportCreate = createAnalysisCapabilityCommand({
2872
3527
  { name: "report-name", type: "string", required: true, desc: "Report display name." },
2873
3528
  reportWriteModelTypeFlag(true),
2874
3529
  reportWriteDefinitionFlag(true),
3530
+ modelDefinitionIntentSnapshotFlag,
2875
3531
  reportMetadataResolutionsFlag,
2876
3532
  { name: "report-desc", type: "string", required: false, desc: "Optional report description." },
2877
3533
  { name: "cache-seconds", type: "number", required: false, desc: "Optional cache duration in seconds." },
@@ -2880,6 +3536,7 @@ var reportCreate = createAnalysisCapabilityCommand({
2880
3536
  ],
2881
3537
  risk: "write",
2882
3538
  validate: validateReportMetadataResolutions,
3539
+ intentConsistency: { definitionFlag: "definition", modelTypeFlag: "model-type" },
2883
3540
  buildInput: (ctx) => compactInput({
2884
3541
  ...projectInput(ctx),
2885
3542
  report_name: ctx.str("report-name"),
@@ -2922,12 +3579,14 @@ var reportUpdate = createAnalysisCapabilityCommand({
2922
3579
  { name: "report-desc", type: "string", required: false, desc: "New report description." },
2923
3580
  reportWriteModelTypeFlag(false),
2924
3581
  reportWriteDefinitionFlag(false),
3582
+ modelDefinitionIntentSnapshotFlag,
2925
3583
  reportMetadataResolutionsFlag,
2926
3584
  { name: "cache-seconds", type: "number", required: false, desc: "Optional cache duration in seconds." },
2927
3585
  { name: "query-duration-ms", type: "number", required: false, desc: "Optional last query duration in milliseconds." }
2928
3586
  ],
2929
3587
  risk: "write",
2930
3588
  validate: validateReportUpdate,
3589
+ intentConsistency: { definitionFlag: "definition", modelTypeFlag: "model-type" },
2931
3590
  buildInput: (ctx) => compactInput({
2932
3591
  ...projectInput(ctx),
2933
3592
  report_id: ctx.num("report-id"),
@@ -2957,7 +3616,7 @@ var reportDelete = createAnalysisCapabilityCommand({
2957
3616
  });
2958
3617
 
2959
3618
  // src/commands/te-analysis/report/index.ts
2960
- var commands13 = [
3619
+ var commands14 = [
2961
3620
  reportList,
2962
3621
  reportListExport,
2963
3622
  reportGet,
@@ -2965,10 +3624,43 @@ var commands13 = [
2965
3624
  reportUpdate,
2966
3625
  reportDelete
2967
3626
  ];
2968
- var report_default = commands13;
3627
+ var report_default = commands14;
2969
3628
 
2970
3629
  // src/commands/te-analysis/report-data/shared.ts
2971
3630
  var reportDataZoneOffsetDescription = "Query execution timezone. Omit it to match the report UI for the current user (user selection when available, otherwise project default). Use a fixed UTC offset from -12 through 14, or 99 for local-time mode with no conversion to one fixed UTC offset; 99 is not UTC+99. This is not persisted in the report definition.";
3631
+ var sqlReportParamsDescription = "SQL reports only. First run analysis report get for every target SQL report; each name must exist in every definition.params. For a selector parameter, put the exact UI option label from definition.params[].options[].name in the override value field; never send options[].value or its SQL fragment. Other parameter types use their documented value/range fields. Do not send definition fields such as paramType, selectorItems, options, or use_timezone.";
3632
+ var SQL_SELECTOR_RUNTIME_ERROR_HINT = "If --sql-params overrides a selector, run analysis report get and copy the exact definition.params[].options[].name label into the override value field. Do not pass options[].value or its underlying SQL fragment, and do not guess or automatically rewrite an ambiguous option.";
3633
+ function enrichSqlSelectorRuntimeError(error) {
3634
+ if (!(error instanceof CapabilityGatewayError) || error.code !== "INVALID_REPORT_DEFINITION" || !/selectorName\s+invalid/i.test(error.message)) {
3635
+ return error;
3636
+ }
3637
+ const hint = error.hint ? `${error.hint} ${SQL_SELECTOR_RUNTIME_ERROR_HINT}` : SQL_SELECTOR_RUNTIME_ERROR_HINT;
3638
+ return new CapabilityGatewayError(
3639
+ error.message,
3640
+ error.code,
3641
+ error.httpStatus,
3642
+ hint,
3643
+ error.meta
3644
+ );
3645
+ }
3646
+ async function withSqlSelectorRuntimeErrorHint(operation) {
3647
+ try {
3648
+ return await operation();
3649
+ } catch (error) {
3650
+ throw enrichSqlSelectorRuntimeError(error);
3651
+ }
3652
+ }
3653
+ function withSqlSelectorRuntimeDiagnostics(command) {
3654
+ const validateInput2 = command.validateInput;
3655
+ const dryRun = command.dryRun;
3656
+ const execute = command.execute;
3657
+ return {
3658
+ ...command,
3659
+ ...validateInput2 ? { validateInput: (ctx) => withSqlSelectorRuntimeErrorHint(() => validateInput2(ctx)) } : {},
3660
+ ...dryRun ? { dryRun: (ctx) => withSqlSelectorRuntimeErrorHint(() => dryRun(ctx)) } : {},
3661
+ execute: (ctx) => withSqlSelectorRuntimeErrorHint(() => execute(ctx))
3662
+ };
3663
+ }
2972
3664
  function reportDataInput(ctx) {
2973
3665
  return compactInput({
2974
3666
  ...projectInput(ctx),
@@ -2996,7 +3688,7 @@ function reportDataExportInput(ctx) {
2996
3688
  }
2997
3689
 
2998
3690
  // src/commands/te-analysis/report-data/run.ts
2999
- var reportDataRun = createAnalysisCapabilityCommand({
3691
+ var reportDataRun = withSqlSelectorRuntimeDiagnostics(createAnalysisCapabilityCommand({
3000
3692
  resource: "report-data",
3001
3693
  command: "run",
3002
3694
  capabilityId: "analysis.report_data.run",
@@ -3007,7 +3699,7 @@ var reportDataRun = createAnalysisCapabilityCommand({
3007
3699
  requestIdFlag,
3008
3700
  { name: "filters", type: "json", required: false, desc: 'Non-SQL analysis models only. SQL-only requests reject this field; mixed batches warn for SQL report_ids that ignore it. AI-facing shape: {"relation":"and","items":[{"field":{"name":"country","type":"user_property"},"operator":"eq","values":["US"]}]}. Never pass QP taFilters.' },
3009
3701
  { name: "group-by", type: "json", required: false, desc: 'Non-SQL analysis models only. SQL-only requests reject this field; mixed batches warn. AI-facing shape: [{"field":{"name":"country","type":"user_property"}}]. Time granularity uses --time-granularity.' },
3010
- { name: "sql-params", type: "json", required: false, desc: 'SQL reports only. First run analysis report get for every target SQL report; each name must exist in every definition.params. Send value overrides only, for example [{"name":"platform","value":"ios"}] or saved part_date/time parameters with start_time/end_time. Do not send definition fields such as paramType, selectorItems, or use_timezone.' },
3702
+ { name: "sql-params", type: "json", required: false, desc: sqlReportParamsDescription },
3011
3703
  { name: "start-time", type: "string", required: false, desc: "Non-SQL analysis-model date override start, yyyy-MM-dd. SQL dates must be saved parameters overridden through --sql-params." },
3012
3704
  { name: "end-time", type: "string", required: false, desc: "Non-SQL analysis-model date override end, yyyy-MM-dd. SQL dates must be saved parameters overridden through --sql-params." },
3013
3705
  { name: "time-granularity", type: "string", required: false, desc: "Non-SQL analysis-model time granularity override. SQL accepts only --sql-params." },
@@ -3021,10 +3713,10 @@ var reportDataRun = createAnalysisCapabilityCommand({
3021
3713
  risk: "read",
3022
3714
  validate: validateClusterQueryRouting,
3023
3715
  buildInput: reportDataInput
3024
- });
3716
+ }));
3025
3717
 
3026
3718
  // src/commands/te-analysis/report-data/export.ts
3027
- var reportDataExport = createAnalysisCapabilityCommand({
3719
+ var reportDataExport = withSqlSelectorRuntimeDiagnostics(createAnalysisCapabilityCommand({
3028
3720
  resource: "report-data",
3029
3721
  command: "export",
3030
3722
  capabilityId: "analysis.report_data.export",
@@ -3036,7 +3728,7 @@ var reportDataExport = createAnalysisCapabilityCommand({
3036
3728
  requestIdFlag,
3037
3729
  { name: "filters", type: "json", required: false, desc: "Non-SQL analysis models only. SQL-only requests reject this field; mixed batches are best-effort. Use AI-facing field intent, never QP taFilters." },
3038
3730
  { name: "group-by", type: "json", required: false, desc: 'Non-SQL analysis models only. SQL-only requests reject this field. Shape: [{"field":{"name":"country","type":"user_property"}}].' },
3039
- { name: "sql-params", type: "json", required: false, desc: "SQL reports only. First run analysis report get for every target SQL report; each name must exist in every definition.params. Send value overrides only, including saved part_date/time parameters for date changes. Do not send definition fields such as paramType, selectorItems, or use_timezone." },
3731
+ { name: "sql-params", type: "json", required: false, desc: sqlReportParamsDescription },
3040
3732
  { name: "start-time", type: "string", required: false, desc: "Non-SQL analysis-model date override start, yyyy-MM-dd. SQL dates use --sql-params." },
3041
3733
  { name: "end-time", type: "string", required: false, desc: "Non-SQL analysis-model date override end, yyyy-MM-dd. SQL dates use --sql-params." },
3042
3734
  { name: "time-granularity", type: "string", required: false, desc: "Non-SQL analysis-model time granularity override. SQL accepts only --sql-params." },
@@ -3050,14 +3742,14 @@ var reportDataExport = createAnalysisCapabilityCommand({
3050
3742
  risk: "read",
3051
3743
  validate: validateClusterQueryRouting,
3052
3744
  buildInput: reportDataExportInput
3053
- });
3745
+ }));
3054
3746
 
3055
3747
  // src/commands/te-analysis/report-data/index.ts
3056
- var commands14 = [
3748
+ var commands15 = [
3057
3749
  reportDataRun,
3058
3750
  reportDataExport
3059
3751
  ];
3060
- var report_data_default = commands14;
3752
+ var report_data_default = commands15;
3061
3753
 
3062
3754
  // src/commands/te-analysis/report-change-log/list.ts
3063
3755
  var reportChangeLogList = createAnalysisCapabilityCommand({
@@ -3093,11 +3785,11 @@ var reportChangeLogGet = createAnalysisCapabilityCommand({
3093
3785
  });
3094
3786
 
3095
3787
  // src/commands/te-analysis/report-change-log/index.ts
3096
- var commands15 = [
3788
+ var commands16 = [
3097
3789
  reportChangeLogList,
3098
3790
  reportChangeLogGet
3099
3791
  ];
3100
- var report_change_log_default = commands15;
3792
+ var report_change_log_default = commands16;
3101
3793
 
3102
3794
  // src/commands/te-analysis/report-version/rollback.ts
3103
3795
  var reportVersionRollback = createAnalysisCapabilityCommand({
@@ -3119,10 +3811,10 @@ var reportVersionRollback = createAnalysisCapabilityCommand({
3119
3811
  });
3120
3812
 
3121
3813
  // src/commands/te-analysis/report-version/index.ts
3122
- var commands16 = [
3814
+ var commands17 = [
3123
3815
  reportVersionRollback
3124
3816
  ];
3125
- var report_version_default = commands16;
3817
+ var report_version_default = commands17;
3126
3818
 
3127
3819
  // src/commands/te-analysis/report-abnormal/get.ts
3128
3820
  var reportAbnormalGet = createAnalysisCapabilityCommand({
@@ -3139,10 +3831,10 @@ var reportAbnormalGet = createAnalysisCapabilityCommand({
3139
3831
  });
3140
3832
 
3141
3833
  // src/commands/te-analysis/report-abnormal/index.ts
3142
- var commands17 = [
3834
+ var commands18 = [
3143
3835
  reportAbnormalGet
3144
3836
  ];
3145
- var report_abnormal_default = commands17;
3837
+ var report_abnormal_default = commands18;
3146
3838
 
3147
3839
  // src/commands/te-analysis/dashboard/list.ts
3148
3840
  var dashboardList = createAnalysisCapabilityCommand({
@@ -3221,11 +3913,11 @@ var dashboardUpdate = createAnalysisCapabilityCommand({
3221
3913
  resource: "dashboard",
3222
3914
  command: "update",
3223
3915
  capabilityId: "analysis.dashboard.update",
3224
- description: "Update dashboard settings, create/update a dashboard note, save a dashboard-wide default filter, or replace the dashboard-level business filter. Use --operation settings, note-upsert, default-filter, or business-filter.",
3916
+ description: "Update dashboard settings, create/update a dashboard note, save a dashboard-wide or personal default filter, or replace the dashboard-level business filter. Use --operation settings, note-upsert, default-filter, personal-default-filter, or business-filter.",
3225
3917
  flags: [
3226
3918
  projectIdFlag,
3227
- { name: "operation", type: "string", required: true, desc: "Update operation: settings, note-upsert, default-filter, or business-filter." },
3228
- { name: "dashboard-id", type: "number", required: false, desc: "Dashboard ID for a single-dashboard update. Required for note-upsert." },
3919
+ { name: "operation", type: "string", required: true, desc: "Update operation: settings, note-upsert, default-filter, personal-default-filter, or business-filter." },
3920
+ { name: "dashboard-id", type: "number", required: false, desc: "Dashboard ID. Required for note-upsert, default-filter, personal-default-filter, and single-dashboard settings updates." },
3229
3921
  { name: "dashboard-ids", type: "json", required: false, desc: "Dashboard ID array for batch settings updates." },
3230
3922
  { name: "dashboard-name", type: "string", required: false, desc: "Dashboard name for single rename." },
3231
3923
  { name: "zone-offset", type: "number", required: false, desc: "Fixed dashboard time zone offset in hours. For example, UTC+8 is 8 and UTC-5 is -5. Valid range: -12 to 14." },
@@ -3235,8 +3927,8 @@ var dashboardUpdate = createAnalysisCapabilityCommand({
3235
3927
  { name: "note-title", type: "string", required: false, desc: "Dashboard note title. Defaults to empty on create; omitted values are preserved on update." },
3236
3928
  { name: "description", type: "string", required: false, desc: "Dashboard note description. Defaults to empty on create; omitted values are preserved on update." },
3237
3929
  { name: "ui-config", type: "string", required: false, desc: "Dashboard or note UI config string. Omitted note style is preserved on update." },
3238
- { name: "filter-name", type: "string", required: false, desc: "Saved filter name. Required with --operation default-filter." },
3239
- { name: "filter", type: "json", required: false, desc: 'Saved filter in snake_case QP form. Required with --operation default-filter or business-filter. Pass {"junction_kind":"and","ta_filters":[]} to clear a business filter.' },
3930
+ { name: "filter-name", type: "string", required: false, desc: "Saved filter name. Required with --operation default-filter or personal-default-filter." },
3931
+ { name: "filter", type: "json", required: false, desc: 'Saved filter in snake_case QP form: root junction_kind (and/or) and ta_filters array; SIMPLE conditions use filter_type="SIMPLE", column_name, table_type ("0" event, "1" user, "2" cluster/tag), select_type, calcu_symbol (C00 equals), and ftv. Do not use metadata table names or property_name/values. Common validates the QP format; ae-cli forwards it without local QP validation. Required with --operation default-filter, personal-default-filter, or business-filter. Pass {"junction_kind":"and","ta_filters":[]} to clear a business filter.' },
3240
3932
  payloadFlag
3241
3933
  ],
3242
3934
  risk: "write",
@@ -3400,7 +4092,7 @@ var dashboardTaskStatus = createAnalysisCapabilityCommand({
3400
4092
  });
3401
4093
 
3402
4094
  // src/commands/te-analysis/dashboard/index.ts
3403
- var commands18 = [
4095
+ var commands19 = [
3404
4096
  dashboardList,
3405
4097
  dashboardCreate,
3406
4098
  dashboardGet,
@@ -3414,7 +4106,7 @@ var commands18 = [
3414
4106
  dashboardAbnormalGet,
3415
4107
  dashboardTaskStatus
3416
4108
  ];
3417
- var dashboard_default = commands18;
4109
+ var dashboard_default = commands19;
3418
4110
 
3419
4111
  // src/commands/te-analysis/dashboard-report/add.ts
3420
4112
  var dashboardReportAdd = createAnalysisCapabilityCommand({
@@ -3436,10 +4128,10 @@ var dashboardReportAdd = createAnalysisCapabilityCommand({
3436
4128
  });
3437
4129
 
3438
4130
  // src/commands/te-analysis/dashboard-report/index.ts
3439
- var commands19 = [
4131
+ var commands20 = [
3440
4132
  dashboardReportAdd
3441
4133
  ];
3442
- var dashboard_report_default = commands19;
4134
+ var dashboard_report_default = commands20;
3443
4135
 
3444
4136
  // src/commands/te-analysis/dashboard-report-data/run.ts
3445
4137
  var dashboardReportDataRun = createAnalysisCapabilityCommand({
@@ -3495,11 +4187,11 @@ var dashboardReportDataExport = createAnalysisCapabilityCommand({
3495
4187
  });
3496
4188
 
3497
4189
  // src/commands/te-analysis/dashboard-report-data/index.ts
3498
- var commands20 = [
4190
+ var commands21 = [
3499
4191
  dashboardReportDataRun,
3500
4192
  dashboardReportDataExport
3501
4193
  ];
3502
- var dashboard_report_data_default = commands20;
4194
+ var dashboard_report_data_default = commands21;
3503
4195
 
3504
4196
  // src/commands/te-analysis/query/cancel.ts
3505
4197
  var queryCancel = createAnalysisCapabilityCommand({
@@ -3594,11 +4286,11 @@ var queryCreateResultCluster = createAnalysisCapabilityCommand({
3594
4286
  });
3595
4287
 
3596
4288
  // src/commands/te-analysis/query/index.ts
3597
- var commands21 = [
4289
+ var commands22 = [
3598
4290
  queryCancel,
3599
4291
  queryCreateResultCluster
3600
4292
  ];
3601
- var query_default = commands21;
4293
+ var query_default = commands22;
3602
4294
 
3603
4295
  // src/commands/te-analysis/query-context/get.ts
3604
4296
  var queryContextGet = createAnalysisCapabilityCommand({
@@ -3630,8 +4322,8 @@ var queryContextGet = createAnalysisCapabilityCommand({
3630
4322
  });
3631
4323
 
3632
4324
  // src/commands/te-analysis/query-context/index.ts
3633
- var commands22 = [queryContextGet];
3634
- var query_context_default = commands22;
4325
+ var commands23 = [queryContextGet];
4326
+ var query_context_default = commands23;
3635
4327
 
3636
4328
  // src/commands/te-analysis/run/inspect.ts
3637
4329
  var runInspect = {
@@ -3723,11 +4415,11 @@ function artifactIdFrom(descriptor) {
3723
4415
  }
3724
4416
 
3725
4417
  // src/commands/te-analysis/run/index.ts
3726
- var commands23 = [
4418
+ var commands24 = [
3727
4419
  runInspect,
3728
4420
  runWait
3729
4421
  ];
3730
- var run_default = commands23;
4422
+ var run_default = commands24;
3731
4423
 
3732
4424
  // src/commands/te-analysis/artifact/download.ts
3733
4425
  import { resolve as resolve4 } from "path";
@@ -3774,10 +4466,10 @@ var artifactDownload = {
3774
4466
  };
3775
4467
 
3776
4468
  // src/commands/te-analysis/artifact/index.ts
3777
- var commands24 = [
4469
+ var commands25 = [
3778
4470
  artifactDownload
3779
4471
  ];
3780
- var artifact_default = commands24;
4472
+ var artifact_default = commands25;
3781
4473
 
3782
4474
  // src/commands/te-analysis/adhoc/shared.ts
3783
4475
  var useCacheFlag2 = {
@@ -3786,7 +4478,7 @@ var useCacheFlag2 = {
3786
4478
  required: false,
3787
4479
  desc: "Whether to use query cache. Default: true."
3788
4480
  };
3789
- var zoneOffsetFlag2 = {
4481
+ var zoneOffsetFlag = {
3790
4482
  name: "zone-offset",
3791
4483
  type: "number",
3792
4484
  required: false,
@@ -3832,10 +4524,11 @@ var adhocBaseFlags = [
3832
4524
  projectIdFlag,
3833
4525
  aiModelTypeFlag(true),
3834
4526
  aiDefinitionFlag(true),
4527
+ modelDefinitionIntentSnapshotFlag,
3835
4528
  metadataResolutionsFlag,
3836
4529
  requestIdFlag,
3837
4530
  useCacheFlag2,
3838
- zoneOffsetFlag2,
4531
+ zoneOffsetFlag,
3839
4532
  fieldsFlag,
3840
4533
  clusterQueryScopeFlag,
3841
4534
  slaveClusterIdFlag
@@ -3862,6 +4555,7 @@ var adhocRun = createAnalysisCapabilityCommand({
3862
4555
  ],
3863
4556
  risk: "read",
3864
4557
  validate: validateClusterQueryRouting,
4558
+ intentConsistency: { definitionFlag: "definition", modelTypeFlag: "model-type" },
3865
4559
  buildInput: adhocRunInput
3866
4560
  });
3867
4561
 
@@ -3877,15 +4571,16 @@ var adhocExport = createAnalysisCapabilityCommand({
3877
4571
  ],
3878
4572
  risk: "read",
3879
4573
  validate: validateClusterQueryRouting,
4574
+ intentConsistency: { definitionFlag: "definition", modelTypeFlag: "model-type" },
3880
4575
  buildInput: adhocExportInput
3881
4576
  });
3882
4577
 
3883
4578
  // src/commands/te-analysis/adhoc/index.ts
3884
- var commands25 = [
4579
+ var commands26 = [
3885
4580
  adhocRun,
3886
4581
  adhocExport
3887
4582
  ];
3888
- var adhoc_default = commands25;
4583
+ var adhoc_default = commands26;
3889
4584
 
3890
4585
  // src/commands/te-analysis/dashboard-definition/export.ts
3891
4586
  var dashboardDefinitionExport = createAnalysisCapabilityCommand({
@@ -3940,11 +4635,11 @@ var dashboardDefinitionImport = createAnalysisCapabilityCommand({
3940
4635
  });
3941
4636
 
3942
4637
  // src/commands/te-analysis/dashboard-definition/index.ts
3943
- var commands26 = [
4638
+ var commands27 = [
3944
4639
  dashboardDefinitionExport,
3945
4640
  dashboardDefinitionImport
3946
4641
  ];
3947
- var dashboard_definition_default = commands26;
4642
+ var dashboard_definition_default = commands27;
3948
4643
 
3949
4644
  // src/commands/te-analysis/dashboard-daily-report/get.ts
3950
4645
  var dashboardDailyReportGet = createAnalysisCapabilityCommand({
@@ -4128,13 +4823,13 @@ var dashboardDailyReportSendStatus = createAnalysisCapabilityCommand({
4128
4823
  });
4129
4824
 
4130
4825
  // src/commands/te-analysis/dashboard-daily-report/index.ts
4131
- var commands27 = [
4826
+ var commands28 = [
4132
4827
  dashboardDailyReportGet,
4133
4828
  dashboardDailyReportUpdate,
4134
4829
  dashboardDailyReportSend,
4135
4830
  dashboardDailyReportSendStatus
4136
4831
  ];
4137
- var dashboard_daily_report_default = commands27;
4832
+ var dashboard_daily_report_default = commands28;
4138
4833
 
4139
4834
  // src/commands/te-analysis/bi-panel/list.ts
4140
4835
  var biPanelList = createAnalysisCapabilityCommand({
@@ -4244,8 +4939,8 @@ var biPanelCopy = createAnalysisCapabilityCommand({
4244
4939
  description: "Copy a BI panel.",
4245
4940
  flags: [
4246
4941
  projectIdFlag,
4247
- { name: "panel-name", type: "string", required: false, desc: "New BI panel name." },
4248
- { name: "panel-uuid", type: "string", required: false, desc: "Source BI panel UUID." },
4942
+ { name: "panel-name", type: "string", required: true, desc: "New BI panel name." },
4943
+ { name: "panel-uuid", type: "string", required: true, desc: "Source BI panel UUID." },
4249
4944
  { name: "space-id", type: "number", required: false, desc: "Target project space ID." },
4250
4945
  { name: "folder-id", type: "number", required: false, desc: "Target folder ID." },
4251
4946
  payloadFlag
@@ -4262,7 +4957,7 @@ var biPanelCopy = createAnalysisCapabilityCommand({
4262
4957
  });
4263
4958
 
4264
4959
  // src/commands/te-analysis/bi-panel/index.ts
4265
- var commands28 = [
4960
+ var commands29 = [
4266
4961
  biPanelList,
4267
4962
  biPanelGet,
4268
4963
  biPanelCreate,
@@ -4271,7 +4966,7 @@ var commands28 = [
4271
4966
  biPanelShare,
4272
4967
  biPanelCopy
4273
4968
  ];
4274
- var bi_panel_default = commands28;
4969
+ var bi_panel_default = commands29;
4275
4970
 
4276
4971
  // src/commands/te-analysis/bi-panel-version/get.ts
4277
4972
  var biPanelVersionGet = createAnalysisCapabilityCommand({
@@ -4318,11 +5013,11 @@ var biPanelVersionPublish = createAnalysisCapabilityCommand({
4318
5013
  });
4319
5014
 
4320
5015
  // src/commands/te-analysis/bi-panel-version/index.ts
4321
- var commands29 = [
5016
+ var commands30 = [
4322
5017
  biPanelVersionGet,
4323
5018
  biPanelVersionPublish
4324
5019
  ];
4325
- var bi_panel_version_default = commands29;
5020
+ var bi_panel_version_default = commands30;
4326
5021
 
4327
5022
  // src/commands/te-analysis/bi-panel-page-data/run.ts
4328
5023
  var biPanelPageDataRun = createAnalysisCapabilityCommand({
@@ -4376,11 +5071,11 @@ var biPanelPageDataExport = createAnalysisCapabilityCommand({
4376
5071
  });
4377
5072
 
4378
5073
  // src/commands/te-analysis/bi-panel-page-data/index.ts
4379
- var commands30 = [
5074
+ var commands31 = [
4380
5075
  biPanelPageDataRun,
4381
5076
  biPanelPageDataExport
4382
5077
  ];
4383
- var bi_panel_page_data_default = commands30;
5078
+ var bi_panel_page_data_default = commands31;
4384
5079
 
4385
5080
  // src/commands/te-analysis/project-space/list.ts
4386
5081
  var projectSpaceList = createAnalysisCapabilityCommand({
@@ -4429,12 +5124,12 @@ var projectSpaceBusinessFilterUpsert = createAnalysisCapabilityCommand({
4429
5124
  });
4430
5125
 
4431
5126
  // src/commands/te-analysis/project-space/index.ts
4432
- var commands31 = [
5127
+ var commands32 = [
4433
5128
  projectSpaceList,
4434
5129
  projectSpaceGet,
4435
5130
  projectSpaceBusinessFilterUpsert
4436
5131
  ];
4437
- var project_space_default = commands31;
5132
+ var project_space_default = commands32;
4438
5133
 
4439
5134
  // src/commands/te-analysis/favorite/add.ts
4440
5135
  var favoriteAdd = createAnalysisCapabilityCommand({
@@ -4479,11 +5174,11 @@ var favoriteRemove = createAnalysisCapabilityCommand({
4479
5174
  });
4480
5175
 
4481
5176
  // src/commands/te-analysis/favorite/index.ts
4482
- var commands32 = [
5177
+ var commands33 = [
4483
5178
  favoriteAdd,
4484
5179
  favoriteRemove
4485
5180
  ];
4486
- var favorite_default = commands32;
5181
+ var favorite_default = commands33;
4487
5182
 
4488
5183
  // src/commands/te-analysis/public-link/create.ts
4489
5184
  var publicLinkCreate = createAnalysisCapabilityCommand({
@@ -4600,14 +5295,14 @@ var publicLinkDelete = createAnalysisCapabilityCommand({
4600
5295
  });
4601
5296
 
4602
5297
  // src/commands/te-analysis/public-link/index.ts
4603
- var commands33 = [
5298
+ var commands34 = [
4604
5299
  publicLinkCreate,
4605
5300
  publicLinkList,
4606
5301
  publicLinkUpdate,
4607
5302
  publicLinkOffline,
4608
5303
  publicLinkDelete
4609
5304
  ];
4610
- var public_link_default = commands33;
5305
+ var public_link_default = commands34;
4611
5306
 
4612
5307
  // src/commands/te-analysis/filter-value/list.ts
4613
5308
  var filterValueList = createAnalysisCapabilityCommand({
@@ -4641,8 +5336,8 @@ var filterValueList = createAnalysisCapabilityCommand({
4641
5336
  });
4642
5337
 
4643
5338
  // src/commands/te-analysis/filter-value/index.ts
4644
- var commands34 = [filterValueList];
4645
- var filter_value_default = commands34;
5339
+ var commands35 = [filterValueList];
5340
+ var filter_value_default = commands35;
4646
5341
 
4647
5342
  // src/commands/te-analysis/event-detail/shared.ts
4648
5343
  var eventDetailDefinitionFlag = {
@@ -4686,9 +5381,10 @@ function eventDetailExportInput(ctx) {
4686
5381
  var eventDetailBaseFlags = [
4687
5382
  projectIdFlag,
4688
5383
  eventDetailDefinitionFlag,
5384
+ definitionIntentSnapshotFlag,
4689
5385
  requestIdFlag,
4690
5386
  useCacheFlag2,
4691
- zoneOffsetFlag2
5387
+ zoneOffsetFlag
4692
5388
  ];
4693
5389
  var eventDetailExportFlags = [
4694
5390
  ...eventDetailBaseFlags,
@@ -4708,6 +5404,7 @@ var eventDetailRun = createAnalysisCapabilityCommand({
4708
5404
  syncTimeoutSecondsFlag
4709
5405
  ],
4710
5406
  risk: "read",
5407
+ intentConsistency: { definitionFlag: "definition" },
4711
5408
  buildInput: eventDetailRunInput
4712
5409
  });
4713
5410
 
@@ -4722,15 +5419,16 @@ var eventDetailExport = createAnalysisCapabilityCommand({
4722
5419
  ...eventDetailExportFlags
4723
5420
  ],
4724
5421
  risk: "read",
5422
+ intentConsistency: { definitionFlag: "definition" },
4725
5423
  buildInput: eventDetailExportInput
4726
5424
  });
4727
5425
 
4728
5426
  // src/commands/te-analysis/event-detail/index.ts
4729
- var commands35 = [
5427
+ var commands36 = [
4730
5428
  eventDetailRun,
4731
5429
  eventDetailExport
4732
5430
  ];
4733
- var event_detail_default = commands35;
5431
+ var event_detail_default = commands36;
4734
5432
 
4735
5433
  // src/commands/te-analysis/entity-detail/shared.ts
4736
5434
  var entityDetailDefinitionFlag = {
@@ -4774,9 +5472,10 @@ function entityDetailExportInput(ctx) {
4774
5472
  var entityDetailBaseFlags = [
4775
5473
  projectIdFlag,
4776
5474
  entityDetailDefinitionFlag,
5475
+ definitionIntentSnapshotFlag,
4777
5476
  requestIdFlag,
4778
5477
  useCacheFlag2,
4779
- zoneOffsetFlag2
5478
+ zoneOffsetFlag
4780
5479
  ];
4781
5480
  var entityDetailExportFlags = [
4782
5481
  ...entityDetailBaseFlags,
@@ -4796,6 +5495,7 @@ var entityDetailRun = createAnalysisCapabilityCommand({
4796
5495
  syncTimeoutSecondsFlag
4797
5496
  ],
4798
5497
  risk: "read",
5498
+ intentConsistency: { definitionFlag: "definition" },
4799
5499
  buildInput: entityDetailRunInput
4800
5500
  });
4801
5501
 
@@ -4810,15 +5510,16 @@ var entityDetailExport = createAnalysisCapabilityCommand({
4810
5510
  ...entityDetailExportFlags
4811
5511
  ],
4812
5512
  risk: "read",
5513
+ intentConsistency: { definitionFlag: "definition" },
4813
5514
  buildInput: entityDetailExportInput
4814
5515
  });
4815
5516
 
4816
5517
  // src/commands/te-analysis/entity-detail/index.ts
4817
- var commands36 = [
5518
+ var commands37 = [
4818
5519
  entityDetailRun,
4819
5520
  entityDetailExport
4820
5521
  ];
4821
- var entity_detail_default = commands36;
5522
+ var entity_detail_default = commands37;
4822
5523
 
4823
5524
  // src/commands/te-analysis/drilldown-events/shared.ts
4824
5525
  var queryContextIdFlag = {
@@ -4906,8 +5607,8 @@ var drilldownEventsRun = createAnalysisCapabilityCommand({
4906
5607
  });
4907
5608
 
4908
5609
  // src/commands/te-analysis/drilldown-events/index.ts
4909
- var commands37 = [drilldownEventsRun, drilldownEventsExport];
4910
- var drilldown_events_default = commands37;
5610
+ var commands38 = [drilldownEventsRun, drilldownEventsExport];
5611
+ var drilldown_events_default = commands38;
4911
5612
 
4912
5613
  // src/commands/te-analysis/drilldown-entities/shared.ts
4913
5614
  var queryContextIdFlag2 = {
@@ -4991,8 +5692,8 @@ var drilldownEntitiesRun = createAnalysisCapabilityCommand({
4991
5692
  });
4992
5693
 
4993
5694
  // src/commands/te-analysis/drilldown-entities/index.ts
4994
- var commands38 = [drilldownEntitiesRun, drilldownEntitiesExport];
4995
- var drilldown_entities_default = commands38;
5695
+ var commands39 = [drilldownEntitiesRun, drilldownEntitiesExport];
5696
+ var drilldown_entities_default = commands39;
4996
5697
 
4997
5698
  // src/commands/te-analysis/drilldown-user-events/shared.ts
4998
5699
  var drilldownContextIdFlag = {
@@ -5093,8 +5794,8 @@ var drilldownUserEventsRun = createAnalysisCapabilityCommand({
5093
5794
  });
5094
5795
 
5095
5796
  // src/commands/te-analysis/drilldown-user-events/index.ts
5096
- var commands39 = [drilldownUserEventsRun, drilldownUserEventsExport];
5097
- var drilldown_user_events_default = commands39;
5797
+ var commands40 = [drilldownUserEventsRun, drilldownUserEventsExport];
5798
+ var drilldown_user_events_default = commands40;
5098
5799
 
5099
5800
  // src/commands/te-analysis/user/index.ts
5100
5801
  import { existsSync, statSync as statSync2 } from "fs";
@@ -5185,7 +5886,7 @@ var optionalTagDefinitionRequestFlag = {
5185
5886
  required: false,
5186
5887
  desc: "Optional semantic snake_case tag definition. Read user_tag_models.md; raw filts, C-codes, ftv, columnName, and backend DTOs are rejected."
5187
5888
  };
5188
- var zoneOffsetFlag3 = {
5889
+ var zoneOffsetFlag2 = {
5189
5890
  name: "zone-offset",
5190
5891
  type: "number",
5191
5892
  required: false,
@@ -5607,7 +6308,7 @@ var memberExportFlags = [
5607
6308
  memberArtifactFormatFlag,
5608
6309
  asyncTimeoutSecondsFlag
5609
6310
  ];
5610
- var commands40 = [
6311
+ var commands41 = [
5611
6312
  capability(
5612
6313
  "user-cluster",
5613
6314
  "list",
@@ -5654,7 +6355,7 @@ var commands40 = [
5654
6355
  displayNameFlag,
5655
6356
  clusterDefinitionRequestFlag,
5656
6357
  authenticatedOnlyFlag,
5657
- zoneOffsetFlag3,
6358
+ zoneOffsetFlag2,
5658
6359
  entityIdFlag
5659
6360
  ], "write", (ctx) => clusterWriteInput(ctx, true)),
5660
6361
  capability("user-cluster", "update", "analysis.user_cluster.update", "Update a condition or SQL user cluster without changing its existing type or analysis entity. Pass only fields that should change.", [
@@ -5664,7 +6365,7 @@ var commands40 = [
5664
6365
  optionalClusterDefinitionRequestFlag,
5665
6366
  authenticatedOnlyFlag,
5666
6367
  remarkFlag,
5667
- zoneOffsetFlag3,
6368
+ zoneOffsetFlag2,
5668
6369
  autoRefreshCronFlag
5669
6370
  ], "high-risk-write", (ctx) => clusterWriteInput(ctx, false)),
5670
6371
  idImportCapability(capability("user-cluster", "create-id", "analysis.user_cluster.create_id", "Create a cluster by mapping imported values to an analysis entity.", [
@@ -5747,7 +6448,7 @@ var commands40 = [
5747
6448
  displayNameFlag,
5748
6449
  tagDefinitionRequestFlag,
5749
6450
  authenticatedOnlyFlag,
5750
- zoneOffsetFlag3,
6451
+ zoneOffsetFlag2,
5751
6452
  entityIdFlag,
5752
6453
  ...tagAutoRefreshFlags
5753
6454
  ], "write", (ctx) => tagWriteInput(ctx, true)),
@@ -5758,7 +6459,7 @@ var commands40 = [
5758
6459
  optionalTagDefinitionRequestFlag,
5759
6460
  authenticatedOnlyFlag,
5760
6461
  remarkFlag,
5761
- zoneOffsetFlag3,
6462
+ zoneOffsetFlag2,
5762
6463
  ...tagAutoRefreshFlags
5763
6464
  ], "write", (ctx) => tagWriteInput(ctx, false)),
5764
6465
  capability("user-tag", "refresh", "analysis.user_tag.refresh", "Refresh a user tag by exact tag_name.", [
@@ -5862,7 +6563,7 @@ var commands40 = [
5862
6563
  ...memberExportFlags
5863
6564
  ], "read", (ctx) => historyTagDataDrilldownInput(ctx, false), { asyncArtifact: true })
5864
6565
  ];
5865
- var user_default = commands40;
6566
+ var user_default = commands41;
5866
6567
 
5867
6568
  // src/commands/te-analysis/query-cluster/list.ts
5868
6569
  var queryClusterList = createAnalysisCapabilityCommand({
@@ -5876,8 +6577,8 @@ var queryClusterList = createAnalysisCapabilityCommand({
5876
6577
  });
5877
6578
 
5878
6579
  // src/commands/te-analysis/query-cluster/index.ts
5879
- var commands41 = [queryClusterList];
5880
- var query_cluster_default = commands41;
6580
+ var commands42 = [queryClusterList];
6581
+ var query_cluster_default = commands42;
5881
6582
 
5882
6583
  // src/commands/te-analysis/sql-table/columns.ts
5883
6584
  var sqlTableColumns = createAnalysisCapabilityCommand({
@@ -5922,8 +6623,8 @@ var sqlTableList = createAnalysisCapabilityCommand({
5922
6623
  });
5923
6624
 
5924
6625
  // src/commands/te-analysis/sql-table/index.ts
5925
- var commands42 = [sqlTableList, sqlTableColumns];
5926
- var sql_table_default = commands42;
6626
+ var commands43 = [sqlTableList, sqlTableColumns];
6627
+ var sql_table_default = commands43;
5927
6628
 
5928
6629
  // src/commands/te-analysis/entity/id-import-options.ts
5929
6630
  var entityIdImportOptions = createAnalysisCapabilityCommand({
@@ -5948,8 +6649,8 @@ var entityIdImportOptions = createAnalysisCapabilityCommand({
5948
6649
  });
5949
6650
 
5950
6651
  // src/commands/te-analysis/entity/index.ts
5951
- var commands43 = [entityIdImportOptions];
5952
- var entity_default = commands43;
6652
+ var commands44 = [entityIdImportOptions];
6653
+ var entity_default = commands44;
5953
6654
 
5954
6655
  // src/commands/te-analysis/input-file/inspect.ts
5955
6656
  var inputFileInspect = {
@@ -6032,8 +6733,8 @@ var inputFileUpload = {
6032
6733
  };
6033
6734
 
6034
6735
  // src/commands/te-analysis/input-file/index.ts
6035
- var commands44 = [inputFileUpload, inputFileInspect, inputFilePurposeList];
6036
- var input_file_default = commands44;
6736
+ var commands45 = [inputFileUpload, inputFileInspect, inputFilePurposeList];
6737
+ var input_file_default = commands45;
6037
6738
 
6038
6739
  // src/commands/te-analysis/project/access-detail/get.ts
6039
6740
  var projectAccessDetailGet = createAnalysisCapabilityCommand({
@@ -6051,10 +6752,10 @@ var projectAccessDetailGet = createAnalysisCapabilityCommand({
6051
6752
  });
6052
6753
 
6053
6754
  // src/commands/te-analysis/project/access-detail/index.ts
6054
- var commands45 = [
6755
+ var commands46 = [
6055
6756
  projectAccessDetailGet
6056
6757
  ];
6057
- var access_detail_default = commands45;
6758
+ var access_detail_default = commands46;
6058
6759
 
6059
6760
  // src/commands/te-analysis/project/data-power/delete.ts
6060
6761
  var projectDataPowerDelete = createAnalysisCapabilityCommand({
@@ -6126,13 +6827,13 @@ var projectDataPowerUpsert = createAnalysisCapabilityCommand({
6126
6827
  });
6127
6828
 
6128
6829
  // src/commands/te-analysis/project/data-power/index.ts
6129
- var commands46 = [
6830
+ var commands47 = [
6130
6831
  projectDataPowerDelete,
6131
6832
  projectDataPowerGet,
6132
6833
  projectDataPowerList,
6133
6834
  projectDataPowerUpsert
6134
6835
  ];
6135
- var data_power_default = commands46;
6836
+ var data_power_default = commands47;
6136
6837
 
6137
6838
  // src/commands/te-analysis/project/entity/create.ts
6138
6839
  var projectEntityCreate = createAnalysisCapabilityCommand({
@@ -6243,14 +6944,14 @@ var projectEntityUpdate = createAnalysisCapabilityCommand({
6243
6944
  });
6244
6945
 
6245
6946
  // src/commands/te-analysis/project/entity/index.ts
6246
- var commands47 = [
6947
+ var commands48 = [
6247
6948
  projectEntityCreate,
6248
6949
  projectEntityDelete,
6249
6950
  projectEntityGet,
6250
6951
  projectEntityList,
6251
6952
  projectEntityUpdate
6252
6953
  ];
6253
- var entity_default2 = commands47;
6954
+ var entity_default2 = commands48;
6254
6955
 
6255
6956
  // src/commands/te-analysis/project/entity-event/list.ts
6256
6957
  var projectEntityEventList = createAnalysisCapabilityCommand({
@@ -6270,10 +6971,10 @@ var projectEntityEventList = createAnalysisCapabilityCommand({
6270
6971
  });
6271
6972
 
6272
6973
  // src/commands/te-analysis/project/entity-event/index.ts
6273
- var commands48 = [
6974
+ var commands49 = [
6274
6975
  projectEntityEventList
6275
6976
  ];
6276
- var entity_event_default = commands48;
6977
+ var entity_event_default = commands49;
6277
6978
 
6278
6979
  // src/commands/te-analysis/project/function/list.ts
6279
6980
  var projectFunctionList = createAnalysisCapabilityCommand({
@@ -6293,10 +6994,10 @@ var projectFunctionList = createAnalysisCapabilityCommand({
6293
6994
  });
6294
6995
 
6295
6996
  // src/commands/te-analysis/project/function/index.ts
6296
- var commands49 = [
6997
+ var commands50 = [
6297
6998
  projectFunctionList
6298
6999
  ];
6299
- var function_default = commands49;
7000
+ var function_default = commands50;
6300
7001
 
6301
7002
  // src/commands/te-analysis/project/info/create.ts
6302
7003
  var projectInfoCreate = createAnalysisCapabilityCommand({
@@ -6391,14 +7092,14 @@ var projectInfoUpdate = createAnalysisCapabilityCommand({
6391
7092
  });
6392
7093
 
6393
7094
  // src/commands/te-analysis/project/info/index.ts
6394
- var commands50 = [
7095
+ var commands51 = [
6395
7096
  projectInfoCreate,
6396
7097
  projectInfoDelete,
6397
7098
  projectInfoGet,
6398
7099
  projectInfoList,
6399
7100
  projectInfoUpdate
6400
7101
  ];
6401
- var info_default = commands50;
7102
+ var info_default = commands51;
6402
7103
 
6403
7104
  // src/commands/te-analysis/project/mark-time/create.ts
6404
7105
  var projectMarkTimeCreate = createAnalysisCapabilityCommand({
@@ -6492,13 +7193,13 @@ var projectMarkTimeUpdate = createAnalysisCapabilityCommand({
6492
7193
  });
6493
7194
 
6494
7195
  // src/commands/te-analysis/project/mark-time/index.ts
6495
- var commands51 = [
7196
+ var commands52 = [
6496
7197
  projectMarkTimeCreate,
6497
7198
  projectMarkTimeDelete,
6498
7199
  projectMarkTimeList,
6499
7200
  projectMarkTimeUpdate
6500
7201
  ];
6501
- var mark_time_default = commands51;
7202
+ var mark_time_default = commands52;
6502
7203
 
6503
7204
  // src/commands/te-analysis/project/member/add.ts
6504
7205
  var projectMemberAdd = createAnalysisCapabilityCommand({
@@ -6509,7 +7210,12 @@ var projectMemberAdd = createAnalysisCapabilityCommand({
6509
7210
  flags: [
6510
7211
  projectIdFlag,
6511
7212
  requiredPayloadFlag,
6512
- { name: "type", type: "string", required: true, desc: "Add type accepted by ProjMemberAddTypeEnum." }
7213
+ {
7214
+ name: "type",
7215
+ type: "string",
7216
+ required: true,
7217
+ desc: "Member add type: 0 creates a company member from project management; 1 adds an existing company member. Type 0 may be disabled by company configuration."
7218
+ }
6513
7219
  ],
6514
7220
  risk: "write",
6515
7221
  buildInput: (ctx) => compactInput({
@@ -6609,7 +7315,7 @@ var projectMemberUpdate = createAnalysisCapabilityCommand({
6609
7315
  });
6610
7316
 
6611
7317
  // src/commands/te-analysis/project/member/index.ts
6612
- var commands52 = [
7318
+ var commands53 = [
6613
7319
  projectMemberAdd,
6614
7320
  projectMemberBatchUpdate,
6615
7321
  projectMemberImport,
@@ -6617,7 +7323,7 @@ var commands52 = [
6617
7323
  projectMemberRemove,
6618
7324
  projectMemberUpdate
6619
7325
  ];
6620
- var member_default = commands52;
7326
+ var member_default = commands53;
6621
7327
 
6622
7328
  // src/commands/te-analysis/project/member-candidate/list.ts
6623
7329
  var projectMemberCandidateList = createAnalysisCapabilityCommand({
@@ -6627,8 +7333,18 @@ var projectMemberCandidateList = createAnalysisCapabilityCommand({
6627
7333
  description: "List candidate users and role/data-power options for adding project members.",
6628
7334
  flags: [
6629
7335
  projectIdFlag,
6630
- { name: "type", type: "string", required: true, desc: "Add type accepted by ProjMemberAddTypeEnum." },
6631
- { name: "login-names", type: "string", required: false, desc: "Comma-separated login names when checking new users." }
7336
+ {
7337
+ name: "type",
7338
+ type: "string",
7339
+ required: true,
7340
+ desc: "Member add type: 0 checks new company members from project management; 1 lists existing company members. Type 0 may be disabled by company configuration."
7341
+ },
7342
+ {
7343
+ name: "login-names",
7344
+ type: "string",
7345
+ required: false,
7346
+ desc: "Comma-separated login names when checking new users."
7347
+ }
6632
7348
  ],
6633
7349
  risk: "read",
6634
7350
  buildInput: (ctx) => compactInput({
@@ -6639,10 +7355,10 @@ var projectMemberCandidateList = createAnalysisCapabilityCommand({
6639
7355
  });
6640
7356
 
6641
7357
  // src/commands/te-analysis/project/member-candidate/index.ts
6642
- var commands53 = [
7358
+ var commands54 = [
6643
7359
  projectMemberCandidateList
6644
7360
  ];
6645
- var member_candidate_default = commands53;
7361
+ var member_candidate_default = commands54;
6646
7362
 
6647
7363
  // src/commands/te-analysis/project/member-handover/export.ts
6648
7364
  var projectMemberHandoverExport = createAnalysisCapabilityCommand({
@@ -6683,11 +7399,11 @@ var projectMemberHandoverRun = createAnalysisCapabilityCommand({
6683
7399
  });
6684
7400
 
6685
7401
  // src/commands/te-analysis/project/member-handover/index.ts
6686
- var commands54 = [
7402
+ var commands55 = [
6687
7403
  projectMemberHandoverExport,
6688
7404
  projectMemberHandoverRun
6689
7405
  ];
6690
- var member_handover_default = commands54;
7406
+ var member_handover_default = commands55;
6691
7407
 
6692
7408
  // src/commands/te-analysis/project/member-receiver/list.ts
6693
7409
  var projectMemberReceiverList = createAnalysisCapabilityCommand({
@@ -6705,10 +7421,10 @@ var projectMemberReceiverList = createAnalysisCapabilityCommand({
6705
7421
  });
6706
7422
 
6707
7423
  // src/commands/te-analysis/project/member-receiver/index.ts
6708
- var commands55 = [
7424
+ var commands56 = [
6709
7425
  projectMemberReceiverList
6710
7426
  ];
6711
- var member_receiver_default = commands55;
7427
+ var member_receiver_default = commands56;
6712
7428
 
6713
7429
  // src/commands/te-analysis/project/owner/update.ts
6714
7430
  var projectOwnerUpdate = createAnalysisCapabilityCommand({
@@ -6734,10 +7450,10 @@ var projectOwnerUpdate = createAnalysisCapabilityCommand({
6734
7450
  });
6735
7451
 
6736
7452
  // src/commands/te-analysis/project/owner/index.ts
6737
- var commands56 = [
7453
+ var commands57 = [
6738
7454
  projectOwnerUpdate
6739
7455
  ];
6740
- var owner_default = commands56;
7456
+ var owner_default = commands57;
6741
7457
 
6742
7458
  // src/commands/te-analysis/project/permission-binding/list.ts
6743
7459
  var projectPermissionBindingList = createAnalysisCapabilityCommand({
@@ -6759,10 +7475,10 @@ var projectPermissionBindingList = createAnalysisCapabilityCommand({
6759
7475
  });
6760
7476
 
6761
7477
  // src/commands/te-analysis/project/permission-binding/index.ts
6762
- var commands57 = [
7478
+ var commands58 = [
6763
7479
  projectPermissionBindingList
6764
7480
  ];
6765
- var permission_binding_default = commands57;
7481
+ var permission_binding_default = commands58;
6766
7482
 
6767
7483
  // src/commands/te-analysis/project/receive-status/update.ts
6768
7484
  var projectReceiveStatusUpdate = createAnalysisCapabilityCommand({
@@ -6783,10 +7499,10 @@ var projectReceiveStatusUpdate = createAnalysisCapabilityCommand({
6783
7499
  });
6784
7500
 
6785
7501
  // src/commands/te-analysis/project/receive-status/index.ts
6786
- var commands58 = [
7502
+ var commands59 = [
6787
7503
  projectReceiveStatusUpdate
6788
7504
  ];
6789
- var receive_status_default = commands58;
7505
+ var receive_status_default = commands59;
6790
7506
 
6791
7507
  // src/commands/te-analysis/project/role/delete.ts
6792
7508
  var projectRoleDelete = createAnalysisCapabilityCommand({
@@ -6845,14 +7561,30 @@ var projectRoleList = createAnalysisCapabilityCommand({
6845
7561
  });
6846
7562
 
6847
7563
  // src/commands/te-analysis/project/role/upsert.ts
7564
+ var ROLE_UPSERT_HELP = [
7565
+ "Payload contract:",
7566
+ "- role_func_list is a non-empty array of objects. Each object requires a non-empty function_name and has_power set to integer 0 or 1.",
7567
+ "- Resolve valid function_name values with ae-cli project function list before saving the role.",
7568
+ "- role_desc is required when creating a role and must contain 1 to 80 characters. It may be omitted when updating an existing role.",
7569
+ "- Omit role_name to create a role. Pass the existing role_name to update that role.",
7570
+ "- Functions omitted from role_func_list are preserved by the service as unselected permissions with has_power=0.",
7571
+ "Example create payload:",
7572
+ '{"role_desc":"Data analyst","role_func_list":[{"function_name":"viewReport","has_power":1}]}',
7573
+ "Example update payload:",
7574
+ '{"role_name":"custom_role","role_func_list":[{"function_name":"viewReport","has_power":1}]}'
7575
+ ].join("\n");
6848
7576
  var projectRoleUpsert = createAnalysisCapabilityCommand({
6849
7577
  resource: "project role",
6850
7578
  command: "upsert",
6851
7579
  capabilityId: "project.role.upsert",
6852
7580
  description: "Create or update a project role.",
7581
+ helpText: ROLE_UPSERT_HELP,
6853
7582
  flags: [
6854
7583
  projectIdFlag,
6855
- requiredPayloadFlag
7584
+ {
7585
+ ...requiredPayloadFlag,
7586
+ desc: "Role payload with role_func_list object items containing function_name and has_power (0 or 1)."
7587
+ }
6856
7588
  ],
6857
7589
  risk: "write",
6858
7590
  buildInput: (ctx) => compactInput({
@@ -6862,13 +7594,13 @@ var projectRoleUpsert = createAnalysisCapabilityCommand({
6862
7594
  });
6863
7595
 
6864
7596
  // src/commands/te-analysis/project/role/index.ts
6865
- var commands59 = [
7597
+ var commands60 = [
6866
7598
  projectRoleDelete,
6867
7599
  projectRoleGet,
6868
7600
  projectRoleList,
6869
7601
  projectRoleUpsert
6870
7602
  ];
6871
- var role_default = commands59;
7603
+ var role_default = commands60;
6872
7604
 
6873
7605
  // src/commands/te-analysis/project/role-function/list.ts
6874
7606
  var projectRoleFunctionList = createAnalysisCapabilityCommand({
@@ -6894,10 +7626,10 @@ var projectRoleFunctionList = createAnalysisCapabilityCommand({
6894
7626
  });
6895
7627
 
6896
7628
  // src/commands/te-analysis/project/role-function/index.ts
6897
- var commands60 = [
7629
+ var commands61 = [
6898
7630
  projectRoleFunctionList
6899
7631
  ];
6900
- var role_function_default = commands60;
7632
+ var role_function_default = commands61;
6901
7633
 
6902
7634
  // src/commands/te-analysis/project/role-user/list.ts
6903
7635
  var projectRoleUserList = createAnalysisCapabilityCommand({
@@ -6917,10 +7649,10 @@ var projectRoleUserList = createAnalysisCapabilityCommand({
6917
7649
  });
6918
7650
 
6919
7651
  // src/commands/te-analysis/project/role-user/index.ts
6920
- var commands61 = [
7652
+ var commands62 = [
6921
7653
  projectRoleUserList
6922
7654
  ];
6923
- var role_user_default = commands61;
7655
+ var role_user_default = commands62;
6924
7656
 
6925
7657
  // src/commands/te-analysis/project/timezone/get.ts
6926
7658
  var projectTimezoneGet = createAnalysisCapabilityCommand({
@@ -7039,9 +7771,9 @@ function validateDisplayTimezones(value, item) {
7039
7771
  }
7040
7772
  }
7041
7773
  }
7042
- function allowOnly(payload, item, fields) {
7043
- if (Object.keys(payload).some((field) => !fields.includes(field))) {
7044
- throw invalidPayload(item, `supports only fields ${fields.join(", ")}`);
7774
+ function allowOnly(payload, item, fields2) {
7775
+ if (Object.keys(payload).some((field) => !fields2.includes(field))) {
7776
+ throw invalidPayload(item, `supports only fields ${fields2.join(", ")}`);
7045
7777
  }
7046
7778
  }
7047
7779
  function invalidPayload(item, reason, example) {
@@ -7058,12 +7790,12 @@ function isObject(value) {
7058
7790
  }
7059
7791
 
7060
7792
  // src/commands/te-analysis/project/timezone/index.ts
7061
- var commands62 = [
7793
+ var commands63 = [
7062
7794
  projectTimezoneGet,
7063
7795
  projectTimezoneOverview,
7064
7796
  projectTimezoneUpdate
7065
7797
  ];
7066
- var timezone_default = commands62;
7798
+ var timezone_default = commands63;
7067
7799
 
7068
7800
  // src/commands/te-analysis/project/user-id-items/update.ts
7069
7801
  var projectUserIdItemsUpdate = createAnalysisCapabilityCommand({
@@ -7083,13 +7815,13 @@ var projectUserIdItemsUpdate = createAnalysisCapabilityCommand({
7083
7815
  });
7084
7816
 
7085
7817
  // src/commands/te-analysis/project/user-id-items/index.ts
7086
- var commands63 = [
7818
+ var commands64 = [
7087
7819
  projectUserIdItemsUpdate
7088
7820
  ];
7089
- var user_id_items_default = commands63;
7821
+ var user_id_items_default = commands64;
7090
7822
 
7091
7823
  // src/commands/te-analysis/project/index.ts
7092
- var commands64 = [
7824
+ var commands65 = [
7093
7825
  ...access_detail_default,
7094
7826
  ...data_power_default,
7095
7827
  ...entity_default2,
@@ -7110,7 +7842,7 @@ var commands64 = [
7110
7842
  ...timezone_default,
7111
7843
  ...user_id_items_default
7112
7844
  ];
7113
- var project_default = commands64;
7845
+ var project_default = commands65;
7114
7846
 
7115
7847
  // src/commands/te-analysis/tracking/shared.ts
7116
7848
  function createTrackingCapabilityCommand(config) {
@@ -7284,12 +8016,12 @@ var confirmFlag = {
7284
8016
  required: true,
7285
8017
  desc: "Must be true for this destructive tracking operation. Also use global --yes to skip local confirmation."
7286
8018
  };
7287
- function projectInput2(ctx) {
8019
+ function projectInput3(ctx) {
7288
8020
  return { project_id: ctx.num("project-id") };
7289
8021
  }
7290
8022
  function projectLifecycleInput(ctx) {
7291
8023
  return compactInput({
7292
- ...projectInput2(ctx),
8024
+ ...projectInput3(ctx),
7293
8025
  request_id: optionalString(ctx, "request-id"),
7294
8026
  timeout_seconds: optionalNumber(ctx, "timeout-seconds")
7295
8027
  });
@@ -7303,7 +8035,7 @@ var trackingPlanGet = createTrackingCapabilityCommand({
7303
8035
  description: "Get the tracking plan for one project.",
7304
8036
  flags: [projectIdFlag],
7305
8037
  risk: "read",
7306
- buildInput: projectInput2
8038
+ buildInput: projectInput3
7307
8039
  });
7308
8040
 
7309
8041
  // src/commands/te-analysis/tracking/plan/save-items.ts
@@ -7315,7 +8047,7 @@ var trackingPlanSaveItems = createTrackingCapabilityCommand({
7315
8047
  flags: [projectIdFlag, eventsFlag, eventPropsFlag, userPropsFlag, commonEventPropsFlag],
7316
8048
  risk: "write",
7317
8049
  buildInput: (ctx) => compactInput({
7318
- ...projectInput2(ctx),
8050
+ ...projectInput3(ctx),
7319
8051
  events: optionalJson(ctx, "events"),
7320
8052
  event_props: optionalJson(ctx, "event-props"),
7321
8053
  user_props: optionalJson(ctx, "user-props"),
@@ -7332,7 +8064,7 @@ var trackingPlanDeleteItems = createTrackingCapabilityCommand({
7332
8064
  flags: [projectIdFlag, eventsFlag, eventPropNamesFlag, userPropNamesFlag, commonEventPropNamesFlag, confirmFlag],
7333
8065
  risk: "high-risk-write",
7334
8066
  buildInput: (ctx) => compactInput({
7335
- ...projectInput2(ctx),
8067
+ ...projectInput3(ctx),
7336
8068
  events: optionalJson(ctx, "events"),
7337
8069
  event_prop_names: optionalJson(ctx, "event-prop-names"),
7338
8070
  user_prop_names: optionalJson(ctx, "user-prop-names"),
@@ -7350,7 +8082,7 @@ var trackingPlanGenerate = createTrackingCapabilityCommand({
7350
8082
  flags: [projectIdFlag, languageFlag, formDataFlag, developmentCarrierFlag, predefinedEventFlag],
7351
8083
  risk: "write",
7352
8084
  buildInput: (ctx) => compactInput({
7353
- ...projectInput2(ctx),
8085
+ ...projectInput3(ctx),
7354
8086
  language: ctx.str("language"),
7355
8087
  form_data: ctx.json("form-data"),
7356
8088
  development_carrier: optionalJson(ctx, "development-carrier"),
@@ -7476,7 +8208,7 @@ function validateSource(ctx) {
7476
8208
  }
7477
8209
  function buildInput(ctx, inputFileId) {
7478
8210
  return compactInput({
7479
- ...projectInput2(ctx),
8211
+ ...projectInput3(ctx),
7480
8212
  input_file_id: inputFileId,
7481
8213
  lang: optionalString(ctx, "lang")
7482
8214
  });
@@ -7490,7 +8222,7 @@ var trackingPlanSyncFromMeta = createTrackingCapabilityCommand({
7490
8222
  description: "Synchronize tracking plan from project metadata.",
7491
8223
  flags: [projectIdFlag],
7492
8224
  risk: "write",
7493
- buildInput: projectInput2
8225
+ buildInput: projectInput3
7494
8226
  });
7495
8227
 
7496
8228
  // src/commands/te-analysis/tracking/plan/sync-display-names.ts
@@ -7841,7 +8573,7 @@ function counts(plan, value) {
7841
8573
  }
7842
8574
 
7843
8575
  // src/commands/te-analysis/tracking/plan/index.ts
7844
- var commands65 = [
8576
+ var commands66 = [
7845
8577
  trackingPlanGet,
7846
8578
  trackingPlanSaveItems,
7847
8579
  trackingPlanDeleteItems,
@@ -7851,7 +8583,7 @@ var commands65 = [
7851
8583
  trackingPlanSyncFromMeta,
7852
8584
  trackingPlanSyncDisplayNames
7853
8585
  ];
7854
- var plan_default = commands65;
8586
+ var plan_default = commands66;
7855
8587
 
7856
8588
  // src/commands/te-analysis/tracking/sdk-sample/generate.ts
7857
8589
  var trackingSdkSampleGenerate = createTrackingCapabilityCommand({
@@ -7861,14 +8593,14 @@ var trackingSdkSampleGenerate = createTrackingCapabilityCommand({
7861
8593
  description: "Submit an AI SDK sample generation task.",
7862
8594
  flags: [projectIdFlag, sdkTypesFlag],
7863
8595
  risk: "write",
7864
- buildInput: (ctx) => ({ ...projectInput2(ctx), sdk_types: ctx.json("sdk-types") })
8596
+ buildInput: (ctx) => ({ ...projectInput3(ctx), sdk_types: ctx.json("sdk-types") })
7865
8597
  });
7866
8598
 
7867
8599
  // src/commands/te-analysis/tracking/sdk-sample/index.ts
7868
- var commands66 = [
8600
+ var commands67 = [
7869
8601
  trackingSdkSampleGenerate
7870
8602
  ];
7871
- var sdk_sample_default = commands66;
8603
+ var sdk_sample_default = commands67;
7872
8604
 
7873
8605
  // src/commands/te-analysis/tracking/plan-change-log/list.ts
7874
8606
  var trackingPlanChangeLogList = createTrackingCapabilityCommand({
@@ -7878,7 +8610,7 @@ var trackingPlanChangeLogList = createTrackingCapabilityCommand({
7878
8610
  description: "List tracking plan change logs.",
7879
8611
  flags: [projectIdFlag],
7880
8612
  risk: "read",
7881
- buildInput: projectInput2
8613
+ buildInput: projectInput3
7882
8614
  });
7883
8615
 
7884
8616
  // src/commands/te-analysis/tracking/plan-change-log/export.ts
@@ -7890,15 +8622,15 @@ var trackingPlanChangeLogExport = createTrackingCapabilityCommand({
7890
8622
  description: "Export one tracking plan change log.",
7891
8623
  flags: [projectIdFlag, logIdFlag, requestIdFlag, asyncTimeoutSecondsFlag],
7892
8624
  risk: "read",
7893
- buildInput: (ctx) => compactInput({ ...projectInput2(ctx), log_id: ctx.num("log-id"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
8625
+ buildInput: (ctx) => compactInput({ ...projectInput3(ctx), log_id: ctx.num("log-id"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
7894
8626
  });
7895
8627
 
7896
8628
  // src/commands/te-analysis/tracking/plan-change-log/index.ts
7897
- var commands67 = [
8629
+ var commands68 = [
7898
8630
  trackingPlanChangeLogList,
7899
8631
  trackingPlanChangeLogExport
7900
8632
  ];
7901
- var plan_change_log_default = commands67;
8633
+ var plan_change_log_default = commands68;
7902
8634
 
7903
8635
  // src/commands/te-analysis/tracking/check/run.ts
7904
8636
  var trackingCheckRun = createTrackingCapabilityCommand({
@@ -7909,7 +8641,7 @@ var trackingCheckRun = createTrackingCapabilityCommand({
7909
8641
  flags: [projectIdFlag, checkScopeFlag, resultScopeFlag],
7910
8642
  risk: "write",
7911
8643
  buildInput: (ctx) => compactInput({
7912
- ...projectInput2(ctx),
8644
+ ...projectInput3(ctx),
7913
8645
  check_scope: ctx.json("check-scope"),
7914
8646
  result_scope: optionalJson(ctx, "result-scope")
7915
8647
  })
@@ -7923,7 +8655,7 @@ var trackingCheckList = createTrackingCapabilityCommand({
7923
8655
  description: "List tracking validation runs.",
7924
8656
  flags: [projectIdFlag],
7925
8657
  risk: "read",
7926
- buildInput: projectInput2
8658
+ buildInput: projectInput3
7927
8659
  });
7928
8660
 
7929
8661
  // src/commands/te-analysis/tracking/check/get.ts
@@ -7934,7 +8666,7 @@ var trackingCheckGet = createTrackingCapabilityCommand({
7934
8666
  description: "Get one tracking validation result.",
7935
8667
  flags: [projectIdFlag, uuidFlag, requestIdFlag, timeoutSecondsFlag],
7936
8668
  risk: "read",
7937
- buildInput: (ctx) => compactInput({ ...projectInput2(ctx), uuid: ctx.str("uuid"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
8669
+ buildInput: (ctx) => compactInput({ ...projectInput3(ctx), uuid: ctx.str("uuid"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
7938
8670
  });
7939
8671
 
7940
8672
  // src/commands/te-analysis/tracking/check/retry.ts
@@ -7945,7 +8677,7 @@ var trackingCheckRetry = createTrackingCapabilityCommand({
7945
8677
  description: "Retry one tracking validation run.",
7946
8678
  flags: [projectIdFlag, uuidFlag, requestIdFlag, timeoutSecondsFlag],
7947
8679
  risk: "write",
7948
- buildInput: (ctx) => compactInput({ ...projectInput2(ctx), uuid: ctx.str("uuid"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
8680
+ buildInput: (ctx) => compactInput({ ...projectInput3(ctx), uuid: ctx.str("uuid"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
7949
8681
  });
7950
8682
 
7951
8683
  // src/commands/te-analysis/tracking/check/delete.ts
@@ -7956,7 +8688,7 @@ var trackingCheckDelete = createTrackingCapabilityCommand({
7956
8688
  description: "Delete one tracking validation run.",
7957
8689
  flags: [projectIdFlag, uuidFlag, confirmFlag],
7958
8690
  risk: "high-risk-write",
7959
- buildInput: (ctx) => ({ ...projectInput2(ctx), uuid: ctx.str("uuid"), yes: ctx.bool("confirm") })
8691
+ buildInput: (ctx) => ({ ...projectInput3(ctx), uuid: ctx.str("uuid"), yes: ctx.bool("confirm") })
7960
8692
  });
7961
8693
 
7962
8694
  // src/commands/te-analysis/tracking/check/export.ts
@@ -7968,11 +8700,11 @@ var trackingCheckExport = createTrackingCapabilityCommand({
7968
8700
  description: "Export one tracking validation result.",
7969
8701
  flags: [projectIdFlag, uuidFlag, requestIdFlag, asyncTimeoutSecondsFlag],
7970
8702
  risk: "read",
7971
- buildInput: (ctx) => compactInput({ ...projectInput2(ctx), uuid: ctx.str("uuid"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
8703
+ buildInput: (ctx) => compactInput({ ...projectInput3(ctx), uuid: ctx.str("uuid"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
7972
8704
  });
7973
8705
 
7974
8706
  // src/commands/te-analysis/tracking/check/index.ts
7975
- var commands68 = [
8707
+ var commands69 = [
7976
8708
  trackingCheckRun,
7977
8709
  trackingCheckList,
7978
8710
  trackingCheckGet,
@@ -7980,7 +8712,7 @@ var commands68 = [
7980
8712
  trackingCheckDelete,
7981
8713
  trackingCheckExport
7982
8714
  ];
7983
- var check_default = commands68;
8715
+ var check_default = commands69;
7984
8716
 
7985
8717
  // src/commands/te-analysis/tracking/ingest/summary.ts
7986
8718
  var trackingIngestSummary = createTrackingCapabilityCommand({
@@ -7990,14 +8722,14 @@ var trackingIngestSummary = createTrackingCapabilityCommand({
7990
8722
  description: "Get tracking ingest summary.",
7991
8723
  flags: [projectIdFlag, startTimeFlag, endTimeFlag],
7992
8724
  risk: "read",
7993
- buildInput: (ctx) => ({ ...projectInput2(ctx), start_time: ctx.str("start-time"), end_time: ctx.str("end-time") })
8725
+ buildInput: (ctx) => ({ ...projectInput3(ctx), start_time: ctx.str("start-time"), end_time: ctx.str("end-time") })
7994
8726
  });
7995
8727
 
7996
8728
  // src/commands/te-analysis/tracking/ingest/index.ts
7997
- var commands69 = [
8729
+ var commands70 = [
7998
8730
  trackingIngestSummary
7999
8731
  ];
8000
- var ingest_default = commands69;
8732
+ var ingest_default = commands70;
8001
8733
 
8002
8734
  // src/commands/te-analysis/tracking/ingest-error/list.ts
8003
8735
  var trackingIngestErrorList = createTrackingCapabilityCommand({
@@ -8007,14 +8739,14 @@ var trackingIngestErrorList = createTrackingCapabilityCommand({
8007
8739
  description: "List tracking ingest errors for one data name.",
8008
8740
  flags: [projectIdFlag, dataNameFlag, startTimeFlag, endTimeFlag],
8009
8741
  risk: "read",
8010
- buildInput: (ctx) => ({ ...projectInput2(ctx), data_name: ctx.str("data-name"), start_time: ctx.str("start-time"), end_time: ctx.str("end-time") })
8742
+ buildInput: (ctx) => ({ ...projectInput3(ctx), data_name: ctx.str("data-name"), start_time: ctx.str("start-time"), end_time: ctx.str("end-time") })
8011
8743
  });
8012
8744
 
8013
8745
  // src/commands/te-analysis/tracking/ingest-error/index.ts
8014
- var commands70 = [
8746
+ var commands71 = [
8015
8747
  trackingIngestErrorList
8016
8748
  ];
8017
- var ingest_error_default = commands70;
8749
+ var ingest_error_default = commands71;
8018
8750
 
8019
8751
  // src/commands/te-analysis/tracking/live-data/list.ts
8020
8752
  var trackingLiveDataList = createTrackingCapabilityCommand({
@@ -8024,7 +8756,7 @@ var trackingLiveDataList = createTrackingCapabilityCommand({
8024
8756
  description: "List recent tracking live data.",
8025
8757
  flags: [projectIdFlag, dataTypeFlag, requestIdFlag, timeoutSecondsFlag],
8026
8758
  risk: "read",
8027
- buildInput: (ctx) => compactInput({ ...projectInput2(ctx), data_type: optionalString(ctx, "data-type"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
8759
+ buildInput: (ctx) => compactInput({ ...projectInput3(ctx), data_type: optionalString(ctx, "data-type"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
8028
8760
  });
8029
8761
 
8030
8762
  // src/commands/te-analysis/tracking/live-data/export.ts
@@ -8036,15 +8768,15 @@ var trackingLiveDataExport = createTrackingCapabilityCommand({
8036
8768
  description: "Export recent tracking live data.",
8037
8769
  flags: [projectIdFlag, dataTypeFlag, requestIdFlag, asyncTimeoutSecondsFlag],
8038
8770
  risk: "read",
8039
- buildInput: (ctx) => compactInput({ ...projectInput2(ctx), data_type: optionalString(ctx, "data-type"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
8771
+ buildInput: (ctx) => compactInput({ ...projectInput3(ctx), data_type: optionalString(ctx, "data-type"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
8040
8772
  });
8041
8773
 
8042
8774
  // src/commands/te-analysis/tracking/live-data/index.ts
8043
- var commands71 = [
8775
+ var commands72 = [
8044
8776
  trackingLiveDataList,
8045
8777
  trackingLiveDataExport
8046
8778
  ];
8047
- var live_data_default = commands71;
8779
+ var live_data_default = commands72;
8048
8780
 
8049
8781
  // src/commands/te-analysis/tracking/event-blacklist/list.ts
8050
8782
  var trackingEventBlacklistList = createTrackingCapabilityCommand({
@@ -8054,7 +8786,7 @@ var trackingEventBlacklistList = createTrackingCapabilityCommand({
8054
8786
  description: "List tracking event blacklist configuration.",
8055
8787
  flags: [projectIdFlag],
8056
8788
  risk: "read",
8057
- buildInput: projectInput2
8789
+ buildInput: projectInput3
8058
8790
  });
8059
8791
 
8060
8792
  // src/commands/te-analysis/tracking/event-blacklist/add.ts
@@ -8065,7 +8797,7 @@ var trackingEventBlacklistAdd = createTrackingCapabilityCommand({
8065
8797
  description: "Add events to tracking event blacklist.",
8066
8798
  flags: [projectIdFlag, eventNamesFlag],
8067
8799
  risk: "write",
8068
- buildInput: (ctx) => ({ ...projectInput2(ctx), event_names: ctx.json("event-names") })
8800
+ buildInput: (ctx) => ({ ...projectInput3(ctx), event_names: ctx.json("event-names") })
8069
8801
  });
8070
8802
 
8071
8803
  // src/commands/te-analysis/tracking/event-blacklist/update.ts
@@ -8076,16 +8808,16 @@ var trackingEventBlacklistUpdate = createTrackingCapabilityCommand({
8076
8808
  description: "Update tracking event blacklist config.",
8077
8809
  flags: [projectIdFlag, eventNamesFlag, blacklistTypeFlag],
8078
8810
  risk: "write",
8079
- buildInput: (ctx) => ({ ...projectInput2(ctx), event_names: ctx.json("event-names"), type: ctx.num("type") })
8811
+ buildInput: (ctx) => ({ ...projectInput3(ctx), event_names: ctx.json("event-names"), type: ctx.num("type") })
8080
8812
  });
8081
8813
 
8082
8814
  // src/commands/te-analysis/tracking/event-blacklist/index.ts
8083
- var commands72 = [
8815
+ var commands73 = [
8084
8816
  trackingEventBlacklistList,
8085
8817
  trackingEventBlacklistAdd,
8086
8818
  trackingEventBlacklistUpdate
8087
8819
  ];
8088
- var event_blacklist_default = commands72;
8820
+ var event_blacklist_default = commands73;
8089
8821
 
8090
8822
  // src/commands/te-analysis/tracking/debug-device/add.ts
8091
8823
  var trackingDebugDeviceAdd = createTrackingCapabilityCommand({
@@ -8096,7 +8828,7 @@ var trackingDebugDeviceAdd = createTrackingCapabilityCommand({
8096
8828
  flags: [projectIdFlag, debugDeviceIdFlag, debugDeviceNameFlag],
8097
8829
  risk: "write",
8098
8830
  buildInput: (ctx) => ({
8099
- ...projectInput2(ctx),
8831
+ ...projectInput3(ctx),
8100
8832
  device_id: ctx.str("device-id"),
8101
8833
  device_name: ctx.str("device-name")
8102
8834
  })
@@ -8110,7 +8842,7 @@ var trackingDebugDeviceList = createTrackingCapabilityCommand({
8110
8842
  description: "List Debug devices and the device selected by the current CLI user.",
8111
8843
  flags: [projectIdFlag],
8112
8844
  risk: "read",
8113
- buildInput: projectInput2
8845
+ buildInput: projectInput3
8114
8846
  });
8115
8847
 
8116
8848
  // src/commands/te-analysis/tracking/debug-device/select.ts
@@ -8122,18 +8854,18 @@ var trackingDebugDeviceSelect = createTrackingCapabilityCommand({
8122
8854
  flags: [projectIdFlag, debugDeviceIdFlag],
8123
8855
  risk: "write",
8124
8856
  buildInput: (ctx) => ({
8125
- ...projectInput2(ctx),
8857
+ ...projectInput3(ctx),
8126
8858
  device_id: ctx.str("device-id")
8127
8859
  })
8128
8860
  });
8129
8861
 
8130
8862
  // src/commands/te-analysis/tracking/debug-device/index.ts
8131
- var commands73 = [
8863
+ var commands74 = [
8132
8864
  trackingDebugDeviceList,
8133
8865
  trackingDebugDeviceAdd,
8134
8866
  trackingDebugDeviceSelect
8135
8867
  ];
8136
- var debug_device_default = commands73;
8868
+ var debug_device_default = commands74;
8137
8869
 
8138
8870
  // src/commands/te-analysis/tracking/debug-data/list.ts
8139
8871
  var debugStartTimeFlag = {
@@ -8150,7 +8882,7 @@ var trackingDebugDataList = createTrackingCapabilityCommand({
8150
8882
  flags: [projectIdFlag, debugDeviceIdFlag, debugStartTimeFlag, eventNameFlag],
8151
8883
  risk: "read",
8152
8884
  buildInput: (ctx) => compactInput({
8153
- ...projectInput2(ctx),
8885
+ ...projectInput3(ctx),
8154
8886
  device_id: ctx.str("device-id"),
8155
8887
  start_time: optionalString(ctx, "start-time") ?? formatLocalTime(new Date(Date.now() - 60 * 60 * 1e3)),
8156
8888
  event_name: optionalString(ctx, "event-name")
@@ -8192,11 +8924,11 @@ function isRecord3(value) {
8192
8924
  }
8193
8925
 
8194
8926
  // src/commands/te-analysis/tracking/debug-data/index.ts
8195
- var commands74 = [trackingDebugDataList];
8196
- var debug_data_default = commands74;
8927
+ var commands75 = [trackingDebugDataList];
8928
+ var debug_data_default = commands75;
8197
8929
 
8198
8930
  // src/commands/te-analysis/tracking/index.ts
8199
- var commands75 = [
8931
+ var commands76 = [
8200
8932
  ...plan_default,
8201
8933
  ...sdk_sample_default,
8202
8934
  ...plan_change_log_default,
@@ -8208,7 +8940,7 @@ var commands75 = [
8208
8940
  ...debug_device_default,
8209
8941
  ...debug_data_default
8210
8942
  ];
8211
- var tracking_default = commands75;
8943
+ var tracking_default = commands76;
8212
8944
 
8213
8945
  // src/commands/te-analysis/alert/shared.ts
8214
8946
  var alertIdFlag = {
@@ -8235,11 +8967,11 @@ var endTimeFlag2 = {
8235
8967
  required: false,
8236
8968
  desc: "Optional alert detail end time."
8237
8969
  };
8238
- function projectInput3(ctx) {
8970
+ function projectInput4(ctx) {
8239
8971
  return { project_id: ctx.num("project-id") };
8240
8972
  }
8241
8973
  function alertIdInput(ctx) {
8242
- return { ...projectInput3(ctx), alert_id: ctx.num("alert-id") };
8974
+ return { ...projectInput4(ctx), alert_id: ctx.num("alert-id") };
8243
8975
  }
8244
8976
 
8245
8977
  // src/commands/te-analysis/alert/list.ts
@@ -8251,7 +8983,7 @@ var analysisAlertList = createAnalysisCapabilityCommand({
8251
8983
  flags: [projectIdFlag, queriesFlag, directoryLimitFlag, directoryOffsetFlag],
8252
8984
  risk: "read",
8253
8985
  validate: validateQueriesFlag,
8254
- buildInput: (ctx) => compactInput({ ...projectInput3(ctx), queries: optionalQueries(ctx), limit: optionalNumber(ctx, "limit"), offset: optionalNumber(ctx, "offset") })
8986
+ buildInput: (ctx) => compactInput({ ...projectInput4(ctx), queries: optionalQueries(ctx), limit: optionalNumber(ctx, "limit"), offset: optionalNumber(ctx, "offset") })
8255
8987
  });
8256
8988
 
8257
8989
  // src/commands/te-analysis/alert/get.ts
@@ -8273,7 +9005,7 @@ var analysisAlertCreate = createAnalysisCapabilityCommand({
8273
9005
  description: "Create an alert.",
8274
9006
  flags: [projectIdFlag, definitionRequestFlag],
8275
9007
  risk: "write",
8276
- buildInput: (ctx) => ({ ...projectInput3(ctx), definition_request: ctx.json("definition-request") })
9008
+ buildInput: (ctx) => ({ ...projectInput4(ctx), definition_request: ctx.json("definition-request") })
8277
9009
  });
8278
9010
 
8279
9011
  // src/commands/te-analysis/alert/update.ts
@@ -8321,7 +9053,7 @@ var analysisAlertStop = createAnalysisCapabilityCommand({
8321
9053
  });
8322
9054
 
8323
9055
  // src/commands/te-analysis/alert/index.ts
8324
- var commands76 = [
9056
+ var commands77 = [
8325
9057
  analysisAlertList,
8326
9058
  analysisAlertGet,
8327
9059
  analysisAlertCreate,
@@ -8330,7 +9062,7 @@ var commands76 = [
8330
9062
  analysisAlertStart,
8331
9063
  analysisAlertStop
8332
9064
  ];
8333
- var alert_default = commands76;
9065
+ var alert_default = commands77;
8334
9066
 
8335
9067
  // src/commands/te-analysis/alert-detail/list.ts
8336
9068
  var analysisAlertDetailList = createAnalysisCapabilityCommand({
@@ -8344,10 +9076,10 @@ var analysisAlertDetailList = createAnalysisCapabilityCommand({
8344
9076
  });
8345
9077
 
8346
9078
  // src/commands/te-analysis/alert-detail/index.ts
8347
- var commands77 = [
9079
+ var commands78 = [
8348
9080
  analysisAlertDetailList
8349
9081
  ];
8350
- var alert_detail_default = commands77;
9082
+ var alert_detail_default = commands78;
8351
9083
 
8352
9084
  // src/commands/te-analysis/alert-job/list.ts
8353
9085
  var analysisAlertJobList = createAnalysisCapabilityCommand({
@@ -8357,14 +9089,14 @@ var analysisAlertJobList = createAnalysisCapabilityCommand({
8357
9089
  description: "List alert job status.",
8358
9090
  flags: [projectIdFlag],
8359
9091
  risk: "read",
8360
- buildInput: projectInput3
9092
+ buildInput: projectInput4
8361
9093
  });
8362
9094
 
8363
9095
  // src/commands/te-analysis/alert-job/index.ts
8364
- var commands78 = [
9096
+ var commands79 = [
8365
9097
  analysisAlertJobList
8366
9098
  ];
8367
- var alert_job_default = commands78;
9099
+ var alert_job_default = commands79;
8368
9100
 
8369
9101
  // src/commands/te-analysis/alert-notice-config/list.ts
8370
9102
  var analysisAlertNoticeConfigList = createAnalysisCapabilityCommand({
@@ -8374,17 +9106,17 @@ var analysisAlertNoticeConfigList = createAnalysisCapabilityCommand({
8374
9106
  description: "List alert notice configs.",
8375
9107
  flags: [projectIdFlag],
8376
9108
  risk: "read",
8377
- buildInput: projectInput3
9109
+ buildInput: projectInput4
8378
9110
  });
8379
9111
 
8380
9112
  // src/commands/te-analysis/alert-notice-config/index.ts
8381
- var commands79 = [
9113
+ var commands80 = [
8382
9114
  analysisAlertNoticeConfigList
8383
9115
  ];
8384
- var alert_notice_config_default = commands79;
9116
+ var alert_notice_config_default = commands80;
8385
9117
 
8386
9118
  // src/commands/te-analysis/system/shared.ts
8387
- import { readFileSync as readFileSync2, statSync as statSync3 } from "fs";
9119
+ import { readFileSync as readFileSync3, statSync as statSync3 } from "fs";
8388
9120
  var secretValues = /* @__PURE__ */ new WeakMap();
8389
9121
  var companyIdField = {
8390
9122
  flag: "company-id",
@@ -8419,7 +9151,7 @@ var fieldsField = {
8419
9151
  desc: "Optional snake_case result field projection JSON array."
8420
9152
  };
8421
9153
  function defineSystemCommand(spec) {
8422
- const fields = [companyIdField, ...spec.fields ?? []];
9154
+ const fields2 = [companyIdField, ...spec.fields ?? []];
8423
9155
  const secrets = spec.secrets ?? [];
8424
9156
  return createAnalysisCapabilityCommand({
8425
9157
  resource: `system ${spec.resource}`,
@@ -8428,24 +9160,24 @@ function defineSystemCommand(spec) {
8428
9160
  asyncArtifact: spec.asyncArtifact,
8429
9161
  description: spec.description,
8430
9162
  flags: [
8431
- ...fields.map(fieldFlag),
9163
+ ...fields2.map(fieldFlag),
8432
9164
  ...secrets.flatMap(secretFlags)
8433
9165
  ],
8434
9166
  risk: spec.risk,
8435
9167
  validate: (ctx) => {
8436
9168
  validateSecretSources(ctx, secrets);
8437
- const input = buildSystemInput(ctx, fields, [], spec.risk);
9169
+ const input = buildSystemInput(ctx, fields2, [], spec.risk);
8438
9170
  for (const secret of secrets) {
8439
9171
  if (ctx.str(`${secret.flag}-file`) || ctx.bool(`${secret.flag}-stdin`)) {
8440
9172
  input[secret.input] = "<provided>";
8441
9173
  }
8442
9174
  }
8443
- validateFields(fields, input);
9175
+ validateFields(fields2, input);
8444
9176
  spec.validate?.(ctx, input);
8445
9177
  },
8446
9178
  buildInput: (ctx) => {
8447
- const input = buildSystemInput(ctx, fields, secrets, spec.risk);
8448
- validateFields(fields, input);
9179
+ const input = buildSystemInput(ctx, fields2, secrets, spec.risk);
9180
+ validateFields(fields2, input);
8449
9181
  validateSecretSources(ctx, secrets);
8450
9182
  spec.validate?.(ctx, input);
8451
9183
  return input;
@@ -8481,9 +9213,9 @@ function secretFlags(secret) {
8481
9213
  }
8482
9214
  ];
8483
9215
  }
8484
- function buildSystemInput(ctx, fields, secrets, risk) {
9216
+ function buildSystemInput(ctx, fields2, secrets, risk) {
8485
9217
  const input = {};
8486
- for (const field of fields) {
9218
+ for (const field of fields2) {
8487
9219
  const value = fieldValue(ctx, field);
8488
9220
  if (value !== void 0) input[field.input ?? kebabToSnake(field.flag)] = value;
8489
9221
  }
@@ -8502,8 +9234,8 @@ function fieldValue(ctx, field) {
8502
9234
  if (field.type === "boolean") return ctx.bool(field.flag);
8503
9235
  return ctx.json(field.flag);
8504
9236
  }
8505
- function validateFields(fields, input) {
8506
- for (const field of fields) {
9237
+ function validateFields(fields2, input) {
9238
+ for (const field of fields2) {
8507
9239
  const inputName = field.input ?? kebabToSnake(field.flag);
8508
9240
  const value = input[inputName];
8509
9241
  if (field.required && value === void 0) {
@@ -8552,9 +9284,9 @@ function secretValue(ctx, secret) {
8552
9284
  if ((stat.mode & 63) !== 0) {
8553
9285
  throw validation(`--${secret.flag}-file must not be readable or writable by group/others (use chmod 600).`);
8554
9286
  }
8555
- value = nonEmptySecret(readFileSync2(file, "utf8"), secret.flag);
9287
+ value = nonEmptySecret(readFileSync3(file, "utf8"), secret.flag);
8556
9288
  } else if (ctx.bool(`${secret.flag}-stdin`)) {
8557
- value = nonEmptySecret(readFileSync2(0, "utf8"), secret.flag);
9289
+ value = nonEmptySecret(readFileSync3(0, "utf8"), secret.flag);
8558
9290
  }
8559
9291
  values.set(secret.flag, value);
8560
9292
  return value;
@@ -8731,7 +9463,7 @@ var systemConfigurationCommands = [
8731
9463
  command: "get",
8732
9464
  capabilityId: "system.receiver_detection.get",
8733
9465
  description: "Get receiver-address detection configuration.",
8734
- risk: "read",
9466
+ risk: "write",
8735
9467
  fields: [addressUrl]
8736
9468
  }),
8737
9469
  defineSystemCommand({
@@ -9120,7 +9852,7 @@ var systemMonitoringCommands = [
9120
9852
  risk: "read",
9121
9853
  fields: [
9122
9854
  { flag: "task-id", type: "string", required: true, desc: "Query-monitor task ID." },
9123
- { flag: "sql-max-chars", type: "number", min: 0, max: 1e5, desc: "Maximum returned SQL characters." }
9855
+ { flag: "sql-max-chars", type: "number", min: 0, max: 2e4, desc: "Maximum returned SQL characters. Max: 20000." }
9124
9856
  ]
9125
9857
  }),
9126
9858
  defineSystemCommand({
@@ -9223,7 +9955,7 @@ var systemMonitoringCommands = [
9223
9955
  description: "List sanitized operations-alert contacts.",
9224
9956
  risk: "read",
9225
9957
  fields: [
9226
- { flag: "limit", type: "number", min: 1, max: 200, desc: "Page size. Default: 50, max: 200." },
9958
+ { flag: "limit", type: "number", min: 1, max: 100, desc: "Page size. Default: 50, max: 100." },
9227
9959
  offsetField
9228
9960
  ]
9229
9961
  }),
@@ -9445,14 +10177,14 @@ var systemUsageCommands = [
9445
10177
  ];
9446
10178
 
9447
10179
  // src/commands/te-analysis/system/index.ts
9448
- var commands80 = [
10180
+ var commands81 = [
9449
10181
  ...systemUsageCommands,
9450
10182
  ...systemIdentityCommands,
9451
10183
  ...systemSecurityCommands,
9452
10184
  ...systemMonitoringCommands,
9453
10185
  ...systemConfigurationCommands
9454
10186
  ];
9455
- var system_default = commands80;
10187
+ var system_default = commands81;
9456
10188
 
9457
10189
  // src/commands/te-analysis/index.ts
9458
10190
  registerCapabilityGatewayRoute("analysis", { gatewayDomain: "analysis" });
@@ -9502,8 +10234,8 @@ var baseCommands = [
9502
10234
  ...alert_notice_config_default,
9503
10235
  ...system_default
9504
10236
  ];
9505
- var commands81 = [...baseCommands];
9506
- var te_analysis_default = commands81;
10237
+ var commands82 = [...baseCommands];
10238
+ var te_analysis_default = commands82;
9507
10239
  export {
9508
10240
  baseCommands,
9509
10241
  te_analysis_default as default