@thinkingai/ae-cli 6.0.31 → 6.1.4
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 +3 -2
- package/README.zh.md +3 -2
- package/dist/{capability-SQ2IWKP3.js → capability-QW4AVJHI.js} +1 -1
- package/dist/{capability-SEH3JWLN.js → capability-SCRFGODD.js} +1 -1
- package/dist/{chunk-N2QORU5D.js → chunk-7OLGDQQ2.js} +5 -2
- package/dist/{chunk-TKQJQXWT.js → chunk-TBHBYKXZ.js} +5 -2
- package/dist/index.js +51 -24
- package/dist/{metadata-X62TKIVK.js → metadata-BFDL6RUK.js} +2 -2
- package/dist/{metadata-W6JFFMBA.js → metadata-FCLDBXX2.js} +2 -2
- package/dist/{te-analysis-NJGNWZFC.js → te-analysis-PUVF5IF4.js} +1297 -91
- package/dist/{te-analysis-YGV5V5EX.js → te-analysis-UJDOKPAN.js} +1297 -91
- package/dist/te-common-VUX3VOXZ.js +60 -0
- package/dist/te-common-XLAGWNIV.js +60 -0
- package/dist/te-engage-K4AEUPK5.js +3894 -0
- package/dist/te-engage-QBCCME22.js +3894 -0
- package/dist/te-experiment-JINSMHMW.js +606 -0
- package/dist/te-experiment-NWNQHJS5.js +606 -0
- package/dist/{te-kb-NT33UHAE.js → te-kb-AYCODNU6.js} +56 -17
- package/dist/{te-meta-VKWNAWO4.js → te-meta-ARDIW3YI.js} +1 -234
- package/dist/{te-meta-MAAUHFQO.js → te-meta-UUROEODR.js} +1 -234
- package/package.json +2 -1
- package/skills/ae-analysis/SKILL.md +10 -7
- package/skills/ae-analysis/references/adhoc_export.md +3 -6
- package/skills/ae-analysis/references/adhoc_run.md +5 -9
- package/skills/ae-analysis/references/ai_models.md +17 -1
- package/skills/ae-analysis/references/analysis_data_retrieval.md +11 -11
- package/skills/ae-analysis/references/analysis_drilldown_contract.md +93 -0
- package/skills/ae-analysis/references/analysis_gateway_assets.md +9 -8
- package/skills/ae-analysis/references/asset_url_get.md +4 -3
- package/skills/ae-analysis/references/bi_panel_page_data_export.md +2 -2
- package/skills/ae-analysis/references/bi_panel_page_data_run.md +1 -1
- package/skills/ae-analysis/references/command_index.md +62 -28
- package/skills/ae-analysis/references/create_entity.md +2 -2
- package/skills/ae-analysis/references/dashboard_report_data_export.md +2 -2
- package/skills/ae-analysis/references/dashboard_report_data_run.md +2 -2
- package/skills/ae-analysis/references/drilldown_entities_export.md +26 -0
- package/skills/ae-analysis/references/drilldown_entities_run.md +33 -0
- package/skills/ae-analysis/references/drilldown_events_export.md +21 -0
- package/skills/ae-analysis/references/drilldown_events_run.md +23 -0
- package/skills/ae-analysis/references/drilldown_user_events_export.md +6 -3
- package/skills/ae-analysis/references/drilldown_user_events_run.md +6 -6
- package/skills/ae-analysis/references/entity_detail_export.md +2 -0
- package/skills/ae-analysis/references/entity_detail_run.md +8 -1
- package/skills/ae-analysis/references/event_detail_export.md +2 -0
- package/skills/ae-analysis/references/event_detail_run.md +2 -0
- package/skills/ae-analysis/references/event_list.md +10 -2
- package/skills/ae-analysis/references/list_entities.md +1 -1
- package/skills/ae-analysis/references/metric_create.md +13 -4
- package/skills/ae-analysis/references/metric_delete.md +7 -0
- package/skills/ae-analysis/references/metric_get.md +6 -0
- package/skills/ae-analysis/references/metric_list.md +16 -3
- package/skills/ae-analysis/references/metric_update.md +12 -1
- package/skills/ae-analysis/references/project_access_detail_get.md +23 -0
- package/skills/ae-analysis/references/project_data_power_delete.md +26 -0
- package/skills/ae-analysis/references/project_data_power_get.md +24 -0
- package/skills/ae-analysis/references/project_data_power_list.md +23 -0
- package/skills/ae-analysis/references/project_data_power_upsert.md +24 -0
- package/skills/ae-analysis/references/project_entity_create.md +27 -0
- package/skills/ae-analysis/references/project_entity_delete.md +25 -0
- package/skills/ae-analysis/references/project_entity_event_list.md +24 -0
- package/skills/ae-analysis/references/project_entity_get.md +24 -0
- package/skills/ae-analysis/references/project_entity_list.md +28 -0
- package/skills/ae-analysis/references/project_entity_update.md +28 -0
- package/skills/ae-analysis/references/project_function_list.md +24 -0
- package/skills/ae-analysis/references/project_info_get.md +23 -0
- package/skills/ae-analysis/references/project_info_list.md +26 -0
- package/skills/ae-analysis/references/project_info_update.md +25 -0
- package/skills/ae-analysis/references/project_mark_time_create.md +27 -0
- package/skills/ae-analysis/references/project_mark_time_delete.md +25 -0
- package/skills/ae-analysis/references/project_mark_time_list.md +28 -0
- package/skills/ae-analysis/references/project_mark_time_update.md +28 -0
- package/skills/ae-analysis/references/project_member_add.md +25 -0
- package/skills/ae-analysis/references/project_member_batch_update.md +24 -0
- package/skills/ae-analysis/references/project_member_candidate_list.md +25 -0
- package/skills/ae-analysis/references/project_member_handover_export.md +27 -0
- package/skills/ae-analysis/references/project_member_handover_run.md +24 -0
- package/skills/ae-analysis/references/project_member_import.md +25 -0
- package/skills/ae-analysis/references/project_member_list.md +23 -0
- package/skills/ae-analysis/references/project_member_receiver_list.md +23 -0
- package/skills/ae-analysis/references/project_member_remove.md +26 -0
- package/skills/ae-analysis/references/project_member_update.md +25 -0
- package/skills/ae-analysis/references/project_owner_update.md +27 -0
- package/skills/ae-analysis/references/project_permission_binding_list.md +24 -0
- package/skills/ae-analysis/references/project_receive_status_update.md +25 -0
- package/skills/ae-analysis/references/project_role_delete.md +25 -0
- package/skills/ae-analysis/references/project_role_function_list.md +27 -0
- package/skills/ae-analysis/references/project_role_get.md +23 -0
- package/skills/ae-analysis/references/project_role_list.md +25 -0
- package/skills/ae-analysis/references/project_role_upsert.md +24 -0
- package/skills/ae-analysis/references/project_role_user_list.md +23 -0
- package/skills/ae-analysis/references/project_timezone_get.md +23 -0
- package/skills/ae-analysis/references/project_timezone_overview.md +23 -0
- package/skills/ae-analysis/references/project_timezone_update.md +25 -0
- package/skills/ae-analysis/references/project_user_id_items_update.md +24 -0
- package/skills/ae-analysis/references/property_list.md +21 -6
- package/skills/ae-analysis/references/public_link_create.md +1 -1
- package/skills/ae-analysis/references/query_create_result_cluster.md +14 -32
- package/skills/ae-analysis/references/report_create.md +1 -1
- package/skills/ae-analysis/references/report_data_export.md +2 -2
- package/skills/ae-analysis/references/report_data_run.md +2 -2
- package/skills/ae-analysis/references/report_get.md +2 -0
- package/skills/ae-analysis/references/report_update.md +1 -1
- package/skills/ae-analysis/references/user_cluster_create.md +3 -1
- package/skills/ae-analysis/references/user_cluster_get.md +4 -0
- package/skills/ae-analysis/references/user_cluster_refresh.md +4 -2
- package/skills/ae-analysis/references/user_cluster_update.md +3 -1
- package/skills/ae-analysis/references/user_tag_create.md +3 -1
- package/skills/ae-analysis/references/user_tag_get.md +4 -0
- package/skills/ae-analysis/references/user_tag_refresh.md +4 -2
- package/skills/ae-analysis/references/user_tag_update.md +3 -1
- package/skills/ae-analysis/references/virtual_event_create.md +22 -3
- package/skills/ae-analysis/references/virtual_property_create.md +23 -2
- package/skills/ae-engage/SKILL.md +202 -7
- package/skills/ae-engage/references/activity-activity-type.md +42 -0
- package/skills/ae-engage/references/activity-activity.md +70 -0
- package/skills/ae-engage/references/activity-approval.md +53 -0
- package/skills/ae-engage/references/activity-task.md +87 -0
- package/skills/ae-engage/references/activity-topic.md +98 -0
- package/skills/ae-engage/references/approval-approver-delete.md +26 -0
- package/skills/ae-engage/references/channel-test-send.md +37 -0
- package/skills/ae-engage/references/channel-touch-limits-batch-update.md +28 -0
- package/skills/ae-engage/references/channel-touch-limits-save.md +37 -0
- package/skills/ae-engage/references/channel-touch-limits-toggle.md +28 -0
- package/skills/ae-engage/references/channel-update-config.md +36 -0
- package/skills/ae-engage/references/client-param.md +58 -0
- package/skills/ae-engage/references/common-metric.md +75 -0
- package/skills/ae-engage/references/config-table.md +92 -0
- package/skills/ae-engage/references/engage-scene-config-item.md +69 -0
- package/skills/ae-engage/references/operation-log-query.md +1 -1
- package/skills/ae-engage/references/preset-event.md +42 -0
- package/skills/ae-engage/references/push-language.md +39 -0
- package/skills/ae-engage/references/scene-config-channel.md +58 -0
- package/skills/ae-engage/references/scene-config-group.md +62 -0
- package/skills/ae-engage/references/scene-config-item.md +68 -0
- package/skills/ae-engage/references/scene-config-metric.md +79 -0
- package/skills/ae-engage/references/scene-config-param.md +72 -0
- package/skills/ae-engage/references/scene-preset-metric.md +45 -0
- package/skills/ae-engage/references/scene-strategy.md +47 -0
- package/skills/ae-engage/references/scene-template.md +71 -0
- package/skills/ae-engage/references/{ops-delete.md → task-delete.md} +3 -3
- package/skills/ae-engage/references/whitelist.md +72 -0
- package/skills/ae-engage/references/workbench-workbench.md +48 -0
- package/skills/ae-experiment/SKILL.md +64 -0
- package/skills/ae-experiment/references/batch_delete_experiment.md +11 -0
- package/skills/ae-experiment/references/batch_delete_feature.md +11 -0
- package/skills/ae-experiment/references/batch_delete_traffic_layer.md +11 -0
- package/skills/ae-experiment/references/cancel_experiment_query_by_request_id.md +10 -0
- package/skills/ae-experiment/references/check_experiment_ready.md +13 -0
- package/skills/ae-experiment/references/delete_metric.md +11 -0
- package/skills/ae-experiment/references/manage_experiment.md +15 -0
- package/skills/ae-experiment/references/manage_feature_status.md +11 -0
- package/skills/ae-experiment/references/query_bucket_list.md +10 -0
- package/skills/ae-experiment/references/query_experiment_detail.md +11 -0
- package/skills/ae-experiment/references/query_experiment_list.md +10 -0
- package/skills/ae-experiment/references/query_experiment_metric_trend.md +16 -0
- package/skills/ae-experiment/references/query_experiment_report_summary.md +12 -0
- package/skills/ae-experiment/references/query_experiment_sample_size_report.md +16 -0
- package/skills/ae-experiment/references/query_feature_detail.md +12 -0
- package/skills/ae-experiment/references/query_feature_list.md +10 -0
- package/skills/ae-experiment/references/query_metric_detail.md +11 -0
- package/skills/ae-experiment/references/query_metric_list.md +10 -0
- package/skills/ae-experiment/references/query_traffic_layer_detail.md +11 -0
- package/skills/ae-experiment/references/query_traffic_layer_list.md +10 -0
- package/skills/ae-experiment/references/save_experiment.md +17 -0
- package/skills/ae-experiment/references/save_feature.md +13 -0
- package/skills/ae-experiment/references/save_metric.md +13 -0
- package/skills/ae-experiment/references/save_submit_experiment.md +13 -0
- package/skills/ae-experiment/references/save_traffic_layer.md +13 -0
- package/skills/ae-generate-tracking-plan/SKILL.md +8 -5
- package/skills/ae-generate-tracking-plan/references/te-api.md +1 -1
- package/skills/ae-kb/SKILL.md +34 -8
- package/skills/ae-metadata/SKILL.md +1 -1
- package/skills/ae-metadata/references/metadata_event_get.md +4 -4
- package/skills/ae-metadata/references/metadata_property_dimension_table_bind_existing.md +1 -1
- package/skills/ae-metadata/references/metadata_property_get.md +4 -4
- package/dist/te-common-5NJLF3XG.js +0 -130
- package/dist/te-common-7VTJZPII.js +0 -130
- package/dist/te-engage-BUWVSSSK.js +0 -1912
- package/dist/te-engage-EPE3QKDE.js +0 -1912
- package/skills/ae-analysis/references/create_metric.md +0 -58
- package/skills/ae-analysis/references/create_virtual_event.md +0 -60
- package/skills/ae-analysis/references/create_virtual_property.md +0 -69
- package/skills/ae-analysis/references/delete_metric.md +0 -32
- package/skills/ae-analysis/references/drilldown_users_export.md +0 -17
- package/skills/ae-analysis/references/drilldown_users_run.md +0 -61
- package/skills/ae-analysis/references/get_metric.md +0 -38
- package/skills/ae-analysis/references/get_resource_url.md +0 -33
- package/skills/ae-analysis/references/list_events.md +0 -46
- package/skills/ae-analysis/references/list_metrics.md +0 -52
- package/skills/ae-analysis/references/list_properties.md +0 -47
- package/skills/ae-analysis/references/update_metric.md +0 -58
- package/dist/{chunk-HL2AJQ4Q.js → chunk-PTE56QPL.js} +3 -3
|
@@ -0,0 +1,606 @@
|
|
|
1
|
+
import {
|
|
2
|
+
callMcpTool,
|
|
3
|
+
parseMcpResult,
|
|
4
|
+
registerMcpMappings,
|
|
5
|
+
resolveMcpUrl
|
|
6
|
+
} from "./chunk-PKRD2IEM.js";
|
|
7
|
+
import "./chunk-KGJQCYVC.js";
|
|
8
|
+
import "./chunk-NOO24N7W.js";
|
|
9
|
+
import "./chunk-2NDGFQHW.js";
|
|
10
|
+
import "./chunk-AJTH7LT3.js";
|
|
11
|
+
import "./chunk-YCLVYFK7.js";
|
|
12
|
+
|
|
13
|
+
// src/commands/te-experiment/shared.ts
|
|
14
|
+
var EXPERIMENT_CLI_SERVICE = "experiment";
|
|
15
|
+
var EXPERIMENT_MCP_SERVICE = "experiment";
|
|
16
|
+
var PROJECT_ID_FLAG = {
|
|
17
|
+
name: "project_id",
|
|
18
|
+
type: "number",
|
|
19
|
+
required: true,
|
|
20
|
+
alias: "p",
|
|
21
|
+
desc: "Project ID"
|
|
22
|
+
};
|
|
23
|
+
function createExperimentCommand(config) {
|
|
24
|
+
const mcpService = config.mcpService || EXPERIMENT_MCP_SERVICE;
|
|
25
|
+
const toolName = config.toolName || config.command.slice(1);
|
|
26
|
+
return {
|
|
27
|
+
service: EXPERIMENT_CLI_SERVICE,
|
|
28
|
+
command: config.command,
|
|
29
|
+
description: config.description,
|
|
30
|
+
flags: config.flags,
|
|
31
|
+
risk: config.risk,
|
|
32
|
+
validate: config.validate,
|
|
33
|
+
dryRun: (ctx) => buildMcpDryRun(ctx, mcpService, toolName, config.buildArgs(ctx)),
|
|
34
|
+
execute: async (ctx) => executeMcpCommand(ctx, mcpService, toolName, config.buildArgs(ctx))
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function buildMcpDryRun(ctx, serviceName, toolName, args) {
|
|
38
|
+
const host = ctx.host();
|
|
39
|
+
return {
|
|
40
|
+
method: "MCP tools/call",
|
|
41
|
+
url: resolveMcpUrl(ctx.mcpUrl(), host, serviceName),
|
|
42
|
+
body: {
|
|
43
|
+
serviceName,
|
|
44
|
+
toolName,
|
|
45
|
+
arguments: args
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
async function executeMcpCommand(ctx, serviceName, toolName, args) {
|
|
50
|
+
const host = ctx.host();
|
|
51
|
+
const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), host, serviceName);
|
|
52
|
+
const result = await callMcpTool(mcpUrl, toolName, args, host);
|
|
53
|
+
return parseMcpResult(result);
|
|
54
|
+
}
|
|
55
|
+
function reqFlag(desc) {
|
|
56
|
+
return { name: "req", type: "json", required: true, desc };
|
|
57
|
+
}
|
|
58
|
+
function hasFlag(ctx, name) {
|
|
59
|
+
return ctx.str(name) !== "";
|
|
60
|
+
}
|
|
61
|
+
function readOptionalString(ctx, name) {
|
|
62
|
+
const value = ctx.str(name);
|
|
63
|
+
return value === "" ? void 0 : value;
|
|
64
|
+
}
|
|
65
|
+
function readOptionalBoolean(ctx, name) {
|
|
66
|
+
return hasFlag(ctx, name) ? ctx.bool(name) : void 0;
|
|
67
|
+
}
|
|
68
|
+
function readOptionalJsonArray(ctx, name) {
|
|
69
|
+
const value = ctx.json(name);
|
|
70
|
+
if (value === void 0) return void 0;
|
|
71
|
+
if (!Array.isArray(value)) {
|
|
72
|
+
throw new Error(`Flag --${name} must be a JSON array`);
|
|
73
|
+
}
|
|
74
|
+
return value;
|
|
75
|
+
}
|
|
76
|
+
function readRequiredJsonArray(ctx, name, minLength = 1) {
|
|
77
|
+
const value = readOptionalJsonArray(ctx, name);
|
|
78
|
+
if (!value || value.length < minLength) {
|
|
79
|
+
throw new Error(`Flag --${name} must be a JSON array with at least ${minLength} item(s)`);
|
|
80
|
+
}
|
|
81
|
+
return value;
|
|
82
|
+
}
|
|
83
|
+
function readRequiredStringArray(ctx, name) {
|
|
84
|
+
const value = readRequiredJsonArray(ctx, name);
|
|
85
|
+
if (!value.every((item) => typeof item === "string" && item.length > 0)) {
|
|
86
|
+
throw new Error(`Flag --${name} must be a JSON array of non-empty strings`);
|
|
87
|
+
}
|
|
88
|
+
return value;
|
|
89
|
+
}
|
|
90
|
+
function readRequiredJsonObject(ctx, name) {
|
|
91
|
+
const value = ctx.json(name);
|
|
92
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
93
|
+
throw new Error(`Flag --${name} must be a JSON object`);
|
|
94
|
+
}
|
|
95
|
+
return value;
|
|
96
|
+
}
|
|
97
|
+
function projectArgs(ctx) {
|
|
98
|
+
return { projectId: ctx.num("project_id") };
|
|
99
|
+
}
|
|
100
|
+
function projectReqArgs(ctx) {
|
|
101
|
+
const projectId = ctx.num("project_id");
|
|
102
|
+
return {
|
|
103
|
+
projectId,
|
|
104
|
+
req: {
|
|
105
|
+
...readRequiredJsonObject(ctx, "req"),
|
|
106
|
+
projectId
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
function addOptionalString(args, ctx, flagName, argName) {
|
|
111
|
+
const value = readOptionalString(ctx, flagName);
|
|
112
|
+
if (value !== void 0) args[argName] = value;
|
|
113
|
+
}
|
|
114
|
+
function addOptionalBoolean(args, ctx, flagName, argName) {
|
|
115
|
+
const value = readOptionalBoolean(ctx, flagName);
|
|
116
|
+
if (value !== void 0) args[argName] = value;
|
|
117
|
+
}
|
|
118
|
+
function requireAllowedValue(value, allowed, flagName) {
|
|
119
|
+
if (!allowed.includes(value)) {
|
|
120
|
+
throw new Error(`Flag --${flagName} must be one of: ${allowed.join(", ")}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// src/commands/te-experiment/batch-delete-experiment.ts
|
|
125
|
+
function buildArgs(ctx) {
|
|
126
|
+
return {
|
|
127
|
+
projectId: ctx.num("project_id"),
|
|
128
|
+
expIds: readRequiredStringArray(ctx, "exp_ids")
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
var batchDeleteExperiment = createExperimentCommand({
|
|
132
|
+
command: "+batch_delete_experiment",
|
|
133
|
+
description: "Batch delete experiments.",
|
|
134
|
+
flags: [
|
|
135
|
+
PROJECT_ID_FLAG,
|
|
136
|
+
{ name: "exp_ids", type: "json", required: true, desc: "Experiment ID list as JSON array" }
|
|
137
|
+
],
|
|
138
|
+
risk: "write",
|
|
139
|
+
validate: (ctx) => {
|
|
140
|
+
readRequiredStringArray(ctx, "exp_ids");
|
|
141
|
+
},
|
|
142
|
+
buildArgs
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
// src/commands/te-experiment/batch-delete-feature.ts
|
|
146
|
+
var batchDeleteFeature = createExperimentCommand({
|
|
147
|
+
command: "+batch_delete_feature",
|
|
148
|
+
description: "Batch delete Features.",
|
|
149
|
+
flags: [
|
|
150
|
+
PROJECT_ID_FLAG,
|
|
151
|
+
reqFlag("Feature delete request as JSON object")
|
|
152
|
+
],
|
|
153
|
+
risk: "write",
|
|
154
|
+
validate: (ctx) => {
|
|
155
|
+
readRequiredJsonObject(ctx, "req");
|
|
156
|
+
},
|
|
157
|
+
buildArgs: projectReqArgs
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
// src/commands/te-experiment/batch-delete-traffic-layer.ts
|
|
161
|
+
function buildArgs2(ctx) {
|
|
162
|
+
return {
|
|
163
|
+
projectId: ctx.num("project_id"),
|
|
164
|
+
layerIds: readRequiredStringArray(ctx, "layer_ids")
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
var batchDeleteTrafficLayer = createExperimentCommand({
|
|
168
|
+
command: "+batch_delete_traffic_layer",
|
|
169
|
+
description: "Batch delete traffic layers.",
|
|
170
|
+
flags: [
|
|
171
|
+
PROJECT_ID_FLAG,
|
|
172
|
+
{ name: "layer_ids", type: "json", required: true, desc: "Traffic layer ID list as JSON array" }
|
|
173
|
+
],
|
|
174
|
+
risk: "write",
|
|
175
|
+
validate: (ctx) => {
|
|
176
|
+
readRequiredStringArray(ctx, "layer_ids");
|
|
177
|
+
},
|
|
178
|
+
buildArgs: buildArgs2
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
// src/commands/te-experiment/cancel-experiment-query-by-request-id.ts
|
|
182
|
+
function buildArgs3(ctx) {
|
|
183
|
+
return { requestId: ctx.str("request_id") };
|
|
184
|
+
}
|
|
185
|
+
var cancelExperimentQueryByRequestId = createExperimentCommand({
|
|
186
|
+
command: "+cancel_experiment_query_by_request_id",
|
|
187
|
+
description: "Cancel a running experiment report query by request ID.",
|
|
188
|
+
flags: [
|
|
189
|
+
{ name: "request_id", type: "string", required: true, desc: "Request ID to cancel" }
|
|
190
|
+
],
|
|
191
|
+
risk: "write",
|
|
192
|
+
buildArgs: buildArgs3
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
// src/commands/te-experiment/check-experiment-ready.ts
|
|
196
|
+
function buildArgs4(ctx) {
|
|
197
|
+
return {
|
|
198
|
+
projectId: ctx.num("project_id"),
|
|
199
|
+
expId: ctx.str("exp_id")
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
var checkExperimentReady = createExperimentCommand({
|
|
203
|
+
command: "+check_experiment_ready",
|
|
204
|
+
description: "Check whether an experiment is ready for online status transitions.",
|
|
205
|
+
flags: [
|
|
206
|
+
PROJECT_ID_FLAG,
|
|
207
|
+
{ name: "exp_id", type: "string", required: true, desc: "Experiment ID" }
|
|
208
|
+
],
|
|
209
|
+
risk: "read",
|
|
210
|
+
buildArgs: buildArgs4
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
// src/commands/te-experiment/delete-metric.ts
|
|
214
|
+
function buildArgs5(ctx) {
|
|
215
|
+
return {
|
|
216
|
+
projectId: ctx.num("project_id"),
|
|
217
|
+
metricId: ctx.str("metric_id")
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
var deleteMetric = createExperimentCommand({
|
|
221
|
+
command: "+delete_metric",
|
|
222
|
+
description: "Delete a metric.",
|
|
223
|
+
flags: [
|
|
224
|
+
PROJECT_ID_FLAG,
|
|
225
|
+
{ name: "metric_id", type: "string", required: true, desc: "Metric ID" }
|
|
226
|
+
],
|
|
227
|
+
risk: "write",
|
|
228
|
+
buildArgs: buildArgs5
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
// src/commands/te-experiment/manage-experiment.ts
|
|
232
|
+
var TARGET_STATUSES = ["draft", "testing", "pending", "running", "paused", "ended", "archive"];
|
|
233
|
+
function buildArgs6(ctx) {
|
|
234
|
+
const args = {
|
|
235
|
+
projectId: ctx.num("project_id"),
|
|
236
|
+
expId: ctx.str("exp_id"),
|
|
237
|
+
targetStatus: ctx.str("target_status")
|
|
238
|
+
};
|
|
239
|
+
addOptionalString(args, ctx, "remark", "remark");
|
|
240
|
+
return args;
|
|
241
|
+
}
|
|
242
|
+
var manageExperiment = createExperimentCommand({
|
|
243
|
+
command: "+manage_experiment",
|
|
244
|
+
description: "Manage experiment status.",
|
|
245
|
+
flags: [
|
|
246
|
+
PROJECT_ID_FLAG,
|
|
247
|
+
{ name: "exp_id", type: "string", required: true, desc: "Experiment ID" },
|
|
248
|
+
{ name: "target_status", type: "string", required: true, desc: "Target status: draft, testing, pending, running, paused, ended, or archive" },
|
|
249
|
+
{ name: "remark", type: "string", required: false, desc: "Operation remark" }
|
|
250
|
+
],
|
|
251
|
+
risk: "write",
|
|
252
|
+
validate: (ctx) => {
|
|
253
|
+
requireAllowedValue(ctx.str("target_status"), TARGET_STATUSES, "target_status");
|
|
254
|
+
},
|
|
255
|
+
buildArgs: buildArgs6
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
// src/commands/te-experiment/manage-feature-status.ts
|
|
259
|
+
var manageFeatureStatus = createExperimentCommand({
|
|
260
|
+
command: "+manage_feature_status",
|
|
261
|
+
description: "Update Feature status.",
|
|
262
|
+
flags: [
|
|
263
|
+
PROJECT_ID_FLAG,
|
|
264
|
+
reqFlag("Feature status request as JSON object")
|
|
265
|
+
],
|
|
266
|
+
risk: "write",
|
|
267
|
+
validate: (ctx) => {
|
|
268
|
+
readRequiredJsonObject(ctx, "req");
|
|
269
|
+
},
|
|
270
|
+
buildArgs: projectReqArgs
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
// src/commands/te-experiment/query-bucket-list.ts
|
|
274
|
+
var queryBucketList = createExperimentCommand({
|
|
275
|
+
command: "+query_bucket_list",
|
|
276
|
+
description: "Query the split bucket list for a project.",
|
|
277
|
+
flags: [PROJECT_ID_FLAG],
|
|
278
|
+
risk: "read",
|
|
279
|
+
buildArgs: projectArgs
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
// src/commands/te-experiment/query-experiment-detail.ts
|
|
283
|
+
function buildArgs7(ctx) {
|
|
284
|
+
return {
|
|
285
|
+
projectId: ctx.num("project_id"),
|
|
286
|
+
expId: ctx.str("exp_id")
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
var queryExperimentDetail = createExperimentCommand({
|
|
290
|
+
command: "+query_experiment_detail",
|
|
291
|
+
description: "Query full experiment detail.",
|
|
292
|
+
flags: [
|
|
293
|
+
PROJECT_ID_FLAG,
|
|
294
|
+
{ name: "exp_id", type: "string", required: true, desc: "Experiment ID" }
|
|
295
|
+
],
|
|
296
|
+
risk: "read",
|
|
297
|
+
buildArgs: buildArgs7
|
|
298
|
+
});
|
|
299
|
+
|
|
300
|
+
// src/commands/te-experiment/query-experiment-list.ts
|
|
301
|
+
var queryExperimentList = createExperimentCommand({
|
|
302
|
+
command: "+query_experiment_list",
|
|
303
|
+
description: "Query the experiment list for a project.",
|
|
304
|
+
flags: [PROJECT_ID_FLAG],
|
|
305
|
+
risk: "read",
|
|
306
|
+
buildArgs: projectArgs
|
|
307
|
+
});
|
|
308
|
+
|
|
309
|
+
// src/commands/te-experiment/query-experiment-metric-trend.ts
|
|
310
|
+
function buildArgs8(ctx) {
|
|
311
|
+
const args = {
|
|
312
|
+
projectId: ctx.num("project_id"),
|
|
313
|
+
expId: ctx.str("exp_id"),
|
|
314
|
+
metricId: ctx.str("metric_id"),
|
|
315
|
+
startTime: ctx.str("start_time"),
|
|
316
|
+
endTime: ctx.str("end_time")
|
|
317
|
+
};
|
|
318
|
+
addOptionalString(args, ctx, "request_id", "requestId");
|
|
319
|
+
addOptionalBoolean(args, ctx, "force_refresh", "forceRefresh");
|
|
320
|
+
return args;
|
|
321
|
+
}
|
|
322
|
+
var queryExperimentMetricTrend = createExperimentCommand({
|
|
323
|
+
command: "+query_experiment_metric_trend",
|
|
324
|
+
description: "Query an experiment metric trend report.",
|
|
325
|
+
flags: [
|
|
326
|
+
PROJECT_ID_FLAG,
|
|
327
|
+
{ name: "exp_id", type: "string", required: true, desc: "Experiment ID" },
|
|
328
|
+
{ name: "metric_id", type: "string", required: true, desc: "Metric ID" },
|
|
329
|
+
{ name: "start_time", type: "string", required: true, desc: "Start date, yyyy-MM-dd" },
|
|
330
|
+
{ name: "end_time", type: "string", required: true, desc: "End date, yyyy-MM-dd" },
|
|
331
|
+
{ name: "request_id", type: "string", required: false, desc: "Request ID for query tracking" },
|
|
332
|
+
{ name: "force_refresh", type: "boolean", required: false, desc: "Whether to force refresh report data" }
|
|
333
|
+
],
|
|
334
|
+
risk: "read",
|
|
335
|
+
buildArgs: buildArgs8
|
|
336
|
+
});
|
|
337
|
+
|
|
338
|
+
// src/commands/te-experiment/query-experiment-report-summary.ts
|
|
339
|
+
function buildArgs9(ctx) {
|
|
340
|
+
const args = {
|
|
341
|
+
projectId: ctx.num("project_id"),
|
|
342
|
+
expId: ctx.str("exp_id")
|
|
343
|
+
};
|
|
344
|
+
addOptionalBoolean(args, ctx, "force_refresh", "forceRefresh");
|
|
345
|
+
return args;
|
|
346
|
+
}
|
|
347
|
+
var queryExperimentReportSummary = createExperimentCommand({
|
|
348
|
+
command: "+query_experiment_report_summary",
|
|
349
|
+
description: "Query an experiment report summary.",
|
|
350
|
+
flags: [
|
|
351
|
+
PROJECT_ID_FLAG,
|
|
352
|
+
{ name: "exp_id", type: "string", required: true, desc: "Experiment ID" },
|
|
353
|
+
{ name: "force_refresh", type: "boolean", required: false, desc: "Whether to force refresh report data" }
|
|
354
|
+
],
|
|
355
|
+
risk: "read",
|
|
356
|
+
buildArgs: buildArgs9
|
|
357
|
+
});
|
|
358
|
+
|
|
359
|
+
// src/commands/te-experiment/query-experiment-sample-size-report.ts
|
|
360
|
+
function buildArgs10(ctx) {
|
|
361
|
+
const args = {
|
|
362
|
+
projectId: ctx.num("project_id"),
|
|
363
|
+
expId: ctx.str("exp_id"),
|
|
364
|
+
startTime: ctx.str("start_time"),
|
|
365
|
+
endTime: ctx.str("end_time")
|
|
366
|
+
};
|
|
367
|
+
addOptionalString(args, ctx, "request_id", "requestId");
|
|
368
|
+
addOptionalBoolean(args, ctx, "force_refresh", "forceRefresh");
|
|
369
|
+
addOptionalBoolean(args, ctx, "by_hour", "byHour");
|
|
370
|
+
return args;
|
|
371
|
+
}
|
|
372
|
+
var queryExperimentSampleSizeReport = createExperimentCommand({
|
|
373
|
+
command: "+query_experiment_sample_size_report",
|
|
374
|
+
description: "Query an experiment sample-size report.",
|
|
375
|
+
flags: [
|
|
376
|
+
PROJECT_ID_FLAG,
|
|
377
|
+
{ name: "exp_id", type: "string", required: true, desc: "Experiment ID" },
|
|
378
|
+
{ name: "start_time", type: "string", required: true, desc: "Start date, yyyy-MM-dd" },
|
|
379
|
+
{ name: "end_time", type: "string", required: true, desc: "End date, yyyy-MM-dd" },
|
|
380
|
+
{ name: "request_id", type: "string", required: false, desc: "Request ID for query tracking" },
|
|
381
|
+
{ name: "force_refresh", type: "boolean", required: false, desc: "Whether to force refresh report data" },
|
|
382
|
+
{ name: "by_hour", type: "boolean", required: false, desc: "Whether to show results by hour" }
|
|
383
|
+
],
|
|
384
|
+
risk: "read",
|
|
385
|
+
buildArgs: buildArgs10
|
|
386
|
+
});
|
|
387
|
+
|
|
388
|
+
// src/commands/te-experiment/query-feature-detail.ts
|
|
389
|
+
function buildArgs11(ctx) {
|
|
390
|
+
const args = {
|
|
391
|
+
projectId: ctx.num("project_id"),
|
|
392
|
+
featureKey: ctx.str("feature_key")
|
|
393
|
+
};
|
|
394
|
+
addOptionalString(args, ctx, "version", "version");
|
|
395
|
+
return args;
|
|
396
|
+
}
|
|
397
|
+
var queryFeatureDetail = createExperimentCommand({
|
|
398
|
+
command: "+query_feature_detail",
|
|
399
|
+
description: "Query Feature detail by key and optional version.",
|
|
400
|
+
flags: [
|
|
401
|
+
PROJECT_ID_FLAG,
|
|
402
|
+
{ name: "feature_key", type: "string", required: true, desc: "Feature key" },
|
|
403
|
+
{ name: "version", type: "string", required: false, desc: "Feature version ID" }
|
|
404
|
+
],
|
|
405
|
+
risk: "read",
|
|
406
|
+
buildArgs: buildArgs11
|
|
407
|
+
});
|
|
408
|
+
|
|
409
|
+
// src/commands/te-experiment/query-feature-list.ts
|
|
410
|
+
var queryFeatureList = createExperimentCommand({
|
|
411
|
+
command: "+query_feature_list",
|
|
412
|
+
description: "Query the Feature list for a project.",
|
|
413
|
+
flags: [PROJECT_ID_FLAG],
|
|
414
|
+
risk: "read",
|
|
415
|
+
buildArgs: projectArgs
|
|
416
|
+
});
|
|
417
|
+
|
|
418
|
+
// src/commands/te-experiment/query-metric-detail.ts
|
|
419
|
+
function buildArgs12(ctx) {
|
|
420
|
+
return {
|
|
421
|
+
projectId: ctx.num("project_id"),
|
|
422
|
+
metricId: ctx.str("metric_id")
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
var queryMetricDetail = createExperimentCommand({
|
|
426
|
+
command: "+query_metric_detail",
|
|
427
|
+
description: "Query metric detail.",
|
|
428
|
+
flags: [
|
|
429
|
+
PROJECT_ID_FLAG,
|
|
430
|
+
{ name: "metric_id", type: "string", required: true, desc: "Metric ID" }
|
|
431
|
+
],
|
|
432
|
+
risk: "read",
|
|
433
|
+
buildArgs: buildArgs12
|
|
434
|
+
});
|
|
435
|
+
|
|
436
|
+
// src/commands/te-experiment/query-metric-list.ts
|
|
437
|
+
var queryMetricList = createExperimentCommand({
|
|
438
|
+
command: "+query_metric_list",
|
|
439
|
+
description: "Query the metric list for a project.",
|
|
440
|
+
flags: [PROJECT_ID_FLAG],
|
|
441
|
+
risk: "read",
|
|
442
|
+
buildArgs: projectArgs
|
|
443
|
+
});
|
|
444
|
+
|
|
445
|
+
// src/commands/te-experiment/query-traffic-layer-detail.ts
|
|
446
|
+
function buildArgs13(ctx) {
|
|
447
|
+
return {
|
|
448
|
+
projectId: ctx.num("project_id"),
|
|
449
|
+
layerId: ctx.str("layer_id")
|
|
450
|
+
};
|
|
451
|
+
}
|
|
452
|
+
var queryTrafficLayerDetail = createExperimentCommand({
|
|
453
|
+
command: "+query_traffic_layer_detail",
|
|
454
|
+
description: "Query traffic layer detail.",
|
|
455
|
+
flags: [
|
|
456
|
+
PROJECT_ID_FLAG,
|
|
457
|
+
{ name: "layer_id", type: "string", required: true, desc: "Traffic layer ID" }
|
|
458
|
+
],
|
|
459
|
+
risk: "read",
|
|
460
|
+
buildArgs: buildArgs13
|
|
461
|
+
});
|
|
462
|
+
|
|
463
|
+
// src/commands/te-experiment/query-traffic-layer-list.ts
|
|
464
|
+
var queryTrafficLayerList = createExperimentCommand({
|
|
465
|
+
command: "+query_traffic_layer_list",
|
|
466
|
+
description: "Query the traffic layer list for a project.",
|
|
467
|
+
flags: [PROJECT_ID_FLAG],
|
|
468
|
+
risk: "read",
|
|
469
|
+
buildArgs: projectArgs
|
|
470
|
+
});
|
|
471
|
+
|
|
472
|
+
// src/commands/te-experiment/save-experiment.ts
|
|
473
|
+
var saveExperiment = createExperimentCommand({
|
|
474
|
+
command: "+save_experiment",
|
|
475
|
+
description: "Create or update an experiment draft.",
|
|
476
|
+
flags: [
|
|
477
|
+
PROJECT_ID_FLAG,
|
|
478
|
+
reqFlag("Experiment save request as JSON object")
|
|
479
|
+
],
|
|
480
|
+
risk: "write",
|
|
481
|
+
validate: (ctx) => {
|
|
482
|
+
readRequiredJsonObject(ctx, "req");
|
|
483
|
+
},
|
|
484
|
+
buildArgs: projectReqArgs
|
|
485
|
+
});
|
|
486
|
+
|
|
487
|
+
// src/commands/te-experiment/save-feature.ts
|
|
488
|
+
var saveFeature = createExperimentCommand({
|
|
489
|
+
command: "+save_feature",
|
|
490
|
+
description: "Create or update a Feature.",
|
|
491
|
+
flags: [
|
|
492
|
+
PROJECT_ID_FLAG,
|
|
493
|
+
reqFlag("Feature save request as JSON object")
|
|
494
|
+
],
|
|
495
|
+
risk: "write",
|
|
496
|
+
validate: (ctx) => {
|
|
497
|
+
readRequiredJsonObject(ctx, "req");
|
|
498
|
+
},
|
|
499
|
+
buildArgs: projectReqArgs
|
|
500
|
+
});
|
|
501
|
+
|
|
502
|
+
// src/commands/te-experiment/save-metric.ts
|
|
503
|
+
var saveMetric = createExperimentCommand({
|
|
504
|
+
command: "+save_metric",
|
|
505
|
+
description: "Create or update a metric.",
|
|
506
|
+
flags: [
|
|
507
|
+
PROJECT_ID_FLAG,
|
|
508
|
+
reqFlag("Metric save request as JSON object")
|
|
509
|
+
],
|
|
510
|
+
risk: "write",
|
|
511
|
+
validate: (ctx) => {
|
|
512
|
+
readRequiredJsonObject(ctx, "req");
|
|
513
|
+
},
|
|
514
|
+
buildArgs: projectReqArgs
|
|
515
|
+
});
|
|
516
|
+
|
|
517
|
+
// src/commands/te-experiment/save-submit-experiment.ts
|
|
518
|
+
var saveSubmitExperiment = createExperimentCommand({
|
|
519
|
+
command: "+save_submit_experiment",
|
|
520
|
+
description: "Create or update a complete experiment and submit it.",
|
|
521
|
+
flags: [
|
|
522
|
+
PROJECT_ID_FLAG,
|
|
523
|
+
reqFlag("Experiment save-and-submit request as JSON object")
|
|
524
|
+
],
|
|
525
|
+
risk: "write",
|
|
526
|
+
validate: (ctx) => {
|
|
527
|
+
readRequiredJsonObject(ctx, "req");
|
|
528
|
+
},
|
|
529
|
+
buildArgs: projectReqArgs
|
|
530
|
+
});
|
|
531
|
+
|
|
532
|
+
// src/commands/te-experiment/save-traffic-layer.ts
|
|
533
|
+
var saveTrafficLayer = createExperimentCommand({
|
|
534
|
+
command: "+save_traffic_layer",
|
|
535
|
+
description: "Create or update a traffic layer.",
|
|
536
|
+
flags: [
|
|
537
|
+
PROJECT_ID_FLAG,
|
|
538
|
+
reqFlag("Traffic layer save request as JSON object")
|
|
539
|
+
],
|
|
540
|
+
risk: "write",
|
|
541
|
+
validate: (ctx) => {
|
|
542
|
+
readRequiredJsonObject(ctx, "req");
|
|
543
|
+
},
|
|
544
|
+
buildArgs: projectReqArgs
|
|
545
|
+
});
|
|
546
|
+
|
|
547
|
+
// src/commands/te-experiment/index.ts
|
|
548
|
+
registerMcpMappings({
|
|
549
|
+
"experiment": { componentName: "engage", mappingPath: "experiment" }
|
|
550
|
+
});
|
|
551
|
+
var commands = [
|
|
552
|
+
saveExperiment,
|
|
553
|
+
saveSubmitExperiment,
|
|
554
|
+
queryExperimentList,
|
|
555
|
+
queryExperimentDetail,
|
|
556
|
+
checkExperimentReady,
|
|
557
|
+
manageExperiment,
|
|
558
|
+
batchDeleteExperiment,
|
|
559
|
+
saveTrafficLayer,
|
|
560
|
+
queryTrafficLayerDetail,
|
|
561
|
+
queryTrafficLayerList,
|
|
562
|
+
batchDeleteTrafficLayer,
|
|
563
|
+
queryExperimentReportSummary,
|
|
564
|
+
queryExperimentSampleSizeReport,
|
|
565
|
+
queryExperimentMetricTrend,
|
|
566
|
+
cancelExperimentQueryByRequestId,
|
|
567
|
+
saveMetric,
|
|
568
|
+
queryMetricDetail,
|
|
569
|
+
queryMetricList,
|
|
570
|
+
deleteMetric,
|
|
571
|
+
saveFeature,
|
|
572
|
+
manageFeatureStatus,
|
|
573
|
+
queryFeatureDetail,
|
|
574
|
+
queryFeatureList,
|
|
575
|
+
batchDeleteFeature,
|
|
576
|
+
queryBucketList
|
|
577
|
+
];
|
|
578
|
+
var te_experiment_default = commands;
|
|
579
|
+
export {
|
|
580
|
+
batchDeleteExperiment,
|
|
581
|
+
batchDeleteFeature,
|
|
582
|
+
batchDeleteTrafficLayer,
|
|
583
|
+
cancelExperimentQueryByRequestId,
|
|
584
|
+
checkExperimentReady,
|
|
585
|
+
te_experiment_default as default,
|
|
586
|
+
deleteMetric,
|
|
587
|
+
manageExperiment,
|
|
588
|
+
manageFeatureStatus,
|
|
589
|
+
queryBucketList,
|
|
590
|
+
queryExperimentDetail,
|
|
591
|
+
queryExperimentList,
|
|
592
|
+
queryExperimentMetricTrend,
|
|
593
|
+
queryExperimentReportSummary,
|
|
594
|
+
queryExperimentSampleSizeReport,
|
|
595
|
+
queryFeatureDetail,
|
|
596
|
+
queryFeatureList,
|
|
597
|
+
queryMetricDetail,
|
|
598
|
+
queryMetricList,
|
|
599
|
+
queryTrafficLayerDetail,
|
|
600
|
+
queryTrafficLayerList,
|
|
601
|
+
saveExperiment,
|
|
602
|
+
saveFeature,
|
|
603
|
+
saveMetric,
|
|
604
|
+
saveSubmitExperiment,
|
|
605
|
+
saveTrafficLayer
|
|
606
|
+
};
|