@thinkingai/ae-cli 1.0.1 → 1.0.3
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 +16 -13
- package/dist/auth-BQC5DBE7.js +19 -0
- package/dist/auth-DXKYLMO7.js +81 -0
- package/dist/chunk-3CDLNXTD.js +218 -0
- package/dist/chunk-53FNNCZW.js +174 -0
- package/dist/chunk-EBFUVWIZ.js +127 -0
- package/dist/chunk-ZYXIGPG7.js +148 -0
- package/dist/client-T4VODLA6.js +16 -0
- package/dist/community-FVDAWGS4.js +684 -0
- package/dist/config-V7AXKDMB.js +242 -0
- package/dist/index.js +16 -15
- package/dist/raw-G3GKHAPZ.js +61 -0
- package/dist/te-analysis-CHFTDN55.js +871 -0
- package/dist/te-audience-M6LQY6M7.js +350 -0
- package/dist/te-common-BLQ7DVGC.js +144 -0
- package/dist/te-dataops-V4OTKY35.js +1853 -0
- package/dist/te-engage-DXE4R5EW.js +1470 -0
- package/dist/te-meta-FMM7KCVI.js +479 -0
- package/package.json +7 -5
- package/skills/te-analysis/SKILL.md +10 -10
- package/skills/te-analysis/references/build-entity-details-sql.md +10 -10
- package/skills/te-analysis/references/build-event-details-sql.md +10 -10
- package/skills/te-analysis/references/create-alert.md +4 -4
- package/skills/te-analysis/references/create-dashboard.md +4 -4
- package/skills/te-analysis/references/create-or-update-dashboard-note.md +4 -4
- package/skills/te-analysis/references/create-public-access-link.md +4 -4
- package/skills/te-analysis/references/create-report.md +10 -10
- package/skills/te-analysis/references/create-result-cluster.md +4 -4
- package/skills/te-analysis/references/drilldown-user-events.md +6 -6
- package/skills/te-analysis/references/drilldown-users.md +4 -4
- package/skills/te-analysis/references/get-alert-definition-schema.md +3 -3
- package/skills/te-analysis/references/get-alert.md +3 -3
- package/skills/te-analysis/references/get-analysis-query-schema.md +4 -4
- package/skills/te-analysis/references/get-filter-schema.md +3 -3
- package/skills/te-analysis/references/get-groupby-schema.md +3 -3
- package/skills/te-analysis/references/get-report-definition.md +3 -3
- package/skills/te-analysis/references/get-table-columns.md +3 -3
- package/skills/te-analysis/references/list-alerts.md +4 -4
- package/skills/te-analysis/references/list-dashboards.md +4 -4
- package/skills/te-analysis/references/list-public-access-links.md +3 -3
- package/skills/te-analysis/references/list-reports.md +4 -4
- package/skills/te-analysis/references/load-filters.md +4 -4
- package/skills/te-analysis/references/query-adhoc.md +10 -10
- package/skills/te-analysis/references/query-dashboard-detail.md +3 -3
- package/skills/te-analysis/references/query-dashboard-report-data.md +9 -9
- package/skills/te-analysis/references/query-entity-details.md +10 -10
- package/skills/te-analysis/references/query-event-details.md +10 -10
- package/skills/te-analysis/references/query-report-data.md +11 -11
- package/skills/te-analysis/references/update-alert.md +4 -4
- package/skills/te-analysis/references/update-dashboard.md +4 -4
- package/skills/te-analysis/references/update-public-access-link.md +4 -4
- package/skills/te-audience/SKILL.md +5 -5
- package/skills/te-audience/references/create-cluster.md +10 -10
- package/skills/te-audience/references/create-tag.md +10 -10
- package/skills/te-audience/references/get-cluster-definition-schema.md +9 -9
- package/skills/te-audience/references/get-clusters-by-name.md +3 -3
- package/skills/te-audience/references/get-tag-definition-schema.md +3 -3
- package/skills/te-audience/references/get-tags-by-name.md +3 -3
- package/skills/te-audience/references/list-cluster-members.md +4 -4
- package/skills/te-audience/references/list-clusters.md +4 -4
- package/skills/te-audience/references/list-tag-members.md +4 -4
- package/skills/te-audience/references/list-tags.md +4 -4
- package/skills/te-audience/references/refresh-cluster.md +3 -3
- package/skills/te-audience/references/refresh-tag.md +3 -3
- package/skills/te-audience/references/update-cluster.md +9 -9
- package/skills/te-audience/references/update-tag.md +10 -10
- package/skills/te-common/SKILL.md +2 -2
- package/skills/te-common/references/get-resource-url.md +5 -5
- package/skills/te-common/references/list-projects.md +3 -3
- package/skills/te-community/SKILL.md +61 -69
- package/skills/te-community/references/community-activity-analysis.md +43 -43
- package/skills/te-community/references/community-analyzing-official-content.md +47 -47
- package/skills/te-community/references/community-analyzing-theme-comment.md +87 -87
- package/skills/te-community/references/community-character-analysis.md +44 -44
- package/skills/te-community/references/community-daily-report.md +56 -53
- package/skills/te-community/references/community-hottopic-insight.md +81 -87
- package/skills/te-community/references/community-weekly-report.md +54 -53
- package/skills/te-community/references/get_channel_info.md +9 -9
- package/skills/te-community/references/get_comment_tag_analysis.md +15 -15
- package/skills/te-community/references/get_comments_summary.md +15 -15
- package/skills/te-community/references/get_corpus_tags.md +9 -9
- package/skills/te-community/references/get_daily_summary.md +10 -10
- package/skills/te-community/references/get_hot_topics.md +12 -12
- package/skills/te-community/references/get_livestream_analysis.md +9 -9
- package/skills/te-community/references/get_livestream_detail.md +19 -19
- package/skills/te-community/references/get_livestream_list.md +13 -13
- package/skills/te-community/references/get_livestream_overview.md +11 -11
- package/skills/te-community/references/get_livestream_room_metrics.md +12 -12
- package/skills/te-community/references/get_livestream_rooms.md +12 -12
- package/skills/te-community/references/get_overview_metrics.md +12 -12
- package/skills/te-community/references/get_post_detail.md +21 -21
- package/skills/te-community/references/get_risk_content.md +23 -23
- package/skills/te-community/references/get_sentiment_overview.md +16 -16
- package/skills/te-community/references/get_tag_trends.md +13 -13
- package/skills/te-community/references/get_topic_detail.md +12 -12
- package/skills/te-community/references/search_posts.md +26 -26
- package/skills/te-dataops/SKILL.md +390 -392
- package/skills/te-dataops/references/dataops-flow-create.md +87 -87
- package/skills/te-dataops/references/dataops-flow-monitor.md +65 -65
- package/skills/te-dataops/references/dataops-integration.md +90 -85
- package/skills/te-dataops/references/dataops-query.md +58 -58
- package/skills/te-dataops/references/dataops-table.md +63 -63
- package/skills/te-engage/SKILL.md +103 -103
- package/skills/te-engage/references/add-approver.md +11 -11
- package/skills/te-engage/references/add-channel.md +34 -34
- package/skills/te-engage/references/approver-list.md +8 -8
- package/skills/te-engage/references/cancel-query-by-request-id.md +10 -10
- package/skills/te-engage/references/channel-detail.md +13 -13
- package/skills/te-engage/references/channel-list.md +15 -15
- package/skills/te-engage/references/config-channel-detail.md +10 -10
- package/skills/te-engage/references/config-channel-list.md +11 -11
- package/skills/te-engage/references/config-item-analysis-report.md +21 -21
- package/skills/te-engage/references/config-item-detail.md +10 -10
- package/skills/te-engage/references/config-item-list.md +8 -8
- package/skills/te-engage/references/config-item-strategy-comparison.md +14 -14
- package/skills/te-engage/references/config-item-trigger-report.md +26 -26
- package/skills/te-engage/references/copy-config-template.md +16 -16
- package/skills/te-engage/references/delete-channel.md +11 -11
- package/skills/te-engage/references/delete-config-channel.md +11 -11
- package/skills/te-engage/references/delete-config-item.md +12 -12
- package/skills/te-engage/references/delete-flow.md +11 -11
- package/skills/te-engage/references/flow-ab-split-node-report.md +29 -29
- package/skills/te-engage/references/flow-detail.md +19 -19
- package/skills/te-engage/references/flow-list.md +8 -8
- package/skills/te-engage/references/flow-node-config-schema.md +11 -11
- package/skills/te-engage/references/flow-node-detail-report.md +30 -30
- package/skills/te-engage/references/flow-node-overview-report.md +27 -27
- package/skills/te-engage/references/flow-process-report.md +32 -32
- package/skills/te-engage/references/manage-flow.md +44 -44
- package/skills/te-engage/references/manage-strategy.md +37 -37
- package/skills/te-engage/references/manage-task.md +20 -20
- package/skills/te-engage/references/modify-flow-base-info.md +14 -14
- package/skills/te-engage/references/save-flow.md +264 -263
- package/skills/te-engage/references/strategy-detail.md +16 -16
- package/skills/te-engage/references/strategy-list.md +10 -10
- package/skills/te-engage/references/task-data-detail.md +47 -47
- package/skills/te-engage/references/task-data-overview.md +23 -23
- package/skills/te-engage/references/task-detail.md +18 -18
- package/skills/te-engage/references/task-experiment-report.md +26 -26
- package/skills/te-engage/references/task-list.md +35 -35
- package/skills/te-engage/references/task-metric-detail.md +31 -31
- package/skills/te-engage/references/task-stats.md +31 -31
- package/skills/te-engage/references/update-channel-status.md +13 -13
- package/skills/te-engage/references/update-config-channel-status.md +14 -14
- package/skills/te-engage/references/validate-flow-node-config.md +15 -15
- package/skills/te-engage/references/whitelist-list.md +8 -8
- package/skills/te-meta/SKILL.md +5 -5
- package/skills/te-meta/references/batch-create-metadata.md +4 -4
- package/skills/te-meta/references/batch-edit-metadata.md +3 -3
- package/skills/te-meta/references/create-metric.md +12 -12
- package/skills/te-meta/references/create-project-mark-time.md +4 -4
- package/skills/te-meta/references/create-virtual-event.md +10 -10
- package/skills/te-meta/references/create-virtual-property.md +8 -8
- package/skills/te-meta/references/delete-project-mark-times.md +3 -3
- package/skills/te-meta/references/delete-track-items.md +3 -3
- package/skills/te-meta/references/get-metric.md +3 -3
- package/skills/te-meta/references/get-project-config.md +3 -3
- package/skills/te-meta/references/get-track-program.md +3 -3
- package/skills/te-meta/references/list-entities.md +4 -4
- package/skills/te-meta/references/list-events.md +4 -4
- package/skills/te-meta/references/list-metrics.md +4 -4
- package/skills/te-meta/references/list-project-mark-times.md +4 -4
- package/skills/te-meta/references/list-project-users.md +3 -3
- package/skills/te-meta/references/list-properties.md +4 -4
- package/skills/te-meta/references/save-track-items.md +3 -3
- package/skills/te-meta/references/update-metric.md +10 -10
- package/skills/te-meta/references/update-project-mark-time.md +4 -4
- package/skills/te-shared/SKILL.md +8 -8
- package/skills/te-community/references/community-release-analysis.md +0 -79
- package/skills/te-dataops/references/dataops-operations.md +0 -107
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
import {
|
|
2
|
+
callMcpTool,
|
|
3
|
+
parseMcpResult,
|
|
4
|
+
resolveMcpUrl
|
|
5
|
+
} from "./chunk-53FNNCZW.js";
|
|
6
|
+
import "./chunk-3CDLNXTD.js";
|
|
7
|
+
import "./chunk-EBFUVWIZ.js";
|
|
8
|
+
|
|
9
|
+
// src/commands/te-audience/shared.ts
|
|
10
|
+
function createMcpCommand(config) {
|
|
11
|
+
const toolName = config.command.slice(1);
|
|
12
|
+
const mcpService = config.mcpService || "analysis";
|
|
13
|
+
return {
|
|
14
|
+
service: "analysis_audience",
|
|
15
|
+
command: config.command,
|
|
16
|
+
description: config.description,
|
|
17
|
+
flags: config.flags,
|
|
18
|
+
risk: config.risk,
|
|
19
|
+
dryRun: (ctx) => ({
|
|
20
|
+
method: "tools/call",
|
|
21
|
+
url: resolveMcpUrl(ctx.mcpUrl(), ctx.host(), mcpService),
|
|
22
|
+
body: {
|
|
23
|
+
name: toolName,
|
|
24
|
+
arguments: config.buildArgs(ctx)
|
|
25
|
+
}
|
|
26
|
+
}),
|
|
27
|
+
execute: async (ctx) => {
|
|
28
|
+
const url = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), mcpService);
|
|
29
|
+
const result = await callMcpTool(url, toolName, config.buildArgs(ctx), ctx.host());
|
|
30
|
+
return parseMcpResult(result);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function optionalString(ctx, name) {
|
|
35
|
+
const value = ctx.str(name);
|
|
36
|
+
return value === "" ? void 0 : value;
|
|
37
|
+
}
|
|
38
|
+
function optionalNumber(ctx, name) {
|
|
39
|
+
const value = ctx.str(name);
|
|
40
|
+
return value === "" ? void 0 : Number(value);
|
|
41
|
+
}
|
|
42
|
+
function optionalBoolean(ctx, name) {
|
|
43
|
+
const value = ctx.str(name);
|
|
44
|
+
return value === "" ? void 0 : ctx.bool(name);
|
|
45
|
+
}
|
|
46
|
+
function optionalJson(ctx, name) {
|
|
47
|
+
const value = ctx.str(name);
|
|
48
|
+
return value === "" ? void 0 : ctx.json(name);
|
|
49
|
+
}
|
|
50
|
+
function optionalJsonString(ctx, name) {
|
|
51
|
+
const value = optionalJson(ctx, name);
|
|
52
|
+
return value === void 0 ? void 0 : JSON.stringify(value);
|
|
53
|
+
}
|
|
54
|
+
function requiredJsonString(ctx, name) {
|
|
55
|
+
return JSON.stringify(ctx.json(name));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// src/commands/te-audience/cluster/list-clusters.ts
|
|
59
|
+
var listClusters = createMcpCommand({
|
|
60
|
+
command: "+list_clusters",
|
|
61
|
+
description: "List cluster metadata with optional keyword filtering",
|
|
62
|
+
flags: [
|
|
63
|
+
{ name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
|
|
64
|
+
{ name: "query", type: "string", required: false, desc: "Keyword filter", alias: "q" }
|
|
65
|
+
],
|
|
66
|
+
risk: "read",
|
|
67
|
+
buildArgs: (ctx) => ({
|
|
68
|
+
projectId: ctx.num("project_id"),
|
|
69
|
+
query: optionalString(ctx, "query")
|
|
70
|
+
})
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
// src/commands/te-audience/cluster/get-clusters-by-name.ts
|
|
74
|
+
var getClustersByName = createMcpCommand({
|
|
75
|
+
command: "+get_clusters_by_name",
|
|
76
|
+
description: "Get cluster definition details in batch by cluster names",
|
|
77
|
+
flags: [
|
|
78
|
+
{ name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
|
|
79
|
+
{ name: "names", type: "json", required: true, desc: 'Cluster name list JSON array, e.g. ["cluster_a","cluster_b"]' }
|
|
80
|
+
],
|
|
81
|
+
risk: "read",
|
|
82
|
+
buildArgs: (ctx) => ({
|
|
83
|
+
projectId: ctx.num("project_id"),
|
|
84
|
+
names: ctx.json("names")
|
|
85
|
+
})
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
// src/commands/te-audience/cluster/list-cluster-members.ts
|
|
89
|
+
var listClusterMembers = createMcpCommand({
|
|
90
|
+
command: "+list_cluster_members",
|
|
91
|
+
description: "List members in the specified cluster",
|
|
92
|
+
flags: [
|
|
93
|
+
{ name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
|
|
94
|
+
{ name: "cluster_name", type: "string", required: true, desc: "Cluster name" },
|
|
95
|
+
{ name: "property_names", type: "json", required: false, desc: "Optional user property name list JSON array" },
|
|
96
|
+
{ name: "use_cache", type: "boolean", required: false, desc: "Whether to use cache, default true" }
|
|
97
|
+
],
|
|
98
|
+
risk: "read",
|
|
99
|
+
buildArgs: (ctx) => ({
|
|
100
|
+
projectId: ctx.num("project_id"),
|
|
101
|
+
clusterName: ctx.str("cluster_name"),
|
|
102
|
+
propertyNames: optionalJson(ctx, "property_names"),
|
|
103
|
+
useCache: optionalBoolean(ctx, "use_cache")
|
|
104
|
+
})
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
// src/commands/te-audience/cluster/create-cluster.ts
|
|
108
|
+
var createCluster = createMcpCommand({
|
|
109
|
+
command: "+create_cluster",
|
|
110
|
+
description: "Create a user cluster definition",
|
|
111
|
+
flags: [
|
|
112
|
+
{ name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
|
|
113
|
+
{ name: "cluster_name", type: "string", required: true, desc: "Cluster name. Must start with a letter and contain only letters, digits, and underscores. Length: 1-80" },
|
|
114
|
+
{ name: "display_name", type: "string", required: true, desc: "Cluster display name. Length: 1-80" },
|
|
115
|
+
{ name: "type", type: "string", required: false, desc: "Cluster type: condition/sql. Default: condition" },
|
|
116
|
+
{ name: "definition", type: "json", required: true, desc: "Cluster definition JSON. See +get_cluster_definition_schema" },
|
|
117
|
+
{ name: "zone_offset", type: "number", required: false, desc: "Optional time zone offset, valid range: -12 to 14" },
|
|
118
|
+
{ name: "entity_id", type: "number", required: false, desc: "Optional entity ID. Use analysis_meta +list_entities to query" }
|
|
119
|
+
],
|
|
120
|
+
risk: "write",
|
|
121
|
+
buildArgs: (ctx) => ({
|
|
122
|
+
projectId: ctx.num("project_id"),
|
|
123
|
+
clusterName: ctx.str("cluster_name"),
|
|
124
|
+
displayName: ctx.str("display_name"),
|
|
125
|
+
type: optionalString(ctx, "type"),
|
|
126
|
+
definition: requiredJsonString(ctx, "definition"),
|
|
127
|
+
zoneOffset: optionalNumber(ctx, "zone_offset"),
|
|
128
|
+
entityId: optionalNumber(ctx, "entity_id")
|
|
129
|
+
})
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
// src/commands/te-audience/cluster/update-cluster.ts
|
|
133
|
+
var updateCluster = createMcpCommand({
|
|
134
|
+
command: "+update_cluster",
|
|
135
|
+
description: "Update a user cluster definition",
|
|
136
|
+
flags: [
|
|
137
|
+
{ name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
|
|
138
|
+
{ name: "cluster_name", type: "string", required: true, desc: "Cluster name" },
|
|
139
|
+
{ name: "display_name", type: "string", required: false, desc: "New cluster display name. Length: 1-80" },
|
|
140
|
+
{ name: "remark", type: "string", required: false, desc: "New cluster remark" },
|
|
141
|
+
{ name: "type", type: "string", required: false, desc: "New cluster type: condition/sql. Recommended when updating definition" },
|
|
142
|
+
{ name: "definition", type: "json", required: false, desc: "New cluster definition JSON. See +get_cluster_definition_schema" },
|
|
143
|
+
{ name: "zone_offset", type: "number", required: false, desc: "Optional time zone offset, valid range: -12 to 14" }
|
|
144
|
+
],
|
|
145
|
+
risk: "write",
|
|
146
|
+
buildArgs: (ctx) => ({
|
|
147
|
+
projectId: ctx.num("project_id"),
|
|
148
|
+
clusterName: ctx.str("cluster_name"),
|
|
149
|
+
displayName: optionalString(ctx, "display_name"),
|
|
150
|
+
remark: optionalString(ctx, "remark"),
|
|
151
|
+
type: optionalString(ctx, "type"),
|
|
152
|
+
definition: optionalJsonString(ctx, "definition"),
|
|
153
|
+
zoneOffset: optionalNumber(ctx, "zone_offset")
|
|
154
|
+
})
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
// src/commands/te-audience/cluster/refresh-cluster.ts
|
|
158
|
+
var refreshCluster = createMcpCommand({
|
|
159
|
+
command: "+refresh_cluster",
|
|
160
|
+
description: "Trigger cluster recomputation asynchronously",
|
|
161
|
+
flags: [
|
|
162
|
+
{ name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
|
|
163
|
+
{ name: "cluster_name", type: "string", required: true, desc: "Cluster name" }
|
|
164
|
+
],
|
|
165
|
+
risk: "write",
|
|
166
|
+
mcpService: "te_analysis_extend",
|
|
167
|
+
buildArgs: (ctx) => ({
|
|
168
|
+
projectId: ctx.num("project_id"),
|
|
169
|
+
clusterName: ctx.str("cluster_name")
|
|
170
|
+
})
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
// src/commands/te-audience/cluster/index.ts
|
|
174
|
+
var commands = [
|
|
175
|
+
listClusters,
|
|
176
|
+
getClustersByName,
|
|
177
|
+
listClusterMembers,
|
|
178
|
+
createCluster,
|
|
179
|
+
updateCluster,
|
|
180
|
+
refreshCluster
|
|
181
|
+
];
|
|
182
|
+
var cluster_default = commands;
|
|
183
|
+
|
|
184
|
+
// src/commands/te-audience/tag/list-tags.ts
|
|
185
|
+
var listTags = createMcpCommand({
|
|
186
|
+
command: "+list_tags",
|
|
187
|
+
description: "List tag metadata with optional keyword filtering",
|
|
188
|
+
flags: [
|
|
189
|
+
{ name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
|
|
190
|
+
{ name: "query", type: "string", required: false, desc: "Keyword filter", alias: "q" }
|
|
191
|
+
],
|
|
192
|
+
risk: "read",
|
|
193
|
+
buildArgs: (ctx) => ({
|
|
194
|
+
projectId: ctx.num("project_id"),
|
|
195
|
+
query: optionalString(ctx, "query")
|
|
196
|
+
})
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
// src/commands/te-audience/tag/get-tags-by-name.ts
|
|
200
|
+
var getTagsByName = createMcpCommand({
|
|
201
|
+
command: "+get_tags_by_name",
|
|
202
|
+
description: "Get tag definition details in batch by tag names",
|
|
203
|
+
flags: [
|
|
204
|
+
{ name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
|
|
205
|
+
{ name: "names", type: "json", required: true, desc: 'Tag name list JSON array, e.g. ["tag_a","tag_b"]' }
|
|
206
|
+
],
|
|
207
|
+
risk: "read",
|
|
208
|
+
buildArgs: (ctx) => ({
|
|
209
|
+
projectId: ctx.num("project_id"),
|
|
210
|
+
names: ctx.json("names")
|
|
211
|
+
})
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
// src/commands/te-audience/tag/list-tag-members.ts
|
|
215
|
+
var listTagMembers = createMcpCommand({
|
|
216
|
+
command: "+list_tag_members",
|
|
217
|
+
description: "List members in the specified tag",
|
|
218
|
+
flags: [
|
|
219
|
+
{ name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
|
|
220
|
+
{ name: "tag_name", type: "string", required: true, desc: "Tag name" },
|
|
221
|
+
{ name: "snapshot_date", type: "string", required: false, desc: "Optional tag snapshot date, format YYYY-MM-DD" },
|
|
222
|
+
{ name: "property_names", type: "json", required: false, desc: "Optional user property name list JSON array" },
|
|
223
|
+
{ name: "use_cache", type: "boolean", required: false, desc: "Whether to use cache, default true" }
|
|
224
|
+
],
|
|
225
|
+
risk: "read",
|
|
226
|
+
buildArgs: (ctx) => ({
|
|
227
|
+
projectId: ctx.num("project_id"),
|
|
228
|
+
tagName: ctx.str("tag_name"),
|
|
229
|
+
snapshotDate: optionalString(ctx, "snapshot_date"),
|
|
230
|
+
propertyNames: optionalJson(ctx, "property_names"),
|
|
231
|
+
useCache: optionalBoolean(ctx, "use_cache")
|
|
232
|
+
})
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
// src/commands/te-audience/tag/create-tag.ts
|
|
236
|
+
var createTag = createMcpCommand({
|
|
237
|
+
command: "+create_tag",
|
|
238
|
+
description: "Create a user tag definition",
|
|
239
|
+
flags: [
|
|
240
|
+
{ name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
|
|
241
|
+
{ name: "tag_name", type: "string", required: true, desc: "Tag name. Must start with a letter and contain only letters, digits, and underscores. Length: 1-80" },
|
|
242
|
+
{ name: "display_name", type: "string", required: true, desc: "Tag display name. Length: 1-80" },
|
|
243
|
+
{ name: "type", type: "string", required: false, desc: "Tag type: condition/metric/first_last/sql. Default: condition" },
|
|
244
|
+
{ name: "definition", type: "json", required: true, desc: "Tag definition JSON. See +get_tag_definition_schema" },
|
|
245
|
+
{ name: "zone_offset", type: "number", required: false, desc: "Optional time zone offset, valid range: -12 to 14" },
|
|
246
|
+
{ name: "entity_id", type: "number", required: false, desc: "Optional entity ID. Use analysis_meta +list_entities to query" }
|
|
247
|
+
],
|
|
248
|
+
risk: "write",
|
|
249
|
+
buildArgs: (ctx) => ({
|
|
250
|
+
projectId: ctx.num("project_id"),
|
|
251
|
+
tagName: ctx.str("tag_name"),
|
|
252
|
+
displayName: ctx.str("display_name"),
|
|
253
|
+
type: optionalString(ctx, "type"),
|
|
254
|
+
definition: requiredJsonString(ctx, "definition"),
|
|
255
|
+
zoneOffset: optionalNumber(ctx, "zone_offset"),
|
|
256
|
+
entityId: optionalNumber(ctx, "entity_id")
|
|
257
|
+
})
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
// src/commands/te-audience/tag/update-tag.ts
|
|
261
|
+
var updateTag = createMcpCommand({
|
|
262
|
+
command: "+update_tag",
|
|
263
|
+
description: "Update a user tag definition",
|
|
264
|
+
flags: [
|
|
265
|
+
{ name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
|
|
266
|
+
{ name: "tag_name", type: "string", required: true, desc: "Tag name" },
|
|
267
|
+
{ name: "display_name", type: "string", required: false, desc: "New tag display name. Length: 1-80" },
|
|
268
|
+
{ name: "remark", type: "string", required: false, desc: "New tag remark" },
|
|
269
|
+
{ name: "type", type: "string", required: false, desc: "New tag type: condition/metric/first_last/sql" },
|
|
270
|
+
{ name: "definition", type: "json", required: false, desc: "New tag definition JSON. See +get_tag_definition_schema" },
|
|
271
|
+
{ name: "zone_offset", type: "number", required: false, desc: "Optional time zone offset, valid range: -12 to 14" }
|
|
272
|
+
],
|
|
273
|
+
risk: "write",
|
|
274
|
+
buildArgs: (ctx) => ({
|
|
275
|
+
projectId: ctx.num("project_id"),
|
|
276
|
+
tagName: ctx.str("tag_name"),
|
|
277
|
+
displayName: optionalString(ctx, "display_name"),
|
|
278
|
+
remark: optionalString(ctx, "remark"),
|
|
279
|
+
type: optionalString(ctx, "type"),
|
|
280
|
+
definition: optionalJsonString(ctx, "definition"),
|
|
281
|
+
zoneOffset: optionalNumber(ctx, "zone_offset")
|
|
282
|
+
})
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
// src/commands/te-audience/tag/refresh-tag.ts
|
|
286
|
+
var refreshTag = createMcpCommand({
|
|
287
|
+
command: "+refresh_tag",
|
|
288
|
+
description: "Trigger tag recomputation asynchronously",
|
|
289
|
+
flags: [
|
|
290
|
+
{ name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
|
|
291
|
+
{ name: "tag_name", type: "string", required: true, desc: "Tag name" }
|
|
292
|
+
],
|
|
293
|
+
risk: "write",
|
|
294
|
+
mcpService: "te_analysis_extend",
|
|
295
|
+
buildArgs: (ctx) => ({
|
|
296
|
+
projectId: ctx.num("project_id"),
|
|
297
|
+
tagName: ctx.str("tag_name")
|
|
298
|
+
})
|
|
299
|
+
});
|
|
300
|
+
|
|
301
|
+
// src/commands/te-audience/tag/index.ts
|
|
302
|
+
var commands2 = [
|
|
303
|
+
listTags,
|
|
304
|
+
getTagsByName,
|
|
305
|
+
listTagMembers,
|
|
306
|
+
createTag,
|
|
307
|
+
updateTag,
|
|
308
|
+
refreshTag
|
|
309
|
+
];
|
|
310
|
+
var tag_default = commands2;
|
|
311
|
+
|
|
312
|
+
// src/commands/te-audience/schema/get-cluster-definition-schema.ts
|
|
313
|
+
var getClusterDefinitionSchema = createMcpCommand({
|
|
314
|
+
command: "+get_cluster_definition_schema",
|
|
315
|
+
description: "Get the cluster definition schema by cluster type",
|
|
316
|
+
flags: [
|
|
317
|
+
{ name: "cluster_type", type: "string", required: true, desc: "Cluster type: condition/sql" }
|
|
318
|
+
],
|
|
319
|
+
risk: "read",
|
|
320
|
+
buildArgs: (ctx) => ({
|
|
321
|
+
clusterType: ctx.str("cluster_type")
|
|
322
|
+
})
|
|
323
|
+
});
|
|
324
|
+
|
|
325
|
+
// src/commands/te-audience/schema/get-tag-definition-schema.ts
|
|
326
|
+
var getTagDefinitionSchema = createMcpCommand({
|
|
327
|
+
command: "+get_tag_definition_schema",
|
|
328
|
+
description: "Get the tag definition schema for condition/metric/first_last/sql tags",
|
|
329
|
+
flags: [],
|
|
330
|
+
risk: "read",
|
|
331
|
+
buildArgs: (ctx) => ({})
|
|
332
|
+
});
|
|
333
|
+
|
|
334
|
+
// src/commands/te-audience/schema/index.ts
|
|
335
|
+
var commands3 = [
|
|
336
|
+
getClusterDefinitionSchema,
|
|
337
|
+
getTagDefinitionSchema
|
|
338
|
+
];
|
|
339
|
+
var schema_default = commands3;
|
|
340
|
+
|
|
341
|
+
// src/commands/te-audience/index.ts
|
|
342
|
+
var commands4 = [
|
|
343
|
+
...cluster_default,
|
|
344
|
+
...tag_default,
|
|
345
|
+
...schema_default
|
|
346
|
+
];
|
|
347
|
+
var te_audience_default = commands4;
|
|
348
|
+
export {
|
|
349
|
+
te_audience_default as default
|
|
350
|
+
};
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import {
|
|
2
|
+
callMcpTool,
|
|
3
|
+
parseMcpResult,
|
|
4
|
+
resolveMcpUrl
|
|
5
|
+
} from "./chunk-53FNNCZW.js";
|
|
6
|
+
import "./chunk-3CDLNXTD.js";
|
|
7
|
+
import "./chunk-EBFUVWIZ.js";
|
|
8
|
+
|
|
9
|
+
// src/commands/te-common/shared.ts
|
|
10
|
+
function createMcpCommand(config) {
|
|
11
|
+
const toolName = config.command.slice(1);
|
|
12
|
+
const mcpService = config.mcpService || "analysis";
|
|
13
|
+
return {
|
|
14
|
+
service: "analysis_common",
|
|
15
|
+
command: config.command,
|
|
16
|
+
description: config.description,
|
|
17
|
+
flags: config.flags,
|
|
18
|
+
risk: config.risk,
|
|
19
|
+
dryRun: (ctx) => ({
|
|
20
|
+
method: "tools/call",
|
|
21
|
+
url: resolveMcpUrl(ctx.mcpUrl(), ctx.host(), mcpService),
|
|
22
|
+
body: {
|
|
23
|
+
name: toolName,
|
|
24
|
+
arguments: config.buildArgs(ctx)
|
|
25
|
+
}
|
|
26
|
+
}),
|
|
27
|
+
execute: async (ctx) => {
|
|
28
|
+
const url = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), mcpService);
|
|
29
|
+
const result = await callMcpTool(url, toolName, config.buildArgs(ctx), ctx.host());
|
|
30
|
+
return parseMcpResult(result);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// src/commands/te-common/project/list-projects.ts
|
|
36
|
+
var listProjects = createMcpCommand({
|
|
37
|
+
command: "+list_projects",
|
|
38
|
+
description: "List all projects accessible to the current user. No parameters are required. Returns project IDs, names, company IDs, project types, remarks, app IDs, and the user's current role in each project.",
|
|
39
|
+
flags: [],
|
|
40
|
+
risk: "read",
|
|
41
|
+
buildArgs: () => ({})
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// src/commands/te-common/project/index.ts
|
|
45
|
+
var commands = [
|
|
46
|
+
listProjects
|
|
47
|
+
];
|
|
48
|
+
var project_default = commands;
|
|
49
|
+
|
|
50
|
+
// src/commands/te-common/resource/get-resource-url.ts
|
|
51
|
+
function toAbsoluteUrl(host, candidate) {
|
|
52
|
+
if (!candidate) return candidate;
|
|
53
|
+
if (/^https?:\/\//i.test(candidate)) return candidate;
|
|
54
|
+
const normalizedBase = host.replace(/\/+$/, "");
|
|
55
|
+
if (candidate.startsWith("/")) {
|
|
56
|
+
return `${normalizedBase}${candidate}`;
|
|
57
|
+
}
|
|
58
|
+
if (candidate.startsWith("#")) {
|
|
59
|
+
return `${normalizedBase}/${candidate}`;
|
|
60
|
+
}
|
|
61
|
+
return `${normalizedBase}/${candidate}`;
|
|
62
|
+
}
|
|
63
|
+
function patchMarkdownLink(link, absoluteUrl) {
|
|
64
|
+
return link.replace(/\]\(([^)]+)\)$/, `](${absoluteUrl})`);
|
|
65
|
+
}
|
|
66
|
+
function normalizeResourceUrlFields(node, host) {
|
|
67
|
+
if (!node || typeof node !== "object") return;
|
|
68
|
+
const obj = node;
|
|
69
|
+
const rawUrl = typeof obj.raw_url === "string" && obj.raw_url || typeof obj.rawUrl === "string" && obj.rawUrl || "";
|
|
70
|
+
if (rawUrl) {
|
|
71
|
+
const absoluteUrl = toAbsoluteUrl(host, rawUrl);
|
|
72
|
+
if (obj.raw_url !== void 0) obj.raw_url = absoluteUrl;
|
|
73
|
+
if (obj.rawUrl !== void 0) obj.rawUrl = absoluteUrl;
|
|
74
|
+
if (typeof obj.markdown_link === "string") {
|
|
75
|
+
obj.markdown_link = patchMarkdownLink(obj.markdown_link, absoluteUrl);
|
|
76
|
+
}
|
|
77
|
+
if (typeof obj.markdownLink === "string") {
|
|
78
|
+
obj.markdownLink = patchMarkdownLink(obj.markdownLink, absoluteUrl);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
for (const value of Object.values(obj)) {
|
|
82
|
+
if (value && typeof value === "object") {
|
|
83
|
+
normalizeResourceUrlFields(value, host);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
var getResourceUrl = {
|
|
88
|
+
service: "analysis_common",
|
|
89
|
+
command: "+get_resource_url",
|
|
90
|
+
description: "Generate a clickable Markdown link for a resource by ID and type (absolute URL)",
|
|
91
|
+
flags: [
|
|
92
|
+
{ name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
|
|
93
|
+
{ name: "resource_type", type: "string", required: true, desc: "Resource type: dashboard/report/metric/alert/tag/cluster/data_table/super_event/super_prop_user/super_prop_event/virtual_event/user_virtual_prop/event_virtual_prop" },
|
|
94
|
+
{ name: "resource_id", type: "number", required: true, desc: "Numeric resource ID" }
|
|
95
|
+
],
|
|
96
|
+
risk: "read",
|
|
97
|
+
dryRun: (ctx) => ({
|
|
98
|
+
method: "tools/call",
|
|
99
|
+
url: resolveMcpUrl(ctx.mcpUrl(), ctx.host(), "analysis"),
|
|
100
|
+
body: {
|
|
101
|
+
name: "get_resource_url",
|
|
102
|
+
arguments: {
|
|
103
|
+
projectId: ctx.num("project_id"),
|
|
104
|
+
resourceType: ctx.str("resource_type"),
|
|
105
|
+
resourceId: ctx.num("resource_id")
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}),
|
|
109
|
+
execute: async (ctx) => {
|
|
110
|
+
const url = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), "analysis");
|
|
111
|
+
const result = await callMcpTool(
|
|
112
|
+
url,
|
|
113
|
+
"get_resource_url",
|
|
114
|
+
{
|
|
115
|
+
projectId: ctx.num("project_id"),
|
|
116
|
+
resourceType: ctx.str("resource_type"),
|
|
117
|
+
resourceId: ctx.num("resource_id")
|
|
118
|
+
},
|
|
119
|
+
ctx.host()
|
|
120
|
+
);
|
|
121
|
+
const parsed = parseMcpResult(result);
|
|
122
|
+
if (typeof parsed !== "object" || parsed === null) {
|
|
123
|
+
return parsed;
|
|
124
|
+
}
|
|
125
|
+
normalizeResourceUrlFields(parsed, ctx.host());
|
|
126
|
+
return parsed;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
// src/commands/te-common/resource/index.ts
|
|
131
|
+
var commands2 = [
|
|
132
|
+
getResourceUrl
|
|
133
|
+
];
|
|
134
|
+
var resource_default = commands2;
|
|
135
|
+
|
|
136
|
+
// src/commands/te-common/index.ts
|
|
137
|
+
var commands3 = [
|
|
138
|
+
...project_default,
|
|
139
|
+
...resource_default
|
|
140
|
+
];
|
|
141
|
+
var te_common_default = commands3;
|
|
142
|
+
export {
|
|
143
|
+
te_common_default as default
|
|
144
|
+
};
|