@thinkingai/ae-cli 6.1.19 → 6.1.21
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.
- package/README.md +96 -38
- package/README.zh.md +96 -38
- package/dist/{auth-QPEVVBKT.js → auth-XZNXFRJS.js} +236 -127
- package/dist/{capability-ASI62I4A.js → capability-FYTU3X6L.js} +80 -37
- package/dist/{chunk-QL6R6TSK.js → chunk-4NRCTUZJ.js} +27045 -477
- package/dist/{chunk-JYMGHGCE.js → chunk-57RRFUEZ.js} +42 -15
- package/dist/chunk-6ZIQV5GW.js +26 -0
- package/dist/{chunk-KZ6ZHF5J.js → chunk-7FTTULED.js} +14 -14
- package/dist/chunk-7XGFSUOM.js +623 -0
- package/dist/chunk-CCS66K4K.js +155 -0
- package/dist/{chunk-B5HMQAOM.js → chunk-DVMLWQD4.js} +8 -186
- package/dist/{chunk-KEWVSO64.js → chunk-DX5CDO34.js} +28 -18
- package/dist/chunk-EQ255HKO.js +38248 -0
- package/dist/{chunk-6QK7SYYY.js → chunk-HBGADCKA.js} +29 -37
- package/dist/{chunk-GJXRF7Y6.js → chunk-HFGZGYCG.js} +54 -81
- package/dist/chunk-JOCDD4ON.js +15 -0
- package/dist/{chunk-TKHSULJT.js → chunk-KPQY44JQ.js} +6 -0
- package/dist/{chunk-FR2EDAQM.js → chunk-MAPZ7VB6.js} +90 -2
- package/dist/chunk-V2NUHPXF.js +196 -0
- package/dist/{chunk-S5PONFBM.js → chunk-VYXXOKYS.js} +9 -9
- package/dist/{community-report-client-6OL6GBQW.js → community-report-client-CU22W53K.js} +2 -4
- package/dist/{config-XNMACCKX.js → config-XO3LI3SA.js} +8 -9
- package/dist/context-IFJI3LIT.js +46 -0
- package/dist/{data-integration-4NZGZ45E.js → data-integration-HNGUKFIC.js} +55 -44
- package/dist/index.js +122 -112
- package/dist/{local-data-upload-client-EFHDLXFG.js → local-data-upload-client-GTRIT64F.js} +4 -5
- package/dist/{memory-HBJQ2GC5.js → memory-QGPSNCQS.js} +4 -6
- package/dist/{metadata-62EWBEIG.js → metadata-DI5BMYFU.js} +8 -10
- package/dist/{model-BHLJ2QMT.js → model-RNPQXIBI.js} +4 -6
- package/dist/{personal-semantic-preference-JBVMAI7L.js → personal-semantic-preference-5C3WUXFI.js} +11 -10
- package/dist/{project-semantic-BQ4MPUS5.js → project-semantic-3LF6Q6JZ.js} +29 -25
- package/dist/{sync-MUWPRM5I.js → sync-O45NXEQY.js} +7 -8
- package/dist/{te-agent-WQZTMEK4.js → te-agent-K5MSPNHJ.js} +393 -90
- package/dist/{te-analysis-MNCG65LU.js → te-analysis-AISWCOOZ.js} +1175 -377
- package/dist/{te-community-BNE6KREL.js → te-community-4OYU3BDA.js} +10 -33
- package/dist/{te-dataops-TXLKM2W6.js → te-dataops-NFIPB6FX.js} +19 -20
- package/dist/{te-engage-TPKLRVTL.js → te-engage-BAM3GBFX.js} +13 -15
- package/dist/{te-experiment-6BYKTCY7.js → te-experiment-GUTZXZ5Z.js} +132 -16
- package/dist/te-kb-3TS73NO6.js +1992 -0
- package/dist/{te-system-44LZJDTQ.js → te-system-STMHLS5J.js} +12 -9
- package/dist/{te-team-XMP47YXE.js → te-team-3I5AOX3N.js} +6 -8
- package/dist/{update-UODFOZ4P.js → update-RZXLPCRH.js} +7 -8
- package/package.json +29 -19
- package/skills/ae-agent/SKILL.md +30 -13
- package/skills/ae-agent/references/agent-distribution.md +94 -0
- package/skills/ae-agent/references/approval-request.md +4 -0
- package/skills/ae-agent/references/command_index.md +9 -2
- package/skills/ae-agent/references/create-automation.md +20 -2
- package/skills/ae-agent/references/get-agent-context.md +70 -0
- package/skills/ae-agent/references/list-automations.md +18 -3
- package/skills/ae-agent/references/list-mcp-credentials.md +1 -1
- package/skills/ae-agent/references/mcp-token.md +3 -3
- package/skills/ae-agent/references/set-mcp-credential.md +0 -1
- package/skills/ae-agent/references/update-automation.md +18 -0
- package/skills/ae-analysis/SKILL.md +101 -79
- package/skills/ae-analysis/references/adhoc_export.md +11 -18
- package/skills/ae-analysis/references/adhoc_run.md +17 -7
- package/skills/ae-analysis/references/agent_review_detail.md +11 -0
- package/skills/ae-analysis/references/agent_review_evidence.md +46 -0
- package/skills/ae-analysis/references/agent_review_list.md +9 -0
- package/skills/ae-analysis/references/agent_review_preflight.md +96 -0
- package/skills/ae-analysis/references/agent_review_priorities_comparisons.md +76 -0
- package/skills/ae-analysis/references/agent_review_records.md +9 -0
- package/skills/ae-analysis/references/agent_review_retry.md +12 -0
- package/skills/ae-analysis/references/agent_review_review.md +16 -0
- package/skills/ae-analysis/references/agent_review_submit_to_page.md +184 -0
- package/skills/ae-analysis/references/ai_models/attribution.md +29 -0
- package/skills/ae-analysis/references/ai_models/distribution.md +40 -0
- package/skills/ae-analysis/references/ai_models/event.md +108 -0
- package/skills/ae-analysis/references/ai_models/funnel.md +46 -0
- package/skills/ae-analysis/references/ai_models/heat_map.md +26 -0
- package/skills/ae-analysis/references/ai_models/interval.md +20 -0
- package/skills/ae-analysis/references/ai_models/path.md +38 -0
- package/skills/ae-analysis/references/ai_models/prop_analysis.md +39 -0
- package/skills/ae-analysis/references/ai_models/rank_list.md +25 -0
- package/skills/ae-analysis/references/ai_models/retention.md +70 -0
- package/skills/ae-analysis/references/ai_models/revenue.md +28 -0
- package/skills/ae-analysis/references/ai_models/sql.md +74 -0
- package/skills/ae-analysis/references/ai_models/tag.md +19 -0
- package/skills/ae-analysis/references/ai_models.md +32 -453
- package/skills/ae-analysis/references/alert_create.md +7 -7
- package/skills/ae-analysis/references/alert_delete.md +4 -6
- package/skills/ae-analysis/references/alert_detail_list.md +7 -9
- package/skills/ae-analysis/references/alert_get.md +5 -7
- package/skills/ae-analysis/references/alert_job_list.md +4 -6
- package/skills/ae-analysis/references/alert_list.md +6 -8
- package/skills/ae-analysis/references/alert_notice_config_list.md +4 -6
- package/skills/ae-analysis/references/alert_start.md +5 -7
- package/skills/ae-analysis/references/alert_stop.md +5 -7
- package/skills/ae-analysis/references/alert_update.md +8 -8
- package/skills/ae-analysis/references/analysis_data_export.md +72 -0
- package/skills/ae-analysis/references/analysis_data_retrieval.md +32 -196
- package/skills/ae-analysis/references/analysis_gateway_assets.md +23 -180
- package/skills/ae-analysis/references/analysis_interpretation.md +37 -17
- package/skills/ae-analysis/references/asset_abnormal_get.md +0 -1
- package/skills/ae-analysis/references/asset_abnormal_list.md +0 -1
- package/skills/ae-analysis/references/asset_authentication_export.md +4 -0
- package/skills/ae-analysis/references/asset_authentication_list.md +7 -1
- package/skills/ae-analysis/references/asset_authentication_update.md +5 -1
- package/skills/ae-analysis/references/asset_batch_dashboard_schedule_freeze.md +8 -6
- package/skills/ae-analysis/references/asset_batch_delete.md +6 -6
- package/skills/ae-analysis/references/asset_batch_disable_auto_backup.md +4 -5
- package/skills/ae-analysis/references/asset_batch_disable_auto_update.md +5 -6
- package/skills/ae-analysis/references/asset_batch_handover.md +4 -5
- package/skills/ae-analysis/references/asset_batch_info_export.md +4 -5
- package/skills/ae-analysis/references/asset_batch_sql_export.md +5 -6
- package/skills/ae-analysis/references/asset_dependency_list.md +4 -5
- package/skills/ae-analysis/references/asset_export.md +4 -5
- package/skills/ae-analysis/references/asset_impact_list.md +5 -9
- package/skills/ae-analysis/references/asset_lineage_get.md +5 -6
- package/skills/ae-analysis/references/asset_list.md +4 -5
- package/skills/ae-analysis/references/asset_query_history_list.md +4 -8
- package/skills/ae-analysis/references/asset_recent_list.md +0 -1
- package/skills/ae-analysis/references/asset_search.md +12 -9
- package/skills/ae-analysis/references/asset_url_get.md +3 -4
- package/skills/ae-analysis/references/bi_panel_copy.md +2 -2
- package/skills/ae-analysis/references/bi_panel_page_data_export.md +4 -12
- package/skills/ae-analysis/references/bi_panel_page_data_run.md +2 -0
- package/skills/ae-analysis/references/catalog_export.md +4 -17
- package/skills/ae-analysis/references/catalog_list.md +4 -4
- package/skills/ae-analysis/references/check_delete.md +5 -7
- package/skills/ae-analysis/references/check_export.md +11 -11
- package/skills/ae-analysis/references/check_get.md +8 -10
- package/skills/ae-analysis/references/check_list.md +4 -6
- package/skills/ae-analysis/references/check_retry.md +8 -10
- package/skills/ae-analysis/references/check_run.md +2 -4
- package/skills/ae-analysis/references/command_index.md +46 -28
- package/skills/ae-analysis/references/cross_source_config.md +84 -0
- package/skills/ae-analysis/references/dashboard_report_data_export.md +5 -13
- package/skills/ae-analysis/references/dashboard_report_data_run.md +1 -1
- package/skills/ae-analysis/references/dashboard_update.md +15 -4
- package/skills/ae-analysis/references/datatable_columns_get.md +0 -1
- package/skills/ae-analysis/references/datatable_influence_list.md +0 -1
- package/skills/ae-analysis/references/datatable_version_get.md +0 -1
- package/skills/ae-analysis/references/datatable_version_list.md +0 -1
- package/skills/ae-analysis/references/debug_device_add.md +1 -2
- package/skills/ae-analysis/references/drilldown_entities_export.md +3 -3
- package/skills/ae-analysis/references/drilldown_events_export.md +3 -2
- package/skills/ae-analysis/references/drilldown_user_events_export.md +2 -2
- package/skills/ae-analysis/references/entity_detail_export.md +3 -2
- package/skills/ae-analysis/references/entity_detail_run.md +1 -0
- package/skills/ae-analysis/references/event_blacklist_add.md +5 -7
- package/skills/ae-analysis/references/event_blacklist_list.md +4 -6
- package/skills/ae-analysis/references/event_blacklist_update.md +6 -8
- package/skills/ae-analysis/references/event_changelog_list.md +0 -1
- package/skills/ae-analysis/references/event_create.md +0 -1
- package/skills/ae-analysis/references/event_detail_export.md +3 -2
- package/skills/ae-analysis/references/event_detail_run.md +1 -0
- package/skills/ae-analysis/references/event_export.md +0 -1
- package/skills/ae-analysis/references/event_get.md +0 -1
- package/skills/ae-analysis/references/event_hide_update.md +0 -1
- package/skills/ae-analysis/references/event_influence_list.md +0 -1
- package/skills/ae-analysis/references/event_list.md +0 -1
- package/skills/ae-analysis/references/event_property_bundle_export.md +5 -14
- package/skills/ae-analysis/references/event_property_bundle_import.md +2 -6
- package/skills/ae-analysis/references/event_relation_update.md +0 -1
- package/skills/ae-analysis/references/event_update.md +0 -1
- package/skills/ae-analysis/references/exchange_config_update.md +0 -1
- package/skills/ae-analysis/references/exchange_rate_refresh.md +0 -1
- package/skills/ae-analysis/references/exchange_rule_list.md +0 -1
- package/skills/ae-analysis/references/exchange_rule_update.md +0 -1
- package/skills/ae-analysis/references/exchange_rule_validate.md +0 -1
- package/skills/ae-analysis/references/governance_recommendation_decisions.md +23 -0
- package/skills/ae-analysis/references/governance_recommendation_export.md +108 -0
- package/skills/ae-analysis/references/governance_recommendation_submit.md +41 -0
- package/skills/ae-analysis/references/history_tag_data_drilldown_export.md +4 -4
- package/skills/ae-analysis/references/history_tag_data_export.md +3 -3
- package/skills/ae-analysis/references/ingest_error_list.md +7 -9
- package/skills/ae-analysis/references/ingest_summary.md +6 -8
- package/skills/ae-analysis/references/live_data_export.md +10 -10
- package/skills/ae-analysis/references/live_data_list.md +7 -9
- package/skills/ae-analysis/references/metadata_resolution.md +78 -0
- package/skills/ae-analysis/references/metric_export.md +0 -1
- package/skills/ae-analysis/references/metric_get.md +0 -1
- package/skills/ae-analysis/references/metric_list.md +4 -5
- package/skills/ae-analysis/references/metric_update.md +0 -1
- package/skills/ae-analysis/references/operation_record_export.md +4 -5
- package/skills/ae-analysis/references/operation_record_list.md +4 -5
- package/skills/ae-analysis/references/personal_semantic_preference_list.md +18 -1
- package/skills/ae-analysis/references/plan_change_log_export.md +10 -10
- package/skills/ae-analysis/references/plan_change_log_list.md +4 -6
- package/skills/ae-analysis/references/plan_delete_items.md +2 -4
- package/skills/ae-analysis/references/plan_export.md +9 -9
- package/skills/ae-analysis/references/plan_generate.md +2 -4
- package/skills/ae-analysis/references/plan_get.md +4 -6
- package/skills/ae-analysis/references/plan_import_excel.md +6 -8
- package/skills/ae-analysis/references/plan_save_items.md +2 -4
- package/skills/ae-analysis/references/plan_sync_from_meta.md +4 -6
- package/skills/ae-analysis/references/project_access_detail_get.md +0 -1
- package/skills/ae-analysis/references/project_data_power_get.md +0 -1
- package/skills/ae-analysis/references/project_data_power_list.md +0 -1
- package/skills/ae-analysis/references/project_data_power_upsert.md +0 -1
- package/skills/ae-analysis/references/project_entity_create.md +0 -1
- package/skills/ae-analysis/references/project_entity_event_list.md +0 -1
- package/skills/ae-analysis/references/project_entity_get.md +0 -1
- package/skills/ae-analysis/references/project_entity_list.md +0 -1
- package/skills/ae-analysis/references/project_entity_update.md +0 -1
- package/skills/ae-analysis/references/project_function_list.md +0 -1
- package/skills/ae-analysis/references/project_info_get.md +0 -1
- package/skills/ae-analysis/references/project_info_list.md +0 -1
- package/skills/ae-analysis/references/project_info_update.md +0 -1
- package/skills/ae-analysis/references/project_mark_time_create.md +0 -1
- package/skills/ae-analysis/references/project_mark_time_list.md +0 -1
- package/skills/ae-analysis/references/project_mark_time_update.md +0 -1
- package/skills/ae-analysis/references/project_member_add.md +6 -5
- package/skills/ae-analysis/references/project_member_batch_update.md +0 -1
- package/skills/ae-analysis/references/project_member_candidate_list.md +4 -3
- package/skills/ae-analysis/references/project_member_handover_run.md +2 -3
- package/skills/ae-analysis/references/project_member_list.md +0 -1
- package/skills/ae-analysis/references/project_member_receiver_list.md +0 -1
- package/skills/ae-analysis/references/project_member_update.md +0 -1
- package/skills/ae-analysis/references/project_owner_update.md +0 -1
- package/skills/ae-analysis/references/project_permission_binding_list.md +0 -1
- package/skills/ae-analysis/references/project_role_function_list.md +0 -1
- package/skills/ae-analysis/references/project_role_get.md +0 -1
- package/skills/ae-analysis/references/project_role_list.md +0 -1
- package/skills/ae-analysis/references/project_role_upsert.md +32 -2
- package/skills/ae-analysis/references/project_role_user_list.md +0 -1
- package/skills/ae-analysis/references/project_semantic_knowledge_wiki.md +214 -0
- package/skills/ae-analysis/references/project_semantic_knowledge_wiki_plan_schema.md +93 -0
- package/skills/ae-analysis/references/project_timezone_get.md +0 -1
- package/skills/ae-analysis/references/project_timezone_overview.md +0 -1
- package/skills/ae-analysis/references/project_timezone_update.md +0 -1
- package/skills/ae-analysis/references/project_user_id_items_update.md +0 -1
- package/skills/ae-analysis/references/property_changelog_list.md +0 -1
- package/skills/ae-analysis/references/property_create.md +0 -1
- package/skills/ae-analysis/references/property_export.md +0 -1
- package/skills/ae-analysis/references/property_get.md +0 -1
- package/skills/ae-analysis/references/property_hide_update.md +0 -1
- package/skills/ae-analysis/references/property_influence_list.md +0 -1
- package/skills/ae-analysis/references/property_list.md +3 -4
- package/skills/ae-analysis/references/property_related_events.md +0 -1
- package/skills/ae-analysis/references/property_relation_update.md +0 -1
- package/skills/ae-analysis/references/property_update.md +0 -1
- package/skills/ae-analysis/references/report_create.md +4 -2
- package/skills/ae-analysis/references/report_data_export.md +11 -9
- package/skills/ae-analysis/references/report_data_run.md +14 -7
- package/skills/ae-analysis/references/report_get.md +5 -3
- package/skills/ae-analysis/references/report_list.md +2 -0
- package/skills/ae-analysis/references/report_update.md +5 -3
- package/skills/ae-analysis/references/rule_create.md +5 -6
- package/skills/ae-analysis/references/rule_delete.md +5 -5
- package/skills/ae-analysis/references/rule_list.md +3 -4
- package/skills/ae-analysis/references/rule_schema.md +3 -4
- package/skills/ae-analysis/references/rule_update.md +5 -6
- package/skills/ae-analysis/references/sdk_sample_generate.md +2 -4
- package/skills/ae-analysis/references/sql_table_columns.md +1 -1
- package/skills/ae-analysis/references/super_metadata_batch_create.md +1 -1
- package/skills/ae-analysis/references/super_metadata_batch_edit.md +1 -1
- package/skills/ae-analysis/references/system_member_add.md +1 -2
- package/skills/ae-analysis/references/system_member_status_update.md +1 -1
- package/skills/ae-analysis/references/system_ops_alert_contact_list.md +1 -1
- package/skills/ae-analysis/references/system_ops_alert_contact_test.md +0 -1
- package/skills/ae-analysis/references/system_query_monitor_overview.md +3 -3
- package/skills/ae-analysis/references/system_query_task_export.md +4 -14
- package/skills/ae-analysis/references/system_query_task_get.md +1 -1
- package/skills/ae-analysis/references/system_query_task_list.md +5 -6
- package/skills/ae-analysis/references/system_receiver_address_upsert.md +3 -3
- package/skills/ae-analysis/references/system_receiver_detection_get.md +1 -1
- package/skills/ae-analysis/references/system_third_party_login_disable.md +1 -1
- package/skills/ae-analysis/references/system_usage_trend_export.md +3 -12
- package/skills/ae-analysis/references/user_cluster_list.md +1 -1
- package/skills/ae-analysis/references/user_cluster_member_export.md +4 -4
- package/skills/ae-analysis/references/user_tag_create.md +23 -1
- package/skills/ae-analysis/references/user_tag_list.md +1 -1
- package/skills/ae-analysis/references/user_tag_member_export.md +4 -4
- package/skills/ae-analysis/references/user_tag_models.md +9 -1
- package/skills/ae-analysis/references/user_tag_update.md +14 -2
- package/skills/ae-analysis/references/virtual_event_create.md +10 -5
- package/skills/ae-analysis/references/virtual_event_get.md +0 -1
- package/skills/ae-analysis/references/virtual_property_create.md +0 -1
- package/skills/ae-analysis/references/virtual_property_sql_rule_update.md +0 -1
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/build-project-semantic-wiki.mjs +1054 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/company-kb.mjs +112 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/default-compile-rules.md +30 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/generate-build-ir.mjs +2735 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/package-wiki-source-zip.mjs +376 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/plan-kb-source-sync.mjs +264 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/precompiled-source.mjs +49 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/upload-kb-sources-concurrently.mjs +200 -0
- package/skills/ae-analysis/scripts/read_results.py +197 -0
- package/skills/ae-analysis-global/SKILL.md +1 -1
- package/skills/ae-capability/SKILL.md +1 -1
- package/skills/ae-community/SKILL.md +1 -1
- package/skills/ae-current-context/SKILL.md +53 -0
- package/skills/ae-data-integration/SKILL.md +6 -4
- package/skills/ae-data-integration/references/dimension-routing.md +36 -0
- package/skills/ae-data-integration/references/lark-bitable-source.md +288 -0
- package/skills/ae-data-integration/references/lark-sheet-source.md +130 -0
- package/skills/ae-data-integration/references/local-analysis.md +2 -0
- package/skills/ae-data-integration/references/manual-export-source.md +83 -0
- package/skills/ae-data-integration/references/reuse.md +2 -0
- package/skills/ae-data-integration/references/sink-upload.md +32 -0
- package/skills/ae-data-integration/references/source-inspect.md +1 -1
- package/skills/ae-data-integration/references/tracking-plan.md +5 -2
- package/skills/ae-data-integration/references/transform.md +1 -1
- package/skills/ae-data-integration/references/ue-mapping.md +7 -4
- package/skills/ae-data-integration/references/ue-routing.md +17 -1
- package/skills/ae-data-integration-helper/SKILL.md +5 -5
- package/skills/ae-data-integration-helper/references/android_sdk_faq.md +3 -3
- package/skills/ae-data-integration-helper/references/c_sdk_faq.md +3 -3
- package/skills/ae-data-integration-helper/references/cocoscreator_sdk_faq.md +1 -1
- package/skills/ae-data-integration-helper/references/cpp_server_sdk_faq.md +3 -3
- package/skills/ae-data-integration-helper/references/ios_sdk_faq.md +1 -1
- package/skills/ae-data-integration-helper/references/java_sdk_faq.md +3 -3
- package/skills/ae-data-integration-helper/references/javascript_sdk_faq.md +1 -1
- package/skills/ae-data-integration-helper/references/logbus2_guide.md +1 -1
- package/skills/ae-data-integration-helper/references/logbus2_parser_plugin.md +2 -2
- package/skills/ae-data-integration-helper/references/minigame_sdk_faq.md +2 -2
- package/skills/ae-data-integration-helper/references/miniprogram_sdk_faq.md +1 -1
- package/skills/ae-data-integration-helper/references/python_sdk_faq.md +2 -2
- package/skills/ae-data-integration-helper/references/restful_api_notes.md +2 -2
- package/skills/ae-data-integration-helper/references/sdk_log_guide.md +3 -3
- package/skills/ae-data-integration-helper/references/sdk_usage_notes.md +11 -11
- package/skills/ae-data-integration-helper/references/unity_sdk_faq.md +1 -1
- package/skills/ae-dataops/SKILL.md +1 -1
- package/skills/ae-engage/SKILL.md +4 -3
- package/skills/ae-engage/references/build-task-save-guide.md +3 -0
- package/skills/ae-engage/references/flow-metric-update.md +115 -1
- package/skills/ae-engage/references/save-flow.md +3 -0
- package/skills/ae-engage/references/save-task.md +21 -0
- package/skills/ae-engage/references/task-metric-update.md +151 -0
- package/skills/ae-experiment/SKILL.md +14 -7
- package/skills/ae-experiment/references/save_submit_external_experiment.md +52 -0
- package/skills/ae-experiment-design/SKILL.md +3 -3
- package/skills/ae-experiment-design/references/platform-operations.md +1 -1
- package/skills/ae-experiment-insight/SKILL.md +2 -2
- package/skills/ae-experiment-insight/references/platform-operations.md +1 -1
- package/skills/ae-generate-tracking-code/SKILL.md +2 -1
- package/skills/ae-generate-tracking-code/references/client-sdk-insert.md +1 -1
- package/skills/ae-generate-tracking-code/references/datax-config.md +1 -1
- package/skills/ae-generate-tracking-code/references/logbus-config.md +1 -1
- package/skills/ae-generate-tracking-code/references/modes.md +1 -1
- package/skills/ae-generate-tracking-code/references/server-sdk-insert.md +5 -5
- package/skills/ae-generate-tracking-code/references/snippet-delivery.md +3 -3
- package/skills/ae-generate-tracking-plan/SKILL.md +27 -15
- package/skills/ae-generate-tracking-plan/references/business-dimension-mapping.md +1 -1
- package/skills/ae-generate-tracking-plan/references/te-api.md +1 -0
- package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +3 -2
- package/skills/ae-kb/SKILL.md +147 -37
- package/skills/ae-kb/references/analysis-workflow.md +292 -0
- package/skills/ae-kb/references/query-workflow.md +59 -29
- package/skills/ae-kb/references/source-mutations.md +95 -0
- package/skills/ae-kb/references/versions.md +46 -0
- package/skills/ae-kb-discovery/SKILL.md +5 -1
- package/skills/ae-metadata/SKILL.md +1 -1
- package/skills/ae-migrate-tracking-code/SKILL.md +195 -0
- package/skills/ae-migrate-tracking-code/references/ae-preset-properties.md +76 -0
- package/skills/ae-migrate-tracking-code/references/ir.md +167 -0
- package/skills/ae-migrate-tracking-code/references/mapping-framework.md +112 -0
- package/skills/ae-migrate-tracking-code/references/providers/README.md +58 -0
- package/skills/ae-migrate-tracking-code/references/providers/amplitude.md +208 -0
- package/skills/ae-migrate-tracking-code/references/providers/firebase.md +160 -0
- package/skills/ae-migrate-tracking-code/references/providers/ga4.md +92 -0
- package/skills/ae-migrate-tracking-code/references/providers/mixpanel.md +150 -0
- package/skills/ae-migrate-tracking-code/references/providers/sensors-data.md +146 -0
- package/skills/ae-project-semantic/SKILL.md +1 -1
- package/skills/ae-system/SKILL.md +5 -5
- package/skills/ae-team/SKILL.md +2 -2
- package/skills/ae-use-agent/SKILL.md +42 -0
- package/skills/ae-use-agent/references/local-agent.md +114 -0
- package/dist/auth-UMJAA72O.js +0 -15
- package/dist/chunk-533JK3YX.js +0 -72
- package/dist/chunk-DKEXH6Q5.js +0 -72
- package/dist/chunk-O6K2ODUE.js +0 -318
- package/dist/chunk-RWXIXOZG.js +0 -326
- package/dist/client-N7NGZUNI.js +0 -204
- package/dist/te-kb-BUD6N3NI.js +0 -1222
- package/skills/ae-agent/references/auto-provision-mcp-credentials.md +0 -57
- package/skills/ae-analysis/metadata_resolution.md +0 -184
|
@@ -7,17 +7,12 @@ import {
|
|
|
7
7
|
waitForAnalysisRun,
|
|
8
8
|
withAsyncArtifactLifecycle,
|
|
9
9
|
withInterruptSignal
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-VYXXOKYS.js";
|
|
11
11
|
import {
|
|
12
|
-
createCapabilityCommand
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
resolveGatewayDomain
|
|
17
|
-
} from "./chunk-TKHSULJT.js";
|
|
18
|
-
import {
|
|
19
|
-
withOutputMetadata
|
|
20
|
-
} from "./chunk-KEWVSO64.js";
|
|
12
|
+
createCapabilityCommand,
|
|
13
|
+
definitionIntentSnapshotFlag,
|
|
14
|
+
modelDefinitionIntentSnapshotFlag
|
|
15
|
+
} from "./chunk-CCS66K4K.js";
|
|
21
16
|
import {
|
|
22
17
|
CapabilityGatewayError,
|
|
23
18
|
buildCapabilityGatewayUrl,
|
|
@@ -28,17 +23,22 @@ import {
|
|
|
28
23
|
requestCapabilityGatewayWithEnvelope,
|
|
29
24
|
uploadInputFile,
|
|
30
25
|
validateCapability
|
|
31
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-HFGZGYCG.js";
|
|
27
|
+
import {
|
|
28
|
+
registerCapabilityGatewayRoute,
|
|
29
|
+
resolveGatewayDomain
|
|
30
|
+
} from "./chunk-KPQY44JQ.js";
|
|
31
|
+
import {
|
|
32
|
+
withOutputMetadata
|
|
33
|
+
} from "./chunk-DX5CDO34.js";
|
|
32
34
|
import "./chunk-Y74WTIKJ.js";
|
|
33
35
|
import {
|
|
34
36
|
getCliToken
|
|
35
|
-
} from "./chunk-
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-KZ6ZHF5J.js";
|
|
37
|
+
} from "./chunk-7XGFSUOM.js";
|
|
38
|
+
import "./chunk-7FTTULED.js";
|
|
38
39
|
import {
|
|
39
40
|
CliValidationError
|
|
40
|
-
} from "./chunk-
|
|
41
|
-
import "./chunk-FR2EDAQM.js";
|
|
41
|
+
} from "./chunk-MAPZ7VB6.js";
|
|
42
42
|
|
|
43
43
|
// src/commands/te-analysis/capability-shared.ts
|
|
44
44
|
var ANALYSIS_GATEWAY_CLI_SERVICES = /* @__PURE__ */ new Set(["project", "system"]);
|
|
@@ -335,6 +335,9 @@ function optionalString(ctx, name) {
|
|
|
335
335
|
const value = ctx.str(name);
|
|
336
336
|
return value === "" ? void 0 : value;
|
|
337
337
|
}
|
|
338
|
+
function optionalStringPreserveEmpty(ctx, name) {
|
|
339
|
+
return ctx.has?.(name) ? ctx.str(name) : optionalString(ctx, name);
|
|
340
|
+
}
|
|
338
341
|
function optionalNumber(ctx, name) {
|
|
339
342
|
const value = ctx.str(name);
|
|
340
343
|
return value === "" ? void 0 : Number(value);
|
|
@@ -403,99 +406,43 @@ function validateCatalogExportFlags(ctx) {
|
|
|
403
406
|
throw new CliValidationError("--output must use the .jsonl extension");
|
|
404
407
|
}
|
|
405
408
|
}
|
|
406
|
-
function catalogArtifactMaterializer(
|
|
407
|
-
|
|
408
|
-
|
|
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(),
|
|
409
421
|
runId,
|
|
410
422
|
artifactId,
|
|
411
423
|
output,
|
|
412
|
-
force,
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
const
|
|
417
|
-
const
|
|
418
|
-
|
|
419
|
-
`${basename(outputPath, extname(outputPath))}.meta.json`
|
|
420
|
-
);
|
|
421
|
-
await mkdir(dirname(outputPath), { recursive: true });
|
|
422
|
-
await assertRegularFileOrMissing(outputPath, force);
|
|
423
|
-
await assertRegularFileOrMissing(metaPath, force);
|
|
424
|
-
const suffix = `${process.pid}.${randomBytes(8).toString("hex")}`;
|
|
425
|
-
const partPath = `${outputPath}.part.${suffix}`;
|
|
426
|
-
const metaPartPath = `${metaPath}.part.${suffix}`;
|
|
427
|
-
let handle;
|
|
428
|
-
try {
|
|
429
|
-
const download = await downloadAnalysisArtifact(
|
|
430
|
-
ctx.host(),
|
|
431
|
-
runId,
|
|
432
|
-
artifactId,
|
|
433
|
-
partPath,
|
|
434
|
-
{ force: true, signal, ensureReady: false }
|
|
435
|
-
);
|
|
436
|
-
const hash = createHash("sha256");
|
|
437
|
-
let bytes = 0;
|
|
438
|
-
let rows = 0;
|
|
439
|
-
for await (const chunk of createReadStream(partPath)) {
|
|
440
|
-
const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
|
|
441
|
-
hash.update(buffer);
|
|
442
|
-
bytes += buffer.length;
|
|
443
|
-
for (const value of buffer) {
|
|
444
|
-
if (value === 10) rows++;
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
const contentSha256 = hash.digest("hex");
|
|
448
|
-
const token = await getCliToken(ctx.host());
|
|
449
|
-
const metadata = {
|
|
450
|
-
schema_version: 1,
|
|
451
|
-
resource_type: resourceType,
|
|
452
|
-
host: ctx.host(),
|
|
453
|
-
project_id: ctx.num("project-id"),
|
|
454
|
-
principal_fingerprint: `sha256:${createHash("sha256").update(token).digest("hex")}`,
|
|
455
|
-
generated_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
456
|
-
row_count: rows,
|
|
457
|
-
complete: true,
|
|
458
|
-
content_sha256: contentSha256,
|
|
459
|
-
run_id: runId,
|
|
460
|
-
artifact_id: artifactId
|
|
461
|
-
};
|
|
462
|
-
handle = await open(metaPartPath, "w", 384);
|
|
463
|
-
await handle.write(`${JSON.stringify(metadata)}
|
|
464
|
-
`, void 0, "utf8");
|
|
465
|
-
await handle.sync();
|
|
466
|
-
await handle.close();
|
|
467
|
-
handle = void 0;
|
|
468
|
-
await publishCatalogPair(partPath, outputPath, metaPartPath, metaPath, suffix);
|
|
469
|
-
return {
|
|
470
|
-
...finalDescriptor,
|
|
471
|
-
...download,
|
|
472
|
-
output_path: outputPath,
|
|
473
|
-
metadata_path: metaPath,
|
|
474
|
-
format: "jsonl",
|
|
475
|
-
row_count: rows,
|
|
476
|
-
bytes,
|
|
477
|
-
content_sha256: contentSha256,
|
|
478
|
-
complete: true
|
|
479
|
-
};
|
|
480
|
-
} catch (error) {
|
|
481
|
-
await handle?.close().catch(() => void 0);
|
|
482
|
-
await rm(partPath, { force: true }).catch(() => void 0);
|
|
483
|
-
await rm(metaPartPath, { force: true }).catch(() => void 0);
|
|
484
|
-
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++;
|
|
485
431
|
}
|
|
432
|
+
}
|
|
433
|
+
return {
|
|
434
|
+
...finalDescriptor,
|
|
435
|
+
...download,
|
|
436
|
+
format: "jsonl",
|
|
437
|
+
row_count: rows,
|
|
438
|
+
complete: true
|
|
486
439
|
};
|
|
487
440
|
}
|
|
488
441
|
async function preflightCatalogArtifactOutput({
|
|
489
442
|
output,
|
|
490
443
|
force
|
|
491
444
|
}) {
|
|
492
|
-
|
|
493
|
-
const metaPath = join(
|
|
494
|
-
dirname(outputPath),
|
|
495
|
-
`${basename(outputPath, extname(outputPath))}.meta.json`
|
|
496
|
-
);
|
|
497
|
-
await assertRegularFileOrMissing(outputPath, force);
|
|
498
|
-
await assertRegularFileOrMissing(metaPath, force);
|
|
445
|
+
await assertRegularFileOrMissing(resolve(output), force);
|
|
499
446
|
}
|
|
500
447
|
function validateQueriesFlag(ctx) {
|
|
501
448
|
const queries = ctx.json("queries");
|
|
@@ -1181,8 +1128,8 @@ var metadataVirtualEventCreate = createAnalysisMetaCapabilityCommand({
|
|
|
1181
1128
|
{ name: "event-name", type: "string", required: false, desc: "Virtual event name. Must start with 'ta@'." },
|
|
1182
1129
|
{ name: "event-desc", type: "string", required: false, desc: "Virtual event display name." },
|
|
1183
1130
|
{ name: "remark", type: "string", required: false, desc: "Optional virtual event remark." },
|
|
1184
|
-
{ name: "events", type: "json", required: false, desc: "Event array using snake_case event_name and optional AI-facing filter
|
|
1185
|
-
{ name: "filter", type: "json", required: false, desc: "Optional AI-facing global filter
|
|
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." },
|
|
1186
1133
|
{ name: "override", type: "boolean", required: false, desc: "Whether to override an existing virtual event rule." }
|
|
1187
1134
|
],
|
|
1188
1135
|
risk: "write",
|
|
@@ -1538,21 +1485,43 @@ var commands5 = [
|
|
|
1538
1485
|
var metric_default = commands5;
|
|
1539
1486
|
|
|
1540
1487
|
// src/commands/te-analysis/meta/asset/search.ts
|
|
1541
|
-
var
|
|
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({
|
|
1542
1506
|
resource: "asset",
|
|
1543
1507
|
command: "search",
|
|
1544
|
-
capabilityId: "
|
|
1545
|
-
description: "Search
|
|
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.",
|
|
1546
1510
|
flags: [
|
|
1547
1511
|
projectIdFlag,
|
|
1548
|
-
|
|
1512
|
+
requiredQueriesFlag,
|
|
1513
|
+
assetTypesFlag,
|
|
1514
|
+
ownTypesFlag,
|
|
1549
1515
|
directoryLimitFlag,
|
|
1550
1516
|
directoryOffsetFlag
|
|
1551
1517
|
],
|
|
1552
1518
|
risk: "read",
|
|
1519
|
+
validate: validateQueriesFlag,
|
|
1553
1520
|
buildInput: (ctx) => compactInput({
|
|
1554
1521
|
...projectInput(ctx),
|
|
1555
|
-
|
|
1522
|
+
queries: optionalJson(ctx, "queries"),
|
|
1523
|
+
asset_types: optionalJson(ctx, "asset-types"),
|
|
1524
|
+
own_types: optionalJson(ctx, "own-types"),
|
|
1556
1525
|
limit: optionalNumber(ctx, "limit"),
|
|
1557
1526
|
offset: optionalNumber(ctx, "offset")
|
|
1558
1527
|
})
|
|
@@ -1655,13 +1624,11 @@ var ruleIdFlag = { name: "rule-id", type: "number", required: false, desc: "Gove
|
|
|
1655
1624
|
var ruleNameFlag = { name: "rule-name", type: "string", required: false, desc: "Governance rule name." };
|
|
1656
1625
|
var commentFlag = { name: "comment", type: "string", required: false, desc: "Governance rule comment." };
|
|
1657
1626
|
var nodeIdsFlag = { name: "node-ids", type: "json", required: false, desc: "Asset node ID JSON array." };
|
|
1658
|
-
var reportsVersionFlag = { name: "reports-version", type: "number", required: false, desc: "Dashboard reports version." };
|
|
1659
|
-
var zoneOffsetFlag = { name: "zone-offset", type: "number", required: false, desc: "Dashboard zone offset." };
|
|
1660
1627
|
var scheduleUiConfigFlag = { name: "schedule-ui-config", type: "json", required: false, desc: "Dashboard schedule UI config JSON." };
|
|
1661
1628
|
var dashboardStatusFlag = { name: "dashboard-status", type: "string", required: false, desc: "Dashboard status." };
|
|
1662
1629
|
var refreshTypeFlag = { name: "refresh-type", type: "number", required: false, desc: "Dashboard refresh type: 1 enabled, 0 disabled." };
|
|
1663
1630
|
var cacheConfigFlag = { name: "cache-config", type: "json", required: false, desc: "Dashboard cache config JSON." };
|
|
1664
|
-
var toUserIdFlag = { name: "to-user-id", type: "number", required:
|
|
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." };
|
|
1665
1632
|
var clearHistoryTagFlag = { name: "clear-history-tag", type: "number", required: false, desc: "Whether to clear tag history: 1 yes, 0 no." };
|
|
1666
1633
|
var typeFlag = { name: "type", type: "string", required: false, desc: "Batch operation type." };
|
|
1667
1634
|
var statusFlag = { name: "status", type: "json", required: false, desc: "Operation status JSON array." };
|
|
@@ -1680,7 +1647,7 @@ var readers = {
|
|
|
1680
1647
|
rule_id: (ctx) => optionalNumber(ctx, "rule-id"),
|
|
1681
1648
|
rule_name: (ctx) => optionalString(ctx, "rule-name"),
|
|
1682
1649
|
comment: (ctx) => optionalString(ctx, "comment"),
|
|
1683
|
-
node_ids: (ctx) =>
|
|
1650
|
+
node_ids: (ctx) => optionalJson(ctx, "node-ids"),
|
|
1684
1651
|
reports_version: (ctx) => optionalNumber(ctx, "reports-version"),
|
|
1685
1652
|
zone_offset: (ctx) => optionalNumber(ctx, "zone-offset"),
|
|
1686
1653
|
schedule_ui_config: (ctx) => optionalJson(ctx, "schedule-ui-config"),
|
|
@@ -1697,37 +1664,79 @@ var readers = {
|
|
|
1697
1664
|
limit: (ctx) => optionalNumber(ctx, "limit"),
|
|
1698
1665
|
offset: (ctx) => optionalNumber(ctx, "offset")
|
|
1699
1666
|
};
|
|
1700
|
-
function assetGovernanceInput(ctx,
|
|
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
|
+
}
|
|
1701
1675
|
const input = {
|
|
1702
|
-
...
|
|
1703
|
-
|
|
1676
|
+
...payload,
|
|
1677
|
+
...projectInput(ctx)
|
|
1704
1678
|
};
|
|
1705
|
-
for (const field of
|
|
1706
|
-
|
|
1679
|
+
for (const field of fields2) {
|
|
1680
|
+
const value = readers[field]?.(ctx);
|
|
1681
|
+
if (value !== void 0) input[field] = value;
|
|
1707
1682
|
}
|
|
1708
|
-
|
|
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;
|
|
1709
1695
|
}
|
|
1710
1696
|
|
|
1711
1697
|
// src/core/resource-url.ts
|
|
1712
|
-
|
|
1698
|
+
var LOCAL_BACKEND_PORTS = /* @__PURE__ */ new Set(["8992", "8996"]);
|
|
1699
|
+
function normalizeResourceUrlFields(node, host, sourceHost = host) {
|
|
1713
1700
|
if (!node || typeof node !== "object") return;
|
|
1714
1701
|
const obj = node;
|
|
1715
1702
|
for (const [key, value] of Object.entries(obj)) {
|
|
1716
1703
|
if (typeof value === "string") {
|
|
1717
1704
|
if (/url|link/i.test(key) || value.includes("/#/")) {
|
|
1718
|
-
obj[key] =
|
|
1705
|
+
obj[key] = normalizeResourceUrls(value, host, sourceHost);
|
|
1719
1706
|
}
|
|
1720
1707
|
} else if (value && typeof value === "object") {
|
|
1721
|
-
normalizeResourceUrlFields(value, host);
|
|
1708
|
+
normalizeResourceUrlFields(value, host, sourceHost);
|
|
1722
1709
|
}
|
|
1723
1710
|
}
|
|
1724
1711
|
}
|
|
1725
|
-
function
|
|
1712
|
+
function normalizeResourceUrls(s, host, sourceHost = host) {
|
|
1726
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
|
+
}
|
|
1727
1718
|
s = s.replace(/\]\((\/(?!\/)[^)]*)\)/g, `](${base}$1)`);
|
|
1728
1719
|
if (/^\/(?!\/)/.test(s)) s = base + s;
|
|
1729
1720
|
return s;
|
|
1730
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
|
+
}
|
|
1731
1740
|
|
|
1732
1741
|
// src/commands/te-analysis/meta/asset/url-get.ts
|
|
1733
1742
|
var analysisMetaAssetUrlGet = createAnalysisMetaCapabilityCommand({
|
|
@@ -1746,7 +1755,7 @@ var analysisMetaAssetUrlGet = createAnalysisMetaCapabilityCommand({
|
|
|
1746
1755
|
|
|
1747
1756
|
// src/commands/te-analysis/meta/asset/index.ts
|
|
1748
1757
|
var commands6 = [
|
|
1749
|
-
|
|
1758
|
+
analysisAssetSearch,
|
|
1750
1759
|
metadataAssetRecentList,
|
|
1751
1760
|
metadataAssetAuthenticationList,
|
|
1752
1761
|
metadataAssetAuthenticationUpdate,
|
|
@@ -2009,9 +2018,9 @@ var metadataCatalogExport = createAnalysisMetaCapabilityCommand({
|
|
|
2009
2018
|
capabilityId: "metadata.catalog.export",
|
|
2010
2019
|
asyncArtifact: {
|
|
2011
2020
|
preflightOutput: preflightCatalogArtifactOutput,
|
|
2012
|
-
materialize: catalogArtifactMaterializer
|
|
2021
|
+
materialize: catalogArtifactMaterializer
|
|
2013
2022
|
},
|
|
2014
|
-
description: "Export the complete accessible analysis metadata catalog to
|
|
2023
|
+
description: "Export the complete accessible analysis metadata catalog to one local JSONL file.",
|
|
2015
2024
|
flags: [projectIdFlag, requestIdFlag, asyncTimeoutSecondsFlag, certificationScopeFlag],
|
|
2016
2025
|
risk: "read",
|
|
2017
2026
|
validate: validateCatalogExportFlags,
|
|
@@ -2093,8 +2102,653 @@ var metadataCatalogList = createAnalysisMetaCapabilityCommand({
|
|
|
2093
2102
|
var commands10 = [metadataCatalogList, metadataCatalogExport];
|
|
2094
2103
|
var catalog_default = commands10;
|
|
2095
2104
|
|
|
2096
|
-
// src/commands/te-analysis/meta/
|
|
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
|
|
2097
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 = [
|
|
2098
2752
|
...event_default,
|
|
2099
2753
|
...property_default,
|
|
2100
2754
|
...virtual_event_default,
|
|
@@ -2104,9 +2758,11 @@ var commands11 = [
|
|
|
2104
2758
|
...exchange_default,
|
|
2105
2759
|
...super_metadata_default,
|
|
2106
2760
|
...datatable_default,
|
|
2107
|
-
...catalog_default
|
|
2761
|
+
...catalog_default,
|
|
2762
|
+
...governance_recommendation_default,
|
|
2763
|
+
...agent_review_default
|
|
2108
2764
|
];
|
|
2109
|
-
var meta_default =
|
|
2765
|
+
var meta_default = commands12;
|
|
2110
2766
|
|
|
2111
2767
|
// src/commands/te-analysis/meta/asset/usage-list.ts
|
|
2112
2768
|
var analysisMetaAssetUsageList = createAnalysisGovernanceCapabilityCommand({
|
|
@@ -2158,9 +2814,9 @@ var analysisMetaAssetImpactList = createAnalysisGovernanceCapabilityCommand({
|
|
|
2158
2814
|
command: "list",
|
|
2159
2815
|
capabilityId: "governance.asset_impact.list",
|
|
2160
2816
|
description: "List downstream impacts for one asset.",
|
|
2161
|
-
flags: [projectIdFlag, nodeIdFlag,
|
|
2817
|
+
flags: [projectIdFlag, nodeIdFlag, directoryLimitFlag, directoryOffsetFlag, payloadFlag],
|
|
2162
2818
|
risk: "read",
|
|
2163
|
-
buildInput: (ctx) => assetGovernanceInput(ctx, ["node_id", "
|
|
2819
|
+
buildInput: (ctx) => assetGovernanceInput(ctx, ["node_id", "limit", "offset"])
|
|
2164
2820
|
});
|
|
2165
2821
|
|
|
2166
2822
|
// src/commands/te-analysis/meta/asset/query-history-list.ts
|
|
@@ -2169,9 +2825,9 @@ var analysisMetaAssetQueryHistoryList = createAnalysisGovernanceCapabilityComman
|
|
|
2169
2825
|
command: "list",
|
|
2170
2826
|
capabilityId: "governance.asset_query_history.list",
|
|
2171
2827
|
description: "List query history for one asset.",
|
|
2172
|
-
flags: [projectIdFlag, nodeIdFlag,
|
|
2828
|
+
flags: [projectIdFlag, nodeIdFlag, directoryLimitFlag, directoryOffsetFlag, payloadFlag],
|
|
2173
2829
|
risk: "read",
|
|
2174
|
-
buildInput: (ctx) => assetGovernanceInput(ctx, ["node_id", "
|
|
2830
|
+
buildInput: (ctx) => assetGovernanceInput(ctx, ["node_id", "limit", "offset"])
|
|
2175
2831
|
});
|
|
2176
2832
|
|
|
2177
2833
|
// src/commands/te-analysis/meta/asset/rule-schema.ts
|
|
@@ -2235,9 +2891,9 @@ var analysisMetaAssetBatchInfoExport = createAnalysisGovernanceCapabilityCommand
|
|
|
2235
2891
|
command: "batch-info-export",
|
|
2236
2892
|
capabilityId: "governance.asset.batch_export_info",
|
|
2237
2893
|
description: "Batch export asset information.",
|
|
2238
|
-
flags: [projectIdFlag, nodeIdsFlag,
|
|
2894
|
+
flags: [projectIdFlag, nodeIdsFlag, payloadFlag],
|
|
2239
2895
|
risk: "read",
|
|
2240
|
-
buildInput: (ctx) => assetGovernanceInput(ctx, ["node_ids"
|
|
2896
|
+
buildInput: (ctx) => assetGovernanceInput(ctx, ["node_ids"])
|
|
2241
2897
|
});
|
|
2242
2898
|
|
|
2243
2899
|
// src/commands/te-analysis/meta/asset/batch-sql-export.ts
|
|
@@ -2246,9 +2902,9 @@ var analysisMetaAssetBatchSqlExport = createAnalysisGovernanceCapabilityCommand(
|
|
|
2246
2902
|
command: "batch-sql-export",
|
|
2247
2903
|
capabilityId: "governance.asset.batch_export_sql",
|
|
2248
2904
|
description: "Batch export asset SQL definitions.",
|
|
2249
|
-
flags: [projectIdFlag, nodeIdsFlag,
|
|
2905
|
+
flags: [projectIdFlag, nodeIdsFlag, payloadFlag],
|
|
2250
2906
|
risk: "read",
|
|
2251
|
-
buildInput: (ctx) => assetGovernanceInput(ctx, ["node_ids"
|
|
2907
|
+
buildInput: (ctx) => assetGovernanceInput(ctx, ["node_ids"])
|
|
2252
2908
|
});
|
|
2253
2909
|
|
|
2254
2910
|
// src/commands/te-analysis/meta/asset/batch-delete.ts
|
|
@@ -2290,9 +2946,9 @@ var analysisMetaAssetBatchDashboardScheduleFreeze = createAnalysisGovernanceCapa
|
|
|
2290
2946
|
command: "batch-dashboard-schedule-freeze",
|
|
2291
2947
|
capabilityId: "governance.asset.batch_dashboard_schedule_freeze",
|
|
2292
2948
|
description: "Batch freeze dashboard schedules for governed assets.",
|
|
2293
|
-
flags: [projectIdFlag, nodeIdsFlag,
|
|
2949
|
+
flags: [projectIdFlag, nodeIdsFlag, scheduleUiConfigFlag, dashboardStatusFlag, refreshTypeFlag, cacheConfigFlag, payloadFlag],
|
|
2294
2950
|
risk: "write",
|
|
2295
|
-
buildInput: (ctx) => assetGovernanceInput(ctx, ["node_ids", "
|
|
2951
|
+
buildInput: (ctx) => assetGovernanceInput(ctx, ["node_ids", "schedule_ui_config", "dashboard_status", "refresh_type", "cache_config"])
|
|
2296
2952
|
});
|
|
2297
2953
|
|
|
2298
2954
|
// src/commands/te-analysis/meta/asset/batch-handover.ts
|
|
@@ -2330,7 +2986,7 @@ var analysisMetaAssetOperationRecordExport = createAnalysisGovernanceCapabilityC
|
|
|
2330
2986
|
|
|
2331
2987
|
// src/commands/te-analysis/governance/asset-authentication-shared.ts
|
|
2332
2988
|
import { createHash as createHash3, randomBytes as randomBytes3 } from "crypto";
|
|
2333
|
-
import { readFileSync, statSync } from "fs";
|
|
2989
|
+
import { readFileSync as readFileSync2, statSync } from "fs";
|
|
2334
2990
|
import { mkdir as mkdir3, open as open3, rm as rm3 } from "fs/promises";
|
|
2335
2991
|
import { dirname as dirname3, extname as extname3, resolve as resolve3 } from "path";
|
|
2336
2992
|
var ASSET_TYPES = /* @__PURE__ */ new Set([
|
|
@@ -2355,7 +3011,7 @@ var OUTPUT_FIELDS = /* @__PURE__ */ new Set([
|
|
|
2355
3011
|
"user_count90d",
|
|
2356
3012
|
"impact_degree"
|
|
2357
3013
|
]);
|
|
2358
|
-
var
|
|
3014
|
+
var assetTypesFlag2 = {
|
|
2359
3015
|
name: "asset-types",
|
|
2360
3016
|
type: "json",
|
|
2361
3017
|
required: false,
|
|
@@ -2416,7 +3072,7 @@ var authenticationExportOutputFlag = {
|
|
|
2416
3072
|
desc: "Local .jsonl output path. Integrity metadata is written to <output>.meta.json."
|
|
2417
3073
|
};
|
|
2418
3074
|
var authenticationFilterFlags = [
|
|
2419
|
-
|
|
3075
|
+
assetTypesFlag2,
|
|
2420
3076
|
authenticationStatusFilterFlag,
|
|
2421
3077
|
governanceQueriesFlag,
|
|
2422
3078
|
heatCountGtFlag,
|
|
@@ -2538,7 +3194,7 @@ function assetRefsInput(ctx) {
|
|
|
2538
3194
|
if (!statSync(path, { throwIfNoEntry: false })?.isFile()) {
|
|
2539
3195
|
throw new CliValidationError(`--asset-file must be a regular file: ${path}`);
|
|
2540
3196
|
}
|
|
2541
|
-
values =
|
|
3197
|
+
values = readFileSync2(path, "utf8").split(/\r?\n/).filter(Boolean).map((line, index) => {
|
|
2542
3198
|
try {
|
|
2543
3199
|
return JSON.parse(line);
|
|
2544
3200
|
} catch {
|
|
@@ -2671,7 +3327,7 @@ var analysisGovernanceAssetAuthenticationUpdate = createAnalysisGovernanceCapabi
|
|
|
2671
3327
|
});
|
|
2672
3328
|
|
|
2673
3329
|
// src/commands/te-analysis/governance/index.ts
|
|
2674
|
-
var
|
|
3330
|
+
var commands13 = [
|
|
2675
3331
|
analysisGovernanceAssetAuthenticationList,
|
|
2676
3332
|
analysisGovernanceAssetAuthenticationExport,
|
|
2677
3333
|
analysisGovernanceAssetAuthenticationUpdate,
|
|
@@ -2696,7 +3352,7 @@ var commands12 = [
|
|
|
2696
3352
|
analysisMetaAssetOperationRecordList,
|
|
2697
3353
|
analysisMetaAssetOperationRecordExport
|
|
2698
3354
|
];
|
|
2699
|
-
var governance_default =
|
|
3355
|
+
var governance_default = commands13;
|
|
2700
3356
|
|
|
2701
3357
|
// src/commands/te-analysis/report/list.ts
|
|
2702
3358
|
var reportList = createAnalysisCapabilityCommand({
|
|
@@ -2782,7 +3438,7 @@ var REPORT_WRITE_MODEL_TYPE_VALUES = [
|
|
|
2782
3438
|
"tag"
|
|
2783
3439
|
];
|
|
2784
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.`;
|
|
2785
|
-
var AI_DEFINITION_DESCRIPTION = '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.';
|
|
2786
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.`;
|
|
2787
3443
|
function aiModelTypeFlag(required) {
|
|
2788
3444
|
return {
|
|
@@ -2792,6 +3448,34 @@ function aiModelTypeFlag(required) {
|
|
|
2792
3448
|
desc: AI_MODEL_DESCRIPTION
|
|
2793
3449
|
};
|
|
2794
3450
|
}
|
|
3451
|
+
function validateFunnelStepFilters(modelType, definition) {
|
|
3452
|
+
if (modelType !== "funnel" || !isRecord(definition) || !isRecord(definition.funnel)) return;
|
|
3453
|
+
const steps = definition.funnel.steps;
|
|
3454
|
+
if (!Array.isArray(steps)) return;
|
|
3455
|
+
const errors = [];
|
|
3456
|
+
steps.forEach((step, stepIndex) => {
|
|
3457
|
+
if (!isRecord(step) || !Array.isArray(step.filters)) return;
|
|
3458
|
+
step.filters.forEach((filter, filterIndex) => {
|
|
3459
|
+
if (!isRecord(filter)) return;
|
|
3460
|
+
const location = `definition.funnel.steps[${stepIndex}].filters[${filterIndex}]`;
|
|
3461
|
+
if ("field" in filter || typeof filter.event_property_name !== "string" || !filter.event_property_name.trim()) {
|
|
3462
|
+
errors.push(`${location}: use a non-empty event_property_name, not a generic field object.`);
|
|
3463
|
+
}
|
|
3464
|
+
if ("values" in filter && (!Array.isArray(filter.values) || filter.values.some((value) => typeof value !== "string"))) {
|
|
3465
|
+
errors.push(`${location}.values: use an array of strings (boolean properties use "true" or "false").`);
|
|
3466
|
+
}
|
|
3467
|
+
});
|
|
3468
|
+
});
|
|
3469
|
+
if (errors.length) {
|
|
3470
|
+
throw new CliValidationError(errors.join("\n"), {
|
|
3471
|
+
code: "INVALID_ANALYSIS_DEFINITION",
|
|
3472
|
+
hint: "Correct all reported step-filter fields together, preserve the complete requested definition, then validate it once. No query was dispatched."
|
|
3473
|
+
});
|
|
3474
|
+
}
|
|
3475
|
+
}
|
|
3476
|
+
function isRecord(value) {
|
|
3477
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
3478
|
+
}
|
|
2795
3479
|
function reportWriteModelTypeFlag(required) {
|
|
2796
3480
|
return {
|
|
2797
3481
|
name: "model-type",
|
|
@@ -2820,7 +3504,7 @@ var metadataResolutionsFlag = {
|
|
|
2820
3504
|
name: "resolutions",
|
|
2821
3505
|
type: "json",
|
|
2822
3506
|
required: false,
|
|
2823
|
-
desc: "Optional user-confirmed metadata bindings keyed by compiler error path. Each value requires raw_value, resource_type, and resource_key.
|
|
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."
|
|
2824
3508
|
};
|
|
2825
3509
|
var reportMetadataResolutionsFlag = {
|
|
2826
3510
|
...metadataResolutionsFlag,
|
|
@@ -2843,6 +3527,7 @@ var reportCreate = createAnalysisCapabilityCommand({
|
|
|
2843
3527
|
{ name: "report-name", type: "string", required: true, desc: "Report display name." },
|
|
2844
3528
|
reportWriteModelTypeFlag(true),
|
|
2845
3529
|
reportWriteDefinitionFlag(true),
|
|
3530
|
+
modelDefinitionIntentSnapshotFlag,
|
|
2846
3531
|
reportMetadataResolutionsFlag,
|
|
2847
3532
|
{ name: "report-desc", type: "string", required: false, desc: "Optional report description." },
|
|
2848
3533
|
{ name: "cache-seconds", type: "number", required: false, desc: "Optional cache duration in seconds." },
|
|
@@ -2851,6 +3536,7 @@ var reportCreate = createAnalysisCapabilityCommand({
|
|
|
2851
3536
|
],
|
|
2852
3537
|
risk: "write",
|
|
2853
3538
|
validate: validateReportMetadataResolutions,
|
|
3539
|
+
intentConsistency: { definitionFlag: "definition", modelTypeFlag: "model-type" },
|
|
2854
3540
|
buildInput: (ctx) => compactInput({
|
|
2855
3541
|
...projectInput(ctx),
|
|
2856
3542
|
report_name: ctx.str("report-name"),
|
|
@@ -2893,12 +3579,14 @@ var reportUpdate = createAnalysisCapabilityCommand({
|
|
|
2893
3579
|
{ name: "report-desc", type: "string", required: false, desc: "New report description." },
|
|
2894
3580
|
reportWriteModelTypeFlag(false),
|
|
2895
3581
|
reportWriteDefinitionFlag(false),
|
|
3582
|
+
modelDefinitionIntentSnapshotFlag,
|
|
2896
3583
|
reportMetadataResolutionsFlag,
|
|
2897
3584
|
{ name: "cache-seconds", type: "number", required: false, desc: "Optional cache duration in seconds." },
|
|
2898
3585
|
{ name: "query-duration-ms", type: "number", required: false, desc: "Optional last query duration in milliseconds." }
|
|
2899
3586
|
],
|
|
2900
3587
|
risk: "write",
|
|
2901
3588
|
validate: validateReportUpdate,
|
|
3589
|
+
intentConsistency: { definitionFlag: "definition", modelTypeFlag: "model-type" },
|
|
2902
3590
|
buildInput: (ctx) => compactInput({
|
|
2903
3591
|
...projectInput(ctx),
|
|
2904
3592
|
report_id: ctx.num("report-id"),
|
|
@@ -2928,7 +3616,7 @@ var reportDelete = createAnalysisCapabilityCommand({
|
|
|
2928
3616
|
});
|
|
2929
3617
|
|
|
2930
3618
|
// src/commands/te-analysis/report/index.ts
|
|
2931
|
-
var
|
|
3619
|
+
var commands14 = [
|
|
2932
3620
|
reportList,
|
|
2933
3621
|
reportListExport,
|
|
2934
3622
|
reportGet,
|
|
@@ -2936,10 +3624,43 @@ var commands13 = [
|
|
|
2936
3624
|
reportUpdate,
|
|
2937
3625
|
reportDelete
|
|
2938
3626
|
];
|
|
2939
|
-
var report_default =
|
|
3627
|
+
var report_default = commands14;
|
|
2940
3628
|
|
|
2941
3629
|
// src/commands/te-analysis/report-data/shared.ts
|
|
2942
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
|
+
}
|
|
2943
3664
|
function reportDataInput(ctx) {
|
|
2944
3665
|
return compactInput({
|
|
2945
3666
|
...projectInput(ctx),
|
|
@@ -2967,7 +3688,7 @@ function reportDataExportInput(ctx) {
|
|
|
2967
3688
|
}
|
|
2968
3689
|
|
|
2969
3690
|
// src/commands/te-analysis/report-data/run.ts
|
|
2970
|
-
var reportDataRun = createAnalysisCapabilityCommand({
|
|
3691
|
+
var reportDataRun = withSqlSelectorRuntimeDiagnostics(createAnalysisCapabilityCommand({
|
|
2971
3692
|
resource: "report-data",
|
|
2972
3693
|
command: "run",
|
|
2973
3694
|
capabilityId: "analysis.report_data.run",
|
|
@@ -2978,7 +3699,7 @@ var reportDataRun = createAnalysisCapabilityCommand({
|
|
|
2978
3699
|
requestIdFlag,
|
|
2979
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.' },
|
|
2980
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.' },
|
|
2981
|
-
{ name: "sql-params", type: "json", required: false, desc:
|
|
3702
|
+
{ name: "sql-params", type: "json", required: false, desc: sqlReportParamsDescription },
|
|
2982
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." },
|
|
2983
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." },
|
|
2984
3705
|
{ name: "time-granularity", type: "string", required: false, desc: "Non-SQL analysis-model time granularity override. SQL accepts only --sql-params." },
|
|
@@ -2992,10 +3713,10 @@ var reportDataRun = createAnalysisCapabilityCommand({
|
|
|
2992
3713
|
risk: "read",
|
|
2993
3714
|
validate: validateClusterQueryRouting,
|
|
2994
3715
|
buildInput: reportDataInput
|
|
2995
|
-
});
|
|
3716
|
+
}));
|
|
2996
3717
|
|
|
2997
3718
|
// src/commands/te-analysis/report-data/export.ts
|
|
2998
|
-
var reportDataExport = createAnalysisCapabilityCommand({
|
|
3719
|
+
var reportDataExport = withSqlSelectorRuntimeDiagnostics(createAnalysisCapabilityCommand({
|
|
2999
3720
|
resource: "report-data",
|
|
3000
3721
|
command: "export",
|
|
3001
3722
|
capabilityId: "analysis.report_data.export",
|
|
@@ -3007,7 +3728,7 @@ var reportDataExport = createAnalysisCapabilityCommand({
|
|
|
3007
3728
|
requestIdFlag,
|
|
3008
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." },
|
|
3009
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"}}].' },
|
|
3010
|
-
{ name: "sql-params", type: "json", required: false, desc:
|
|
3731
|
+
{ name: "sql-params", type: "json", required: false, desc: sqlReportParamsDescription },
|
|
3011
3732
|
{ name: "start-time", type: "string", required: false, desc: "Non-SQL analysis-model date override start, yyyy-MM-dd. SQL dates use --sql-params." },
|
|
3012
3733
|
{ name: "end-time", type: "string", required: false, desc: "Non-SQL analysis-model date override end, yyyy-MM-dd. SQL dates use --sql-params." },
|
|
3013
3734
|
{ name: "time-granularity", type: "string", required: false, desc: "Non-SQL analysis-model time granularity override. SQL accepts only --sql-params." },
|
|
@@ -3021,14 +3742,14 @@ var reportDataExport = createAnalysisCapabilityCommand({
|
|
|
3021
3742
|
risk: "read",
|
|
3022
3743
|
validate: validateClusterQueryRouting,
|
|
3023
3744
|
buildInput: reportDataExportInput
|
|
3024
|
-
});
|
|
3745
|
+
}));
|
|
3025
3746
|
|
|
3026
3747
|
// src/commands/te-analysis/report-data/index.ts
|
|
3027
|
-
var
|
|
3748
|
+
var commands15 = [
|
|
3028
3749
|
reportDataRun,
|
|
3029
3750
|
reportDataExport
|
|
3030
3751
|
];
|
|
3031
|
-
var report_data_default =
|
|
3752
|
+
var report_data_default = commands15;
|
|
3032
3753
|
|
|
3033
3754
|
// src/commands/te-analysis/report-change-log/list.ts
|
|
3034
3755
|
var reportChangeLogList = createAnalysisCapabilityCommand({
|
|
@@ -3064,11 +3785,11 @@ var reportChangeLogGet = createAnalysisCapabilityCommand({
|
|
|
3064
3785
|
});
|
|
3065
3786
|
|
|
3066
3787
|
// src/commands/te-analysis/report-change-log/index.ts
|
|
3067
|
-
var
|
|
3788
|
+
var commands16 = [
|
|
3068
3789
|
reportChangeLogList,
|
|
3069
3790
|
reportChangeLogGet
|
|
3070
3791
|
];
|
|
3071
|
-
var report_change_log_default =
|
|
3792
|
+
var report_change_log_default = commands16;
|
|
3072
3793
|
|
|
3073
3794
|
// src/commands/te-analysis/report-version/rollback.ts
|
|
3074
3795
|
var reportVersionRollback = createAnalysisCapabilityCommand({
|
|
@@ -3090,10 +3811,10 @@ var reportVersionRollback = createAnalysisCapabilityCommand({
|
|
|
3090
3811
|
});
|
|
3091
3812
|
|
|
3092
3813
|
// src/commands/te-analysis/report-version/index.ts
|
|
3093
|
-
var
|
|
3814
|
+
var commands17 = [
|
|
3094
3815
|
reportVersionRollback
|
|
3095
3816
|
];
|
|
3096
|
-
var report_version_default =
|
|
3817
|
+
var report_version_default = commands17;
|
|
3097
3818
|
|
|
3098
3819
|
// src/commands/te-analysis/report-abnormal/get.ts
|
|
3099
3820
|
var reportAbnormalGet = createAnalysisCapabilityCommand({
|
|
@@ -3110,10 +3831,10 @@ var reportAbnormalGet = createAnalysisCapabilityCommand({
|
|
|
3110
3831
|
});
|
|
3111
3832
|
|
|
3112
3833
|
// src/commands/te-analysis/report-abnormal/index.ts
|
|
3113
|
-
var
|
|
3834
|
+
var commands18 = [
|
|
3114
3835
|
reportAbnormalGet
|
|
3115
3836
|
];
|
|
3116
|
-
var report_abnormal_default =
|
|
3837
|
+
var report_abnormal_default = commands18;
|
|
3117
3838
|
|
|
3118
3839
|
// src/commands/te-analysis/dashboard/list.ts
|
|
3119
3840
|
var dashboardList = createAnalysisCapabilityCommand({
|
|
@@ -3192,22 +3913,22 @@ var dashboardUpdate = createAnalysisCapabilityCommand({
|
|
|
3192
3913
|
resource: "dashboard",
|
|
3193
3914
|
command: "update",
|
|
3194
3915
|
capabilityId: "analysis.dashboard.update",
|
|
3195
|
-
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.",
|
|
3196
3917
|
flags: [
|
|
3197
3918
|
projectIdFlag,
|
|
3198
|
-
{ name: "operation", type: "string", required: true, desc: "Update operation: settings, note-upsert, default-filter, or business-filter." },
|
|
3199
|
-
{ name: "dashboard-id", type: "number", required: false, desc: "Dashboard ID for
|
|
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." },
|
|
3200
3921
|
{ name: "dashboard-ids", type: "json", required: false, desc: "Dashboard ID array for batch settings updates." },
|
|
3201
3922
|
{ name: "dashboard-name", type: "string", required: false, desc: "Dashboard name for single rename." },
|
|
3202
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." },
|
|
3203
3924
|
{ name: "refresh-type", type: "number", required: false, desc: "Dashboard refresh type: 0 real-time, 1 scheduled.", min: 0, max: 1 },
|
|
3204
3925
|
{ name: "dashboard-status", type: "string", required: false, desc: "Dashboard status: normal or freeze." },
|
|
3205
|
-
{ name: "note-id", type: "number", required: false, desc: "Dashboard note ID. Omit to create a new note." },
|
|
3206
|
-
{ name: "note-title", type: "string", required: false, desc: "Dashboard note title." },
|
|
3207
|
-
{ name: "description", type: "string", required: false, desc: "Dashboard note description." },
|
|
3208
|
-
{ name: "ui-config", type: "string", required: false, desc: "Dashboard or note UI config string." },
|
|
3209
|
-
{ name: "filter-name", type: "string", required: false, desc: "Saved filter name. Required with --operation default-filter." },
|
|
3210
|
-
{ 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.' },
|
|
3926
|
+
{ name: "note-id", type: "number", required: false, desc: "Dashboard note ID. Omit to create a new note attached to the dashboard." },
|
|
3927
|
+
{ name: "note-title", type: "string", required: false, desc: "Dashboard note title. Defaults to empty on create; omitted values are preserved on update." },
|
|
3928
|
+
{ name: "description", type: "string", required: false, desc: "Dashboard note description. Defaults to empty on create; omitted values are preserved on update." },
|
|
3929
|
+
{ name: "ui-config", type: "string", required: false, desc: "Dashboard or note UI config string. Omitted note style is preserved on update." },
|
|
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.' },
|
|
3211
3932
|
payloadFlag
|
|
3212
3933
|
],
|
|
3213
3934
|
risk: "write",
|
|
@@ -3221,8 +3942,8 @@ var dashboardUpdate = createAnalysisCapabilityCommand({
|
|
|
3221
3942
|
refresh_type: optionalNumber(ctx, "refresh-type"),
|
|
3222
3943
|
dashboard_status: optionalString(ctx, "dashboard-status"),
|
|
3223
3944
|
note_id: optionalNumber(ctx, "note-id"),
|
|
3224
|
-
note_title:
|
|
3225
|
-
description:
|
|
3945
|
+
note_title: optionalStringPreserveEmpty(ctx, "note-title"),
|
|
3946
|
+
description: optionalStringPreserveEmpty(ctx, "description"),
|
|
3226
3947
|
ui_config: optionalString(ctx, "ui-config"),
|
|
3227
3948
|
filter_name: optionalString(ctx, "filter-name"),
|
|
3228
3949
|
filter: optionalJson(ctx, "filter"),
|
|
@@ -3371,7 +4092,7 @@ var dashboardTaskStatus = createAnalysisCapabilityCommand({
|
|
|
3371
4092
|
});
|
|
3372
4093
|
|
|
3373
4094
|
// src/commands/te-analysis/dashboard/index.ts
|
|
3374
|
-
var
|
|
4095
|
+
var commands19 = [
|
|
3375
4096
|
dashboardList,
|
|
3376
4097
|
dashboardCreate,
|
|
3377
4098
|
dashboardGet,
|
|
@@ -3385,7 +4106,7 @@ var commands18 = [
|
|
|
3385
4106
|
dashboardAbnormalGet,
|
|
3386
4107
|
dashboardTaskStatus
|
|
3387
4108
|
];
|
|
3388
|
-
var dashboard_default =
|
|
4109
|
+
var dashboard_default = commands19;
|
|
3389
4110
|
|
|
3390
4111
|
// src/commands/te-analysis/dashboard-report/add.ts
|
|
3391
4112
|
var dashboardReportAdd = createAnalysisCapabilityCommand({
|
|
@@ -3407,10 +4128,10 @@ var dashboardReportAdd = createAnalysisCapabilityCommand({
|
|
|
3407
4128
|
});
|
|
3408
4129
|
|
|
3409
4130
|
// src/commands/te-analysis/dashboard-report/index.ts
|
|
3410
|
-
var
|
|
4131
|
+
var commands20 = [
|
|
3411
4132
|
dashboardReportAdd
|
|
3412
4133
|
];
|
|
3413
|
-
var dashboard_report_default =
|
|
4134
|
+
var dashboard_report_default = commands20;
|
|
3414
4135
|
|
|
3415
4136
|
// src/commands/te-analysis/dashboard-report-data/run.ts
|
|
3416
4137
|
var dashboardReportDataRun = createAnalysisCapabilityCommand({
|
|
@@ -3466,11 +4187,11 @@ var dashboardReportDataExport = createAnalysisCapabilityCommand({
|
|
|
3466
4187
|
});
|
|
3467
4188
|
|
|
3468
4189
|
// src/commands/te-analysis/dashboard-report-data/index.ts
|
|
3469
|
-
var
|
|
4190
|
+
var commands21 = [
|
|
3470
4191
|
dashboardReportDataRun,
|
|
3471
4192
|
dashboardReportDataExport
|
|
3472
4193
|
];
|
|
3473
|
-
var dashboard_report_data_default =
|
|
4194
|
+
var dashboard_report_data_default = commands21;
|
|
3474
4195
|
|
|
3475
4196
|
// src/commands/te-analysis/query/cancel.ts
|
|
3476
4197
|
var queryCancel = createAnalysisCapabilityCommand({
|
|
@@ -3565,11 +4286,11 @@ var queryCreateResultCluster = createAnalysisCapabilityCommand({
|
|
|
3565
4286
|
});
|
|
3566
4287
|
|
|
3567
4288
|
// src/commands/te-analysis/query/index.ts
|
|
3568
|
-
var
|
|
4289
|
+
var commands22 = [
|
|
3569
4290
|
queryCancel,
|
|
3570
4291
|
queryCreateResultCluster
|
|
3571
4292
|
];
|
|
3572
|
-
var query_default =
|
|
4293
|
+
var query_default = commands22;
|
|
3573
4294
|
|
|
3574
4295
|
// src/commands/te-analysis/query-context/get.ts
|
|
3575
4296
|
var queryContextGet = createAnalysisCapabilityCommand({
|
|
@@ -3601,8 +4322,8 @@ var queryContextGet = createAnalysisCapabilityCommand({
|
|
|
3601
4322
|
});
|
|
3602
4323
|
|
|
3603
4324
|
// src/commands/te-analysis/query-context/index.ts
|
|
3604
|
-
var
|
|
3605
|
-
var query_context_default =
|
|
4325
|
+
var commands23 = [queryContextGet];
|
|
4326
|
+
var query_context_default = commands23;
|
|
3606
4327
|
|
|
3607
4328
|
// src/commands/te-analysis/run/inspect.ts
|
|
3608
4329
|
var runInspect = {
|
|
@@ -3694,11 +4415,11 @@ function artifactIdFrom(descriptor) {
|
|
|
3694
4415
|
}
|
|
3695
4416
|
|
|
3696
4417
|
// src/commands/te-analysis/run/index.ts
|
|
3697
|
-
var
|
|
4418
|
+
var commands24 = [
|
|
3698
4419
|
runInspect,
|
|
3699
4420
|
runWait
|
|
3700
4421
|
];
|
|
3701
|
-
var run_default =
|
|
4422
|
+
var run_default = commands24;
|
|
3702
4423
|
|
|
3703
4424
|
// src/commands/te-analysis/artifact/download.ts
|
|
3704
4425
|
import { resolve as resolve4 } from "path";
|
|
@@ -3745,10 +4466,10 @@ var artifactDownload = {
|
|
|
3745
4466
|
};
|
|
3746
4467
|
|
|
3747
4468
|
// src/commands/te-analysis/artifact/index.ts
|
|
3748
|
-
var
|
|
4469
|
+
var commands25 = [
|
|
3749
4470
|
artifactDownload
|
|
3750
4471
|
];
|
|
3751
|
-
var artifact_default =
|
|
4472
|
+
var artifact_default = commands25;
|
|
3752
4473
|
|
|
3753
4474
|
// src/commands/te-analysis/adhoc/shared.ts
|
|
3754
4475
|
var useCacheFlag2 = {
|
|
@@ -3757,17 +4478,19 @@ var useCacheFlag2 = {
|
|
|
3757
4478
|
required: false,
|
|
3758
4479
|
desc: "Whether to use query cache. Default: true."
|
|
3759
4480
|
};
|
|
3760
|
-
var
|
|
4481
|
+
var zoneOffsetFlag = {
|
|
3761
4482
|
name: "zone-offset",
|
|
3762
4483
|
type: "number",
|
|
3763
4484
|
required: false,
|
|
3764
4485
|
desc: "Optional timezone mode. Fixed UTC offsets are -12..14; 99 means stored local time without fixed UTC conversion (not UTC+99). Omit to use the project analysis default."
|
|
3765
4486
|
};
|
|
3766
4487
|
function adhocRunInput(ctx) {
|
|
4488
|
+
const definition = ctx.json("definition");
|
|
4489
|
+
validateFunnelStepFilters(ctx.str("model-type"), definition);
|
|
3767
4490
|
return compactInput({
|
|
3768
4491
|
project_id: ctx.num("project-id"),
|
|
3769
4492
|
model_type: ctx.str("model-type"),
|
|
3770
|
-
definition
|
|
4493
|
+
definition,
|
|
3771
4494
|
resolutions: optionalJson(ctx, "resolutions"),
|
|
3772
4495
|
request_id: optionalString(ctx, "request-id"),
|
|
3773
4496
|
use_cache: optionalBoolean(ctx, "use-cache"),
|
|
@@ -3780,10 +4503,12 @@ function adhocRunInput(ctx) {
|
|
|
3780
4503
|
});
|
|
3781
4504
|
}
|
|
3782
4505
|
function adhocExportInput(ctx) {
|
|
4506
|
+
const definition = ctx.json("definition");
|
|
4507
|
+
validateFunnelStepFilters(ctx.str("model-type"), definition);
|
|
3783
4508
|
return compactInput({
|
|
3784
4509
|
project_id: ctx.num("project-id"),
|
|
3785
4510
|
model_type: ctx.str("model-type"),
|
|
3786
|
-
definition
|
|
4511
|
+
definition,
|
|
3787
4512
|
resolutions: optionalJson(ctx, "resolutions"),
|
|
3788
4513
|
request_id: optionalString(ctx, "request-id"),
|
|
3789
4514
|
use_cache: optionalBoolean(ctx, "use-cache"),
|
|
@@ -3799,10 +4524,11 @@ var adhocBaseFlags = [
|
|
|
3799
4524
|
projectIdFlag,
|
|
3800
4525
|
aiModelTypeFlag(true),
|
|
3801
4526
|
aiDefinitionFlag(true),
|
|
4527
|
+
modelDefinitionIntentSnapshotFlag,
|
|
3802
4528
|
metadataResolutionsFlag,
|
|
3803
4529
|
requestIdFlag,
|
|
3804
4530
|
useCacheFlag2,
|
|
3805
|
-
|
|
4531
|
+
zoneOffsetFlag,
|
|
3806
4532
|
fieldsFlag,
|
|
3807
4533
|
clusterQueryScopeFlag,
|
|
3808
4534
|
slaveClusterIdFlag
|
|
@@ -3829,6 +4555,7 @@ var adhocRun = createAnalysisCapabilityCommand({
|
|
|
3829
4555
|
],
|
|
3830
4556
|
risk: "read",
|
|
3831
4557
|
validate: validateClusterQueryRouting,
|
|
4558
|
+
intentConsistency: { definitionFlag: "definition", modelTypeFlag: "model-type" },
|
|
3832
4559
|
buildInput: adhocRunInput
|
|
3833
4560
|
});
|
|
3834
4561
|
|
|
@@ -3844,15 +4571,16 @@ var adhocExport = createAnalysisCapabilityCommand({
|
|
|
3844
4571
|
],
|
|
3845
4572
|
risk: "read",
|
|
3846
4573
|
validate: validateClusterQueryRouting,
|
|
4574
|
+
intentConsistency: { definitionFlag: "definition", modelTypeFlag: "model-type" },
|
|
3847
4575
|
buildInput: adhocExportInput
|
|
3848
4576
|
});
|
|
3849
4577
|
|
|
3850
4578
|
// src/commands/te-analysis/adhoc/index.ts
|
|
3851
|
-
var
|
|
4579
|
+
var commands26 = [
|
|
3852
4580
|
adhocRun,
|
|
3853
4581
|
adhocExport
|
|
3854
4582
|
];
|
|
3855
|
-
var adhoc_default =
|
|
4583
|
+
var adhoc_default = commands26;
|
|
3856
4584
|
|
|
3857
4585
|
// src/commands/te-analysis/dashboard-definition/export.ts
|
|
3858
4586
|
var dashboardDefinitionExport = createAnalysisCapabilityCommand({
|
|
@@ -3907,11 +4635,11 @@ var dashboardDefinitionImport = createAnalysisCapabilityCommand({
|
|
|
3907
4635
|
});
|
|
3908
4636
|
|
|
3909
4637
|
// src/commands/te-analysis/dashboard-definition/index.ts
|
|
3910
|
-
var
|
|
4638
|
+
var commands27 = [
|
|
3911
4639
|
dashboardDefinitionExport,
|
|
3912
4640
|
dashboardDefinitionImport
|
|
3913
4641
|
];
|
|
3914
|
-
var dashboard_definition_default =
|
|
4642
|
+
var dashboard_definition_default = commands27;
|
|
3915
4643
|
|
|
3916
4644
|
// src/commands/te-analysis/dashboard-daily-report/get.ts
|
|
3917
4645
|
var dashboardDailyReportGet = createAnalysisCapabilityCommand({
|
|
@@ -4095,13 +4823,13 @@ var dashboardDailyReportSendStatus = createAnalysisCapabilityCommand({
|
|
|
4095
4823
|
});
|
|
4096
4824
|
|
|
4097
4825
|
// src/commands/te-analysis/dashboard-daily-report/index.ts
|
|
4098
|
-
var
|
|
4826
|
+
var commands28 = [
|
|
4099
4827
|
dashboardDailyReportGet,
|
|
4100
4828
|
dashboardDailyReportUpdate,
|
|
4101
4829
|
dashboardDailyReportSend,
|
|
4102
4830
|
dashboardDailyReportSendStatus
|
|
4103
4831
|
];
|
|
4104
|
-
var dashboard_daily_report_default =
|
|
4832
|
+
var dashboard_daily_report_default = commands28;
|
|
4105
4833
|
|
|
4106
4834
|
// src/commands/te-analysis/bi-panel/list.ts
|
|
4107
4835
|
var biPanelList = createAnalysisCapabilityCommand({
|
|
@@ -4211,8 +4939,8 @@ var biPanelCopy = createAnalysisCapabilityCommand({
|
|
|
4211
4939
|
description: "Copy a BI panel.",
|
|
4212
4940
|
flags: [
|
|
4213
4941
|
projectIdFlag,
|
|
4214
|
-
{ name: "panel-name", type: "string", required:
|
|
4215
|
-
{ name: "panel-uuid", type: "string", required:
|
|
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." },
|
|
4216
4944
|
{ name: "space-id", type: "number", required: false, desc: "Target project space ID." },
|
|
4217
4945
|
{ name: "folder-id", type: "number", required: false, desc: "Target folder ID." },
|
|
4218
4946
|
payloadFlag
|
|
@@ -4229,7 +4957,7 @@ var biPanelCopy = createAnalysisCapabilityCommand({
|
|
|
4229
4957
|
});
|
|
4230
4958
|
|
|
4231
4959
|
// src/commands/te-analysis/bi-panel/index.ts
|
|
4232
|
-
var
|
|
4960
|
+
var commands29 = [
|
|
4233
4961
|
biPanelList,
|
|
4234
4962
|
biPanelGet,
|
|
4235
4963
|
biPanelCreate,
|
|
@@ -4238,7 +4966,7 @@ var commands28 = [
|
|
|
4238
4966
|
biPanelShare,
|
|
4239
4967
|
biPanelCopy
|
|
4240
4968
|
];
|
|
4241
|
-
var bi_panel_default =
|
|
4969
|
+
var bi_panel_default = commands29;
|
|
4242
4970
|
|
|
4243
4971
|
// src/commands/te-analysis/bi-panel-version/get.ts
|
|
4244
4972
|
var biPanelVersionGet = createAnalysisCapabilityCommand({
|
|
@@ -4285,11 +5013,11 @@ var biPanelVersionPublish = createAnalysisCapabilityCommand({
|
|
|
4285
5013
|
});
|
|
4286
5014
|
|
|
4287
5015
|
// src/commands/te-analysis/bi-panel-version/index.ts
|
|
4288
|
-
var
|
|
5016
|
+
var commands30 = [
|
|
4289
5017
|
biPanelVersionGet,
|
|
4290
5018
|
biPanelVersionPublish
|
|
4291
5019
|
];
|
|
4292
|
-
var bi_panel_version_default =
|
|
5020
|
+
var bi_panel_version_default = commands30;
|
|
4293
5021
|
|
|
4294
5022
|
// src/commands/te-analysis/bi-panel-page-data/run.ts
|
|
4295
5023
|
var biPanelPageDataRun = createAnalysisCapabilityCommand({
|
|
@@ -4343,11 +5071,11 @@ var biPanelPageDataExport = createAnalysisCapabilityCommand({
|
|
|
4343
5071
|
});
|
|
4344
5072
|
|
|
4345
5073
|
// src/commands/te-analysis/bi-panel-page-data/index.ts
|
|
4346
|
-
var
|
|
5074
|
+
var commands31 = [
|
|
4347
5075
|
biPanelPageDataRun,
|
|
4348
5076
|
biPanelPageDataExport
|
|
4349
5077
|
];
|
|
4350
|
-
var bi_panel_page_data_default =
|
|
5078
|
+
var bi_panel_page_data_default = commands31;
|
|
4351
5079
|
|
|
4352
5080
|
// src/commands/te-analysis/project-space/list.ts
|
|
4353
5081
|
var projectSpaceList = createAnalysisCapabilityCommand({
|
|
@@ -4396,12 +5124,12 @@ var projectSpaceBusinessFilterUpsert = createAnalysisCapabilityCommand({
|
|
|
4396
5124
|
});
|
|
4397
5125
|
|
|
4398
5126
|
// src/commands/te-analysis/project-space/index.ts
|
|
4399
|
-
var
|
|
5127
|
+
var commands32 = [
|
|
4400
5128
|
projectSpaceList,
|
|
4401
5129
|
projectSpaceGet,
|
|
4402
5130
|
projectSpaceBusinessFilterUpsert
|
|
4403
5131
|
];
|
|
4404
|
-
var project_space_default =
|
|
5132
|
+
var project_space_default = commands32;
|
|
4405
5133
|
|
|
4406
5134
|
// src/commands/te-analysis/favorite/add.ts
|
|
4407
5135
|
var favoriteAdd = createAnalysisCapabilityCommand({
|
|
@@ -4446,11 +5174,11 @@ var favoriteRemove = createAnalysisCapabilityCommand({
|
|
|
4446
5174
|
});
|
|
4447
5175
|
|
|
4448
5176
|
// src/commands/te-analysis/favorite/index.ts
|
|
4449
|
-
var
|
|
5177
|
+
var commands33 = [
|
|
4450
5178
|
favoriteAdd,
|
|
4451
5179
|
favoriteRemove
|
|
4452
5180
|
];
|
|
4453
|
-
var favorite_default =
|
|
5181
|
+
var favorite_default = commands33;
|
|
4454
5182
|
|
|
4455
5183
|
// src/commands/te-analysis/public-link/create.ts
|
|
4456
5184
|
var publicLinkCreate = createAnalysisCapabilityCommand({
|
|
@@ -4567,14 +5295,14 @@ var publicLinkDelete = createAnalysisCapabilityCommand({
|
|
|
4567
5295
|
});
|
|
4568
5296
|
|
|
4569
5297
|
// src/commands/te-analysis/public-link/index.ts
|
|
4570
|
-
var
|
|
5298
|
+
var commands34 = [
|
|
4571
5299
|
publicLinkCreate,
|
|
4572
5300
|
publicLinkList,
|
|
4573
5301
|
publicLinkUpdate,
|
|
4574
5302
|
publicLinkOffline,
|
|
4575
5303
|
publicLinkDelete
|
|
4576
5304
|
];
|
|
4577
|
-
var public_link_default =
|
|
5305
|
+
var public_link_default = commands34;
|
|
4578
5306
|
|
|
4579
5307
|
// src/commands/te-analysis/filter-value/list.ts
|
|
4580
5308
|
var filterValueList = createAnalysisCapabilityCommand({
|
|
@@ -4608,8 +5336,8 @@ var filterValueList = createAnalysisCapabilityCommand({
|
|
|
4608
5336
|
});
|
|
4609
5337
|
|
|
4610
5338
|
// src/commands/te-analysis/filter-value/index.ts
|
|
4611
|
-
var
|
|
4612
|
-
var filter_value_default =
|
|
5339
|
+
var commands35 = [filterValueList];
|
|
5340
|
+
var filter_value_default = commands35;
|
|
4613
5341
|
|
|
4614
5342
|
// src/commands/te-analysis/event-detail/shared.ts
|
|
4615
5343
|
var eventDetailDefinitionFlag = {
|
|
@@ -4653,9 +5381,10 @@ function eventDetailExportInput(ctx) {
|
|
|
4653
5381
|
var eventDetailBaseFlags = [
|
|
4654
5382
|
projectIdFlag,
|
|
4655
5383
|
eventDetailDefinitionFlag,
|
|
5384
|
+
definitionIntentSnapshotFlag,
|
|
4656
5385
|
requestIdFlag,
|
|
4657
5386
|
useCacheFlag2,
|
|
4658
|
-
|
|
5387
|
+
zoneOffsetFlag
|
|
4659
5388
|
];
|
|
4660
5389
|
var eventDetailExportFlags = [
|
|
4661
5390
|
...eventDetailBaseFlags,
|
|
@@ -4675,6 +5404,7 @@ var eventDetailRun = createAnalysisCapabilityCommand({
|
|
|
4675
5404
|
syncTimeoutSecondsFlag
|
|
4676
5405
|
],
|
|
4677
5406
|
risk: "read",
|
|
5407
|
+
intentConsistency: { definitionFlag: "definition" },
|
|
4678
5408
|
buildInput: eventDetailRunInput
|
|
4679
5409
|
});
|
|
4680
5410
|
|
|
@@ -4689,15 +5419,16 @@ var eventDetailExport = createAnalysisCapabilityCommand({
|
|
|
4689
5419
|
...eventDetailExportFlags
|
|
4690
5420
|
],
|
|
4691
5421
|
risk: "read",
|
|
5422
|
+
intentConsistency: { definitionFlag: "definition" },
|
|
4692
5423
|
buildInput: eventDetailExportInput
|
|
4693
5424
|
});
|
|
4694
5425
|
|
|
4695
5426
|
// src/commands/te-analysis/event-detail/index.ts
|
|
4696
|
-
var
|
|
5427
|
+
var commands36 = [
|
|
4697
5428
|
eventDetailRun,
|
|
4698
5429
|
eventDetailExport
|
|
4699
5430
|
];
|
|
4700
|
-
var event_detail_default =
|
|
5431
|
+
var event_detail_default = commands36;
|
|
4701
5432
|
|
|
4702
5433
|
// src/commands/te-analysis/entity-detail/shared.ts
|
|
4703
5434
|
var entityDetailDefinitionFlag = {
|
|
@@ -4741,9 +5472,10 @@ function entityDetailExportInput(ctx) {
|
|
|
4741
5472
|
var entityDetailBaseFlags = [
|
|
4742
5473
|
projectIdFlag,
|
|
4743
5474
|
entityDetailDefinitionFlag,
|
|
5475
|
+
definitionIntentSnapshotFlag,
|
|
4744
5476
|
requestIdFlag,
|
|
4745
5477
|
useCacheFlag2,
|
|
4746
|
-
|
|
5478
|
+
zoneOffsetFlag
|
|
4747
5479
|
];
|
|
4748
5480
|
var entityDetailExportFlags = [
|
|
4749
5481
|
...entityDetailBaseFlags,
|
|
@@ -4763,6 +5495,7 @@ var entityDetailRun = createAnalysisCapabilityCommand({
|
|
|
4763
5495
|
syncTimeoutSecondsFlag
|
|
4764
5496
|
],
|
|
4765
5497
|
risk: "read",
|
|
5498
|
+
intentConsistency: { definitionFlag: "definition" },
|
|
4766
5499
|
buildInput: entityDetailRunInput
|
|
4767
5500
|
});
|
|
4768
5501
|
|
|
@@ -4777,15 +5510,16 @@ var entityDetailExport = createAnalysisCapabilityCommand({
|
|
|
4777
5510
|
...entityDetailExportFlags
|
|
4778
5511
|
],
|
|
4779
5512
|
risk: "read",
|
|
5513
|
+
intentConsistency: { definitionFlag: "definition" },
|
|
4780
5514
|
buildInput: entityDetailExportInput
|
|
4781
5515
|
});
|
|
4782
5516
|
|
|
4783
5517
|
// src/commands/te-analysis/entity-detail/index.ts
|
|
4784
|
-
var
|
|
5518
|
+
var commands37 = [
|
|
4785
5519
|
entityDetailRun,
|
|
4786
5520
|
entityDetailExport
|
|
4787
5521
|
];
|
|
4788
|
-
var entity_detail_default =
|
|
5522
|
+
var entity_detail_default = commands37;
|
|
4789
5523
|
|
|
4790
5524
|
// src/commands/te-analysis/drilldown-events/shared.ts
|
|
4791
5525
|
var queryContextIdFlag = {
|
|
@@ -4873,8 +5607,8 @@ var drilldownEventsRun = createAnalysisCapabilityCommand({
|
|
|
4873
5607
|
});
|
|
4874
5608
|
|
|
4875
5609
|
// src/commands/te-analysis/drilldown-events/index.ts
|
|
4876
|
-
var
|
|
4877
|
-
var drilldown_events_default =
|
|
5610
|
+
var commands38 = [drilldownEventsRun, drilldownEventsExport];
|
|
5611
|
+
var drilldown_events_default = commands38;
|
|
4878
5612
|
|
|
4879
5613
|
// src/commands/te-analysis/drilldown-entities/shared.ts
|
|
4880
5614
|
var queryContextIdFlag2 = {
|
|
@@ -4958,8 +5692,8 @@ var drilldownEntitiesRun = createAnalysisCapabilityCommand({
|
|
|
4958
5692
|
});
|
|
4959
5693
|
|
|
4960
5694
|
// src/commands/te-analysis/drilldown-entities/index.ts
|
|
4961
|
-
var
|
|
4962
|
-
var drilldown_entities_default =
|
|
5695
|
+
var commands39 = [drilldownEntitiesRun, drilldownEntitiesExport];
|
|
5696
|
+
var drilldown_entities_default = commands39;
|
|
4963
5697
|
|
|
4964
5698
|
// src/commands/te-analysis/drilldown-user-events/shared.ts
|
|
4965
5699
|
var drilldownContextIdFlag = {
|
|
@@ -5060,8 +5794,8 @@ var drilldownUserEventsRun = createAnalysisCapabilityCommand({
|
|
|
5060
5794
|
});
|
|
5061
5795
|
|
|
5062
5796
|
// src/commands/te-analysis/drilldown-user-events/index.ts
|
|
5063
|
-
var
|
|
5064
|
-
var drilldown_user_events_default =
|
|
5797
|
+
var commands40 = [drilldownUserEventsRun, drilldownUserEventsExport];
|
|
5798
|
+
var drilldown_user_events_default = commands40;
|
|
5065
5799
|
|
|
5066
5800
|
// src/commands/te-analysis/user/index.ts
|
|
5067
5801
|
import { existsSync, statSync as statSync2 } from "fs";
|
|
@@ -5152,7 +5886,7 @@ var optionalTagDefinitionRequestFlag = {
|
|
|
5152
5886
|
required: false,
|
|
5153
5887
|
desc: "Optional semantic snake_case tag definition. Read user_tag_models.md; raw filts, C-codes, ftv, columnName, and backend DTOs are rejected."
|
|
5154
5888
|
};
|
|
5155
|
-
var
|
|
5889
|
+
var zoneOffsetFlag2 = {
|
|
5156
5890
|
name: "zone-offset",
|
|
5157
5891
|
type: "number",
|
|
5158
5892
|
required: false,
|
|
@@ -5164,6 +5898,24 @@ var autoRefreshCronFlag = {
|
|
|
5164
5898
|
required: false,
|
|
5165
5899
|
desc: "Optional Quartz cron expression for an existing enabled auto-refresh schedule. This does not enable auto refresh."
|
|
5166
5900
|
};
|
|
5901
|
+
var tagAutoRefreshFlags = [
|
|
5902
|
+
{
|
|
5903
|
+
name: "enable-auto-refresh",
|
|
5904
|
+
type: "boolean",
|
|
5905
|
+
required: false,
|
|
5906
|
+
desc: "Enable or disable periodic refresh. Omit to preserve the setting on update. Enabling on create requires a schedule."
|
|
5907
|
+
},
|
|
5908
|
+
{
|
|
5909
|
+
...autoRefreshCronFlag,
|
|
5910
|
+
desc: "Quartz cron expression in the tag timezone. Enables periodic refresh. Mutually exclusive with --auto-refresh-schedule."
|
|
5911
|
+
},
|
|
5912
|
+
{
|
|
5913
|
+
name: "auto-refresh-schedule",
|
|
5914
|
+
type: "json",
|
|
5915
|
+
required: false,
|
|
5916
|
+
desc: 'Schedule object: frequency daily|weekly|monthly, time HH:mm, weekdays (weekly, ISO 1=Monday to 7=Sunday), month_days (monthly, 1-31). Enables periodic refresh in the tag timezone. Example: {"frequency":"daily","time":"02:30"}.'
|
|
5917
|
+
}
|
|
5918
|
+
];
|
|
5167
5919
|
var entityIdFlag = {
|
|
5168
5920
|
name: "entity-id",
|
|
5169
5921
|
type: "number",
|
|
@@ -5412,6 +6164,18 @@ function clusterWriteInput(ctx, create) {
|
|
|
5412
6164
|
function tagWriteInput(ctx, create) {
|
|
5413
6165
|
const definitionRequest = optionalJson(ctx, "definition-request");
|
|
5414
6166
|
validateDefinitionRequest(create, definitionRequest);
|
|
6167
|
+
const enabled = optionalBoolean(ctx, "enable-auto-refresh");
|
|
6168
|
+
const cron = optionalString(ctx, "auto-refresh-cron");
|
|
6169
|
+
const schedule = optionalJson(ctx, "auto-refresh-schedule");
|
|
6170
|
+
if (cron !== void 0 && schedule !== void 0) {
|
|
6171
|
+
throw new Error("Pass only one of --auto-refresh-cron and --auto-refresh-schedule");
|
|
6172
|
+
}
|
|
6173
|
+
if (enabled === false && (cron !== void 0 || schedule !== void 0)) {
|
|
6174
|
+
throw new Error("Cannot set a schedule with --enable-auto-refresh false");
|
|
6175
|
+
}
|
|
6176
|
+
if (create && enabled === true && cron === void 0 && schedule === void 0) {
|
|
6177
|
+
throw new Error("Enabling auto refresh on create requires --auto-refresh-schedule or --auto-refresh-cron");
|
|
6178
|
+
}
|
|
5415
6179
|
return compactInput({
|
|
5416
6180
|
project_id: ctx.num("project-id"),
|
|
5417
6181
|
tag_name: ctx.str("tag-name"),
|
|
@@ -5420,7 +6184,9 @@ function tagWriteInput(ctx, create) {
|
|
|
5420
6184
|
authenticated_only: optionalBoolean(ctx, "authenticated-only"),
|
|
5421
6185
|
remark: create ? void 0 : optionalString(ctx, "remark"),
|
|
5422
6186
|
zone_offset: optionalNumber(ctx, "zone-offset"),
|
|
5423
|
-
|
|
6187
|
+
enable_auto_refresh: enabled,
|
|
6188
|
+
auto_refresh_cron: cron,
|
|
6189
|
+
auto_refresh_schedule: schedule,
|
|
5424
6190
|
entity_id: create ? optionalNumber(ctx, "entity-id") : void 0
|
|
5425
6191
|
});
|
|
5426
6192
|
}
|
|
@@ -5542,7 +6308,7 @@ var memberExportFlags = [
|
|
|
5542
6308
|
memberArtifactFormatFlag,
|
|
5543
6309
|
asyncTimeoutSecondsFlag
|
|
5544
6310
|
];
|
|
5545
|
-
var
|
|
6311
|
+
var commands41 = [
|
|
5546
6312
|
capability(
|
|
5547
6313
|
"user-cluster",
|
|
5548
6314
|
"list",
|
|
@@ -5589,7 +6355,7 @@ var commands40 = [
|
|
|
5589
6355
|
displayNameFlag,
|
|
5590
6356
|
clusterDefinitionRequestFlag,
|
|
5591
6357
|
authenticatedOnlyFlag,
|
|
5592
|
-
|
|
6358
|
+
zoneOffsetFlag2,
|
|
5593
6359
|
entityIdFlag
|
|
5594
6360
|
], "write", (ctx) => clusterWriteInput(ctx, true)),
|
|
5595
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.", [
|
|
@@ -5599,7 +6365,7 @@ var commands40 = [
|
|
|
5599
6365
|
optionalClusterDefinitionRequestFlag,
|
|
5600
6366
|
authenticatedOnlyFlag,
|
|
5601
6367
|
remarkFlag,
|
|
5602
|
-
|
|
6368
|
+
zoneOffsetFlag2,
|
|
5603
6369
|
autoRefreshCronFlag
|
|
5604
6370
|
], "high-risk-write", (ctx) => clusterWriteInput(ctx, false)),
|
|
5605
6371
|
idImportCapability(capability("user-cluster", "create-id", "analysis.user_cluster.create_id", "Create a cluster by mapping imported values to an analysis entity.", [
|
|
@@ -5682,8 +6448,9 @@ var commands40 = [
|
|
|
5682
6448
|
displayNameFlag,
|
|
5683
6449
|
tagDefinitionRequestFlag,
|
|
5684
6450
|
authenticatedOnlyFlag,
|
|
5685
|
-
|
|
5686
|
-
entityIdFlag
|
|
6451
|
+
zoneOffsetFlag2,
|
|
6452
|
+
entityIdFlag,
|
|
6453
|
+
...tagAutoRefreshFlags
|
|
5687
6454
|
], "write", (ctx) => tagWriteInput(ctx, true)),
|
|
5688
6455
|
capability("user-tag", "update", "analysis.user_tag.update", "Update a user tag. Pass only fields that should change.", [
|
|
5689
6456
|
projectIdFlag,
|
|
@@ -5692,8 +6459,8 @@ var commands40 = [
|
|
|
5692
6459
|
optionalTagDefinitionRequestFlag,
|
|
5693
6460
|
authenticatedOnlyFlag,
|
|
5694
6461
|
remarkFlag,
|
|
5695
|
-
|
|
5696
|
-
|
|
6462
|
+
zoneOffsetFlag2,
|
|
6463
|
+
...tagAutoRefreshFlags
|
|
5697
6464
|
], "write", (ctx) => tagWriteInput(ctx, false)),
|
|
5698
6465
|
capability("user-tag", "refresh", "analysis.user_tag.refresh", "Refresh a user tag by exact tag_name.", [
|
|
5699
6466
|
projectIdFlag,
|
|
@@ -5796,7 +6563,7 @@ var commands40 = [
|
|
|
5796
6563
|
...memberExportFlags
|
|
5797
6564
|
], "read", (ctx) => historyTagDataDrilldownInput(ctx, false), { asyncArtifact: true })
|
|
5798
6565
|
];
|
|
5799
|
-
var user_default =
|
|
6566
|
+
var user_default = commands41;
|
|
5800
6567
|
|
|
5801
6568
|
// src/commands/te-analysis/query-cluster/list.ts
|
|
5802
6569
|
var queryClusterList = createAnalysisCapabilityCommand({
|
|
@@ -5810,8 +6577,8 @@ var queryClusterList = createAnalysisCapabilityCommand({
|
|
|
5810
6577
|
});
|
|
5811
6578
|
|
|
5812
6579
|
// src/commands/te-analysis/query-cluster/index.ts
|
|
5813
|
-
var
|
|
5814
|
-
var query_cluster_default =
|
|
6580
|
+
var commands42 = [queryClusterList];
|
|
6581
|
+
var query_cluster_default = commands42;
|
|
5815
6582
|
|
|
5816
6583
|
// src/commands/te-analysis/sql-table/columns.ts
|
|
5817
6584
|
var sqlTableColumns = createAnalysisCapabilityCommand({
|
|
@@ -5856,8 +6623,8 @@ var sqlTableList = createAnalysisCapabilityCommand({
|
|
|
5856
6623
|
});
|
|
5857
6624
|
|
|
5858
6625
|
// src/commands/te-analysis/sql-table/index.ts
|
|
5859
|
-
var
|
|
5860
|
-
var sql_table_default =
|
|
6626
|
+
var commands43 = [sqlTableList, sqlTableColumns];
|
|
6627
|
+
var sql_table_default = commands43;
|
|
5861
6628
|
|
|
5862
6629
|
// src/commands/te-analysis/entity/id-import-options.ts
|
|
5863
6630
|
var entityIdImportOptions = createAnalysisCapabilityCommand({
|
|
@@ -5882,8 +6649,8 @@ var entityIdImportOptions = createAnalysisCapabilityCommand({
|
|
|
5882
6649
|
});
|
|
5883
6650
|
|
|
5884
6651
|
// src/commands/te-analysis/entity/index.ts
|
|
5885
|
-
var
|
|
5886
|
-
var entity_default =
|
|
6652
|
+
var commands44 = [entityIdImportOptions];
|
|
6653
|
+
var entity_default = commands44;
|
|
5887
6654
|
|
|
5888
6655
|
// src/commands/te-analysis/input-file/inspect.ts
|
|
5889
6656
|
var inputFileInspect = {
|
|
@@ -5966,8 +6733,8 @@ var inputFileUpload = {
|
|
|
5966
6733
|
};
|
|
5967
6734
|
|
|
5968
6735
|
// src/commands/te-analysis/input-file/index.ts
|
|
5969
|
-
var
|
|
5970
|
-
var input_file_default =
|
|
6736
|
+
var commands45 = [inputFileUpload, inputFileInspect, inputFilePurposeList];
|
|
6737
|
+
var input_file_default = commands45;
|
|
5971
6738
|
|
|
5972
6739
|
// src/commands/te-analysis/project/access-detail/get.ts
|
|
5973
6740
|
var projectAccessDetailGet = createAnalysisCapabilityCommand({
|
|
@@ -5985,10 +6752,10 @@ var projectAccessDetailGet = createAnalysisCapabilityCommand({
|
|
|
5985
6752
|
});
|
|
5986
6753
|
|
|
5987
6754
|
// src/commands/te-analysis/project/access-detail/index.ts
|
|
5988
|
-
var
|
|
6755
|
+
var commands46 = [
|
|
5989
6756
|
projectAccessDetailGet
|
|
5990
6757
|
];
|
|
5991
|
-
var access_detail_default =
|
|
6758
|
+
var access_detail_default = commands46;
|
|
5992
6759
|
|
|
5993
6760
|
// src/commands/te-analysis/project/data-power/delete.ts
|
|
5994
6761
|
var projectDataPowerDelete = createAnalysisCapabilityCommand({
|
|
@@ -6060,13 +6827,13 @@ var projectDataPowerUpsert = createAnalysisCapabilityCommand({
|
|
|
6060
6827
|
});
|
|
6061
6828
|
|
|
6062
6829
|
// src/commands/te-analysis/project/data-power/index.ts
|
|
6063
|
-
var
|
|
6830
|
+
var commands47 = [
|
|
6064
6831
|
projectDataPowerDelete,
|
|
6065
6832
|
projectDataPowerGet,
|
|
6066
6833
|
projectDataPowerList,
|
|
6067
6834
|
projectDataPowerUpsert
|
|
6068
6835
|
];
|
|
6069
|
-
var data_power_default =
|
|
6836
|
+
var data_power_default = commands47;
|
|
6070
6837
|
|
|
6071
6838
|
// src/commands/te-analysis/project/entity/create.ts
|
|
6072
6839
|
var projectEntityCreate = createAnalysisCapabilityCommand({
|
|
@@ -6177,14 +6944,14 @@ var projectEntityUpdate = createAnalysisCapabilityCommand({
|
|
|
6177
6944
|
});
|
|
6178
6945
|
|
|
6179
6946
|
// src/commands/te-analysis/project/entity/index.ts
|
|
6180
|
-
var
|
|
6947
|
+
var commands48 = [
|
|
6181
6948
|
projectEntityCreate,
|
|
6182
6949
|
projectEntityDelete,
|
|
6183
6950
|
projectEntityGet,
|
|
6184
6951
|
projectEntityList,
|
|
6185
6952
|
projectEntityUpdate
|
|
6186
6953
|
];
|
|
6187
|
-
var entity_default2 =
|
|
6954
|
+
var entity_default2 = commands48;
|
|
6188
6955
|
|
|
6189
6956
|
// src/commands/te-analysis/project/entity-event/list.ts
|
|
6190
6957
|
var projectEntityEventList = createAnalysisCapabilityCommand({
|
|
@@ -6204,10 +6971,10 @@ var projectEntityEventList = createAnalysisCapabilityCommand({
|
|
|
6204
6971
|
});
|
|
6205
6972
|
|
|
6206
6973
|
// src/commands/te-analysis/project/entity-event/index.ts
|
|
6207
|
-
var
|
|
6974
|
+
var commands49 = [
|
|
6208
6975
|
projectEntityEventList
|
|
6209
6976
|
];
|
|
6210
|
-
var entity_event_default =
|
|
6977
|
+
var entity_event_default = commands49;
|
|
6211
6978
|
|
|
6212
6979
|
// src/commands/te-analysis/project/function/list.ts
|
|
6213
6980
|
var projectFunctionList = createAnalysisCapabilityCommand({
|
|
@@ -6227,10 +6994,10 @@ var projectFunctionList = createAnalysisCapabilityCommand({
|
|
|
6227
6994
|
});
|
|
6228
6995
|
|
|
6229
6996
|
// src/commands/te-analysis/project/function/index.ts
|
|
6230
|
-
var
|
|
6997
|
+
var commands50 = [
|
|
6231
6998
|
projectFunctionList
|
|
6232
6999
|
];
|
|
6233
|
-
var function_default =
|
|
7000
|
+
var function_default = commands50;
|
|
6234
7001
|
|
|
6235
7002
|
// src/commands/te-analysis/project/info/create.ts
|
|
6236
7003
|
var projectInfoCreate = createAnalysisCapabilityCommand({
|
|
@@ -6325,14 +7092,14 @@ var projectInfoUpdate = createAnalysisCapabilityCommand({
|
|
|
6325
7092
|
});
|
|
6326
7093
|
|
|
6327
7094
|
// src/commands/te-analysis/project/info/index.ts
|
|
6328
|
-
var
|
|
7095
|
+
var commands51 = [
|
|
6329
7096
|
projectInfoCreate,
|
|
6330
7097
|
projectInfoDelete,
|
|
6331
7098
|
projectInfoGet,
|
|
6332
7099
|
projectInfoList,
|
|
6333
7100
|
projectInfoUpdate
|
|
6334
7101
|
];
|
|
6335
|
-
var info_default =
|
|
7102
|
+
var info_default = commands51;
|
|
6336
7103
|
|
|
6337
7104
|
// src/commands/te-analysis/project/mark-time/create.ts
|
|
6338
7105
|
var projectMarkTimeCreate = createAnalysisCapabilityCommand({
|
|
@@ -6426,13 +7193,13 @@ var projectMarkTimeUpdate = createAnalysisCapabilityCommand({
|
|
|
6426
7193
|
});
|
|
6427
7194
|
|
|
6428
7195
|
// src/commands/te-analysis/project/mark-time/index.ts
|
|
6429
|
-
var
|
|
7196
|
+
var commands52 = [
|
|
6430
7197
|
projectMarkTimeCreate,
|
|
6431
7198
|
projectMarkTimeDelete,
|
|
6432
7199
|
projectMarkTimeList,
|
|
6433
7200
|
projectMarkTimeUpdate
|
|
6434
7201
|
];
|
|
6435
|
-
var mark_time_default =
|
|
7202
|
+
var mark_time_default = commands52;
|
|
6436
7203
|
|
|
6437
7204
|
// src/commands/te-analysis/project/member/add.ts
|
|
6438
7205
|
var projectMemberAdd = createAnalysisCapabilityCommand({
|
|
@@ -6443,7 +7210,12 @@ var projectMemberAdd = createAnalysisCapabilityCommand({
|
|
|
6443
7210
|
flags: [
|
|
6444
7211
|
projectIdFlag,
|
|
6445
7212
|
requiredPayloadFlag,
|
|
6446
|
-
{
|
|
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
|
+
}
|
|
6447
7219
|
],
|
|
6448
7220
|
risk: "write",
|
|
6449
7221
|
buildInput: (ctx) => compactInput({
|
|
@@ -6543,7 +7315,7 @@ var projectMemberUpdate = createAnalysisCapabilityCommand({
|
|
|
6543
7315
|
});
|
|
6544
7316
|
|
|
6545
7317
|
// src/commands/te-analysis/project/member/index.ts
|
|
6546
|
-
var
|
|
7318
|
+
var commands53 = [
|
|
6547
7319
|
projectMemberAdd,
|
|
6548
7320
|
projectMemberBatchUpdate,
|
|
6549
7321
|
projectMemberImport,
|
|
@@ -6551,7 +7323,7 @@ var commands52 = [
|
|
|
6551
7323
|
projectMemberRemove,
|
|
6552
7324
|
projectMemberUpdate
|
|
6553
7325
|
];
|
|
6554
|
-
var member_default =
|
|
7326
|
+
var member_default = commands53;
|
|
6555
7327
|
|
|
6556
7328
|
// src/commands/te-analysis/project/member-candidate/list.ts
|
|
6557
7329
|
var projectMemberCandidateList = createAnalysisCapabilityCommand({
|
|
@@ -6561,8 +7333,18 @@ var projectMemberCandidateList = createAnalysisCapabilityCommand({
|
|
|
6561
7333
|
description: "List candidate users and role/data-power options for adding project members.",
|
|
6562
7334
|
flags: [
|
|
6563
7335
|
projectIdFlag,
|
|
6564
|
-
{
|
|
6565
|
-
|
|
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
|
+
}
|
|
6566
7348
|
],
|
|
6567
7349
|
risk: "read",
|
|
6568
7350
|
buildInput: (ctx) => compactInput({
|
|
@@ -6573,10 +7355,10 @@ var projectMemberCandidateList = createAnalysisCapabilityCommand({
|
|
|
6573
7355
|
});
|
|
6574
7356
|
|
|
6575
7357
|
// src/commands/te-analysis/project/member-candidate/index.ts
|
|
6576
|
-
var
|
|
7358
|
+
var commands54 = [
|
|
6577
7359
|
projectMemberCandidateList
|
|
6578
7360
|
];
|
|
6579
|
-
var member_candidate_default =
|
|
7361
|
+
var member_candidate_default = commands54;
|
|
6580
7362
|
|
|
6581
7363
|
// src/commands/te-analysis/project/member-handover/export.ts
|
|
6582
7364
|
var projectMemberHandoverExport = createAnalysisCapabilityCommand({
|
|
@@ -6617,11 +7399,11 @@ var projectMemberHandoverRun = createAnalysisCapabilityCommand({
|
|
|
6617
7399
|
});
|
|
6618
7400
|
|
|
6619
7401
|
// src/commands/te-analysis/project/member-handover/index.ts
|
|
6620
|
-
var
|
|
7402
|
+
var commands55 = [
|
|
6621
7403
|
projectMemberHandoverExport,
|
|
6622
7404
|
projectMemberHandoverRun
|
|
6623
7405
|
];
|
|
6624
|
-
var member_handover_default =
|
|
7406
|
+
var member_handover_default = commands55;
|
|
6625
7407
|
|
|
6626
7408
|
// src/commands/te-analysis/project/member-receiver/list.ts
|
|
6627
7409
|
var projectMemberReceiverList = createAnalysisCapabilityCommand({
|
|
@@ -6639,10 +7421,10 @@ var projectMemberReceiverList = createAnalysisCapabilityCommand({
|
|
|
6639
7421
|
});
|
|
6640
7422
|
|
|
6641
7423
|
// src/commands/te-analysis/project/member-receiver/index.ts
|
|
6642
|
-
var
|
|
7424
|
+
var commands56 = [
|
|
6643
7425
|
projectMemberReceiverList
|
|
6644
7426
|
];
|
|
6645
|
-
var member_receiver_default =
|
|
7427
|
+
var member_receiver_default = commands56;
|
|
6646
7428
|
|
|
6647
7429
|
// src/commands/te-analysis/project/owner/update.ts
|
|
6648
7430
|
var projectOwnerUpdate = createAnalysisCapabilityCommand({
|
|
@@ -6668,10 +7450,10 @@ var projectOwnerUpdate = createAnalysisCapabilityCommand({
|
|
|
6668
7450
|
});
|
|
6669
7451
|
|
|
6670
7452
|
// src/commands/te-analysis/project/owner/index.ts
|
|
6671
|
-
var
|
|
7453
|
+
var commands57 = [
|
|
6672
7454
|
projectOwnerUpdate
|
|
6673
7455
|
];
|
|
6674
|
-
var owner_default =
|
|
7456
|
+
var owner_default = commands57;
|
|
6675
7457
|
|
|
6676
7458
|
// src/commands/te-analysis/project/permission-binding/list.ts
|
|
6677
7459
|
var projectPermissionBindingList = createAnalysisCapabilityCommand({
|
|
@@ -6693,10 +7475,10 @@ var projectPermissionBindingList = createAnalysisCapabilityCommand({
|
|
|
6693
7475
|
});
|
|
6694
7476
|
|
|
6695
7477
|
// src/commands/te-analysis/project/permission-binding/index.ts
|
|
6696
|
-
var
|
|
7478
|
+
var commands58 = [
|
|
6697
7479
|
projectPermissionBindingList
|
|
6698
7480
|
];
|
|
6699
|
-
var permission_binding_default =
|
|
7481
|
+
var permission_binding_default = commands58;
|
|
6700
7482
|
|
|
6701
7483
|
// src/commands/te-analysis/project/receive-status/update.ts
|
|
6702
7484
|
var projectReceiveStatusUpdate = createAnalysisCapabilityCommand({
|
|
@@ -6717,10 +7499,10 @@ var projectReceiveStatusUpdate = createAnalysisCapabilityCommand({
|
|
|
6717
7499
|
});
|
|
6718
7500
|
|
|
6719
7501
|
// src/commands/te-analysis/project/receive-status/index.ts
|
|
6720
|
-
var
|
|
7502
|
+
var commands59 = [
|
|
6721
7503
|
projectReceiveStatusUpdate
|
|
6722
7504
|
];
|
|
6723
|
-
var receive_status_default =
|
|
7505
|
+
var receive_status_default = commands59;
|
|
6724
7506
|
|
|
6725
7507
|
// src/commands/te-analysis/project/role/delete.ts
|
|
6726
7508
|
var projectRoleDelete = createAnalysisCapabilityCommand({
|
|
@@ -6779,14 +7561,30 @@ var projectRoleList = createAnalysisCapabilityCommand({
|
|
|
6779
7561
|
});
|
|
6780
7562
|
|
|
6781
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");
|
|
6782
7576
|
var projectRoleUpsert = createAnalysisCapabilityCommand({
|
|
6783
7577
|
resource: "project role",
|
|
6784
7578
|
command: "upsert",
|
|
6785
7579
|
capabilityId: "project.role.upsert",
|
|
6786
7580
|
description: "Create or update a project role.",
|
|
7581
|
+
helpText: ROLE_UPSERT_HELP,
|
|
6787
7582
|
flags: [
|
|
6788
7583
|
projectIdFlag,
|
|
6789
|
-
|
|
7584
|
+
{
|
|
7585
|
+
...requiredPayloadFlag,
|
|
7586
|
+
desc: "Role payload with role_func_list object items containing function_name and has_power (0 or 1)."
|
|
7587
|
+
}
|
|
6790
7588
|
],
|
|
6791
7589
|
risk: "write",
|
|
6792
7590
|
buildInput: (ctx) => compactInput({
|
|
@@ -6796,13 +7594,13 @@ var projectRoleUpsert = createAnalysisCapabilityCommand({
|
|
|
6796
7594
|
});
|
|
6797
7595
|
|
|
6798
7596
|
// src/commands/te-analysis/project/role/index.ts
|
|
6799
|
-
var
|
|
7597
|
+
var commands60 = [
|
|
6800
7598
|
projectRoleDelete,
|
|
6801
7599
|
projectRoleGet,
|
|
6802
7600
|
projectRoleList,
|
|
6803
7601
|
projectRoleUpsert
|
|
6804
7602
|
];
|
|
6805
|
-
var role_default =
|
|
7603
|
+
var role_default = commands60;
|
|
6806
7604
|
|
|
6807
7605
|
// src/commands/te-analysis/project/role-function/list.ts
|
|
6808
7606
|
var projectRoleFunctionList = createAnalysisCapabilityCommand({
|
|
@@ -6828,10 +7626,10 @@ var projectRoleFunctionList = createAnalysisCapabilityCommand({
|
|
|
6828
7626
|
});
|
|
6829
7627
|
|
|
6830
7628
|
// src/commands/te-analysis/project/role-function/index.ts
|
|
6831
|
-
var
|
|
7629
|
+
var commands61 = [
|
|
6832
7630
|
projectRoleFunctionList
|
|
6833
7631
|
];
|
|
6834
|
-
var role_function_default =
|
|
7632
|
+
var role_function_default = commands61;
|
|
6835
7633
|
|
|
6836
7634
|
// src/commands/te-analysis/project/role-user/list.ts
|
|
6837
7635
|
var projectRoleUserList = createAnalysisCapabilityCommand({
|
|
@@ -6851,10 +7649,10 @@ var projectRoleUserList = createAnalysisCapabilityCommand({
|
|
|
6851
7649
|
});
|
|
6852
7650
|
|
|
6853
7651
|
// src/commands/te-analysis/project/role-user/index.ts
|
|
6854
|
-
var
|
|
7652
|
+
var commands62 = [
|
|
6855
7653
|
projectRoleUserList
|
|
6856
7654
|
];
|
|
6857
|
-
var role_user_default =
|
|
7655
|
+
var role_user_default = commands62;
|
|
6858
7656
|
|
|
6859
7657
|
// src/commands/te-analysis/project/timezone/get.ts
|
|
6860
7658
|
var projectTimezoneGet = createAnalysisCapabilityCommand({
|
|
@@ -6973,9 +7771,9 @@ function validateDisplayTimezones(value, item) {
|
|
|
6973
7771
|
}
|
|
6974
7772
|
}
|
|
6975
7773
|
}
|
|
6976
|
-
function allowOnly(payload, item,
|
|
6977
|
-
if (Object.keys(payload).some((field) => !
|
|
6978
|
-
throw invalidPayload(item, `supports only fields ${
|
|
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(", ")}`);
|
|
6979
7777
|
}
|
|
6980
7778
|
}
|
|
6981
7779
|
function invalidPayload(item, reason, example) {
|
|
@@ -6992,12 +7790,12 @@ function isObject(value) {
|
|
|
6992
7790
|
}
|
|
6993
7791
|
|
|
6994
7792
|
// src/commands/te-analysis/project/timezone/index.ts
|
|
6995
|
-
var
|
|
7793
|
+
var commands63 = [
|
|
6996
7794
|
projectTimezoneGet,
|
|
6997
7795
|
projectTimezoneOverview,
|
|
6998
7796
|
projectTimezoneUpdate
|
|
6999
7797
|
];
|
|
7000
|
-
var timezone_default =
|
|
7798
|
+
var timezone_default = commands63;
|
|
7001
7799
|
|
|
7002
7800
|
// src/commands/te-analysis/project/user-id-items/update.ts
|
|
7003
7801
|
var projectUserIdItemsUpdate = createAnalysisCapabilityCommand({
|
|
@@ -7017,13 +7815,13 @@ var projectUserIdItemsUpdate = createAnalysisCapabilityCommand({
|
|
|
7017
7815
|
});
|
|
7018
7816
|
|
|
7019
7817
|
// src/commands/te-analysis/project/user-id-items/index.ts
|
|
7020
|
-
var
|
|
7818
|
+
var commands64 = [
|
|
7021
7819
|
projectUserIdItemsUpdate
|
|
7022
7820
|
];
|
|
7023
|
-
var user_id_items_default =
|
|
7821
|
+
var user_id_items_default = commands64;
|
|
7024
7822
|
|
|
7025
7823
|
// src/commands/te-analysis/project/index.ts
|
|
7026
|
-
var
|
|
7824
|
+
var commands65 = [
|
|
7027
7825
|
...access_detail_default,
|
|
7028
7826
|
...data_power_default,
|
|
7029
7827
|
...entity_default2,
|
|
@@ -7044,7 +7842,7 @@ var commands64 = [
|
|
|
7044
7842
|
...timezone_default,
|
|
7045
7843
|
...user_id_items_default
|
|
7046
7844
|
];
|
|
7047
|
-
var project_default =
|
|
7845
|
+
var project_default = commands65;
|
|
7048
7846
|
|
|
7049
7847
|
// src/commands/te-analysis/tracking/shared.ts
|
|
7050
7848
|
function createTrackingCapabilityCommand(config) {
|
|
@@ -7218,12 +8016,12 @@ var confirmFlag = {
|
|
|
7218
8016
|
required: true,
|
|
7219
8017
|
desc: "Must be true for this destructive tracking operation. Also use global --yes to skip local confirmation."
|
|
7220
8018
|
};
|
|
7221
|
-
function
|
|
8019
|
+
function projectInput3(ctx) {
|
|
7222
8020
|
return { project_id: ctx.num("project-id") };
|
|
7223
8021
|
}
|
|
7224
8022
|
function projectLifecycleInput(ctx) {
|
|
7225
8023
|
return compactInput({
|
|
7226
|
-
...
|
|
8024
|
+
...projectInput3(ctx),
|
|
7227
8025
|
request_id: optionalString(ctx, "request-id"),
|
|
7228
8026
|
timeout_seconds: optionalNumber(ctx, "timeout-seconds")
|
|
7229
8027
|
});
|
|
@@ -7237,7 +8035,7 @@ var trackingPlanGet = createTrackingCapabilityCommand({
|
|
|
7237
8035
|
description: "Get the tracking plan for one project.",
|
|
7238
8036
|
flags: [projectIdFlag],
|
|
7239
8037
|
risk: "read",
|
|
7240
|
-
buildInput:
|
|
8038
|
+
buildInput: projectInput3
|
|
7241
8039
|
});
|
|
7242
8040
|
|
|
7243
8041
|
// src/commands/te-analysis/tracking/plan/save-items.ts
|
|
@@ -7249,7 +8047,7 @@ var trackingPlanSaveItems = createTrackingCapabilityCommand({
|
|
|
7249
8047
|
flags: [projectIdFlag, eventsFlag, eventPropsFlag, userPropsFlag, commonEventPropsFlag],
|
|
7250
8048
|
risk: "write",
|
|
7251
8049
|
buildInput: (ctx) => compactInput({
|
|
7252
|
-
...
|
|
8050
|
+
...projectInput3(ctx),
|
|
7253
8051
|
events: optionalJson(ctx, "events"),
|
|
7254
8052
|
event_props: optionalJson(ctx, "event-props"),
|
|
7255
8053
|
user_props: optionalJson(ctx, "user-props"),
|
|
@@ -7266,7 +8064,7 @@ var trackingPlanDeleteItems = createTrackingCapabilityCommand({
|
|
|
7266
8064
|
flags: [projectIdFlag, eventsFlag, eventPropNamesFlag, userPropNamesFlag, commonEventPropNamesFlag, confirmFlag],
|
|
7267
8065
|
risk: "high-risk-write",
|
|
7268
8066
|
buildInput: (ctx) => compactInput({
|
|
7269
|
-
...
|
|
8067
|
+
...projectInput3(ctx),
|
|
7270
8068
|
events: optionalJson(ctx, "events"),
|
|
7271
8069
|
event_prop_names: optionalJson(ctx, "event-prop-names"),
|
|
7272
8070
|
user_prop_names: optionalJson(ctx, "user-prop-names"),
|
|
@@ -7284,7 +8082,7 @@ var trackingPlanGenerate = createTrackingCapabilityCommand({
|
|
|
7284
8082
|
flags: [projectIdFlag, languageFlag, formDataFlag, developmentCarrierFlag, predefinedEventFlag],
|
|
7285
8083
|
risk: "write",
|
|
7286
8084
|
buildInput: (ctx) => compactInput({
|
|
7287
|
-
...
|
|
8085
|
+
...projectInput3(ctx),
|
|
7288
8086
|
language: ctx.str("language"),
|
|
7289
8087
|
form_data: ctx.json("form-data"),
|
|
7290
8088
|
development_carrier: optionalJson(ctx, "development-carrier"),
|
|
@@ -7410,7 +8208,7 @@ function validateSource(ctx) {
|
|
|
7410
8208
|
}
|
|
7411
8209
|
function buildInput(ctx, inputFileId) {
|
|
7412
8210
|
return compactInput({
|
|
7413
|
-
...
|
|
8211
|
+
...projectInput3(ctx),
|
|
7414
8212
|
input_file_id: inputFileId,
|
|
7415
8213
|
lang: optionalString(ctx, "lang")
|
|
7416
8214
|
});
|
|
@@ -7424,7 +8222,7 @@ var trackingPlanSyncFromMeta = createTrackingCapabilityCommand({
|
|
|
7424
8222
|
description: "Synchronize tracking plan from project metadata.",
|
|
7425
8223
|
flags: [projectIdFlag],
|
|
7426
8224
|
risk: "write",
|
|
7427
|
-
buildInput:
|
|
8225
|
+
buildInput: projectInput3
|
|
7428
8226
|
});
|
|
7429
8227
|
|
|
7430
8228
|
// src/commands/te-analysis/tracking/plan/sync-display-names.ts
|
|
@@ -7455,7 +8253,7 @@ function buildDisplayNameSyncPlan(draft, metadata) {
|
|
|
7455
8253
|
};
|
|
7456
8254
|
}
|
|
7457
8255
|
function assertTrackingDraft(value) {
|
|
7458
|
-
if (!
|
|
8256
|
+
if (!isRecord2(value)) {
|
|
7459
8257
|
throw new Error("Tracking draft must be a JSON object.");
|
|
7460
8258
|
}
|
|
7461
8259
|
for (const field of [
|
|
@@ -7519,7 +8317,7 @@ function existingDefinitions(value, nameField, displayNameField) {
|
|
|
7519
8317
|
if (!Array.isArray(value)) return [];
|
|
7520
8318
|
const rows = [];
|
|
7521
8319
|
for (const item of value) {
|
|
7522
|
-
if (!
|
|
8320
|
+
if (!isRecord2(item)) continue;
|
|
7523
8321
|
const name = nonEmptyString(item[nameField]);
|
|
7524
8322
|
if (!name) continue;
|
|
7525
8323
|
rows.push({
|
|
@@ -7562,7 +8360,7 @@ function nonEmptyString(value) {
|
|
|
7562
8360
|
const trimmed = value.trim();
|
|
7563
8361
|
return trimmed ? trimmed : void 0;
|
|
7564
8362
|
}
|
|
7565
|
-
function
|
|
8363
|
+
function isRecord2(value) {
|
|
7566
8364
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
7567
8365
|
}
|
|
7568
8366
|
|
|
@@ -7775,7 +8573,7 @@ function counts(plan, value) {
|
|
|
7775
8573
|
}
|
|
7776
8574
|
|
|
7777
8575
|
// src/commands/te-analysis/tracking/plan/index.ts
|
|
7778
|
-
var
|
|
8576
|
+
var commands66 = [
|
|
7779
8577
|
trackingPlanGet,
|
|
7780
8578
|
trackingPlanSaveItems,
|
|
7781
8579
|
trackingPlanDeleteItems,
|
|
@@ -7785,7 +8583,7 @@ var commands65 = [
|
|
|
7785
8583
|
trackingPlanSyncFromMeta,
|
|
7786
8584
|
trackingPlanSyncDisplayNames
|
|
7787
8585
|
];
|
|
7788
|
-
var plan_default =
|
|
8586
|
+
var plan_default = commands66;
|
|
7789
8587
|
|
|
7790
8588
|
// src/commands/te-analysis/tracking/sdk-sample/generate.ts
|
|
7791
8589
|
var trackingSdkSampleGenerate = createTrackingCapabilityCommand({
|
|
@@ -7795,14 +8593,14 @@ var trackingSdkSampleGenerate = createTrackingCapabilityCommand({
|
|
|
7795
8593
|
description: "Submit an AI SDK sample generation task.",
|
|
7796
8594
|
flags: [projectIdFlag, sdkTypesFlag],
|
|
7797
8595
|
risk: "write",
|
|
7798
|
-
buildInput: (ctx) => ({ ...
|
|
8596
|
+
buildInput: (ctx) => ({ ...projectInput3(ctx), sdk_types: ctx.json("sdk-types") })
|
|
7799
8597
|
});
|
|
7800
8598
|
|
|
7801
8599
|
// src/commands/te-analysis/tracking/sdk-sample/index.ts
|
|
7802
|
-
var
|
|
8600
|
+
var commands67 = [
|
|
7803
8601
|
trackingSdkSampleGenerate
|
|
7804
8602
|
];
|
|
7805
|
-
var sdk_sample_default =
|
|
8603
|
+
var sdk_sample_default = commands67;
|
|
7806
8604
|
|
|
7807
8605
|
// src/commands/te-analysis/tracking/plan-change-log/list.ts
|
|
7808
8606
|
var trackingPlanChangeLogList = createTrackingCapabilityCommand({
|
|
@@ -7812,7 +8610,7 @@ var trackingPlanChangeLogList = createTrackingCapabilityCommand({
|
|
|
7812
8610
|
description: "List tracking plan change logs.",
|
|
7813
8611
|
flags: [projectIdFlag],
|
|
7814
8612
|
risk: "read",
|
|
7815
|
-
buildInput:
|
|
8613
|
+
buildInput: projectInput3
|
|
7816
8614
|
});
|
|
7817
8615
|
|
|
7818
8616
|
// src/commands/te-analysis/tracking/plan-change-log/export.ts
|
|
@@ -7824,15 +8622,15 @@ var trackingPlanChangeLogExport = createTrackingCapabilityCommand({
|
|
|
7824
8622
|
description: "Export one tracking plan change log.",
|
|
7825
8623
|
flags: [projectIdFlag, logIdFlag, requestIdFlag, asyncTimeoutSecondsFlag],
|
|
7826
8624
|
risk: "read",
|
|
7827
|
-
buildInput: (ctx) => compactInput({ ...
|
|
8625
|
+
buildInput: (ctx) => compactInput({ ...projectInput3(ctx), log_id: ctx.num("log-id"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
|
|
7828
8626
|
});
|
|
7829
8627
|
|
|
7830
8628
|
// src/commands/te-analysis/tracking/plan-change-log/index.ts
|
|
7831
|
-
var
|
|
8629
|
+
var commands68 = [
|
|
7832
8630
|
trackingPlanChangeLogList,
|
|
7833
8631
|
trackingPlanChangeLogExport
|
|
7834
8632
|
];
|
|
7835
|
-
var plan_change_log_default =
|
|
8633
|
+
var plan_change_log_default = commands68;
|
|
7836
8634
|
|
|
7837
8635
|
// src/commands/te-analysis/tracking/check/run.ts
|
|
7838
8636
|
var trackingCheckRun = createTrackingCapabilityCommand({
|
|
@@ -7843,7 +8641,7 @@ var trackingCheckRun = createTrackingCapabilityCommand({
|
|
|
7843
8641
|
flags: [projectIdFlag, checkScopeFlag, resultScopeFlag],
|
|
7844
8642
|
risk: "write",
|
|
7845
8643
|
buildInput: (ctx) => compactInput({
|
|
7846
|
-
...
|
|
8644
|
+
...projectInput3(ctx),
|
|
7847
8645
|
check_scope: ctx.json("check-scope"),
|
|
7848
8646
|
result_scope: optionalJson(ctx, "result-scope")
|
|
7849
8647
|
})
|
|
@@ -7857,7 +8655,7 @@ var trackingCheckList = createTrackingCapabilityCommand({
|
|
|
7857
8655
|
description: "List tracking validation runs.",
|
|
7858
8656
|
flags: [projectIdFlag],
|
|
7859
8657
|
risk: "read",
|
|
7860
|
-
buildInput:
|
|
8658
|
+
buildInput: projectInput3
|
|
7861
8659
|
});
|
|
7862
8660
|
|
|
7863
8661
|
// src/commands/te-analysis/tracking/check/get.ts
|
|
@@ -7868,7 +8666,7 @@ var trackingCheckGet = createTrackingCapabilityCommand({
|
|
|
7868
8666
|
description: "Get one tracking validation result.",
|
|
7869
8667
|
flags: [projectIdFlag, uuidFlag, requestIdFlag, timeoutSecondsFlag],
|
|
7870
8668
|
risk: "read",
|
|
7871
|
-
buildInput: (ctx) => compactInput({ ...
|
|
8669
|
+
buildInput: (ctx) => compactInput({ ...projectInput3(ctx), uuid: ctx.str("uuid"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
|
|
7872
8670
|
});
|
|
7873
8671
|
|
|
7874
8672
|
// src/commands/te-analysis/tracking/check/retry.ts
|
|
@@ -7879,7 +8677,7 @@ var trackingCheckRetry = createTrackingCapabilityCommand({
|
|
|
7879
8677
|
description: "Retry one tracking validation run.",
|
|
7880
8678
|
flags: [projectIdFlag, uuidFlag, requestIdFlag, timeoutSecondsFlag],
|
|
7881
8679
|
risk: "write",
|
|
7882
|
-
buildInput: (ctx) => compactInput({ ...
|
|
8680
|
+
buildInput: (ctx) => compactInput({ ...projectInput3(ctx), uuid: ctx.str("uuid"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
|
|
7883
8681
|
});
|
|
7884
8682
|
|
|
7885
8683
|
// src/commands/te-analysis/tracking/check/delete.ts
|
|
@@ -7890,7 +8688,7 @@ var trackingCheckDelete = createTrackingCapabilityCommand({
|
|
|
7890
8688
|
description: "Delete one tracking validation run.",
|
|
7891
8689
|
flags: [projectIdFlag, uuidFlag, confirmFlag],
|
|
7892
8690
|
risk: "high-risk-write",
|
|
7893
|
-
buildInput: (ctx) => ({ ...
|
|
8691
|
+
buildInput: (ctx) => ({ ...projectInput3(ctx), uuid: ctx.str("uuid"), yes: ctx.bool("confirm") })
|
|
7894
8692
|
});
|
|
7895
8693
|
|
|
7896
8694
|
// src/commands/te-analysis/tracking/check/export.ts
|
|
@@ -7902,11 +8700,11 @@ var trackingCheckExport = createTrackingCapabilityCommand({
|
|
|
7902
8700
|
description: "Export one tracking validation result.",
|
|
7903
8701
|
flags: [projectIdFlag, uuidFlag, requestIdFlag, asyncTimeoutSecondsFlag],
|
|
7904
8702
|
risk: "read",
|
|
7905
|
-
buildInput: (ctx) => compactInput({ ...
|
|
8703
|
+
buildInput: (ctx) => compactInput({ ...projectInput3(ctx), uuid: ctx.str("uuid"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
|
|
7906
8704
|
});
|
|
7907
8705
|
|
|
7908
8706
|
// src/commands/te-analysis/tracking/check/index.ts
|
|
7909
|
-
var
|
|
8707
|
+
var commands69 = [
|
|
7910
8708
|
trackingCheckRun,
|
|
7911
8709
|
trackingCheckList,
|
|
7912
8710
|
trackingCheckGet,
|
|
@@ -7914,7 +8712,7 @@ var commands68 = [
|
|
|
7914
8712
|
trackingCheckDelete,
|
|
7915
8713
|
trackingCheckExport
|
|
7916
8714
|
];
|
|
7917
|
-
var check_default =
|
|
8715
|
+
var check_default = commands69;
|
|
7918
8716
|
|
|
7919
8717
|
// src/commands/te-analysis/tracking/ingest/summary.ts
|
|
7920
8718
|
var trackingIngestSummary = createTrackingCapabilityCommand({
|
|
@@ -7924,14 +8722,14 @@ var trackingIngestSummary = createTrackingCapabilityCommand({
|
|
|
7924
8722
|
description: "Get tracking ingest summary.",
|
|
7925
8723
|
flags: [projectIdFlag, startTimeFlag, endTimeFlag],
|
|
7926
8724
|
risk: "read",
|
|
7927
|
-
buildInput: (ctx) => ({ ...
|
|
8725
|
+
buildInput: (ctx) => ({ ...projectInput3(ctx), start_time: ctx.str("start-time"), end_time: ctx.str("end-time") })
|
|
7928
8726
|
});
|
|
7929
8727
|
|
|
7930
8728
|
// src/commands/te-analysis/tracking/ingest/index.ts
|
|
7931
|
-
var
|
|
8729
|
+
var commands70 = [
|
|
7932
8730
|
trackingIngestSummary
|
|
7933
8731
|
];
|
|
7934
|
-
var ingest_default =
|
|
8732
|
+
var ingest_default = commands70;
|
|
7935
8733
|
|
|
7936
8734
|
// src/commands/te-analysis/tracking/ingest-error/list.ts
|
|
7937
8735
|
var trackingIngestErrorList = createTrackingCapabilityCommand({
|
|
@@ -7941,14 +8739,14 @@ var trackingIngestErrorList = createTrackingCapabilityCommand({
|
|
|
7941
8739
|
description: "List tracking ingest errors for one data name.",
|
|
7942
8740
|
flags: [projectIdFlag, dataNameFlag, startTimeFlag, endTimeFlag],
|
|
7943
8741
|
risk: "read",
|
|
7944
|
-
buildInput: (ctx) => ({ ...
|
|
8742
|
+
buildInput: (ctx) => ({ ...projectInput3(ctx), data_name: ctx.str("data-name"), start_time: ctx.str("start-time"), end_time: ctx.str("end-time") })
|
|
7945
8743
|
});
|
|
7946
8744
|
|
|
7947
8745
|
// src/commands/te-analysis/tracking/ingest-error/index.ts
|
|
7948
|
-
var
|
|
8746
|
+
var commands71 = [
|
|
7949
8747
|
trackingIngestErrorList
|
|
7950
8748
|
];
|
|
7951
|
-
var ingest_error_default =
|
|
8749
|
+
var ingest_error_default = commands71;
|
|
7952
8750
|
|
|
7953
8751
|
// src/commands/te-analysis/tracking/live-data/list.ts
|
|
7954
8752
|
var trackingLiveDataList = createTrackingCapabilityCommand({
|
|
@@ -7958,7 +8756,7 @@ var trackingLiveDataList = createTrackingCapabilityCommand({
|
|
|
7958
8756
|
description: "List recent tracking live data.",
|
|
7959
8757
|
flags: [projectIdFlag, dataTypeFlag, requestIdFlag, timeoutSecondsFlag],
|
|
7960
8758
|
risk: "read",
|
|
7961
|
-
buildInput: (ctx) => compactInput({ ...
|
|
8759
|
+
buildInput: (ctx) => compactInput({ ...projectInput3(ctx), data_type: optionalString(ctx, "data-type"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
|
|
7962
8760
|
});
|
|
7963
8761
|
|
|
7964
8762
|
// src/commands/te-analysis/tracking/live-data/export.ts
|
|
@@ -7970,15 +8768,15 @@ var trackingLiveDataExport = createTrackingCapabilityCommand({
|
|
|
7970
8768
|
description: "Export recent tracking live data.",
|
|
7971
8769
|
flags: [projectIdFlag, dataTypeFlag, requestIdFlag, asyncTimeoutSecondsFlag],
|
|
7972
8770
|
risk: "read",
|
|
7973
|
-
buildInput: (ctx) => compactInput({ ...
|
|
8771
|
+
buildInput: (ctx) => compactInput({ ...projectInput3(ctx), data_type: optionalString(ctx, "data-type"), request_id: optionalString(ctx, "request-id"), timeout_seconds: optionalNumber(ctx, "timeout-seconds") })
|
|
7974
8772
|
});
|
|
7975
8773
|
|
|
7976
8774
|
// src/commands/te-analysis/tracking/live-data/index.ts
|
|
7977
|
-
var
|
|
8775
|
+
var commands72 = [
|
|
7978
8776
|
trackingLiveDataList,
|
|
7979
8777
|
trackingLiveDataExport
|
|
7980
8778
|
];
|
|
7981
|
-
var live_data_default =
|
|
8779
|
+
var live_data_default = commands72;
|
|
7982
8780
|
|
|
7983
8781
|
// src/commands/te-analysis/tracking/event-blacklist/list.ts
|
|
7984
8782
|
var trackingEventBlacklistList = createTrackingCapabilityCommand({
|
|
@@ -7988,7 +8786,7 @@ var trackingEventBlacklistList = createTrackingCapabilityCommand({
|
|
|
7988
8786
|
description: "List tracking event blacklist configuration.",
|
|
7989
8787
|
flags: [projectIdFlag],
|
|
7990
8788
|
risk: "read",
|
|
7991
|
-
buildInput:
|
|
8789
|
+
buildInput: projectInput3
|
|
7992
8790
|
});
|
|
7993
8791
|
|
|
7994
8792
|
// src/commands/te-analysis/tracking/event-blacklist/add.ts
|
|
@@ -7999,7 +8797,7 @@ var trackingEventBlacklistAdd = createTrackingCapabilityCommand({
|
|
|
7999
8797
|
description: "Add events to tracking event blacklist.",
|
|
8000
8798
|
flags: [projectIdFlag, eventNamesFlag],
|
|
8001
8799
|
risk: "write",
|
|
8002
|
-
buildInput: (ctx) => ({ ...
|
|
8800
|
+
buildInput: (ctx) => ({ ...projectInput3(ctx), event_names: ctx.json("event-names") })
|
|
8003
8801
|
});
|
|
8004
8802
|
|
|
8005
8803
|
// src/commands/te-analysis/tracking/event-blacklist/update.ts
|
|
@@ -8010,16 +8808,16 @@ var trackingEventBlacklistUpdate = createTrackingCapabilityCommand({
|
|
|
8010
8808
|
description: "Update tracking event blacklist config.",
|
|
8011
8809
|
flags: [projectIdFlag, eventNamesFlag, blacklistTypeFlag],
|
|
8012
8810
|
risk: "write",
|
|
8013
|
-
buildInput: (ctx) => ({ ...
|
|
8811
|
+
buildInput: (ctx) => ({ ...projectInput3(ctx), event_names: ctx.json("event-names"), type: ctx.num("type") })
|
|
8014
8812
|
});
|
|
8015
8813
|
|
|
8016
8814
|
// src/commands/te-analysis/tracking/event-blacklist/index.ts
|
|
8017
|
-
var
|
|
8815
|
+
var commands73 = [
|
|
8018
8816
|
trackingEventBlacklistList,
|
|
8019
8817
|
trackingEventBlacklistAdd,
|
|
8020
8818
|
trackingEventBlacklistUpdate
|
|
8021
8819
|
];
|
|
8022
|
-
var event_blacklist_default =
|
|
8820
|
+
var event_blacklist_default = commands73;
|
|
8023
8821
|
|
|
8024
8822
|
// src/commands/te-analysis/tracking/debug-device/add.ts
|
|
8025
8823
|
var trackingDebugDeviceAdd = createTrackingCapabilityCommand({
|
|
@@ -8030,7 +8828,7 @@ var trackingDebugDeviceAdd = createTrackingCapabilityCommand({
|
|
|
8030
8828
|
flags: [projectIdFlag, debugDeviceIdFlag, debugDeviceNameFlag],
|
|
8031
8829
|
risk: "write",
|
|
8032
8830
|
buildInput: (ctx) => ({
|
|
8033
|
-
...
|
|
8831
|
+
...projectInput3(ctx),
|
|
8034
8832
|
device_id: ctx.str("device-id"),
|
|
8035
8833
|
device_name: ctx.str("device-name")
|
|
8036
8834
|
})
|
|
@@ -8044,7 +8842,7 @@ var trackingDebugDeviceList = createTrackingCapabilityCommand({
|
|
|
8044
8842
|
description: "List Debug devices and the device selected by the current CLI user.",
|
|
8045
8843
|
flags: [projectIdFlag],
|
|
8046
8844
|
risk: "read",
|
|
8047
|
-
buildInput:
|
|
8845
|
+
buildInput: projectInput3
|
|
8048
8846
|
});
|
|
8049
8847
|
|
|
8050
8848
|
// src/commands/te-analysis/tracking/debug-device/select.ts
|
|
@@ -8056,18 +8854,18 @@ var trackingDebugDeviceSelect = createTrackingCapabilityCommand({
|
|
|
8056
8854
|
flags: [projectIdFlag, debugDeviceIdFlag],
|
|
8057
8855
|
risk: "write",
|
|
8058
8856
|
buildInput: (ctx) => ({
|
|
8059
|
-
...
|
|
8857
|
+
...projectInput3(ctx),
|
|
8060
8858
|
device_id: ctx.str("device-id")
|
|
8061
8859
|
})
|
|
8062
8860
|
});
|
|
8063
8861
|
|
|
8064
8862
|
// src/commands/te-analysis/tracking/debug-device/index.ts
|
|
8065
|
-
var
|
|
8863
|
+
var commands74 = [
|
|
8066
8864
|
trackingDebugDeviceList,
|
|
8067
8865
|
trackingDebugDeviceAdd,
|
|
8068
8866
|
trackingDebugDeviceSelect
|
|
8069
8867
|
];
|
|
8070
|
-
var debug_device_default =
|
|
8868
|
+
var debug_device_default = commands74;
|
|
8071
8869
|
|
|
8072
8870
|
// src/commands/te-analysis/tracking/debug-data/list.ts
|
|
8073
8871
|
var debugStartTimeFlag = {
|
|
@@ -8084,13 +8882,13 @@ var trackingDebugDataList = createTrackingCapabilityCommand({
|
|
|
8084
8882
|
flags: [projectIdFlag, debugDeviceIdFlag, debugStartTimeFlag, eventNameFlag],
|
|
8085
8883
|
risk: "read",
|
|
8086
8884
|
buildInput: (ctx) => compactInput({
|
|
8087
|
-
...
|
|
8885
|
+
...projectInput3(ctx),
|
|
8088
8886
|
device_id: ctx.str("device-id"),
|
|
8089
8887
|
start_time: optionalString(ctx, "start-time") ?? formatLocalTime(new Date(Date.now() - 60 * 60 * 1e3)),
|
|
8090
8888
|
event_name: optionalString(ctx, "event-name")
|
|
8091
8889
|
}),
|
|
8092
8890
|
postProcess: (result, input) => {
|
|
8093
|
-
const data =
|
|
8891
|
+
const data = isRecord3(result) ? result : {};
|
|
8094
8892
|
const eventList = Array.isArray(data.event_list) ? data.event_list : [];
|
|
8095
8893
|
const deviceDataList = Array.isArray(data.device_data_list) ? data.device_data_list : [];
|
|
8096
8894
|
return {
|
|
@@ -8121,16 +8919,16 @@ function formatLocalTime(value) {
|
|
|
8121
8919
|
pad(value.getSeconds())
|
|
8122
8920
|
].join("");
|
|
8123
8921
|
}
|
|
8124
|
-
function
|
|
8922
|
+
function isRecord3(value) {
|
|
8125
8923
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
8126
8924
|
}
|
|
8127
8925
|
|
|
8128
8926
|
// src/commands/te-analysis/tracking/debug-data/index.ts
|
|
8129
|
-
var
|
|
8130
|
-
var debug_data_default =
|
|
8927
|
+
var commands75 = [trackingDebugDataList];
|
|
8928
|
+
var debug_data_default = commands75;
|
|
8131
8929
|
|
|
8132
8930
|
// src/commands/te-analysis/tracking/index.ts
|
|
8133
|
-
var
|
|
8931
|
+
var commands76 = [
|
|
8134
8932
|
...plan_default,
|
|
8135
8933
|
...sdk_sample_default,
|
|
8136
8934
|
...plan_change_log_default,
|
|
@@ -8142,7 +8940,7 @@ var commands75 = [
|
|
|
8142
8940
|
...debug_device_default,
|
|
8143
8941
|
...debug_data_default
|
|
8144
8942
|
];
|
|
8145
|
-
var tracking_default =
|
|
8943
|
+
var tracking_default = commands76;
|
|
8146
8944
|
|
|
8147
8945
|
// src/commands/te-analysis/alert/shared.ts
|
|
8148
8946
|
var alertIdFlag = {
|
|
@@ -8169,11 +8967,11 @@ var endTimeFlag2 = {
|
|
|
8169
8967
|
required: false,
|
|
8170
8968
|
desc: "Optional alert detail end time."
|
|
8171
8969
|
};
|
|
8172
|
-
function
|
|
8970
|
+
function projectInput4(ctx) {
|
|
8173
8971
|
return { project_id: ctx.num("project-id") };
|
|
8174
8972
|
}
|
|
8175
8973
|
function alertIdInput(ctx) {
|
|
8176
|
-
return { ...
|
|
8974
|
+
return { ...projectInput4(ctx), alert_id: ctx.num("alert-id") };
|
|
8177
8975
|
}
|
|
8178
8976
|
|
|
8179
8977
|
// src/commands/te-analysis/alert/list.ts
|
|
@@ -8185,7 +8983,7 @@ var analysisAlertList = createAnalysisCapabilityCommand({
|
|
|
8185
8983
|
flags: [projectIdFlag, queriesFlag, directoryLimitFlag, directoryOffsetFlag],
|
|
8186
8984
|
risk: "read",
|
|
8187
8985
|
validate: validateQueriesFlag,
|
|
8188
|
-
buildInput: (ctx) => compactInput({ ...
|
|
8986
|
+
buildInput: (ctx) => compactInput({ ...projectInput4(ctx), queries: optionalQueries(ctx), limit: optionalNumber(ctx, "limit"), offset: optionalNumber(ctx, "offset") })
|
|
8189
8987
|
});
|
|
8190
8988
|
|
|
8191
8989
|
// src/commands/te-analysis/alert/get.ts
|
|
@@ -8207,7 +9005,7 @@ var analysisAlertCreate = createAnalysisCapabilityCommand({
|
|
|
8207
9005
|
description: "Create an alert.",
|
|
8208
9006
|
flags: [projectIdFlag, definitionRequestFlag],
|
|
8209
9007
|
risk: "write",
|
|
8210
|
-
buildInput: (ctx) => ({ ...
|
|
9008
|
+
buildInput: (ctx) => ({ ...projectInput4(ctx), definition_request: ctx.json("definition-request") })
|
|
8211
9009
|
});
|
|
8212
9010
|
|
|
8213
9011
|
// src/commands/te-analysis/alert/update.ts
|
|
@@ -8255,7 +9053,7 @@ var analysisAlertStop = createAnalysisCapabilityCommand({
|
|
|
8255
9053
|
});
|
|
8256
9054
|
|
|
8257
9055
|
// src/commands/te-analysis/alert/index.ts
|
|
8258
|
-
var
|
|
9056
|
+
var commands77 = [
|
|
8259
9057
|
analysisAlertList,
|
|
8260
9058
|
analysisAlertGet,
|
|
8261
9059
|
analysisAlertCreate,
|
|
@@ -8264,7 +9062,7 @@ var commands76 = [
|
|
|
8264
9062
|
analysisAlertStart,
|
|
8265
9063
|
analysisAlertStop
|
|
8266
9064
|
];
|
|
8267
|
-
var alert_default =
|
|
9065
|
+
var alert_default = commands77;
|
|
8268
9066
|
|
|
8269
9067
|
// src/commands/te-analysis/alert-detail/list.ts
|
|
8270
9068
|
var analysisAlertDetailList = createAnalysisCapabilityCommand({
|
|
@@ -8278,10 +9076,10 @@ var analysisAlertDetailList = createAnalysisCapabilityCommand({
|
|
|
8278
9076
|
});
|
|
8279
9077
|
|
|
8280
9078
|
// src/commands/te-analysis/alert-detail/index.ts
|
|
8281
|
-
var
|
|
9079
|
+
var commands78 = [
|
|
8282
9080
|
analysisAlertDetailList
|
|
8283
9081
|
];
|
|
8284
|
-
var alert_detail_default =
|
|
9082
|
+
var alert_detail_default = commands78;
|
|
8285
9083
|
|
|
8286
9084
|
// src/commands/te-analysis/alert-job/list.ts
|
|
8287
9085
|
var analysisAlertJobList = createAnalysisCapabilityCommand({
|
|
@@ -8291,14 +9089,14 @@ var analysisAlertJobList = createAnalysisCapabilityCommand({
|
|
|
8291
9089
|
description: "List alert job status.",
|
|
8292
9090
|
flags: [projectIdFlag],
|
|
8293
9091
|
risk: "read",
|
|
8294
|
-
buildInput:
|
|
9092
|
+
buildInput: projectInput4
|
|
8295
9093
|
});
|
|
8296
9094
|
|
|
8297
9095
|
// src/commands/te-analysis/alert-job/index.ts
|
|
8298
|
-
var
|
|
9096
|
+
var commands79 = [
|
|
8299
9097
|
analysisAlertJobList
|
|
8300
9098
|
];
|
|
8301
|
-
var alert_job_default =
|
|
9099
|
+
var alert_job_default = commands79;
|
|
8302
9100
|
|
|
8303
9101
|
// src/commands/te-analysis/alert-notice-config/list.ts
|
|
8304
9102
|
var analysisAlertNoticeConfigList = createAnalysisCapabilityCommand({
|
|
@@ -8308,17 +9106,17 @@ var analysisAlertNoticeConfigList = createAnalysisCapabilityCommand({
|
|
|
8308
9106
|
description: "List alert notice configs.",
|
|
8309
9107
|
flags: [projectIdFlag],
|
|
8310
9108
|
risk: "read",
|
|
8311
|
-
buildInput:
|
|
9109
|
+
buildInput: projectInput4
|
|
8312
9110
|
});
|
|
8313
9111
|
|
|
8314
9112
|
// src/commands/te-analysis/alert-notice-config/index.ts
|
|
8315
|
-
var
|
|
9113
|
+
var commands80 = [
|
|
8316
9114
|
analysisAlertNoticeConfigList
|
|
8317
9115
|
];
|
|
8318
|
-
var alert_notice_config_default =
|
|
9116
|
+
var alert_notice_config_default = commands80;
|
|
8319
9117
|
|
|
8320
9118
|
// src/commands/te-analysis/system/shared.ts
|
|
8321
|
-
import { readFileSync as
|
|
9119
|
+
import { readFileSync as readFileSync3, statSync as statSync3 } from "fs";
|
|
8322
9120
|
var secretValues = /* @__PURE__ */ new WeakMap();
|
|
8323
9121
|
var companyIdField = {
|
|
8324
9122
|
flag: "company-id",
|
|
@@ -8353,7 +9151,7 @@ var fieldsField = {
|
|
|
8353
9151
|
desc: "Optional snake_case result field projection JSON array."
|
|
8354
9152
|
};
|
|
8355
9153
|
function defineSystemCommand(spec) {
|
|
8356
|
-
const
|
|
9154
|
+
const fields2 = [companyIdField, ...spec.fields ?? []];
|
|
8357
9155
|
const secrets = spec.secrets ?? [];
|
|
8358
9156
|
return createAnalysisCapabilityCommand({
|
|
8359
9157
|
resource: `system ${spec.resource}`,
|
|
@@ -8362,24 +9160,24 @@ function defineSystemCommand(spec) {
|
|
|
8362
9160
|
asyncArtifact: spec.asyncArtifact,
|
|
8363
9161
|
description: spec.description,
|
|
8364
9162
|
flags: [
|
|
8365
|
-
...
|
|
9163
|
+
...fields2.map(fieldFlag),
|
|
8366
9164
|
...secrets.flatMap(secretFlags)
|
|
8367
9165
|
],
|
|
8368
9166
|
risk: spec.risk,
|
|
8369
9167
|
validate: (ctx) => {
|
|
8370
9168
|
validateSecretSources(ctx, secrets);
|
|
8371
|
-
const input = buildSystemInput(ctx,
|
|
9169
|
+
const input = buildSystemInput(ctx, fields2, [], spec.risk);
|
|
8372
9170
|
for (const secret of secrets) {
|
|
8373
9171
|
if (ctx.str(`${secret.flag}-file`) || ctx.bool(`${secret.flag}-stdin`)) {
|
|
8374
9172
|
input[secret.input] = "<provided>";
|
|
8375
9173
|
}
|
|
8376
9174
|
}
|
|
8377
|
-
validateFields(
|
|
9175
|
+
validateFields(fields2, input);
|
|
8378
9176
|
spec.validate?.(ctx, input);
|
|
8379
9177
|
},
|
|
8380
9178
|
buildInput: (ctx) => {
|
|
8381
|
-
const input = buildSystemInput(ctx,
|
|
8382
|
-
validateFields(
|
|
9179
|
+
const input = buildSystemInput(ctx, fields2, secrets, spec.risk);
|
|
9180
|
+
validateFields(fields2, input);
|
|
8383
9181
|
validateSecretSources(ctx, secrets);
|
|
8384
9182
|
spec.validate?.(ctx, input);
|
|
8385
9183
|
return input;
|
|
@@ -8415,9 +9213,9 @@ function secretFlags(secret) {
|
|
|
8415
9213
|
}
|
|
8416
9214
|
];
|
|
8417
9215
|
}
|
|
8418
|
-
function buildSystemInput(ctx,
|
|
9216
|
+
function buildSystemInput(ctx, fields2, secrets, risk) {
|
|
8419
9217
|
const input = {};
|
|
8420
|
-
for (const field of
|
|
9218
|
+
for (const field of fields2) {
|
|
8421
9219
|
const value = fieldValue(ctx, field);
|
|
8422
9220
|
if (value !== void 0) input[field.input ?? kebabToSnake(field.flag)] = value;
|
|
8423
9221
|
}
|
|
@@ -8436,8 +9234,8 @@ function fieldValue(ctx, field) {
|
|
|
8436
9234
|
if (field.type === "boolean") return ctx.bool(field.flag);
|
|
8437
9235
|
return ctx.json(field.flag);
|
|
8438
9236
|
}
|
|
8439
|
-
function validateFields(
|
|
8440
|
-
for (const field of
|
|
9237
|
+
function validateFields(fields2, input) {
|
|
9238
|
+
for (const field of fields2) {
|
|
8441
9239
|
const inputName = field.input ?? kebabToSnake(field.flag);
|
|
8442
9240
|
const value = input[inputName];
|
|
8443
9241
|
if (field.required && value === void 0) {
|
|
@@ -8486,9 +9284,9 @@ function secretValue(ctx, secret) {
|
|
|
8486
9284
|
if ((stat.mode & 63) !== 0) {
|
|
8487
9285
|
throw validation(`--${secret.flag}-file must not be readable or writable by group/others (use chmod 600).`);
|
|
8488
9286
|
}
|
|
8489
|
-
value = nonEmptySecret(
|
|
9287
|
+
value = nonEmptySecret(readFileSync3(file, "utf8"), secret.flag);
|
|
8490
9288
|
} else if (ctx.bool(`${secret.flag}-stdin`)) {
|
|
8491
|
-
value = nonEmptySecret(
|
|
9289
|
+
value = nonEmptySecret(readFileSync3(0, "utf8"), secret.flag);
|
|
8492
9290
|
}
|
|
8493
9291
|
values.set(secret.flag, value);
|
|
8494
9292
|
return value;
|
|
@@ -8665,7 +9463,7 @@ var systemConfigurationCommands = [
|
|
|
8665
9463
|
command: "get",
|
|
8666
9464
|
capabilityId: "system.receiver_detection.get",
|
|
8667
9465
|
description: "Get receiver-address detection configuration.",
|
|
8668
|
-
risk: "
|
|
9466
|
+
risk: "write",
|
|
8669
9467
|
fields: [addressUrl]
|
|
8670
9468
|
}),
|
|
8671
9469
|
defineSystemCommand({
|
|
@@ -9054,7 +9852,7 @@ var systemMonitoringCommands = [
|
|
|
9054
9852
|
risk: "read",
|
|
9055
9853
|
fields: [
|
|
9056
9854
|
{ flag: "task-id", type: "string", required: true, desc: "Query-monitor task ID." },
|
|
9057
|
-
{ flag: "sql-max-chars", type: "number", min: 0, max:
|
|
9855
|
+
{ flag: "sql-max-chars", type: "number", min: 0, max: 2e4, desc: "Maximum returned SQL characters. Max: 20000." }
|
|
9058
9856
|
]
|
|
9059
9857
|
}),
|
|
9060
9858
|
defineSystemCommand({
|
|
@@ -9157,7 +9955,7 @@ var systemMonitoringCommands = [
|
|
|
9157
9955
|
description: "List sanitized operations-alert contacts.",
|
|
9158
9956
|
risk: "read",
|
|
9159
9957
|
fields: [
|
|
9160
|
-
{ flag: "limit", type: "number", min: 1, max:
|
|
9958
|
+
{ flag: "limit", type: "number", min: 1, max: 100, desc: "Page size. Default: 50, max: 100." },
|
|
9161
9959
|
offsetField
|
|
9162
9960
|
]
|
|
9163
9961
|
}),
|
|
@@ -9379,14 +10177,14 @@ var systemUsageCommands = [
|
|
|
9379
10177
|
];
|
|
9380
10178
|
|
|
9381
10179
|
// src/commands/te-analysis/system/index.ts
|
|
9382
|
-
var
|
|
10180
|
+
var commands81 = [
|
|
9383
10181
|
...systemUsageCommands,
|
|
9384
10182
|
...systemIdentityCommands,
|
|
9385
10183
|
...systemSecurityCommands,
|
|
9386
10184
|
...systemMonitoringCommands,
|
|
9387
10185
|
...systemConfigurationCommands
|
|
9388
10186
|
];
|
|
9389
|
-
var system_default =
|
|
10187
|
+
var system_default = commands81;
|
|
9390
10188
|
|
|
9391
10189
|
// src/commands/te-analysis/index.ts
|
|
9392
10190
|
registerCapabilityGatewayRoute("analysis", { gatewayDomain: "analysis" });
|
|
@@ -9436,8 +10234,8 @@ var baseCommands = [
|
|
|
9436
10234
|
...alert_notice_config_default,
|
|
9437
10235
|
...system_default
|
|
9438
10236
|
];
|
|
9439
|
-
var
|
|
9440
|
-
var te_analysis_default =
|
|
10237
|
+
var commands82 = [...baseCommands];
|
|
10238
|
+
var te_analysis_default = commands82;
|
|
9441
10239
|
export {
|
|
9442
10240
|
baseCommands,
|
|
9443
10241
|
te_analysis_default as default
|