@thinkingai/ae-cli 1.0.24 → 1.0.28
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 +17 -2
- package/README.zh.md +18 -2
- package/dist/auth-5NSDQFQB.js +454 -0
- package/dist/{auth-4OPL4YWG.js → auth-H2376DEF.js} +2 -2
- package/dist/chunk-AD5V3ZPJ.js +217 -0
- package/dist/chunk-CAQYQA4R.js +399 -0
- package/dist/{chunk-JJCRURTR.js → chunk-CLJF7MQA.js} +1 -1
- package/dist/chunk-GSJGPNKK.js +49 -0
- package/dist/chunk-IMBKVXKY.js +478 -0
- package/dist/chunk-KAEZTSXN.js +99 -0
- package/dist/{chunk-MZW6NOVS.js → chunk-LU7SXK4Q.js} +27 -8
- package/dist/chunk-OJDNO5QY.js +63 -0
- package/dist/{chunk-DC66L5AM.js → chunk-SRJIAOBN.js} +76 -91
- package/dist/{chunk-OVHL4JAC.js → chunk-WCHI7725.js} +44 -47
- package/dist/{client-TDH6MUWM.js → client-FCMK3XEK.js} +5 -3
- package/dist/config-64G36TJL.js +130 -0
- package/dist/index.js +50 -17
- package/dist/model-EZ6K7FXI.js +134 -0
- package/dist/{raw-EM7AP3RT.js → raw-VEF3D6UD.js} +11 -6
- package/dist/sync-NRODEVNH.js +385 -0
- package/dist/te-agent-7U7JLJKU.js +524 -0
- package/dist/{te-analysis-3KFSNUCJ.js → te-analysis-A2OSGHQ4.js} +136 -20
- package/dist/{te-audience-GMYJFCSC.js → te-audience-LI67PPGO.js} +5 -4
- package/dist/{te-common-YLERCMQI.js → te-common-35WVU3C5.js} +19 -8
- package/dist/{te-community-PYDN5A6B.js → te-community-LEAP6PWT.js} +4 -3
- package/dist/{te-dataops-ETWS5O3X.js → te-dataops-N2LGZBOX.js} +4 -3
- package/dist/{te-engage-ROJVZHDA.js → te-engage-H7C72Z46.js} +105 -49
- package/dist/{te-kb-VUNS2CC7.js → te-kb-I2OKTBAI.js} +225 -29
- package/dist/{te-meta-3EFWLM3A.js → te-meta-HBTIEDRO.js} +4 -3
- package/dist/te-team-EM5OWRQL.js +529 -0
- package/package.json +10 -2
- package/skills/ae-agent/SKILL.md +134 -0
- package/skills/ae-analysis/SKILL.md +1 -1
- package/skills/ae-analysis/references/drilldown_user_events.md +1 -1
- package/skills/ae-analysis/references/drilldown_users.md +2 -2
- package/skills/ae-analysis/references/list_clusters.md +4 -2
- package/skills/ae-analysis/references/query_adhoc.md +3 -2
- package/skills/ae-analysis/references/query_entity_details.md +1 -1
- package/skills/ae-analysis-global/SKILL.md +51 -0
- package/skills/ae-analysis-global/references/list_query_clusters.md +67 -0
- package/skills/ae-community/SKILL.md +2 -3
- package/skills/ae-dataops/SKILL.md +1 -2
- package/skills/ae-engage/SKILL.md +26 -2
- package/skills/ae-engage/references/add-approver.md +0 -1
- package/skills/ae-engage/references/add-channel.md +0 -1
- package/skills/ae-engage/references/approver-list.md +0 -1
- package/skills/ae-engage/references/build-task-save-guide.md +283 -0
- package/skills/ae-engage/references/cancel-query-by-request-id.md +0 -1
- package/skills/ae-engage/references/channel-detail.md +0 -1
- package/skills/ae-engage/references/channel-list.md +0 -1
- package/skills/ae-engage/references/config-channel-detail.md +0 -1
- package/skills/ae-engage/references/config-channel-list.md +0 -1
- package/skills/ae-engage/references/config-item-analysis-report.md +0 -1
- package/skills/ae-engage/references/config-item-detail.md +0 -1
- package/skills/ae-engage/references/config-item-list.md +0 -1
- package/skills/ae-engage/references/config-item-strategy-comparison.md +0 -1
- package/skills/ae-engage/references/config-item-trigger-report.md +0 -1
- package/skills/ae-engage/references/copy-config-template.md +0 -1
- package/skills/ae-engage/references/delete-channel.md +0 -1
- package/skills/ae-engage/references/delete-config-channel.md +0 -1
- package/skills/ae-engage/references/delete-config-item.md +0 -1
- package/skills/ae-engage/references/delete-flow.md +0 -1
- package/skills/ae-engage/references/flow-ab-split-node-report.md +0 -1
- package/skills/ae-engage/references/flow-detail.md +0 -1
- package/skills/ae-engage/references/flow-list.md +0 -1
- package/skills/ae-engage/references/flow-node-config-schema.md +0 -1
- package/skills/ae-engage/references/flow-node-detail-report.md +0 -1
- package/skills/ae-engage/references/flow-node-overview-report.md +0 -1
- package/skills/ae-engage/references/flow-process-report.md +0 -1
- package/skills/ae-engage/references/manage-flow.md +0 -1
- package/skills/ae-engage/references/manage-strategy.md +0 -1
- package/skills/ae-engage/references/manage-task.md +0 -1
- package/skills/ae-engage/references/modify-flow-base-info.md +0 -1
- package/skills/ae-engage/references/save-task.md +304 -0
- package/skills/ae-engage/references/strategy-detail.md +0 -1
- package/skills/ae-engage/references/strategy-list.md +0 -1
- package/skills/ae-engage/references/task-data-detail.md +0 -1
- package/skills/ae-engage/references/task-data-overview.md +0 -1
- package/skills/ae-engage/references/task-detail.md +0 -1
- package/skills/ae-engage/references/task-experiment-report.md +0 -1
- package/skills/ae-engage/references/task-list.md +0 -1
- package/skills/ae-engage/references/task-metric-detail.md +0 -1
- package/skills/ae-engage/references/task-stats.md +0 -1
- package/skills/ae-engage/references/update-channel-status.md +0 -1
- package/skills/ae-engage/references/update-config-channel-status.md +0 -1
- package/skills/ae-engage/references/validate-flow-node-config.md +0 -1
- package/skills/ae-engage/references/whitelist-list.md +0 -1
- package/skills/ae-kb/SKILL.md +284 -0
- package/skills/ae-team/SKILL.md +164 -0
- package/skills/ae-team/references/ai-generate.md +39 -0
- package/skills/ae-team/references/create.md +94 -0
- package/skills/ae-team/references/delete.md +39 -0
- package/skills/ae-team/references/list-projects.md +45 -0
- package/skills/ae-team/references/list-templates.md +38 -0
- package/skills/ae-team/references/list.md +39 -0
- package/skills/ae-team/references/run-artifacts.md +51 -0
- package/skills/ae-team/references/run-cancel.md +38 -0
- package/skills/ae-team/references/run-chat.md +57 -0
- package/skills/ae-team/references/run-reply.md +41 -0
- package/skills/ae-team/references/run-result.md +75 -0
- package/skills/ae-team/references/run-start.md +73 -0
- package/skills/ae-team/references/run-watch.md +82 -0
- package/skills/ae-team/references/update.md +47 -0
- package/dist/auth-PBPAZQWP.js +0 -168
- package/dist/chunk-47MTN54I.js +0 -285
- package/dist/config-5ELRYAIH.js +0 -257
|
@@ -2,9 +2,12 @@ import {
|
|
|
2
2
|
callMcpTool,
|
|
3
3
|
parseMcpResult,
|
|
4
4
|
resolveMcpUrl
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import
|
|
7
|
-
|
|
5
|
+
} from "./chunk-WCHI7725.js";
|
|
6
|
+
import {
|
|
7
|
+
isGlobalQueryModeEnabled
|
|
8
|
+
} from "./chunk-GSJGPNKK.js";
|
|
9
|
+
import "./chunk-CAQYQA4R.js";
|
|
10
|
+
import "./chunk-SRJIAOBN.js";
|
|
8
11
|
|
|
9
12
|
// src/commands/te-analysis/shared.ts
|
|
10
13
|
function createMcpCommand(config) {
|
|
@@ -16,6 +19,7 @@ function createMcpCommand(config) {
|
|
|
16
19
|
description: config.description,
|
|
17
20
|
flags: config.flags,
|
|
18
21
|
risk: config.risk,
|
|
22
|
+
validate: config.validate,
|
|
19
23
|
dryRun: (ctx) => ({
|
|
20
24
|
method: "tools/call",
|
|
21
25
|
url: resolveMcpUrl(ctx.mcpUrl(), ctx.host(), mcpService),
|
|
@@ -54,6 +58,76 @@ function optionalJsonString(ctx, name) {
|
|
|
54
58
|
function requiredJsonString(ctx, name) {
|
|
55
59
|
return JSON.stringify(ctx.json(name));
|
|
56
60
|
}
|
|
61
|
+
function clusterQueryFlags(scopeDesc) {
|
|
62
|
+
if (!isGlobalQueryModeEnabled()) {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
return [
|
|
66
|
+
{ name: "cluster_query_scope", type: "string", required: false, desc: scopeDesc },
|
|
67
|
+
{ name: "slave_cluster_id", type: "string", required: false, desc: "Slave cluster ID. Required when cluster_query_scope=SLAVE. Use +list_query_clusters first to choose this value." }
|
|
68
|
+
];
|
|
69
|
+
}
|
|
70
|
+
function optionalClusterQueryArgs(ctx) {
|
|
71
|
+
if (!isGlobalQueryModeEnabled()) {
|
|
72
|
+
return {};
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
clusterQueryScope: optionalString(ctx, "cluster_query_scope"),
|
|
76
|
+
slaveClusterId: optionalString(ctx, "slave_cluster_id")
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
var DEFAULT_QUERY_LIMIT = 1e3;
|
|
80
|
+
var MAX_QUERY_LIMIT = 1e5;
|
|
81
|
+
function assertLimitWithinCap(value, flagName) {
|
|
82
|
+
if (value === void 0) return;
|
|
83
|
+
if (!Number.isInteger(value) || value < 1 || value > MAX_QUERY_LIMIT) {
|
|
84
|
+
throw new Error(`--${flagName} must be an integer between 1 and ${MAX_QUERY_LIMIT} (got: ${value}).`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function extractTrailingSqlLimit(sql) {
|
|
88
|
+
const m = sql.match(/\blimit\s+(\d+)(?:\s*,\s*(\d+))?(?:\s+offset\s+\d+)?\s*;?\s*$/i);
|
|
89
|
+
if (!m) return void 0;
|
|
90
|
+
return m[2] !== void 0 ? Number(m[2]) : Number(m[1]);
|
|
91
|
+
}
|
|
92
|
+
function findSqlInQp(qp) {
|
|
93
|
+
let found;
|
|
94
|
+
const visit = (v) => {
|
|
95
|
+
if (found !== void 0) return;
|
|
96
|
+
if (typeof v === "string") {
|
|
97
|
+
if (/\bselect\b/i.test(v) && /\bfrom\b/i.test(v)) found = v;
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
if (Array.isArray(v)) {
|
|
101
|
+
v.forEach(visit);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (v && typeof v === "object") {
|
|
105
|
+
Object.values(v).forEach(visit);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
visit(qp);
|
|
109
|
+
return found;
|
|
110
|
+
}
|
|
111
|
+
function assertSqlLimitConsistent(qp, providedLimit) {
|
|
112
|
+
if (providedLimit === void 0) return;
|
|
113
|
+
const sql = findSqlInQp(qp);
|
|
114
|
+
if (sql === void 0) return;
|
|
115
|
+
const sqlLimit = extractTrailingSqlLimit(sql);
|
|
116
|
+
if (sqlLimit === void 0) return;
|
|
117
|
+
if (sqlLimit !== providedLimit) {
|
|
118
|
+
throw new Error(
|
|
119
|
+
`Conflicting row limits: SQL "LIMIT ${sqlLimit}" != --limit ${providedLimit}. For model_type=sql, omit LIMIT from the SQL and use --limit, or keep the two equal.`
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function resolveSqlAwareLimit(providedLimit, modelType, qp) {
|
|
124
|
+
if (providedLimit !== void 0) return providedLimit;
|
|
125
|
+
if (modelType === "sql") {
|
|
126
|
+
const sql = findSqlInQp(qp);
|
|
127
|
+
if (sql !== void 0 && extractTrailingSqlLimit(sql) !== void 0) return void 0;
|
|
128
|
+
}
|
|
129
|
+
return DEFAULT_QUERY_LIMIT;
|
|
130
|
+
}
|
|
57
131
|
|
|
58
132
|
// src/commands/te-analysis/meta/get-alert-definition-schema.ts
|
|
59
133
|
var getAlertDefinitionSchema = createMcpCommand({
|
|
@@ -195,7 +269,8 @@ var queryReportData = createMcpCommand({
|
|
|
195
269
|
{ name: "start_date", type: "string", required: false, desc: "Optional start date in yyyy-MM-dd format" },
|
|
196
270
|
{ name: "end_date", type: "string", required: false, desc: "Optional end date in yyyy-MM-dd format" },
|
|
197
271
|
{ name: "time_granularity", type: "string", required: false, desc: "Optional time granularity used to override the report default. Supported values: minute, minute5, minute10, hour, day, week, month, quarter, year, total." },
|
|
198
|
-
{ name: "timeout_minutes", type: "number", required: false, desc: "Query timeout in minutes. If omitted, 30 minutes is used." }
|
|
272
|
+
{ name: "timeout_minutes", type: "number", required: false, desc: "Query timeout in minutes. If omitted, 30 minutes is used." },
|
|
273
|
+
...clusterQueryFlags("Optional cluster query scope. Supported values: GLOBAL, SLAVE. Omit to query the current self cluster.")
|
|
199
274
|
],
|
|
200
275
|
risk: "read",
|
|
201
276
|
buildArgs: (ctx) => ({
|
|
@@ -208,7 +283,8 @@ var queryReportData = createMcpCommand({
|
|
|
208
283
|
startDate: optionalString(ctx, "start_date"),
|
|
209
284
|
endDate: optionalString(ctx, "end_date"),
|
|
210
285
|
timeGranularity: optionalString(ctx, "time_granularity"),
|
|
211
|
-
timeoutMinutes: optionalNumber(ctx, "timeout_minutes")
|
|
286
|
+
timeoutMinutes: optionalNumber(ctx, "timeout_minutes"),
|
|
287
|
+
...optionalClusterQueryArgs(ctx)
|
|
212
288
|
})
|
|
213
289
|
});
|
|
214
290
|
|
|
@@ -296,7 +372,8 @@ var queryDashboardReportData = createMcpCommand({
|
|
|
296
372
|
{ name: "end_date", type: "string", required: false, desc: "Optional end date in yyyy-MM-dd format" },
|
|
297
373
|
{ name: "time_granularity", type: "string", required: false, desc: "Optional time granularity used to override the report default. Supported values: minute, minute5, minute10, hour, day, week, month, quarter, year, total." },
|
|
298
374
|
{ name: "use_cache", type: "boolean", required: false, desc: "Whether to use cache. Default: true" },
|
|
299
|
-
{ name: "report_ids", type: "json", required: false, desc: "Optional report IDs JSON array" }
|
|
375
|
+
{ name: "report_ids", type: "json", required: false, desc: "Optional report IDs JSON array" },
|
|
376
|
+
...clusterQueryFlags("Optional cluster query scope. Supported values: GLOBAL, SLAVE. Omit to follow dashboard configuration.")
|
|
300
377
|
],
|
|
301
378
|
risk: "read",
|
|
302
379
|
buildArgs: (ctx) => ({
|
|
@@ -307,7 +384,8 @@ var queryDashboardReportData = createMcpCommand({
|
|
|
307
384
|
endDate: optionalString(ctx, "end_date"),
|
|
308
385
|
timeGranularity: optionalString(ctx, "time_granularity"),
|
|
309
386
|
useCache: optionalBoolean(ctx, "use_cache"),
|
|
310
|
-
reportIds: optionalJson(ctx, "report_ids")
|
|
387
|
+
reportIds: optionalJson(ctx, "report_ids"),
|
|
388
|
+
...optionalClusterQueryArgs(ctx)
|
|
311
389
|
})
|
|
312
390
|
});
|
|
313
391
|
|
|
@@ -506,11 +584,19 @@ var queryAdhoc = createMcpCommand({
|
|
|
506
584
|
{ name: "is_sort_by_columns", type: "boolean", required: false, desc: "Whether to sort query results by columns. Default: false" },
|
|
507
585
|
{ name: "resolve_recent_day", type: "boolean", required: false, desc: "Whether to resolve relative time expressions such as last 7 days. If omitted, the service auto-resolves when qp.eventView.recentDay exists and start/end time is incomplete; otherwise it defaults to false." },
|
|
508
586
|
{ name: "fields", type: "json", required: false, desc: "Optional fields to return. Must match column names in result." },
|
|
509
|
-
{ name: "limit", type: "number", required: false, desc: "Optional limit. Default:
|
|
587
|
+
{ name: "limit", type: "number", required: false, desc: "Optional limit. Default: 1000, maximum: 100000. For model_type=sql, either omit LIMIT in the SQL or keep it equal to --limit (the two must not differ)." },
|
|
510
588
|
{ name: "offset", type: "number", required: false, desc: "Optional offset. Default: 0." },
|
|
511
|
-
{ name: "timeout_minutes", type: "number", required: false, desc: "Query timeout in minutes. If omitted, 30 minutes is used." }
|
|
589
|
+
{ name: "timeout_minutes", type: "number", required: false, desc: "Query timeout in minutes. If omitted, 30 minutes is used." },
|
|
590
|
+
...clusterQueryFlags("Optional cluster query scope. Supported values: GLOBAL, SLAVE. Omit to query the current self cluster. SQL model analysis does not support this parameter.")
|
|
512
591
|
],
|
|
513
592
|
risk: "read",
|
|
593
|
+
validate: (ctx) => {
|
|
594
|
+
const limit = optionalNumber(ctx, "limit");
|
|
595
|
+
assertLimitWithinCap(limit, "limit");
|
|
596
|
+
if (ctx.str("model_type") === "sql") {
|
|
597
|
+
assertSqlLimitConsistent(ctx.json("qp"), limit);
|
|
598
|
+
}
|
|
599
|
+
},
|
|
514
600
|
buildArgs: (ctx) => ({
|
|
515
601
|
projectId: ctx.num("project_id"),
|
|
516
602
|
modelType: ctx.str("model_type"),
|
|
@@ -521,9 +607,10 @@ var queryAdhoc = createMcpCommand({
|
|
|
521
607
|
isSortByColumns: optionalBoolean(ctx, "is_sort_by_columns"),
|
|
522
608
|
resolveRecentDay: optionalBoolean(ctx, "resolve_recent_day"),
|
|
523
609
|
fields: optionalJson(ctx, "fields"),
|
|
524
|
-
limit: optionalNumber(ctx, "limit"),
|
|
610
|
+
limit: resolveSqlAwareLimit(optionalNumber(ctx, "limit"), ctx.str("model_type"), ctx.json("qp")),
|
|
525
611
|
offset: optionalNumber(ctx, "offset"),
|
|
526
|
-
timeoutMinutes: optionalNumber(ctx, "timeout_minutes")
|
|
612
|
+
timeoutMinutes: optionalNumber(ctx, "timeout_minutes"),
|
|
613
|
+
...optionalClusterQueryArgs(ctx)
|
|
527
614
|
})
|
|
528
615
|
});
|
|
529
616
|
|
|
@@ -632,11 +719,14 @@ var drilldownUsers = createMcpCommand({
|
|
|
632
719
|
{ name: "include_total", type: "boolean", required: false, desc: "Whether to query users from the total row. Default: false" },
|
|
633
720
|
{ name: "relation_val", type: "string", required: false, desc: "Relation value used in relation analysis scenarios" },
|
|
634
721
|
{ name: "use_cache", type: "boolean", required: false, desc: "Whether to use cache. Default: true" },
|
|
635
|
-
{ name: "limit", type: "number", required: false, desc: "Optional limit. Default:
|
|
722
|
+
{ name: "limit", type: "number", required: false, desc: "Optional limit. Default: 1000, maximum: 100000." },
|
|
636
723
|
{ name: "offset", type: "number", required: false, desc: "Optional offset. Default: 0." },
|
|
637
724
|
{ name: "timeout_minutes", type: "number", required: false, desc: "Query timeout in minutes. If omitted, 30 minutes is used." }
|
|
638
725
|
],
|
|
639
726
|
risk: "read",
|
|
727
|
+
validate: (ctx) => {
|
|
728
|
+
assertLimitWithinCap(optionalNumber(ctx, "limit"), "limit");
|
|
729
|
+
},
|
|
640
730
|
buildArgs: (ctx) => ({
|
|
641
731
|
projectId: ctx.num("project_id"),
|
|
642
732
|
modelType: ctx.str("model_type"),
|
|
@@ -656,7 +746,7 @@ var drilldownUsers = createMcpCommand({
|
|
|
656
746
|
includeTotal: optionalBoolean(ctx, "include_total"),
|
|
657
747
|
relationVal: optionalString(ctx, "relation_val"),
|
|
658
748
|
useCache: optionalBoolean(ctx, "use_cache"),
|
|
659
|
-
limit: optionalNumber(ctx, "limit"),
|
|
749
|
+
limit: optionalNumber(ctx, "limit") ?? DEFAULT_QUERY_LIMIT,
|
|
660
750
|
offset: optionalNumber(ctx, "offset"),
|
|
661
751
|
timeoutMinutes: optionalNumber(ctx, "timeout_minutes")
|
|
662
752
|
})
|
|
@@ -684,10 +774,13 @@ var drilldownUserEvents = createMcpCommand({
|
|
|
684
774
|
{ name: "entity_value", type: "string", required: false, desc: "Optional entity value for multi-entity scenarios" },
|
|
685
775
|
{ name: "use_cache", type: "boolean", required: false, desc: "Whether to use cache. Default: true" },
|
|
686
776
|
{ name: "page_num", type: "number", required: false, desc: "Start page number. Default: 1" },
|
|
687
|
-
{ name: "page_size", type: "number", required: false, desc: "Page size. Default:
|
|
777
|
+
{ name: "page_size", type: "number", required: false, desc: "Page size. Default: 1000, maximum: 100000." },
|
|
688
778
|
{ name: "timeout_minutes", type: "number", required: false, desc: "Query timeout in minutes. If omitted, 30 minutes is used." }
|
|
689
779
|
],
|
|
690
780
|
risk: "read",
|
|
781
|
+
validate: (ctx) => {
|
|
782
|
+
assertLimitWithinCap(optionalNumber(ctx, "page_size"), "page_size");
|
|
783
|
+
},
|
|
691
784
|
buildArgs: (ctx) => ({
|
|
692
785
|
projectId: ctx.num("project_id"),
|
|
693
786
|
userId: ctx.str("user_id"),
|
|
@@ -706,7 +799,7 @@ var drilldownUserEvents = createMcpCommand({
|
|
|
706
799
|
entityValue: optionalString(ctx, "entity_value"),
|
|
707
800
|
useCache: optionalBoolean(ctx, "use_cache"),
|
|
708
801
|
pageNum: optionalNumber(ctx, "page_num"),
|
|
709
|
-
pageSize: optionalNumber(ctx, "page_size"),
|
|
802
|
+
pageSize: optionalNumber(ctx, "page_size") ?? DEFAULT_QUERY_LIMIT,
|
|
710
803
|
timeoutMinutes: optionalNumber(ctx, "timeout_minutes")
|
|
711
804
|
})
|
|
712
805
|
});
|
|
@@ -834,11 +927,14 @@ var queryEntityDetails = createMcpCommand({
|
|
|
834
927
|
{ name: "properties", type: "json", required: false, desc: "Optional display properties JSON" },
|
|
835
928
|
{ name: "sort_by", type: "string", required: false, desc: "Optional sort field" },
|
|
836
929
|
{ name: "sort_order", type: "string", required: false, desc: "Optional sort order. Supported values: asc and desc" },
|
|
837
|
-
{ name: "limit", type: "number", required: false, desc: "Optional result limit. Default:
|
|
930
|
+
{ name: "limit", type: "number", required: false, desc: "Optional result limit. Default: 1000, maximum: 100000" },
|
|
838
931
|
{ name: "zone_offset", type: "number", required: false, desc: "Time zone offset. For example, UTC+8 is 8" },
|
|
839
932
|
{ name: "use_cache", type: "boolean", required: false, desc: "Whether to use cache. Default: true" }
|
|
840
933
|
],
|
|
841
934
|
risk: "read",
|
|
935
|
+
validate: (ctx) => {
|
|
936
|
+
assertLimitWithinCap(optionalNumber(ctx, "limit"), "limit");
|
|
937
|
+
},
|
|
842
938
|
buildArgs: (ctx) => ({
|
|
843
939
|
projectId: ctx.num("project_id"),
|
|
844
940
|
entityId: optionalNumber(ctx, "entity_id"),
|
|
@@ -846,7 +942,7 @@ var queryEntityDetails = createMcpCommand({
|
|
|
846
942
|
properties: optionalJsonString(ctx, "properties"),
|
|
847
943
|
sortBy: optionalString(ctx, "sort_by"),
|
|
848
944
|
sortOrder: optionalString(ctx, "sort_order"),
|
|
849
|
-
limit: optionalNumber(ctx, "limit"),
|
|
945
|
+
limit: optionalNumber(ctx, "limit") ?? DEFAULT_QUERY_LIMIT,
|
|
850
946
|
zoneOffset: optionalNumber(ctx, "zone_offset"),
|
|
851
947
|
useCache: optionalBoolean(ctx, "use_cache")
|
|
852
948
|
})
|
|
@@ -999,16 +1095,36 @@ var commands6 = [
|
|
|
999
1095
|
];
|
|
1000
1096
|
var schema_default = commands6;
|
|
1001
1097
|
|
|
1002
|
-
// src/commands/te-analysis/
|
|
1098
|
+
// src/commands/te-analysis/global/list-query-clusters.ts
|
|
1099
|
+
var listQueryClusters = createMcpCommand({
|
|
1100
|
+
command: "+list_query_clusters",
|
|
1101
|
+
description: "List query cluster options accessible to the current account in the project. Use this to decide whether to query the current self cluster, global aggregated data, or one specific slave cluster.",
|
|
1102
|
+
flags: [
|
|
1103
|
+
{ name: "project_id", type: "number", required: true, desc: "Project ID used to resolve cluster query permissions", alias: "p" }
|
|
1104
|
+
],
|
|
1105
|
+
risk: "read",
|
|
1106
|
+
buildArgs: (ctx) => ({
|
|
1107
|
+
projectId: ctx.num("project_id")
|
|
1108
|
+
})
|
|
1109
|
+
});
|
|
1110
|
+
|
|
1111
|
+
// src/commands/te-analysis/global/index.ts
|
|
1003
1112
|
var commands7 = [
|
|
1113
|
+
listQueryClusters
|
|
1114
|
+
];
|
|
1115
|
+
var global_default = commands7;
|
|
1116
|
+
|
|
1117
|
+
// src/commands/te-analysis/index.ts
|
|
1118
|
+
var commands8 = [
|
|
1004
1119
|
...meta_default,
|
|
1005
1120
|
...report_default,
|
|
1006
1121
|
...dashboard_default,
|
|
1007
1122
|
...model_default,
|
|
1008
1123
|
...entity_default,
|
|
1009
|
-
...schema_default
|
|
1124
|
+
...schema_default,
|
|
1125
|
+
...isGlobalQueryModeEnabled() ? global_default : []
|
|
1010
1126
|
];
|
|
1011
|
-
var te_analysis_default =
|
|
1127
|
+
var te_analysis_default = commands8;
|
|
1012
1128
|
export {
|
|
1013
1129
|
te_analysis_default as default
|
|
1014
1130
|
};
|
|
@@ -2,9 +2,10 @@ import {
|
|
|
2
2
|
callMcpTool,
|
|
3
3
|
parseMcpResult,
|
|
4
4
|
resolveMcpUrl
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-WCHI7725.js";
|
|
6
|
+
import "./chunk-GSJGPNKK.js";
|
|
7
|
+
import "./chunk-CAQYQA4R.js";
|
|
8
|
+
import "./chunk-SRJIAOBN.js";
|
|
8
9
|
|
|
9
10
|
// src/commands/te-audience/shared.ts
|
|
10
11
|
function createMcpCommand(config) {
|
|
@@ -58,7 +59,7 @@ function requiredJsonString(ctx, name) {
|
|
|
58
59
|
// src/commands/te-audience/cluster/list-clusters.ts
|
|
59
60
|
var listClusters = createMcpCommand({
|
|
60
61
|
command: "+list_clusters",
|
|
61
|
-
description: "List cluster metadata with optional query/fields/limit/offset",
|
|
62
|
+
description: "List user cohort/segment cluster metadata with optional query/fields/limit/offset.",
|
|
62
63
|
flags: [
|
|
63
64
|
{ name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
|
|
64
65
|
{ name: "query", type: "string", required: false, desc: "Keyword filter", alias: "q" },
|
|
@@ -2,9 +2,10 @@ import {
|
|
|
2
2
|
callMcpTool,
|
|
3
3
|
parseMcpResult,
|
|
4
4
|
resolveMcpUrl
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-WCHI7725.js";
|
|
6
|
+
import "./chunk-GSJGPNKK.js";
|
|
7
|
+
import "./chunk-CAQYQA4R.js";
|
|
8
|
+
import "./chunk-SRJIAOBN.js";
|
|
8
9
|
|
|
9
10
|
// src/commands/te-common/shared.ts
|
|
10
11
|
function createMcpCommand(config) {
|
|
@@ -48,15 +49,25 @@ var commands = [
|
|
|
48
49
|
var project_default = commands;
|
|
49
50
|
|
|
50
51
|
// src/commands/te-common/resource/get-resource-url.ts
|
|
51
|
-
function normalizeResourceUrlFields(node) {
|
|
52
|
+
function normalizeResourceUrlFields(node, host) {
|
|
52
53
|
if (!node || typeof node !== "object") return;
|
|
53
54
|
const obj = node;
|
|
54
|
-
for (const value of Object.
|
|
55
|
-
if (
|
|
56
|
-
|
|
55
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
56
|
+
if (typeof value === "string") {
|
|
57
|
+
if (/url|link/i.test(key) || value.includes("/#/")) {
|
|
58
|
+
obj[key] = absolutizeRelativeUrls(value, host);
|
|
59
|
+
}
|
|
60
|
+
} else if (value && typeof value === "object") {
|
|
61
|
+
normalizeResourceUrlFields(value, host);
|
|
57
62
|
}
|
|
58
63
|
}
|
|
59
64
|
}
|
|
65
|
+
function absolutizeRelativeUrls(s, host) {
|
|
66
|
+
const base = host.replace(/\/+$/, "");
|
|
67
|
+
s = s.replace(/\]\((\/(?!\/)[^)]*)\)/g, `](${base}$1)`);
|
|
68
|
+
if (/^\/(?!\/)/.test(s)) s = base + s;
|
|
69
|
+
return s;
|
|
70
|
+
}
|
|
60
71
|
var getResourceUrl = {
|
|
61
72
|
service: "analysis_common",
|
|
62
73
|
command: "+get_resource_url",
|
|
@@ -95,7 +106,7 @@ var getResourceUrl = {
|
|
|
95
106
|
if (typeof parsed !== "object" || parsed === null) {
|
|
96
107
|
return parsed;
|
|
97
108
|
}
|
|
98
|
-
normalizeResourceUrlFields(parsed);
|
|
109
|
+
normalizeResourceUrlFields(parsed, ctx.host());
|
|
99
110
|
return parsed;
|
|
100
111
|
}
|
|
101
112
|
};
|
|
@@ -3,9 +3,10 @@ import {
|
|
|
3
3
|
parseMcpResult,
|
|
4
4
|
registerMcpMappings,
|
|
5
5
|
resolveMcpUrl
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-WCHI7725.js";
|
|
7
|
+
import "./chunk-GSJGPNKK.js";
|
|
8
|
+
import "./chunk-CAQYQA4R.js";
|
|
9
|
+
import "./chunk-SRJIAOBN.js";
|
|
9
10
|
|
|
10
11
|
// src/commands/te-community/get_channel_info.ts
|
|
11
12
|
var getChannelInfo = {
|
|
@@ -3,9 +3,10 @@ import {
|
|
|
3
3
|
parseMcpResult,
|
|
4
4
|
registerMcpMappings,
|
|
5
5
|
resolveMcpUrl
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-WCHI7725.js";
|
|
7
|
+
import "./chunk-GSJGPNKK.js";
|
|
8
|
+
import "./chunk-CAQYQA4R.js";
|
|
9
|
+
import "./chunk-SRJIAOBN.js";
|
|
9
10
|
|
|
10
11
|
// src/commands/te-dataops/datatable/list-tables-by-page.ts
|
|
11
12
|
var listTablesByPage = {
|
|
@@ -3,27 +3,28 @@ import {
|
|
|
3
3
|
parseMcpResult,
|
|
4
4
|
registerMcpMappings,
|
|
5
5
|
resolveMcpUrl
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-WCHI7725.js";
|
|
7
|
+
import "./chunk-GSJGPNKK.js";
|
|
8
|
+
import "./chunk-CAQYQA4R.js";
|
|
9
|
+
import "./chunk-SRJIAOBN.js";
|
|
9
10
|
|
|
10
11
|
// src/commands/te-engage/utils.ts
|
|
11
|
-
function buildMcpDryRun(ctx,
|
|
12
|
+
function buildMcpDryRun(ctx, serviceName46, toolName46, args) {
|
|
12
13
|
const host = ctx.host();
|
|
13
14
|
return {
|
|
14
15
|
method: "MCP tools/call",
|
|
15
|
-
url: resolveMcpUrl(ctx.mcpUrl(), host,
|
|
16
|
+
url: resolveMcpUrl(ctx.mcpUrl(), host, serviceName46),
|
|
16
17
|
body: {
|
|
17
|
-
serviceName:
|
|
18
|
-
toolName:
|
|
18
|
+
serviceName: serviceName46,
|
|
19
|
+
toolName: toolName46,
|
|
19
20
|
arguments: args
|
|
20
21
|
}
|
|
21
22
|
};
|
|
22
23
|
}
|
|
23
|
-
async function executeMcpCommand(ctx,
|
|
24
|
+
async function executeMcpCommand(ctx, serviceName46, toolName46, args) {
|
|
24
25
|
const host = ctx.host();
|
|
25
|
-
const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), host,
|
|
26
|
-
const result = await callMcpTool(mcpUrl,
|
|
26
|
+
const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), host, serviceName46);
|
|
27
|
+
const result = await callMcpTool(mcpUrl, toolName46, args, host);
|
|
27
28
|
return parseMcpResult(result);
|
|
28
29
|
}
|
|
29
30
|
function hasFlag(ctx, name) {
|
|
@@ -1144,10 +1145,35 @@ var commands3 = [
|
|
|
1144
1145
|
];
|
|
1145
1146
|
var setting_default = commands3;
|
|
1146
1147
|
|
|
1147
|
-
// src/commands/te-engage/task/
|
|
1148
|
+
// src/commands/te-engage/task/build-task-save-guide.ts
|
|
1148
1149
|
var serviceName36 = "engage_task";
|
|
1149
|
-
var toolName36 = "
|
|
1150
|
+
var toolName36 = "build_task_save_guide";
|
|
1150
1151
|
function buildArgs36(ctx) {
|
|
1152
|
+
return {
|
|
1153
|
+
projectId: ctx.num("project_id"),
|
|
1154
|
+
req: readRequiredJsonObject(ctx, "req")
|
|
1155
|
+
};
|
|
1156
|
+
}
|
|
1157
|
+
var buildTaskSaveGuide = {
|
|
1158
|
+
service: "engage",
|
|
1159
|
+
command: "+build_task_save_guide",
|
|
1160
|
+
description: "Build a scenario-specific guide for constructing save_task req.",
|
|
1161
|
+
flags: [
|
|
1162
|
+
{ name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
|
|
1163
|
+
{ name: "req", type: "json", required: true, desc: "Guide request as JSON object; use {} for a generic guide" }
|
|
1164
|
+
],
|
|
1165
|
+
risk: "read",
|
|
1166
|
+
validate: (ctx) => {
|
|
1167
|
+
readRequiredJsonObject(ctx, "req");
|
|
1168
|
+
},
|
|
1169
|
+
dryRun: (ctx) => buildMcpDryRun(ctx, serviceName36, toolName36, buildArgs36(ctx)),
|
|
1170
|
+
execute: async (ctx) => executeMcpCommand(ctx, serviceName36, toolName36, buildArgs36(ctx))
|
|
1171
|
+
};
|
|
1172
|
+
|
|
1173
|
+
// src/commands/te-engage/task/manage-task.ts
|
|
1174
|
+
var serviceName37 = "engage_task";
|
|
1175
|
+
var toolName37 = "manage_task";
|
|
1176
|
+
function buildArgs37(ctx) {
|
|
1151
1177
|
const args = {
|
|
1152
1178
|
projectId: ctx.num("project_id"),
|
|
1153
1179
|
taskId: ctx.str("task_id"),
|
|
@@ -1168,14 +1194,42 @@ var manageTask = {
|
|
|
1168
1194
|
{ name: "reason", type: "string", required: false, desc: "Reason for review actions" }
|
|
1169
1195
|
],
|
|
1170
1196
|
risk: "write",
|
|
1171
|
-
dryRun: (ctx) => buildMcpDryRun(ctx,
|
|
1172
|
-
execute: async (ctx) => executeMcpCommand(ctx,
|
|
1197
|
+
dryRun: (ctx) => buildMcpDryRun(ctx, serviceName37, toolName37, buildArgs37(ctx)),
|
|
1198
|
+
execute: async (ctx) => executeMcpCommand(ctx, serviceName37, toolName37, buildArgs37(ctx))
|
|
1199
|
+
};
|
|
1200
|
+
|
|
1201
|
+
// src/commands/te-engage/task/save-task.ts
|
|
1202
|
+
var serviceName38 = "engage_task";
|
|
1203
|
+
var toolName38 = "save_task";
|
|
1204
|
+
function buildArgs38(ctx) {
|
|
1205
|
+
return {
|
|
1206
|
+
projectId: ctx.num("project_id"),
|
|
1207
|
+
req: {
|
|
1208
|
+
projectId: ctx.num("project_id"),
|
|
1209
|
+
...readRequiredJsonObject(ctx, "req")
|
|
1210
|
+
}
|
|
1211
|
+
};
|
|
1212
|
+
}
|
|
1213
|
+
var saveTask = {
|
|
1214
|
+
service: "engage",
|
|
1215
|
+
command: "+save_task",
|
|
1216
|
+
description: "Create or update a task draft.",
|
|
1217
|
+
flags: [
|
|
1218
|
+
{ name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
|
|
1219
|
+
{ name: "req", type: "json", required: true, desc: "Task save request as JSON object" }
|
|
1220
|
+
],
|
|
1221
|
+
risk: "write",
|
|
1222
|
+
validate: (ctx) => {
|
|
1223
|
+
readRequiredJsonObject(ctx, "req");
|
|
1224
|
+
},
|
|
1225
|
+
dryRun: (ctx) => buildMcpDryRun(ctx, serviceName38, toolName38, buildArgs38(ctx)),
|
|
1226
|
+
execute: async (ctx) => executeMcpCommand(ctx, serviceName38, toolName38, buildArgs38(ctx))
|
|
1173
1227
|
};
|
|
1174
1228
|
|
|
1175
1229
|
// src/commands/te-engage/task/task-data-detail.ts
|
|
1176
|
-
var
|
|
1177
|
-
var
|
|
1178
|
-
function
|
|
1230
|
+
var serviceName39 = "engage_task";
|
|
1231
|
+
var toolName39 = "query_task_data_detail";
|
|
1232
|
+
function buildArgs39(ctx) {
|
|
1179
1233
|
const args = {
|
|
1180
1234
|
projectId: ctx.num("project_id"),
|
|
1181
1235
|
taskId: ctx.str("task_id"),
|
|
@@ -1225,14 +1279,14 @@ var taskDataDetail = {
|
|
|
1225
1279
|
throw new Error("Flag --task_instance_id is required when --detail_type is instance_daily");
|
|
1226
1280
|
}
|
|
1227
1281
|
},
|
|
1228
|
-
dryRun: (ctx) => buildMcpDryRun(ctx,
|
|
1229
|
-
execute: async (ctx) => executeMcpCommand(ctx,
|
|
1282
|
+
dryRun: (ctx) => buildMcpDryRun(ctx, serviceName39, toolName39, buildArgs39(ctx)),
|
|
1283
|
+
execute: async (ctx) => executeMcpCommand(ctx, serviceName39, toolName39, buildArgs39(ctx))
|
|
1230
1284
|
};
|
|
1231
1285
|
|
|
1232
1286
|
// src/commands/te-engage/task/task-data-overview.ts
|
|
1233
|
-
var
|
|
1234
|
-
var
|
|
1235
|
-
function
|
|
1287
|
+
var serviceName40 = "engage_task";
|
|
1288
|
+
var toolName40 = "query_task_data_overview";
|
|
1289
|
+
function buildArgs40(ctx) {
|
|
1236
1290
|
const args = {
|
|
1237
1291
|
projectId: ctx.num("project_id"),
|
|
1238
1292
|
taskId: ctx.str("task_id")
|
|
@@ -1260,14 +1314,14 @@ var taskDataOverview = {
|
|
|
1260
1314
|
{ name: "show_time_zone", type: "string", required: false, desc: "Timezone offset" }
|
|
1261
1315
|
],
|
|
1262
1316
|
risk: "read",
|
|
1263
|
-
dryRun: (ctx) => buildMcpDryRun(ctx,
|
|
1264
|
-
execute: async (ctx) => executeMcpCommand(ctx,
|
|
1317
|
+
dryRun: (ctx) => buildMcpDryRun(ctx, serviceName40, toolName40, buildArgs40(ctx)),
|
|
1318
|
+
execute: async (ctx) => executeMcpCommand(ctx, serviceName40, toolName40, buildArgs40(ctx))
|
|
1265
1319
|
};
|
|
1266
1320
|
|
|
1267
1321
|
// src/commands/te-engage/task/task-detail.ts
|
|
1268
|
-
var
|
|
1269
|
-
var
|
|
1270
|
-
function
|
|
1322
|
+
var serviceName41 = "engage_task";
|
|
1323
|
+
var toolName41 = "query_task_detail";
|
|
1324
|
+
function buildArgs41(ctx) {
|
|
1271
1325
|
return {
|
|
1272
1326
|
projectId: ctx.num("project_id"),
|
|
1273
1327
|
taskId: ctx.str("task_id")
|
|
@@ -1282,14 +1336,14 @@ var taskDetail = {
|
|
|
1282
1336
|
{ name: "task_id", type: "string", required: true, desc: "Task ID" }
|
|
1283
1337
|
],
|
|
1284
1338
|
risk: "read",
|
|
1285
|
-
dryRun: (ctx) => buildMcpDryRun(ctx,
|
|
1286
|
-
execute: async (ctx) => executeMcpCommand(ctx,
|
|
1339
|
+
dryRun: (ctx) => buildMcpDryRun(ctx, serviceName41, toolName41, buildArgs41(ctx)),
|
|
1340
|
+
execute: async (ctx) => executeMcpCommand(ctx, serviceName41, toolName41, buildArgs41(ctx))
|
|
1287
1341
|
};
|
|
1288
1342
|
|
|
1289
1343
|
// src/commands/te-engage/task/task-experiment-report.ts
|
|
1290
|
-
var
|
|
1291
|
-
var
|
|
1292
|
-
function
|
|
1344
|
+
var serviceName42 = "engage_task";
|
|
1345
|
+
var toolName42 = "query_task_experiment_report";
|
|
1346
|
+
function buildArgs42(ctx) {
|
|
1293
1347
|
const args = {
|
|
1294
1348
|
projectId: ctx.num("project_id"),
|
|
1295
1349
|
taskId: ctx.str("task_id"),
|
|
@@ -1320,14 +1374,14 @@ var taskExperimentReport = {
|
|
|
1320
1374
|
validate: (ctx) => {
|
|
1321
1375
|
requireAllowedValue(ctx.str("report_type"), ["overview", "detail"], "report_type");
|
|
1322
1376
|
},
|
|
1323
|
-
dryRun: (ctx) => buildMcpDryRun(ctx,
|
|
1324
|
-
execute: async (ctx) => executeMcpCommand(ctx,
|
|
1377
|
+
dryRun: (ctx) => buildMcpDryRun(ctx, serviceName42, toolName42, buildArgs42(ctx)),
|
|
1378
|
+
execute: async (ctx) => executeMcpCommand(ctx, serviceName42, toolName42, buildArgs42(ctx))
|
|
1325
1379
|
};
|
|
1326
1380
|
|
|
1327
1381
|
// src/commands/te-engage/task/task-list.ts
|
|
1328
|
-
var
|
|
1329
|
-
var
|
|
1330
|
-
function
|
|
1382
|
+
var serviceName43 = "engage_task";
|
|
1383
|
+
var toolName43 = "query_task_list";
|
|
1384
|
+
function buildArgs43(ctx) {
|
|
1331
1385
|
return {
|
|
1332
1386
|
projectId: ctx.num("project_id"),
|
|
1333
1387
|
req: {
|
|
@@ -1348,14 +1402,14 @@ var taskList = {
|
|
|
1348
1402
|
validate: (ctx) => {
|
|
1349
1403
|
readRequiredJsonObject(ctx, "req");
|
|
1350
1404
|
},
|
|
1351
|
-
dryRun: (ctx) => buildMcpDryRun(ctx,
|
|
1352
|
-
execute: async (ctx) => executeMcpCommand(ctx,
|
|
1405
|
+
dryRun: (ctx) => buildMcpDryRun(ctx, serviceName43, toolName43, buildArgs43(ctx)),
|
|
1406
|
+
execute: async (ctx) => executeMcpCommand(ctx, serviceName43, toolName43, buildArgs43(ctx))
|
|
1353
1407
|
};
|
|
1354
1408
|
|
|
1355
1409
|
// src/commands/te-engage/task/task-metric-detail.ts
|
|
1356
|
-
var
|
|
1357
|
-
var
|
|
1358
|
-
function
|
|
1410
|
+
var serviceName44 = "engage_task";
|
|
1411
|
+
var toolName44 = "query_task_metric_detail";
|
|
1412
|
+
function buildArgs44(ctx) {
|
|
1359
1413
|
const args = {
|
|
1360
1414
|
projectId: ctx.num("project_id"),
|
|
1361
1415
|
taskId: ctx.str("task_id"),
|
|
@@ -1393,14 +1447,14 @@ var taskMetricDetail = {
|
|
|
1393
1447
|
validate: (ctx) => {
|
|
1394
1448
|
readOptionalJsonArray(ctx, "metric_id_list");
|
|
1395
1449
|
},
|
|
1396
|
-
dryRun: (ctx) => buildMcpDryRun(ctx,
|
|
1397
|
-
execute: async (ctx) => executeMcpCommand(ctx,
|
|
1450
|
+
dryRun: (ctx) => buildMcpDryRun(ctx, serviceName44, toolName44, buildArgs44(ctx)),
|
|
1451
|
+
execute: async (ctx) => executeMcpCommand(ctx, serviceName44, toolName44, buildArgs44(ctx))
|
|
1398
1452
|
};
|
|
1399
1453
|
|
|
1400
1454
|
// src/commands/te-engage/task/task-stats.ts
|
|
1401
|
-
var
|
|
1402
|
-
var
|
|
1403
|
-
function
|
|
1455
|
+
var serviceName45 = "engage_task";
|
|
1456
|
+
var toolName45 = "get_task_stats";
|
|
1457
|
+
function buildArgs45(ctx) {
|
|
1404
1458
|
return {
|
|
1405
1459
|
projectId: ctx.num("project_id"),
|
|
1406
1460
|
req: {
|
|
@@ -1421,8 +1475,8 @@ var taskStats = {
|
|
|
1421
1475
|
validate: (ctx) => {
|
|
1422
1476
|
readRequiredJsonObject(ctx, "req");
|
|
1423
1477
|
},
|
|
1424
|
-
dryRun: (ctx) => buildMcpDryRun(ctx,
|
|
1425
|
-
execute: async (ctx) => executeMcpCommand(ctx,
|
|
1478
|
+
dryRun: (ctx) => buildMcpDryRun(ctx, serviceName45, toolName45, buildArgs45(ctx)),
|
|
1479
|
+
execute: async (ctx) => executeMcpCommand(ctx, serviceName45, toolName45, buildArgs45(ctx))
|
|
1426
1480
|
};
|
|
1427
1481
|
|
|
1428
1482
|
// src/commands/te-engage/task/index.ts
|
|
@@ -1434,6 +1488,8 @@ var commands4 = [
|
|
|
1434
1488
|
taskDetail,
|
|
1435
1489
|
taskList,
|
|
1436
1490
|
taskStats,
|
|
1491
|
+
buildTaskSaveGuide,
|
|
1492
|
+
saveTask,
|
|
1437
1493
|
manageTask
|
|
1438
1494
|
];
|
|
1439
1495
|
var task_default = commands4;
|